Jumat, 13 Juli 2012

Security Toos: Hping

Hping3
A.      Pendahuluan
Hping adalah sebuah TCP/IP assembler dan juga merupakan command-line yang berorientasi pada pemrosesan paket TCP/IP. Hping dapat digunakan untuk membuat paket IP yang berisi TCP, UDP atau ICMP payloads. Semua field header dapat dimodifikasi dan dikontrol dengan menggunakan baris perintah (command line). Pemahaman yang cukup baik tentang IP, TCP atau UDP wajib diketahui untuk menggunakan dan memahami tool  ini.
Ketika user membutuhkan alat untuk penetration testing dan audit keamanan jaringan, Hping merupakan salah pilihan tool terbaik. Saat ini Hping telah menjadi cara untuk menghasilkan paket IP dan biasanya digunakan untuk pengujian firewall dan intrusion de-protection system. User dapat menggunakan Hping untuk manipulasi semua field, flags, dan jenis protokol dari protokol TCP/ IP. Dengan memanipulasi paket, user dapat memindai (scanning) sistem jaringan dan dapat membuat lalu lintas jaringan tersebut menjadi padat, dan akhirnya membuat paket yang isinya dapat disesuaikan dengan keinginan user. Oleh karena itu, beberapa user menyebutnya sebagai aplikasi packet-crafting.
Hping3 merupakan versi terbaru dari Hping, dan Hping2 adalah aplikasi pendahulunya yang paling signifikan. Hping3 merupakan aplikasi yang berdiri sendiri (standalone), sedangkan Hping2 dalam beberapa kasus masih memerlukan aplikasi dari pihak ketiga, seperti scapy (tools memanipulasi paket) dan idswakeup (sebuah aplikasi untuk sistem pendeteksian intrutions / penyusup). Hping3 hadir dengan mesin baru TCL scripting, sehingga lebih kuat pada perintah command line yang sederhana.
Hping3 memungkinkan user membuat script yang cukup rumit dan akan membantu user untuk mensimulasikan lalu lintas jaringan pada firewall dan pendeteksian penyusup pada sistem user. Untuk penjelasan lebih rinci dan untuk men-download binari, user dapat mengunjungi http://www.hping.org, sedangkan versi yang bekerja penuh (full version) Hping pada CD bootable dapat di download di http://www.knoppix-std.org atau http://www.backtrack.org.

Fungsi dan kegunaan Hping3:
Tidak seperti ping command yang hanya dapat mengirim ICMP  echo request,  hping juga dapat mengirim paket TCP, UDP, ICMP, dan RAW-IP  protocols . Hping dapat digunakan untuk berbagai macam keperluan, yaitu:
  • Firewall testing
  • Port scanning dan host scanning
  • Network testing, dengan menggunakan protokol yang berbeda-beda
  • Remote uptime guessing  
  • TCP/IP stacks auditing
  • Traceroute
B.       Cara Menginstal Hping3
1.    Instalasi Hping3 di Linux
Jika user menggunakan sistem Ubuntu atau Debian, user dapat menggunakan Synaptic Package Manager atau apt-get untuk instalasi. Untuk menginstal Hping, dengan memasukkan perintah berikut apt-get install hping.
Untuk instalasi secara manual, program Hping dapat diperoleh secara gratis dengan cara mendownloadnya pada situs www.hping.org. Nama file yang didapatkan adalah hping3-20051105.tar.gz. File dalam bentuk ini tidak dapat  langsung diinstall, untuk dapat menginstalnya file ini harus diekstrak terlebih dahulu.
root@kurnia:~# gunzip hping3-20051105.tar.gz
root@kurnia:~# tar -xvf hping3-20051105.tar
Setelah diekstrak melalui perintah di atas, semua file biasanya diletakkan pada folder dan sudah dapat diakses. Untuk menginstall program Hping, harus diketikkan perintah berikut pada folder hasil ekstraksi.
root@kurnia:~/hping3-20051105# ./configure
root@kurnia:~/hping3-20051105# make
root@kurnia:~/hping3-20051105# make install
Apabila tidak bermasalah maka program hping sudah dapat dijalankan.

2.    Instalasi Hping3 di Windows
Program hping untuk windows dapat diperoleh secara gratis dengan cara mendownloadnya pada situs http://www.hping.org/download.php (win32). Perbedaan cara instalasi Hping pada windows kita diharuskan menjalankan di command prompt dan membutuhkan instalasi tambahan berupa winpcap yang dapat didownload di http://www.winpcap.org/. Kemudian copy-kan hping ke drive C:\ (atau dimanapun kita dapat mengakses dari command prompt secara cepat), kemudian jalankan dengan command line:
Start->Run->command
c:\hping x.x.x.x (ip address)

