あまり紹介されないツール紹介BackTrack編(5)hping3   no comments

Posted at 5:11 pm in computer,internet,Security

雨が降ったり暑かったりいろいろ天気の方がコロコロ変わって面倒ですが、相も変わらず自宅警備作業と猫の世話に日夜大忙しの山本です。こんにちは。

今日は突然ですがBackTrackをいじってたらhpingがあったので、あまり紹介され廷内かどうかはともかく今さらながら備忘録代わりに使い方をメモしてみることにします。どこかにがっつりとした説明があるのかもしれませんがそんなことは知りません。なお、BackTrackにはhping2とhping3が収録されているのですが、違いはよくわかってません。その程度ですので過度の期待はもちろん禁物ですよ。

で、このhpingですが、好きなIPパケットを作成することができるツールです。
基本的には上に乗っかってるTCP/UDP/ICMPパケットを作成するのですが、IPパケットを1から作成することができるみたいなのでプロトコルを自分で書いてやれば任意のプロトコルのパケットを作成することができるような気がします。

とりあえずざっくり使ってみましょう。

何もオプションを付けてない場合TCPのパケットが送出されることになります。-SはSYNフラグを立てる、-pはポート、-cはパケットの数をそれぞれ表しています。flagがRAなので残念ながらWebサーバは動いてないようです。

root@bt:~# hping3 -c 4 -S -p 80 192.168.0.17
HPING 192.168.0.17 (eth0 192.168.0.17): S set, 40 headers + 0 data bytes
len=46 ip=192.168.0.17 ttl=64 id=8042 sport=80 flags=RA seq=0 win=0 rtt=0.5 ms
len=46 ip=192.168.0.17 ttl=64 id=8043 sport=80 flags=RA seq=1 win=0 rtt=0.5 ms
len=46 ip=192.168.0.17 ttl=64 id=8044 sport=80 flags=RA seq=2 win=0 rtt=0.5 ms
len=46 ip=192.168.0.17 ttl=64 id=8045 sport=80 flags=RA seq=3 win=0 rtt=0.5 ms

次にオプションを–udpにしてUDPのパケットを送ることにします。ポートが開いてない場合はICMP Port Unreachableが返ってきます。

root@bt:~# hping3 --udp -c 4 -p 10000 192.168.0.17
HPING 192.168.0.17 (eth0 192.168.0.17): udp mode set, 28 headers + 0 data bytes
ICMP Port Unreachable from ip=192.168.0.17 name=UNKNOWN
ICMP Port Unreachable from ip=192.168.0.17 name=UNKNOWN
ICMP Port Unreachable from ip=192.168.0.17 name=UNKNOWN
ICMP Port Unreachable from ip=192.168.0.17 name=UNKNOWN

次はICMPのパケットをランダムなアドレスからたくさん打ち込んでみることにします。いわゆるDoSです。今どきこんなものじゃ落ちるわけもありませんが、サーバーと量によります。DDoSって怖いですね。送信元IPアドレスがランダムなのでこちらには返事は返ってきません。

root@bt:~# hping --icmp --rand-source -c 1000000 --fast 192.168.0.17
using eth0, addr: 192.168.0.8, MTU: 1500
HPING 192.168.0.17 (eth0 192.168.0.17): icmp mode set, 28 headers + 0 data bytes

そして–scanを使うとポートスキャナみたいな感じでスキャンしてくれるようです。意外と便利ですね。

root@bt:~# hping --scan 1-1024 -S 192.168.0.19
Scanning 192.168.0.19 (192.168.0.19), port 1-1024
1024 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+
|port| serv name |  flags  |ttl| id  | win |
+----+-----------+---------+---+-----+-----+
53 domain     : .S..A... 128 19366 16616
88 kerberos   : .S..A... 128 28326 16616
135 loc-srv    : .S..A... 128 40614 16616
139 netbios-ssn: .S..A... 128 41638 16616
389 ldap       : .S..A... 128 40103 16616
445 microsoft-d: .S..A... 128 54439 16616
464 kpasswd    : .S..A... 128 59303 16616
593            : .S..A... 128 27048 16616
636 ldaps      : .S..A... 128 38056 16616
All replies received. Done.
Not responding ports:

最後にlistenモードで使ってみましょう。任意のポートで待ち受け可能です。–listenの後ろに文字列を設定することで送られてきたデータがその文字列にヒットしたときにそれ以下の文字列を表示することができるようです。

root@bt:~# hping3 --listen test -p 80 localhost

で待ち受けて、他のターミナルから

root@bt:~# hping3 -p 80 --sign test -d 100 --file /etc/passwd localhost


のようにしてパケットを打つことで、ファイルが送信されて表示されます。なんだか楽しいですね。

Written by bogus on 5月 25th, 2009

Tagged with