Friday, April 28, 2006

Analisis Lengkap Virus Brontok

Analisis Lengkap Virus Brontok
Yohanes Nugroho (yohanes[at]gmail.com)
Editor: Risnawaty
Virus Brontok sudah mulai berkurang penyebarannya, tapi masih menyisakan banyak pertanyaan: siapa yang membuatnya? adakah keterlibatan perusahaan antivirus? seberapa cerdaskah pembuat virus ini dan mungkinkah dia akan menciptakan virus lain yang lebih berbahaya?.
Hal-hal aneh seputar Brontok
• Pencipta virus Brontok diduga dari Institut Teknologi Bandung (ITB), tapi ternyata tidak ada bukti mengenai hal itu kecuali mengenai laporan bahwa virus mulai menyebar di ITB. Virus ini mengupdate dirinya dari suatu situs di Internet,
Satu-satunya analisis lokal yang menyebutkan bahwa virus mengupdate dirinya berasal dari sebuah perusahaan antivirus lokal yang menjalin kerja sama dengan sebuah perusahaan antivirus luar negeri. Tapi anehnya meski perusahaan tersebut mengetahui bahwa virus tersebut mengupdate dirinya, dia tidak menyebutkan URL updatenya, meski sudah saya tanya pribadi melalui email. Apakah perusahaan tersebut tidak tahu URLnya? (kurang pandai dalam menganalisis virusnya) ataukah mereka sengaja membiarkan agar virus berkesempatan mengupdate dirinya dan perusahaannya mendapatkan untung? (kedua kemungkinan tersebut sama mengkhawatirkannya).
Virus versi awal hanya menyerang situs 17tahun.com dan israel.gov.il, tapi lama-lama mulai menyerang situs lain, seperti www.kaskus.com, dan bahkan situs pribadi (blog) seperti fajarweb.com, adakah dendam pribadi oleh pembuat virus ini pada orang tertentu?
Pembuat virus mencantumkan kata-kata ini di virusnya:
!!! Akan Kubuat Mereka (VM lokal yg cengeng & bodoh) Terkapar !!!
Dan di versi Brontok terbaru, ternyata dia berusaha menghapus virus lokal seperti dekil/decoy, kumis, fawn, kangen, dan riyani_jangkaru (pengetahuan saya mengenai virus lokal agak minim, jadi dafar ini hanya yang saya ketahui). Penghapusan sebagian virus lokal cukup menyeluruh, dengan membunuh task virus, menghapus file virus, dan bahkan menormalkan atribut file dokumen yang dibuat menjadi hidden oleh virus lain (tapi pembersihan registry yang diubah virus lain tidak dilakukan).
Karakteristik Brontok
Saya tidak akan memberikan penjelasan panjang lebar mengenai karakteristik Brontok, karena bagian ini sudah dibahas di banyak situs. Secara singkat, karakteristik Brontok adalah:
1. Brontok menggunakan ikon folder standar Windows, Anda yang memakai theme aneh/nonstandar akan melihat keanehan ikon ini.
2. Brontok membuat banyak perubahan di registry agar sulit dibersihkan (menonaktifkan registry editor, menghilangkan menu folder options, dll). Tepatnya, Brontok melakukan perubahan pada nilai di subkey:
o HKCU\software\microsoft\windows\currentversion\run
 Nilai Tok-Cirrhatus menjadi path ke Brontok.
 Nilai Tok-Cirrhatus-XXX (xxx adalah acak) menjadi path ke Brontok yang namanya juga acak.
o HKLM\software\microsoft\windows\currentversion\run
 Nilai Bron-Spizaetus menjadi path ke Brontok.
 Nilai Bron-Spizaetus-xxx (xxx adalah acak) menjadi path ke Brontok.
o HKCU\software\microsoft\windows\currentversion\Policies\Explorer Nilai NoFolderOptions menjadi 1.
o HKCU\software\microsoft\windows\currentversion\Policies\System Nilai DisableCMD menjadi 0.
 Nilai DisableRegistryTools menjadi 1.