C.      Cara kerja aplikasi Hping3 pada sistem operasi Linux
1.    Scanning Host
Dengan menscan port taget host, kita dapat mengetahui port-port yang terbuka
pada target host. Untuk dapat menscan port target host, kita kirim paket TCP dengan
flag SYN ke target host yang ingin discan portnya. Apabila port target membalas
dengan flag SA maka port tersebut terbuka sedangakan apabila port target membalas
dengan flag RA maka port tersebut tertutup. Berikut ini adalah contoh dari port
scanning :
root@kurnia:~# hping3 202.169.225.2 -S -p ++20
HPING 202.169.225.2 (ppp0 202.169.225.2): S set, 40 headers + 0 data bytes
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=20 flags=RA seq=0 win=0 rtt=581.5 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=21 flags=RA seq=1 win=0 rtt=149.1 ms
len=44 ip=202.169.225.2 ttl=55 DF id=0 sport=22 flags=SA seq=2 win=5840 rtt=117.5 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=23 flags=RA seq=3 win=0 rtt=212.3 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=24 flags=RA seq=4 win=0 rtt=232.2 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=26 flags=RA seq=6 win=0 rtt=311.4 ms

Port yang terbuka dari hasil scan di atas adalah port 22 untuk layanan server  SSH.
root@kurnia:~# hping3 202.169.225.2 -S -p ++75
HPING 202.169.225.2 (ppp0 202.169.225.2): S set, 40 headers + 0 data bytes
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=75 flags=RA seq=0 win=0 rtt=200.2 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=76 flags=RA seq=1 win=0 rtt=157.4 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=77 flags=RA seq=2 win=0 rtt=156.5 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=78 flags=RA seq=3 win=0 rtt=138.9 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=79 flags=RA seq=4 win=0 rtt=189.0 ms
len=44 ip=202.169.225.2 ttl=55 DF id=0 sport=80 flags=SA seq=5 win=5840 rtt=243.7 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=81 flags=RA seq=6 win=0 rtt=205.3 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=82 flags=RA seq=7 win=0 rtt=178.6 ms
len=40 ip=202.169.225.2 ttl=55 DF id=0 sport=83 flags=RA seq=8 win=0 rtt=216.8 ms

Port yang terbuka dari hasil scan di atas adalah port 80 untuk layanan server  web.

2.    Inverse Mapping
Inverse mapping dilakukan untuk mengetahui host yang aktif atau tidak. Cara untuk melakukan Inverse mapping adalah mengirimkan paket TCP dengan mengeset flag reset. Apabila tidak didapatkan respon maka dapat disimpulkan bahwa host tersebut aktif, tetapi apabila mendapat respon “ICMP host unreachable” maka dapat disimpulkan bahwa IP address tujuan tidaklah digunakan. Berikut ini adalah contoh dari inverse mapping.
root@kurnia:~# hping3 202.169.225.2 -R
HPING 202.169.225.2 (ppp0 202.169.225.2): R set, 40 headers + 0 data bytes
^C
--- 202.169.225.2 hping statistic ---
4 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
Dari contoh di atas dapat disimpulkan bahwa host dengan IP 202.169.225.2 dalam keadaan aktif.

3.    Traceroute
Salah satu fitur menarik dari Hping3 adalah bahwa user dapat menghasilkan laporan traceroute dengan menggunakan protokol apapun. Sebagai contoh, misalkan user ingin menentukan dengan tepat apa yang terjadi pada setiap hop dari traceroute. Untuk melakukan ini, user dapat menentukan penggunaan sebuah paket TCP SYN. Opsi T memungkinkan user untuk mengaktifkan fungsi traceroute Hping3. Jika user hanya ingin mengeluarkan perintah traceroute cukup dengan menggunakan UDP. Output-nya menunjukkan bagaimana setiap router memproses paket UDP. Yang digunakan adalah protokol UDP karena sebagian router modern telah memblokir paket ICMP.

