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:\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
Stanger, James. 2009. Security
Testing with Hping At The Hop. At the hop (Issue 99): page 38-41.
Tidak ada komentar:
Posting Komentar