o HKCU\software\microsoft\windows\currentversion\explorer\advanced
 Nilai Hidden menjadi 0.
 Nilai HideFileExt menjadi 1.
 Nilai ShowSuperHidden menjadi 0.
o SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
 Nilai Shell menjadi Explorer.exe "c:\windows\sembako-xxx.exe". (xxx adalah acak)
o SYSTEM\CurrentControlSet\Control\SafeBoot Nilai AlternateShell menjadi cmd-bro-xxx.exe (xxx adalah acak). Perhatian: ternyata Windows akan secara otomatis menyalin isi semua key di HKLM, SYSTEM\CurrentContolSet\Control\SafeBoot ke HKLM, SYSTEM\ContolSet00X\Control\SafeBoot X (dari 1-2) jika proses restart dilakukan dengan sukses (atau jika komputer dimatikan lalu komputer dinyalakan lagi).
3. Brontok mengotori banyak direktori dengan salinan dirinya.
4. Brontok menimpa autoexec.bat dengan satu baris "pause", mungkin maksudnya menghentikan antivirus yang berjalan di mode DOS yang dijalankan dengan autoexec.bat.
5. Brontok membuat banyak item startup agar dijalankan ketika komputer dimulai (di start menu dan di aneka tempat di registry). Hal ini berlaku juga dalam safe mode (Perhatian perhatian, yang benar adalah "SAFE MODE" bukan "SAVEMODE").
6. Brontok mengupdate dirinya sendiri dari URL tertentu, tepatnya Brontok ini mendownload file exe dari situs tertentu dan mengeksekusinya (bisa saja isinya bukan update brontok, tapi kode untuk memformat seluruh isi komputer). Pembahasan ada di bagian berikutnya di artikel ini.
7. Brontok menggunakan enkripsi untuk menyembunyikan string-string dalam dirinya. Enkripsi Brontok juga dibahas pada artikel ini.
8. Brontok mengirimkan dirinya ke alamat email yang ditemukannya, jika alamat tersebut tidak mengandung string berikut (artinya brontok tidak akan mengirimkan dirinya ke Microsoft, perusahaan antivirus, dll): SECURE,SUPPORT,MASTER,MICROSOFT,VIRUS,HACK,CRACK,LINUX,AVG,GRISOFT,CILLIN,SECURITY, SYMANTEC,ASSOCIATE,VAKSIN,NORTON,NORMAN,PANDA,SOFT,SPAM,BLAH, .VBS,DOMAIN,HIDDEN,DEMO,DEVELOP,FOO@,KOMPUTER,SENIOR,DARK,BLACK,BLEEP,FEEDBACK, IBM.,INTEL.,MACRO,ADOBE,FUCK,RECIPIENT,SERVER,PROXY,ZEND,ZDNET, CNET,DOWNLOAD,HP.,XEROX,CANON,SERVICE,ARCHIEVE,NETSCAPE,MOZILLA,OPERA,NOVELL,NEW LOTUS,MICRO,TREND,SIEMENS,FUJITSU,NOKIA,W3.,NVIDIA,APACHE,MYSQL,POSTGRE,SUN.,GOO GLE,SPERSKY,ZOMBIE,ADMIN,AVIRA,AVAST,TRUST,ESAVE,ESAFE,PROTECT, ALADDIN,ALERT,BUILDER,DATABASE,AHNLAB,PROLAND,ESCAN,HAURI,NOD32,SYBARI,ANTIGEN,R OBOT,ALWIL,BROWSE,COMPUSE,COMPUTE,SECUN,SPYW,REGIST,FREE,BUG,MATH, LAB,IEEE,KDE,TRACK,INFORMA,FUJI,@MAC,SLACK,REDHA,SUSE,BUNTU,XANDROS,@ABC,@123,LO OKSMART,SYNDICAT,ELEKTRO,ELECTRO,NASA,LUCENT,TELECOM,STUDIO,SIERRA,USERNAME,IPTE K,CLICK,SALES,PROMO,.CA.COM Ada sedikit perbedaan pada email jika email dikirim ke alamat dengan substring berikut ("alamat indonesia"): PLASA;TELKOM;INDO;.CO.ID;.GO.ID;.MIL.ID;.SCH.ID;.NET.ID;.OR.ID; .AC.ID;.WEB.ID;.WAR.NET.ID;ASTAGA;GAUL;BOLEH;EMAILKU;SATU. Perbedaannya pada asal pengirim, jika untuk tujuan Indonesia pengirimnya menjadi @boleh.com sedangkan kalau non "alamat Indonesia" pengirimnya menjadi @friendster.com (pada versi awal Brontok, untuk Indonesia memakai @kafegaul.com dan untuk alamat non Indonesia memakai alamat @pornstargals.com). (bodohnya isi emailnya tetap sama, dan memakai Bahasa Indonesia). Perhatian: banyak analisis salah yang menyatakan bahwa Brontok tidak mengirimkan dirinya ke alamat email di Indonesia.
9. Brontok berusaha mendapatkan alamat email korban dengan melakukan parsing terhadap file HTML, .HTM,.TXT, .EML, .WAB, dan .PHP yang ditemuinya (Brontok mencari semua string xxx@yyy.zzz dalam file).
10. Brontok melakukan koneksi SMTP langsung ketika mengirim email, tapi tidak menggunakan MX record (Mail eXchanger Record) DNS suatu domain. Jika Brontok mengirim ke alamat @yahoo.com, dia akan mencoba memakai SMTP server mta237.mail.re2.yahoo.com, sedangkan jika ke domain lain Brontok mencari MX/Server SMTP dengan menambah prefix smtp., mail. atau ns1. pada domain mail.
11. Brontok Membuat file yang isinya agar semua orang menghentikan kejahatan (bla bla bla, silakan baca di situs lain jika Anda penasaran dengan isinya).
12. Brontok merestart komputer ketika program tertentu aktif. Pengecekan program dilakukan dengan melihat teks Window program terhadap string: REGISTRY,SYSTEM CONFIGURATION,COMMAND PROMPT,.EXE,SHUT DOWN,SCRIPT HOST,LOG OFF WINDOWS,KILLBOX,TASK, dua string terakhir baru ditambahkan untuk mengantisipasi program yang dapat membunuh task Brontok, misalnya program HijakThis.
13. Brontok menjadwalkan dirinya agar dijalankan di jam tertentu. Versi awal brontok menjadwalkan dirinya hanya pada jam 17:08, tapi versi baru juga menjadwalkan eksekusi pada jam 11:03 (keduanya dijadwalkan setiap hari).
14. Brontok berusaha mengakses share di jaringan lokal dan menginfeksinya juga.
15. Brontok memiliki string: By: HVM31 -- Jowobot #VM Community -- (Perhatikan kata VM/Virus Maker community ini, mungkin saja HVM31 itu punya teman yang tahu tentang ini).
16. Brontok versi lama menyerang (maksudnya ingin melakukan DDOS/Distributed Denial of Service attack) situs 17tahun.com dan israel.gov.il dengan ping, sedangkan versi baru menggunakan HTTP Get untuk menyerang www.17tahun.com, www.kaskus.com, dan www.fajarweb.com.
17. Brontok membuat counter di situs debuging.com, URLnya: http://debuging.com/WS1/cgi/x.cgi?NAVG=Tracker&username=%64%65%6C%62%65%6C%62%72%6F (usernamenya adalah delbelbro). Saya belum mengontak pemilik situs tersebut. Counter dinaikkan nilainya setiap selesai menyerang situs yang ada di daftarnya (www.17tahun.com, www.kaskus.com, dan www.fajarweb.com).
18. Brontok membuat file sistem.sys di direktori %windir%/system32/sistem.sis yang isinya adalah kode waktu saat brontok aktif kali pertama. Kode ini terdiri atas 2 digit bulan, 2 digit tanggal, 2 digit jam dan 2 digit menit. Misal: 01122245 berarti Brontok aktif kali pertama pada 01 = Januari, 17 = tanggal 17, 22 = jam 1 malamm, 45 = menit ke 45. File ini juga dicopykan ke direktori \Documents and Settings\Username\Application Data\ dengan nama file BronMes*.ini (bagian * bisa bervariasi).
19. Brontok akan berusaha membunuh paksa beberapa proses (proses adalah program yang berjalan) dengan command taskkill /f /im namaproses. Proses yang dibunuh meliputi virus/worm lokal lain, dan sepertinya beberapa antivirus. Tepatnya proses yang dibunuh adalah mcvsescn.exe;poproxy.exe;avgemc.exe;ccapps.exe;tskmgr.exe;syslove.exe; xpshare.exe;riyani_jangkaru.exe;systray.exe;ashmaisv.exe; aswupdsv.exe;nvcoas.exe;cclaw.exe;njeeves.exe;nipsvc.exe;dkernel.exe; iexplorer.exe;lexplorer.exe.
20. Brontok akan mengubah atribut file MSVBVM60.DLL yang ada di direktori sistem Windows. Atribut file akan diubah menjadi hidden, system, dan read only. Tujuan langkah ini adalah agar lebih sulit menghapus file msvbvm60.dll dari mode DOS seperti yang dibahas dalam beberapa website.
21. Brontok akan mendownload file dari sebuah URL acak (lihat bagian update Brontok) dan berusaha menimpa file %windir%\system32\drivers\etc\hosts dengan file yang didownloadnya.
22. Jika Brontok menemui file .DOC, .PDF .XLS, dan .PPT maka attributnya akan dikembalikan ke normal, sifat ini sepertinya dilakukan untuk mengembalikan dokumen yang disembunyikan (dijadikan hidden) oleh virus lain.
23. Brontok berusaha menghapus file dengan substring "kangen", *RORO*.HTT, FOLDER.HTT. Jika ekstensi file adalah .EXE, maka Brontok juga akan menghapus file jika substring file memiliki nama .DOC.EXE;.DOC ;.XLS.EXE;. XLS ;PATAH;HATI; CERITA; LUCU;MOVZX;CINTA;UNTUKMU;DATA-TEMEN;RIYANI;JANGKARU;KANGEN;JROX; DIARY;DKERNEL;IEXPLORER;LEXPLORER;ADULTONLY;ASIAN;VIRTUAL GIRL;X-PHOTOS;BESTMODEL;GAME NUDE;HOT SCREEN;HOTBABE; NAKED ;MODEL VG;SEXY ;V-GIRL7;JAPANESEGIRL;PUISI (perhatikan bahwa Brontok tidak menghapus .DOC, tapi .DOC yang diikuti spasi dan dengan ekstensi .EXE, demikian juga halnya dengan .XLS).
24. Brontok juga menghapus file: C:\!submit\winword.exe, c:\submit\xpshare.exe,c:\windows\systray.exe, %windir%\systray.exe, %windir%\fonts\tskmgr.exe, c:\windows\rundll32.exe. Masih ada beberapa file lagi yg dihapus Brontok ini (saya tidak melanjutkan analisis penghapusan file sampai di sini).
Perkembangan versi Brontok
Karena saya hanya punya versi awal dan versi akhir, saya tidak bisa membuat perbandingan bertahap, tapi ini perkembangan pentingnya:
Versi awal Versi akhir
Memakai VB6, dikompilasi menjadi PCode. Mudah di bongkar. Memakai VB6, dikompilasi menjadi native code. Lebih sulit dibongkar.
EXE "telanjang". Ukuran sekitar 80 Kb. EXE dipack dengan MEW 11.2. Ukuran sekitar 40 Kb.
Key Registry tetap, bisa memakai file .inf untuk membereskan registry. Key Registry ada yang variabel, sehingga perlu pembersihan manual.
Tidak berjalan di safe mode. Berjalan di safe mode.
Mendownload update dari URL tetap. File yang didownload tidak dicek. Mendownload update dari URL yang berubah, dengan pemeriksaan terhadap file yang didownload.
Menggunakan banyak konstanta string. Menggunakan banyak string yang di-split untuk mengurangi konstanta.
Enkripsi sederhana. Enkripsi lebih berbelit-belit.
Nama file tetap. Membuat aneka macam file, ada yang namanya tetap dan ada yang namanya random (berdasarkan waktu aktivasi brontok).
Update Brontok
Versi pertama Brontok mengupdate dirinya dari: http://www.geocities.com/jowobot123/, Versi terbaru ternyata menggunakan URL acak, ini mirip dengan kasus Worm Sober yang menggunakan URL acak. URL acak pada Worm Sober juga digunakan untuk mengupdate dirinya (sebenarnya file yang didownload itu tidak harus selalu update brontok, bisa juga isinya adalah kode perusak).
Versi terbaru situs mendownload dari salah satu URL berikut, dengan nama file acak:
http://www.20mbweb.com/Kids/dbrosji/
http://www.20mbweb.com/Kids/dbrolro/
http://www.20mbweb.com/Kids/dbrotlu/
http://www.20mbweb.com/Kids/dbrotppt/
http://www.20mbweb.com/Kids/dbrolma/
Tapi saat ini situs 20mbweb.com (baca: 20mb web) tersebut tidak lagi bisa dipakai, sepertinya situs gratisan tersebut sudah tutup (kacian deh lu yang bikin Brontok, dah bikin algoritma yang ribet buat update Brontok lu).
URL di atas juga merupakan sumber untuk mendownload file Host[N].css dengan N adalah versi brontok. Ketika brontok aktif, brontok akan memilih satu URL acak, dan akan menggunakan URL tersebut.
Membersihkan Brontok
Brontok mungkin masih akan di-update, sehingga saya akan memberikan petunjuk pembersihan Brontok dan bukan sebuah antibrontok. Perhatikan bahwa langkah-langkah detail di sini mungkin tidak akan sama persis untuk membereskan Brontok, karena nama file mungkin akan selalu berubah.
Jika Anda tidak yakin, ganti semua langkah hapus menjadi langkah memindahkan file ke direktori tertentu.
1. Matikan fitur system restore di Windows.
2. Tutup semua program yang berjalan, simpan semua dokumen Anda.
3. Pertama, bunuh proses Brontok (proses adalah program yang sedang berjalan).
o Anda bisa memakai Process Explorer dari sysinternals.com, salah satu program yang masih belum dipikirkan oleh pembuat Brontok (program lain sejenis akan menyebabkan komputer restart. Mungkin saja di versi Brontok berikutnya program Process Explorer tersebut juga akan menyebabkan komputer restart jika dijalankan). Bunuh proses services.exe, lsass.exe, smss.exe, dan winlogon.exe.
o Cara lain yang lebih mudah adalah dengan memanfaatkan program KillVB yang telah saya buat, program tersebut akan membunuh semua proses yang executablenya ditulis dalam VB (tidak hanya virus). Cukup download, ekstrak, dan jalankan file tersebut. Virus akan mati di memori setelah Anda menjalankan program tersebut dan Anda bisa meneruskan proses pembersihan komputer (tidak perlu restart atau masuk safe mode).

