assalamualaikum wr Wb ^_^
^_^ ketemu lagi ye ma ane yang ganteng ini :v :v
ane mau bagi2 cara buat Inject SSH nih :D
Buat yang Mastah Lewat aje ye :p
oke langsung aje ^_^
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.
^_^ ketemu lagi ye ma ane yang ganteng ini :v :v
ane mau bagi2 cara buat Inject SSH nih :D
Buat yang Mastah Lewat aje ye :p
oke langsung aje ^_^
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 Ane mengambil sample provider XL dan menggunakan pemrogramam Visual Basic, dan sekali lagi kalau anda sudah paham dasarnya ente bisa implementasikan dengan semua bahasa pemrograman , baik delphi,c#/c++,phyton bahkan java. Di sini ane tidak hanya akan memberikan source code nya saja tetapi beserta penjelasanya jadi ente tau apa sebenarnya yang terjadi dalam setiap prosesnya dan bisa menyimpulkan dasar dari sebuah aplikasi injector, karena di sini ane tidak mengajarkan ente untuk membuat aplikasi instan tapi mengajarkan ente 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”
Open Visual basic nya ^_^
Buat yang Belum Punya Download Di sini >> Visual Basic Full Version
Nah Nanti akan Muncul seperti Gambar di bawah Ini
Kita membutuhkan component tambahan yakni winsock, untuk menabahkan component kita bisa melalui tahapan seperti pada gambar 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)
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.
================================================================================
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 respon 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”, kapan 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
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
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 error mari kita saling belajar mengatasi sebuah masalah yang :D
#DownCrootz
Semoga Bermanfaat ^_^