root@kurnia:~# hping3 --udp 202.169.225.2 -T
HPING 202.169.225.2 (ppp0 202.169.225.2): udp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.20.30.37 name=UNKNOWN  
hop=1 hoprtt=163.7 ms
hop=2 TTL 0 during transit from ip=10.20.161.2 name=UNKNOWN  
hop=2 hoprtt=236.0 ms
hop=3 TTL 0 during transit from ip=10.20.161.37 name=UNKNOWN  
hop=3 hoprtt=77.4 ms
hop=4 TTL 0 during transit from ip=202.70.56.49 name=UNKNOWN  
hop=4 hoprtt=55.5 ms
hop=5 TTL 0 during transit from ip=202.70.56.17 name=UNKNOWN  
hop=5 hoprtt=75.4 ms
hop=6 TTL 0 during transit from ip=202.43.177.141 name=ip-177-141.moratelindo.co.id
hop=6 hoprtt=87.0 ms
hop=7 TTL 0 during transit from ip=218.100.36.2 name=UNKNOWN  
hop=7 hoprtt=100.1 ms
hop=8 TTL 0 during transit from ip=218.100.27.18 name=sims.openixp.net
hop=8 hoprtt=91.7 ms
hop=9 TTL 0 during transit from ip=103.28.74.153 name=jogjamedianet.iix.net.id
hop=9 hoprtt=93.2 ms
hop=10 TTL 0 during transit from ip=202.169.224.11 name=outgoing.jmn.net.id
hop=10 hoprtt=144.7 ms
hop=11 TTL 0 during transit from ip=202.169.224.48 name=uBR7246VXR.jogjamedianet.com
hop=11 hoprtt=103.0 ms

Untuk menganalisis satu hop tertentu dari suatu rute, kita dapat menggunakan perintah berikut ini.
root@kurnia:~# hping3 -S 103.28.74.153 -p 80 -T --ttl 5 --tr-keep-ttl -n
Perintah di atas digunakan berbasis paket TCP ke host target, namun kemudian hanya melaporkan hop kelima. Keluaran perintah di atas dapat membantu user menentukan dengan tepat dan bagaimana router tertentu melakukan perubahan paket dalam perjalanan.

4.    Perimeter Testing
Perimeter testing dimanfaatkan untuk menguji apakah suatu firewall memblokir atau menerima suatu layanan tertentu. Oleh karena itu, agar penyerang tidak diketahui oleh host sasaran, perlu ditambahkan fitur spoofing. Fitur spoofing bertujuan untuk memalsukan IP penyerang yang terdeteksi oleh sasaran.
root@kurnia:~# hping3 -a 10.10.10.10 -S 202.169.225.2 -s 50 -p 80 -c 4

Perintah di atas dimanfaatkan untuk memeriksa apakah layanan pada port 80 sasaran aktif ataukah tidak. Penyerang melakukan spoofing dengan mengidentifikasikan dirinya sebagai host dengan IP 10.10.10.10 dan serangan dilakukan dari port 50. Paket yang dikirimkan sebanyak 4 paket data SYN.

