Belajar Membuat Aplikasi Injector Bersam

Belajar Membuat Aplikasi Injector
Bersama:

http://www.fb.com/kopaci.kopaci

Dalam membuat aplikasi injector yang harus patut kita ketahui adalah alamat proxy provider dan portnya dan juga http
header yang nantinya untuk proses injeksi ke proxy provider. Aplikasi injcetor sebenarnya adalah sebuah aplikasi server
proxy sederhana yang di modifikasi sedemikian rupa untuk memanipulasi data yang akan di kirim ke proxy provider. Setiap
provider akan berbeda topologi / alur modifikasi pengiriman data nya tapi bila anda sudah tau dasar dari aplikasi ini anda
bisa dengan mudah menyesuaikan dengan provider yang anda gunakan.
Dalam studi kasus ini kami mengambil sample provider XL dan menggunakan pemrogramam Visual Basic, dan sekali lagi
kalau anda sudah paham dasarnya anda bisa implementasikan dengan semua bahasa pemrograman , baik
delphi,c#/c++,phyton bahkan java. Di sini kami tidak hanya akan memberikan source code nya saja tetapi beserta
penjelasanya jadi anda tau apa sebenarnya yang terjadi dalam setiap prosesnya dan bisa menyimpulkan dasar dari sebuah
aplikasi injector, karena di sini kami tidak mengajarkan anda untuk membuat aplikasi instan tapi mengajarkan andan utnuk
mengetahui bagai mana sistrem kerja proxy dan membuat aplikasinya dengan benar.
Sebelum kita mulai kita harus mengetahui hal sebagi berikut:
Studikasus Provider XL
IP proxy = 202.152.240.50
Port proxy = 8080
Data heade i jeksi = DELETE http://news.okezone.com/ HTTP/1.1" & vbCr & "Host:news.okezone.com" & vbCr & vbCr


Mulailah dengan project baru, pilih standar EXE

Maka akan tampil form seperti pada gambar di bawah

Kita membutuhkan component tambahan yakni winsock, untuk menabahkan component kita bias melalui tahapan seperti
pada gambar berikut

Maka akan tampak pada sebelah kiri bertambah icon winsock seperti berikut

Mari kita mulai , yang pertama yang kita butuhkan adalah berikut beserta seting Propertiesnya
-

-

-

-

Winsock1

Name = sockLokal
Index = 0
Winsock2
Name = sockProxy
Index = 0
textbox
name = listenPort
text = 2222
CommandButton
Caption = ON
Timer1
Index=0
Interval = 1000
Enable = false

Maka akan tampil di form sebagai berikut

Kita membutuhkan 2 winsock berikut penjelasanya




sockLokal bertugas sebagai pengirim dan penerima data dari komputer kita
sockProxy bertugas sebagai pengirim dan menerima data dari proxy provider

Kenapa winsock dan timer index kita isikan 0 , karena di sini kita kan membuat jalur multy koneksi jadi winsock dan
timer harus berupa array dan patut untuk di mengerti sebuah array di mulai dari 0 bukan 1.
Memulai Coding
CODE___
Option Explicit
Dim dataLokal(255) As String
Dim dataInject As String
Dim i, cek As Integer
CODE___
Yang pertama kita lakukan adalah deklarasi vriabel yang di butuhkan
-

dataLokal(255) , berfungsi untuk menyimpan data yang di ambil dari sockLokal , pe hatika
55 i i
menandakan bahwa variable dataLokal e upa a a da
aksi al a a a se a ak 55

dataInject , e fu gsi u tuk e impan sebuah data http header yang nantinya akan di kirim ke proxy
p o ide a g e tujua u tuk elakuka ka ulfase data , atau a g se i g o a g ila g host heade .

================================================================================
CODE___
Private Sub Form_Load()
dataInject = "DELETE http://news.okezone.com/ HTTP/1.1" & vbCr & "Host:news.okezone.com" & vbCr & vbCr
End Sub
CODE___
P oses diatas e e a gaka pe gisia dataInject de ga data http heade , pada saat fo
di load, dan perhatikan
C aitu e upaka se uah ka akte e li e atau ga is a u ada tipe e li e di isual asi
vbCr = untuk system unix/linux
vbLf = untuk system mac
vbCrLf = untuk system windows
tergantung kebutuhan dan kondisi kita akan menggunakan yang mana .
================================================================================
CODE___
Private Sub sockLokal_ConnectionRequest(Index As Integer, ByVal requestID As Long)
i=i+1

