Hping Volume-I

hping.jpg

Hping Nedir?

Hping, istenilen türde TCP/IP paketleri oluşturmak için kullanılan harikulade bir araçtır. Oluşturulacak paketlerde tüm alanları kendimize özgü belirlenebilmesi, dinleme modu ile hostlara arası dosya transferi ve komut çalıştırma özelliği(Truva ati?), IDS/IPS testleri için özel veri alanı belirtilebilmesi(ids imzalarinin testi) gibi ileri düzey özelliklere sahiptir.

Hping’i tüm özellikleri ile efektif kullanabilmek , çıktılarını yorumlamak için orta düzey TCP/IP bilgisi gerekir.
Nasıl Edinebilirim?

Hping Linux/UNIX/Windows sistemler üzerinde sorunsuzca kullanılabilir ve kullanım için herhangi bir ücret istenmemektedir.

Hping.org adresinden indireceğiniz kaynak kodları sisteminizde derleyerek hping’î kullanmaya başlayabilirsiniz. Aynı sitede Windows sistemler için hazır kurulum paketleri de bulunmaktadır.

Temel Hping Kullanımı

Hping kullanarak ilk paketimizi gönderelim.

# hping -S 192.168.1.1
HPING 192.168.1.1 (eth0 192.168.1.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.1.1 ttl=255 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=2.5 ms
len=46 ip=192.168.1.1 ttl=255 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.9 ms

— 192.168.1.1 hping statistic —
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.9/1.7/2.5 ms

Hping tarafından oluşturulan paket detayı

# tcpdump -i eth0 -ttttnn tcp and host 192.168.1.1

2007-07-05 19:44:30.096849 IP 192.168.1.4.2244 > 192.168.1.1.0: S 2019758107:2019758107(0) win 512
2007-07-05 19:44:30.097393 IP 192.168.1.1.0 > 192.168.1.4.2244: R 0:0(0) ack 2019758108 win 0
default olarak hping icmp yerine TCP paketlerini kullanır. Boş(herhangi bir bayrak set edilmemiş) bir tcp paketini hedef sistemin 0 portuna gönderir. Biz örneğimizde –S parametresi ile SYN paketi göndermesini sağlamış olduk.

-c parametresi ile kullanılmazsa hping durdurulana kadar(CTRL^c) paket göndermeye devam eder, –c ile kaç adet paket göndereceği belirtilir.

RST Bayraklı TCP paketleri oluşturmak

# hping -R -c 3 192.168.1.1
HPING 192.168.1.1 (eth0 192.168.1.1): R set, 40 headers + 0 data bytes

— 192.168.1.1 hping statistic —
3 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Benzer şekilde –R yerine diğer TCP bayrak tipleri konularak istenilen türde TCP paketi oluşturulabilir.

Port Belirtimi

-p parametresi kullanılarak hedef sisteme gönderilen paketlerin hangi porta gideceği belirtilir. Default olarak bu değer 0 dır.

-s parametresi ile kaynak TCP portu değiştirilebilir, öntanımlı olarak bu değer rastgele atanır.

Örnek;

1000/TCP portuna RST, FIN, PUSH ve SYN bayrakları set edilmiş paket gönderimi

# hping -RFSP -c 3 192.168.1.1 -p 1000
HPING 192.168.1.1 (eth0 192.168.1.1): RSFP set, 40 headers + 0 data bytes

— 192.168.1.1 hping statistic —
3 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
Hedef sisteme gelen paketler tcpdump ile izlenecek olursa gönderdiğimiz paketleri aynen görürüz.

# tcpdump -i eth0 -ttttnn tcp port 1000 and host 192.168.1.1

2007-07-05 19:54:19.670625 IP 192.168.1.4.2740 > 192.168.1.1.1000: SFRP 508587781:508587781(0) win 512
2007-07-05 19:54:20.674001 IP 192.168.1.4.2741 > 192.168.1.1.1000: SFRP 440757720:440757720(0) win 512
2007-07-05 19:54:21.679141 IP 192.168.1.4.2742 > 192.168.1.1.1000: SFRP 190960265:190960265(0) win 512

Hping taramalarının IDS’ler tarafından yakalanması.

Biraz önce hping’in hedef sistemin 0. portuna null tcp paketi gönderdiğini söylemiştik, saldırgan hping’i default değerlerle kullanıyorsa bu bilgiler ışığına ids sistemimizde bunu imza olarak tanıtarak(muhtemelen tanımlıdır) hping taramalarını yakalayabiliriz.

ICMP Paketleri Oluşturmak

Hping öntanımlı olarak TCP paketlleri oluşturur, başka tür paketler(udp, icmp) istenirse komut satırından –icmp ,–udp şeklinde belirtilmelidir.

Klasik ping paketi(icmp echo request) oluşturmak

# hping --icmp 192.168.1.1 -c 1
HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 0 data bytes
len=46 ip=192.168.1.1 ttl=255 id=25683 icmp_seq=0 rtt=2.6 ms

— 192.168.1.1 hping statistic —
1 packets tramitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 2.6/2.6/2.6 ms

ICMP paketlerinde TCP ve UDP’deki gibi port değeri yoktur, bunlara benzer olarak icmp type ve icmp code değerleri vardır. Bir ICMP paketinin ne işe yaradığı bu değerlerle belirlenir. Bazı icmp type değerleri ek olarak icmp code değerine de sahiptir.

Mesela
İcmp type 3 mesajı Destination Unreachable

Manasına gelmektedir fakat hedef ulaşılamaz mesajı da farklı anlamlar içerebilir işte burada icmp code değeri devreye girerek hangi kodun aslında ne manaya geldiğini söyler.

0 Net Unreachable
1 Host Unreachable
2 Protocol Unreachable
3 Port Unreachable
4 Fragmentation Needed and Don’t Fragment was Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
9 Communication with Destination Network is
Administratively Prohibited
10 Communication with Destination Host is
Administratively Prohibited
11 Destination Network Unreachable for Type of Service
12 Destination Host Unreachable for Type of Service
13 Communication Administratively Prohibited [RFC 1812]
14 Host Precedence Violation [RFC 1812]
15 Precedence cutoff in effect [RFC 1812]

Örnek:

# hping --udp 192.168.1.1 -p 9000 -n -c 1
HPING 192.168.1.1 (eth0 192.168.1.1): udp mode set, 28 headers + 0 data bytes
ICMP Port Unreachable from ip=192.168.1.1

# tcpdump -i eth0 -ttttnn udp or icmp and host 192.168.1.1

2007-07-05 20:15:49.368744 IP 192.168.1.4.2548 > 192.168.1.1.9000: UDP, length 0
2007-07-05 20:15:49.369452 IP 192.168.1.1 > 192.168.1.4: ICMP 192.168.1.1 udp port 9000 unreachable, length 36

Tcpdump çıktısından görüleceği gibi hedef sistemde açık olmayan bir porta gönderilen pakete ICMP port unreachable cevabı dönüyor.

*Wireshark kullanarak daha detaylı çıktı alabiliriz.

This entry was posted in Network Security, Network Tools. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

three + nine =