5.    Packets with Signatures
Fitur data payload dapat diterapkan dengan menambahkan parameter “listen” pada Hping. Berikut ini adalah contoh penyalahgunaan layanan UDP.
[root@localhost root]# cat /root/signature.sig
""BUFFER OVERFLOW""
[root@localhost rules]# hping3 --udp -p 7 192.168.10.33 -d 50 -E /root/signature.sig
HPING 192.168.10.33 (eth0 192.168.10.33): udp mode set, 28 headers + 50
data bytes
len=78 ip=192.168.10.33 seq=0 ttl=128 id=24842 rtt=4.9 ms
len=78 ip=192.168.10.33 seq=1 ttl=128 id=24844 rtt=1.6 ms
len=78 ip=192.168.10.33 seq=2 ttl=128 id=24846 rtt=1.0 ms
--- 192.168.10.33 hping statistic ---
3 packets tramitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.0/2.5/4.9 ms
[root@localhost root]# tcpdump -i eth0 -nX proto 17
tcpdump: listening on eth0
16:56:20.955167 192.168.10.44.1581 > 192.168.10.33.echo: udp 50
0x0000          4500 004e 1220 0000 4011 d2e1 c0a8 0a2c   E..N....@......,
0x0010          c0a8 0a21 062d 0007 003a db41 2222 4255  ...!.-...:.A""BU
0x0020          4646 4552 204f 5645 5246 4c4f 5722 220a   FFER.OVERFLOW"".
0x0030          0a00 0000 0000 0000 0000 0000 0000 0000 ................
0x0040          0000 0000 0000 0000 0000 0000 0000                      ..............
16:56:20.960147 192.168.10.33.echo > 192.168.10.44.1581: udp 50
0x0000          4500 004e 5ec0 0000 8011 4641 c0a8 0a21   E..N^.....FA...!
0x0010          c0a8 0a2c 0007 062d 003a db41 2222 4255  ...,...-.:.A""BU
0x0020          4646 4552 204f 5645 5246 4c4f 5722 220a   FFER.OVERFLOW"".
0x0030          0a00 0000 0000 0000 0000 0000 0000 0000 ................
0x0040          0000 0000 0000 0000 0000 0000 0000                      ..............
16:56:21.955161 192.168.10.44.1582 > 192.168.10.33.echo: udp 50
0x0000          4500 004e ba1b 0000 4011 2ae6 c0a8 0a2c   E..N....@.*....,
0x0010          c0a8 0a21 062e 0007 003a db40 2222 4255  ...!.....:.@""BU
0x0020          4646 4552 204f 5645 5246 4c4f 5722 220a   FFER.OVERFLOW"".
0x0030          0a00 0000 0000 0000 0000 0000 0000 0000 ................
0x0040          0000 0000 0000 0000 0000 0000 0000                      ..............
16:56:21.960070 192.168.10.33.echo > 192.168.10.44.1582: udp 50
0x0000          4500 004e 5ec3 0000 8011 463e c0a8 0a21   E..N^.....F>...!
0x0010          c0a8 0a2c 0007 062e 003a db40 2222 4255   ...,.....:.@""BU
0x0020          4646 4552 204f 5645 5246 4c4f 5722 220a   FFER.OVERFLOW"".
0x0030          0a00 0000 0000 0000 0000 0000 0000 0000 ................
0x0040          0000 0000 0000 0000 0000 0000 0000                      ..............
4 packets received by filter
0 packets dropped by kernel
 
6.        Simulating Attacks
Tipe serangan yang dapat dilakukan atau disimulasikan melalui Hping3 adalah Denial of Service (DoS). Salah satu serangan yang dapat digunakan adalah LAND (Local Area Network Denial). Dalam LAND attack, penyerang yang bertindak sebagai client akan mengirimkan sebuah paket SYN yang telah direkayasa melalui teknik spoofing ke server yang menjadi target serangan. Paket tersebut berisi alamat asal dan nomor port asal yang sama persis dengan alamat dan nomor port tujuan. Hal ini menyebabkan infinite loop karena host sebenarnya mengirimkan paket SYN/ACK ke dirinya sendiri. Host akan menjadi sibuk dengan paket-paket yang datang secara bertubi-tubi dan banyak. Dengan demikian, client yang benar-benar sedang memanfaatkan host menjadi tidak dapat dilayani karena mesin sedang sibuk melayani paket-paket serangan tersebut. Oleh karena itu, DoS tipe LAND attack sering disebut dengan SYN FLOOD.
Hping3 dapat digunakan untuk mensimulasikan tipe serangan ini. Misalkan, kita ingin menguji sistem dengan alamat IP 202.169.225.2 yang memiliki port 80 terbuka. Perintah yang dapat dilakukan adalah sebagai berikut.

hping3 -S 202.169.225.2 -p 80 -a 202.169.225.2 -s 80 --flood -k

Kelemahan Hping3
  • Memerlukan pemahaman yang baik dari pengguna tentang command line terminal
  • Untuk Hping versi 3 ini hanya tersedia dalam bentuk source code saja, sehingga belum kompatibel bagi sistem operasi berbasis windows atau selain unix
  • Tidak tersedia antarmuka berbasis GUI, murni konsol saja
Kelebihan Hping3
  • Tidak hanya berfungsi sebagai ping saja, tetapi juga dapat dimanfaatkan untuk pengecekan kondisi komputer dan port-portnya
  • Paket yang dikirimkan dapat berupa TCP, UDP, atau ICMP
  • Aplikasi ini berukuran kecil sehingga ringan dijalankan
Referensi:
Setiawan, Thomas. 2004. Analisis Keamanan Jaringan Internet Menggunakan Hping, Nmap, Nessus, dan Ethereal. Bandung: Departemen Teknik Elektro Fakultas Teknologi Industri ITB
Bogaerts, Philippe. 2003. Hping Tutorial. http://www.radarhack.com
Stanger, James. 2009. Security Testing with Hping At The Hop. At the hop (Issue 99): page 38-41.

Tidak ada komentar:

Posting Komentar