2016年3月21日月曜日

hping3について、そして VS カーネル4.4

当サイトへhping3の使い方を探してくる方がいらっしゃるようなので、少しだけ紹介いたします。
[ 注意 ]
閉じたローカルの範囲でテスト的に行う以外は、本サンプルを用いて実際に特定のサーバーへ実施するのは攻撃とみなされる場合があるため(サイトの遠隔からのセキュリティチェックも実施される場合は、サイト管理者、サーバー管理者の同意を得るなど、予め合意している必要があるため)、悪意ある目的での使用は避けてください。


 #hping3 -c 10000 -d 120 -SF -w 64 -p 80 --flood --rand-source XXX.YYY.ZZZ

-c 10000 : パケットを10000回送信
-d 120 : 送信パケットサイズ
-SF : SYN+FINパケットのみ送信
-w 64 : TCP ウインドウサイズ
-p 80 : 対象はポート80
--flood : Flood モード
--rand-source : 送信元のIPをランダムに偽装
XXX.YYY.ZZZ : ターゲット・ホストまたはIPアドレスでもOK

いわゆるDDosとなりますが、昨今のマシンは、1台からこのようなものを送られても痛くも痒くもありません。我が家で使用している特にカーネル4.4系では、1秒間に350万のSYN攻撃に耐えるように作られており、この記事を書いているLinux Mint 17.3のカーネル4.4.6上では、Kali Linuxからの上記パケットには、全く影響がでず、サクサクです。
もっとも、今どきのOSはこの程度では全く影響しないでしょう。
とはいえ、大量のボットから一斉攻撃を喰らうと、サービスの稼働が低下します。

その他
-v --versionの表示
-c --count パケットカウント
-i --interval (マイクロ秒のインターバル 例  -i U1000 1000マイクロ秒の間隔)
--fast : -i u10000 =1秒間 10パケット (-i U1000の別名)
--faster : -i u1000 =1秒間 100パケット
できるだけ速くパケットを送信
--flood : 返信を表示しない
-I --interfaceインタフェース名(それ以外の場合は、デフォルトルーティングインターフェイス)
-V --verbose 冗長モード

一応、以下上記を含む全てのオプションを載せておきます。

usage: hping3 host [options]
-h --help show this help
-v --version show version
-c --count packet count
-i --interval wait (uX for X microseconds, for example -i u1000)
--fast alias for -i u10000 (10 packets for second)
--faster alias for -i u1000 (100 packets for second)
--flood sent packets as fast as possible. Don't show replies.
-n --numeric numeric output
-q --quiet quiet
-I --interface interface name (otherwise default routing interface)
-V --verbose verbose mode
-D --debug debugging info
-z --bind bind ctrl+z to ttl (default to dst port)
-Z --unbind unbind ctrl+z
--beep beep for every matching packet received
Mode
default mode TCP
-0 --rawip RAW IP mode
-1 --icmp ICMP mode
-2 --udp UDP mode
-8 --scan SCAN mode.
Example: hping --scan 1-30,70-90 -S www.target.host
-9 --listen listen mode
IP
-a --spoof spoof source address
--rand-dest random destionation address mode. see the man.
--rand-source random source address mode. see the man.
-t --ttl ttl (default 64)
-N --id id (default random)
-W --winid use win* id byte ordering
-r --rel relativize id field (to estimate host traffic)
-f --frag split packets in more frag. (may pass weak acl)
-x --morefrag set more fragments flag
-y --dontfrag set dont fragment flag
-g --fragoff set the fragment offset
-m --mtu set virtual mtu, implies --frag if packet size > mtu
-o --tos type of service (default 0x00), try --tos help
-G --rroute includes RECORD_ROUTE option and display the route buffer
--lsrr loose source routing and record route
--ssrr strict source routing and record route
-H --ipproto set the IP protocol field, only in RAW IP mode

ICMP
-C --icmptype icmp type (default echo request)
-K --icmpcode icmp code (default 0)
--force-icmp send all icmp types (default send only supported types)
--icmp-gw set gateway address for ICMP redirect (default 0.0.0.0)
--icmp-ts Alias for --icmp --icmptype 13 (ICMP timestamp)
--icmp-addr Alias for --icmp --icmptype 17 (ICMP address subnet mask)
--icmp-help display help for others icmp options

UDP/TCP
-s --baseport base source port (default random)
-p --destport [+][+] destination port(default 0) ctrl+z inc/dec
-k --keep keep still source port
-w --win winsize (default 64)
-O --tcpoff set fake tcp data offset (instead of tcphdrlen / 4)
-Q --seqnum shows only tcp sequence number
-b --badcksum (try to) send packets with a bad IP checksum many systems will fix the IP checksum sending the packet so you'll get bad UDP/TCP checksum instead.
-M --setseq set TCP sequence number
-L --setack set TCP ack
-F --fin set FIN flag
-S --syn set SYN flag
-R --rst set RST flag
-P --push set PUSH flag
-A --ack set ACK flag
-U --urg set URG flag
-X --xmas set X unused flag (0x40)
-Y --ymas set Y unused flag (0x80)
--tcpexitcode use last tcp->th_flags as exit code
--tcp-timestamp enable the TCP timestamp option to guess the HZ/uptime

Common
-d --data data size (default is 0)
-E --file data from file
-e --sign add 'signature'
-j --dump dump packets in hex
-J --print dump printable characters
-B --safe enable 'safe' protocol
-u --end tell you when --file reached EOF and prevent rewind
-T --traceroute traceroute mode (implies --bind and --ttl 1)
--tr-stop Exit when receive the first not ICMP in traceroute mode
--tr-keep-ttl Keep the source TTL fixed, useful to monitor just one hop
--tr-no-rtt Don't calculate/show RTT information in traceroute mode

これを色々と組み合わせると、面白いこともできますが、上記注意事項にもありますことを、注意されてください。



新品価格
¥3,240から
(2016/3/21 20:22時点)

0 件のコメント: