Home » » Tutorial membuat Inject Dengan VB6

Tutorial membuat Inject Dengan VB6

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 header injeksi = “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”, perhatikan “(255)” ini
menandakan bahwa variable “dataLokal” berupa array dan maksimal arraynya sebanyak 255
-  “dataInject”, berfungsi untuk menyimpan sebuah data http header yang nantinya akan di kirim ke proxy
provider yang bertujuan untuk melakukan kamulfase data , atau yang sering orang2 bilang “host” header.
================================================================================
‘CODE___
Private Sub Form_Load()
dataInject = "DELETE http://news.okezone.com/ HTTP/1.1" & vbCr & "Host:news.okezone.com" & vbCr & vbCr
End Sub
‘CODE___
Proses  diatas  menerangakan  pengisian  “dataInject”  dengan  data  http  header  ,  pada  saat  form  di  load,  dan  perhatikan
“vbCr” yaitu merupakan sebuah karakter newline atau garis baru ada 3 tipe newline di visual basic
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___
Fungsi di atas berfungsi sebagai penerimaan request data yang datang melalui “sockLokal” dan sekaligus melakukan proses
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)
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
untuk memutus koneksi ketika di deteksi ada request “GET” daari komputer kita ( mengatisipasi 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 “sockLokal” akan di
kirimkan ke proxy provider melalui “sockProxy”
================================================================================
‘CODE___
Private Sub sockProxy_Connect(Index As Integer)
sockProxy(Index).SendData dataInject
cek = 0
Timer1(Index).Enabled = True
End Sub
‘CODE___
Fungsi  di  atas  berjalan  ketika  “sockProxy”  prtama  kali  terkoneksi  dengan  proxy  provider,  kemudia  melakukan  proses
pengiriman data “dataInject” ke proxy provider untuk membuka jalur ke proxy provider yang nantinya  akan di kirim data
yang  sebenarnya  dari  “sockLokal”,  perhatikan  variable  “cek”  kita  isikan  0  untuk  menandakan  bahwa  data  sebenarnya
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 berjalan ketika “Timer1” di aktifkan / enable’kan, dia akan mengecek apakah data sebenarnya sudah di kirim
atau belum berdasar isi dari variable “cek”, jika belum / atau nilainya 0 maka akan di lakukan proses pengiriman data yang
sebenarnya  ke  proxy  provider,  kemudian  menonaktifkan  “timer1”  itu  sendiri  agar  tidak  mengirim  data  secara  terus
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  proxy provider sudah terjalin melalui “sockProxy”, kemudian membuat variable
baru untuk menampung data respon sementara dari proxy provider dengan nama “dataProxy” .
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 re spon yang
data asli bukan data inject dengan cara mengecek nilai dari variable “cek” , pada proses sebelumnya “cek” masih bernilai 0 ,
maka kita lihat   jika “cek” bernilai 1 maka respon dari proxy provider akan di kirim ke komputer melalui “sockLokal”, kap an
nilai  “cek”  1  ?  Pada  fungsi  ini  merupakan  perulangan  jadi  respon  pertama  dalah  dari  respon  inject  dan  kemudian  kita
mengisi  nilai  “cek”   1  maka  akan  terjadi  perulangan  lagi  untuk  respon  ke  dua  dan  nilai  “cek”  sudah  1.  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
semua jalur akan di putus baik jalur “sockProxy” atau “sockLokal” untuk mengantisipasi koneksi menjadi bengong :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  tombol “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

Sumber : kopaci






13 komentar:

  1. siang gan, nentuin listenport kalo buat caranya gmn gan?

    ReplyDelete
  2. gan, nentuin listenport 2222 caranya gimna, kalo ane check di proxy cheker connection timeout, mohon pencerahan. masih new bie

    ReplyDelete
  3. lister portnya gx usah di apa apaain itu untuk membuat jalur ke Koneksi intinya mau di rubah 2222 atau 6666 gx masalah

    ReplyDelete
  4. kalau code udah di isi semua untuk melanjut star gimana ga... mohon pencerahanya...

    ReplyDelete
  5. wah keren bang... dapat ilmu nih...
    akhirnya q berhasil membuat injek sendiri... :D

    kalau untuk direct, komponen mana yang harus dirubah bang?

    trus ada tutorial membuat ssh tunnel gak bang?

    ReplyDelete
  6. komplit.. mksh ilmunya gan....

    sama mau tanya code untuk membedakan inject yg suport dropbear sama open yang mana ya gan?

    sama klo mau buat inject polosan ada tutorialnya ga gan?

    maaf masih newbie...

    ReplyDelete
  7. gan mau tnya nih ane udh selesai buat project nya tapi untuk di save gimana caranya ??
    supaya bisa jadi injek yg utuh, kyk injek2 punya org lain

    krn setiap ane save pasti bukan dalam bentuk exe ( hasil projectnya ), tapi selalu dlm bentuk file kgk jelas

    ReplyDelete
    Replies
    1. compile error : variable not defined , selalu begitu gan.. saat make exe

      Delete
  8. gan buatkan video tutorial nya dong , untuk kode kode bahasa pemrograman , di bagian mana saja untuk diterapkan nya .. msh bnyk dri sebagian yg blm memahami .

    ReplyDelete
  9. mantap gan,agak mudah karen udah diberi penjelasannya.
    ni bisa buat polosan gak gan?
    sbelumnya mkasih bget gan udah share kode ini.

    ReplyDelete
  10. gan,, knpa tombol ON gak mau brubah jd OFF?? ap yg salah??

    ReplyDelete