Load sockLokal(i)
Load sockProxy(i)
Load Timer1(i)
sockLokal(i).Close
sockLokal(i).Accept requestID
End Sub
CODE___
Fu gsi di atas e fu gsi se agai pe e i aa e uest data a g data g elalui sockLokal da sekaligus
load winsock dan timer untuk menentukan array keberapa berdasar request yang di terima.
================================================================================
CODE___
Private Sub sockLokal_DataArrival(Index As Integer, ByVal bytesTotal As Long)
sockLokal(Index).GetData dataLokal(Index)

elakuka p oses

If InStr(dataLokal(Index), "GET ") > 0 Then
sockLokal(Index).Close
Exit Sub
End If

If sockProxy(Index).State = 0 Then
sockProxy(Index).RemoteHost = "202.152.240.50"
sockProxy(Index).RemotePort = 8080
sockProxy(Index).Connect
End If
If sockProxy(Index).State = 7 Then
sockProxy(Index).SendData dataLokal(Index)
End If
End Sub
CODE___
Fungsi di atas berjalan ketika proses koneksi sudah terjalin antara komputer kita ke sockLokal, Fungsi if pertama berguna
u tuk e utus ko eksi ketika di deteksi ada e uest GET daa i ko pute kita
engatisipasi agar program injector tidak
bias langsung di gunakan di browser /direct/polos),If yang ke dua berfungsi membangun koneksi ke proxy provider jika
kondisi /status koneksi belum terhubung, IF yang ketiga jika koneksi sudah terhubung maka data dari so kLokal aka di
ki i ka ke p o p o ide elalui so kP o
================================================================================
CODE___
Private Sub sockProxy_Connect(Index As Integer)
sockProxy(Index).SendData dataInject

cek = 0
Timer1(Index).Enabled = True
End Sub
CODE___
Fu gsi di atas e jala ketika so kP o
p ta a kali te ko eksi de ga p o p o ide , ke udia elakuka p oses
pe gi i a data dataI je t ke p o p o ide u tuk e uka jalu ke p o p o ide a g a ti a akan di kirim data
a g se e a a da i so kLokal , pe hatika a ia le ek kita isika
u tuk e a daka ah a data se e a a
belum di kirim, kemudian me enable/ mengaktifkan timer1.
================================================================================
CODE___
Private Sub Timer1_Timer(Index As Integer)
If cek = 0 Then
If sockProxy(Index).State = 7 Then
sockProxy(Index).SendData dataLokal(Index)
End If
End If
Timer1(Index).Enabled = False
End Sub

CODE___
Fungsi di atas berjala ketika Ti e
di aktifka / e a le ka , dia aka
e ge ek apakah data se e a a sudah di ki i
atau elu
e dasa isi da i a ia le ek , jika elu / atau ilai a
aka aka di lakuka p oses pe gi i a data a g
sebenarnya ke proxy provider, ke udia
e o aktifka ti e
itu se di i aga tidak e gi i data se a a te us
menerus.
================================================================================

CODE___
Private Sub sockProxy_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim dataProxy As String
sockProxy(Index).GetData dataProxy
If cek = 1 Then
If sockLokal(Index).State = 7 Then
sockLokal(Index).SendData dataProxy

End If
Else
cek = 1
End If
End Sub
CODE___
Fungsi di atas berjalan ketika koneksi ke p o p o ide sudah te jali
elalui so kP o , ke udia
a u u tuk e a pu g data espo se e ta a da i p o p o ide de ga a a dataP o
.

e

uat a ia le

Perhatikan proses di awal tadi kita sudah mengirimkan 2 kali request ke proxy provider yang pertama data inject dan data
aslinya, nah otomatis respon juga akan menjadi dua tipe yang pertama respon dari data inject kemudian yang kedua
respon dari data sebenarnya / asli, maka kita akan memilih data yang akan kita kirim ke komputer kita adalah respon yang
data asli uka data i je t de ga a a e ge ek ilai da i a ia le ek , pada p oses se elu
a ek asih e ilai ,

