Membuat Inject di Delphi XE | Indy10 Payload

8:28 PM
Membuat Inject di Delphi XE | Indy10 Payload - Apa itu Indy10 ? Terus apa bedanya dengan Indy9 ?. Baiklah buat kamu yang sebelumnya sudah membaca bahkan mengikuti/mempraktekan cara membuat inject dari bagian 1 sampai bagian 3, semua bagian itu hanya membahas TCP Payload untuk Indy9. Yah memang karna Delphi7 tidak bisa menerapkan Indy10 secara default (kecuali kalau di permak).

Perbedaan yang sangat jelas mungkin pada funcion nya atau penerapan nya, untuk fungsinya sih sama :D.

Sebelumnya download & install dulu Delphi XE saya rekomendasikan versi 5 atau 6 (buat pemula) atau kalau mau yang baru Delphi XE / Embarcadero Delphi XE sudah sampai versi yang ke 10.


Cara menerapkan TCP Payload Indy10 di Delphi XE
Buka Delphi XE kemudian buat form/tampilan yang sederhana, tambahkan 1 button 1 Edit 1 Label & 1 TCPMappedPort, kemudian atur posisi nya sesuai selera.



Captions button = 'Start'
Text di Edit = '2016'
Captions Label = 'Listen Port'

kemudian masukkan cooding ini di button.
  if Button1.Caption = 'Start' then begin
    IdMappedPortTCP1.Bindings.Add.IP := '127.0.0.1';
    IdMappedPortTCP1.Bindings.Add.Port := StrToInt(Edit1.Text);
    IdMappedPortTCP1.MappedHost := 'Proxy ISP';
    IdMappedPortTCP1.MappedPort := 8080;
    Button1.Caption := 'Stop';
  end else begin
    IdMappedPortTCP1.Active := False;
    IdMappedPortTCP1.Bindings.Clear;
    Button1.Caption := 'Start';
  end;
kemudian kamu tambahkan uses ini, biar sedikit rapi letakkan tepat di bawah implementation
uses IdCoder, IdCoder3to4, IdCoderMIME, IdGlobal;

setelah itu tambahkan 2 funcion ini tepat di bawah {$R *.dfm}
function netstring(B: TIdContext): string;
var S: String;
begin
  S := TIdEncoderMIME.EncodeBytes(TIdMappedPortContext(B).NetData); // Base64
  S := TIdDecoderMIME.DecodeString(S); // String
  Result := S;
end;

function netbyte(S: string): TIdBytes;
var B: TIdBytes;
begin
  S := TIdEncoderMIME.EncodeString(S); // Base64
  B := TIdDecoderMIME.DecodeBytes(S); // TIdBytes
  Result := B;
end;

NOTE: Sampai sini coba RUN Project kamu tekan F9 di Delphi. Jika tidak ada error lanjut ke tahap di bawah ini, jika masih error perhatikan lebih teliti lagi.

Cara Menjalankan TCP Payload Indy10
masuk ke OnExecute di events TCPMappedPort. kemudian buat String Payload, dan masukkan payload nya, sebagai contoh seperti ini

  if (pos('CONNECT',netstring(AContext))<>0) or (pos('HTTP',netstring(AContext))<>0) then
  begin
    payload := 'HEAD http://Bug.com/ HTTP/1.1'#13#10+
               'Host: Bug.com'#13#10+
               'Connection: Keep-Alive'+#13#10#13#10;
    TIdMappedPortContext(AContext).NetData := netbyte(netstring(AContext) + payload);
  end;

Kemudian untuk onOutbondData seperti ini:
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'502 Bad Gateway','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'408 Request Time-out','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'404 Not Found','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'403 Forbidden','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'400 Bad Request','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'408 Request Time-out','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'307 Temporary Redirect','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'302 Found','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'302 Moved Temporarily','200 OK',[rfReplaceAll]));
  TIdMappedPortContext(AContext).NetData := netbyte(StringReplace(NetString(AContext),'301 Moved Permanently','200 OK',[rfReplaceAll]));

Untuk kamu yang mau simple simple aja bisa pakai tool SPG. karna tool SPG sudah mendukung kasil Generate TCP Payload Indy9 dan Indy10 :)

Source code jadinya juga sudah saya siapkan, Silahkan di comot.

Artikel Terkait

Previous
Next Post »
Blogger
Disqus
Pilih Sistem Komentar Yang Kamu Sukai

10 comments

kalau bisa kang , update link download Delphi EX nya kang heheh :D

Balas

iayh mau share, masih mau cari akun RDP dulu.

Balas

di tunggu upload delphi EX nya mastha :v

Balas

add header nya gmna mang ?

Balas

untuk funcion nya sama, untuk addheader indy9 dan 10. karna cuma main replace saja..
cuma beda penerapan di TCP nya saja. bisa pakai tool SPG untuk liat generate addheader mas :)

Balas

kebetulan saya sudah pakai tool SPG dan work mas , tetapi waktu di generate pas Addheader nya kan payload nya
Netstring(AContext):= Addheader bla bla
nah waktu saya pindah di XE8 kok "Netstring(AContext):= " Error ya mas ? Mohon infonya :)

Balas

tolong SS error nya mas :)

Balas

begini mang error nya ,
http://imgur.com/eyUuiJ8
mohon koreksinya :)

Balas

wah bug ini, stelah ane cek ia bener hasil generate nya salah.. nnti sya update untuk SPGv6
untuk bagian yg error. ganti NetString(AContext) dengan TIdMappedPortContext(AContext).NetData

Note: cuma bagian Netstring yg error, jangan semuanya :)

Balas