killvb membunuh proses Visual Basic yang berjalan.
4. Di start menu, pilih programs, lalu pilih startup Klik kanan (jangan salah dengan klik kiri) pada Empty.pif, dan hapus file tersebut. (Kalau perlu, hapus semua file yang tidak Anda perlukan, di masa depan mungkin nama file Empty.pif akan berubah.)
5. Perbaiki registry dengan membuat file fixbrontok.inf yang tercantum di bawah, lalu mengklik kanan pada file tersebut dan memilih install (Anda bisa mendownload file tersebut di sini). File ini akan memperbaiki perubahan setting oleh Brontok, dan akan mengeset agar Explorer menampilkan file yang hidden dan menampilkan juga ekstensi file yang dikenal oleh Explorer.
[Version]
Signature="$Chicago$"
Provider=Compactbyte

[DefaultInstall]
AddReg=fix
DelReg=del

[fix]
HKCU, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,Hidden,%REG_DWORD%,1
HKCU, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,HideFileExt,%REG_DWORD%,0
HKCU, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,ShowSuperHidden,%REG_DWORD%,0
HKLM, Software\CLASSES\batfile\shell\open\command,,,"""%1"" %*"
HKLM, Software\CLASSES\comfile\shell\open\command,,,"""%1"" %*"
HKLM, Software\CLASSES\exefile\shell\open\command,,,"""%1"" %*"
HKLM, Software\CLASSES\piffile\shell\open\command,,,"""%1"" %*"
HKLM, Software\CLASSES\regfile\shell\open\command,,,"regedit.exe "%1""
HKLM, Software\CLASSES\scrfile\shell\open\command,,,"""%1"" %*"
HKLM, SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon, Shell,0, "Explorer.exe"

[del]
HKCU, Software\Microsoft\Windows\CurrentVersion\Run,Tok-Cirrhatus
HKLM, SOFTWARE\Microsoft\Windows\CurrentVersion\Run,Bron-Spizaetus
HKLM, SYSTEM\CurrentContolSet\Control\SafeBoot,AlternateShell
HKLM, SYSTEM\ContolSet001\Control\SafeBoot,AlternateShell
HKLM, SYSTEM\ContolSet002\Control\SafeBoot,AlternateShell
HKLM, SYSTEM\ContolSet003\Control\SafeBoot,AlternateShell
HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableCMD
HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableRegistryTools
HKCU, Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,NoFolderOptions

[Strings]
REG_DWORD = 0x00010001

6. Untuk langkah selanjutnya, untuk meyakinkan apakah objek dengan ikon folder adalah benar-benar folder, lakukan salah satu langkah berikut:
o Gunakan view detail (di Explorer, pilih menu view, lalu details). Lihat di jenis objek apakah folder atau application. Jangan mengklik aplikasi dengan ikon folder.
o Restart explorer (tanpa merestart Windows), caranya: jalankan task manager dengan menekan ctrl-alt-del, pilih processes, lalu pilih explorer.exe dan pilih End Process. Pilih "Yes", setelah itu pergi ke tab Application, pilih New Task, ketikkan Explorer.exe, lalu tekan enter.
7. Hapus semua file .exe di %windir%\shellnew (%windir% adalah direktori Windows Anda, misalnya C:\Windows). Tepatnya Anda harus menghapus yang memiliki ikon folder, tapi seharusnya direktori ini tidak berisi file .exe dan biasanya semua file exe di direktori tersebut aman di hapus.
8. Bersihkan sisa registry yang dibentuk dengan string random, gunakan msconfig (pilih start, pilih Run, ketik msconfig lalu Enter), dan lihat di bagian tab startup, hapus startup item dengan nama diawali dengan bbm dan dengan nama brxxxon (xxxx adalah angka acak). Sekali lagi: nama ini mungkin kelak berubah. Cara terbaik adalah dengan melihat bagian command (kolom kedua), misalnya tercantum C:\Windows\X.exe, lihat file C:\Windows\X.exe, jika file tersebut memiliki ikon folder Anda bisa menghapusnya.

Tampilan msconfig.
9. Cari semua file .exe dan .scr di seluruh drive Anda menggunakan fitur find pada Explorer lalu hapus file tersebut jika file tersebut memiliki ikon folder. Untuk mengurangi jumlah file yang ditemukan batasi ukuran file menjadi <>

3 comments:

Anonymous said...

17tahun.hot.to

Anonymous said...

Mas..
boleh saya nanya khan.
Saya lagi belajar,sekrang pakai win 2003. Trus ada domain kantor pakai co.id...saya diminta bikin email kantor,trus saya pilih hmailserver. cuma saya ga tahu gimana caranya bikin mx record (untuksementara saya minjem ns milik everydns.net)
bantuin ya..
tks

Anonymous said...

Very nice site! » » »