maka kita lihat jika ek e ilai
aka espo da i p o p o ide aka di ki i ke ko pute elalui so kLokal , kapan
ilai ek
? Pada fu gsi i i e upaka pe ula ga jadi espo pe ta a dalah da i espo i je t da ke udia kita
e gisi ilai ek
aka aka te jadi pe ula ga lagi u tuk espo ke dua da ilai ek sudah . Semoga anda
mengerti :D
================================================================================
CODE___
Private Sub sockProxy_Close(Index As Integer)
sockProxy(Index).Close
sockLokal(Index).Close
End Sub
CODE___
Fungsi di atas berjalan ketika jalur koneksi ke proxy provider terputus baik itu karena erro/atau di putus dari provider, maka
se ua jalu aka di putus aik jalu so kP o
atau so kLokal u tuk e ga tisipasi ko eksi e jadi e go g :D
================================================================================
CODE___
If tombol.Caption = "ON" Then

tombol.Caption = "OFF"
sockLokal(0).LocalPort = listenPort.Text
sockLokal(0).Listen
Else
tombol.Caption = "ON"
sockLokal(0).Close
End If
CODE___
Fungsi di atas berjalan ketika to ol ON di klik, kami tidak akan menerangkan silahkan lihat sendiri dan pahami fungsi di
atas :D

SOURCE CODE LENGKAP:
Option Explicit
Dim dataLokal(255) As String
Dim dataInject As String
Dim i, cek As Integer
Private Sub Form_Load()
dataInject = "DELETE http://news.okezone.com/ HTTP/1.1" & vbCr & "Host:news.okezone.com" & vbCr & vbCr
End Sub
Private Sub sockLokal_ConnectionRequest(Index As Integer, ByVal requestID As Long)
i=i+1
Load sockLokal(i)
Load sockProxy(i)
Load Timer1(i)
sockLokal(i).Close
sockLokal(i).Accept requestID
End Sub
Private Sub sockLokal_DataArrival(Index As Integer, ByVal bytesTotal As Long)
sockLokal(Index).GetData dataLokal(Index)
If InStr(dataLokal(Index), "GET ") > 0 Then
sockLokal(Index).Close
Exit Sub
End If
If sockProxy(Index).State = 0 Then
sockProxy(Index).RemoteHost = "202.152.240.50"
sockProxy(Index).RemotePort = 8080
sockProxy(Index).Connect
End If
If sockProxy(Index).State = 7 Then
sockProxy(Index).SendData dataLokal(Index)
End If
End Sub
Private Sub sockProxy_Connect(Index As Integer)
sockProxy(Index).SendData dataInject
cek = 0
Timer1(Index).Enabled = True
End Sub
Private Sub Timer1_Timer(Index As Integer)
If cek = 0 Then
If sockProxy(Index).State = 7 Then
sockProxy(Index).SendData dataLokal(Index)
End If
End If
Timer1(Index).Enabled = False
End Sub
Private Sub sockProxy_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim dataProxy As String
sockProxy(Index).GetData dataProxy
If cek = 1 Then
If sockLokal(Index).State = 7 Then
sockLokal(Index).SendData dataProxy
End If
Else

cek = 1
End If
End Sub
Private Sub sockProxy_Close(Index As Integer)
sockProxy(Index).Close
sockLokal(Index).Close
End Sub
Private Sub tombol_Click()
If tombol.Caption = "ON" Then
tombol.Caption = "OFF"
sockLokal(0).LocalPort = listenPort.Text
sockLokal(0).Listen
Else
tombol.Caption = "ON"
sockLokal(0).Close
End If
End Sub

Demikian aplikasi sudah jadi silahkan anda coba menggunakan bitvise agar mudah melakukan testingnya, sesuaikan proxy
bitvise denga listen port yang anda set di aplikasi ini
Ada kemungkinan XL sudah menutup port 22 karena untuk login ssh dengan port 22 selalu gagal silahkan gunakan ssh yang
open port 443,109,143 atau yang lain.
Bila terjadi error itu merupakan tantangan untuk anda , sudah banyak media informasi di internet silahkan cari errornya
bila terjadi erro mari kita saling belajar mengatasi sebuah masalah yang :D

+++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++
http://www.fb.com/kopaci.kopaci