hping2を使ってゴミペイロードをDNSサーバへ投げつける

良い子は他人のサイトにこれやっちゃダメです。自分の環境内での実験に とどめてください。

状況説明

実験で自分のDNSサーバに壊れたパケットを投げる必要が出たので とりあえず hping で実現したという覚書。

hping は rawIP/ICMP/UDP/TCP のパケットを作って送り出すツール。 scanもできるがそれならnmapのほうが話が早そう。開発版がリリース前に停止したらしき hping3 もあるが今日の用途なら hping2 でも多分変わらない。:

$ pkg search hping
hping-2.0.0r3_2,1              Network auditing tool
hping-devel-3.0.20051105_2     Network auditing tool

# pkg install hping

で、コマンドラインとしてはこれ。

# hping -2 -p 53 -c 10  -d 100 -E /dev/random <hostname>

オプション/引数とその意味は次の通り。

  • -2 : (rawIP/ICMP/TCPではなくて)UDP
  • -p 53 : 宛先ポート番号
  • -c 10 : 繰り返し回数。省略すると毎秒1発繰り返し
  • -d 100 : 100Byteのペイロードを付加する。
  • -E /dev/random : 上の -d がある時にこのファイルから読んでペイロードとする。
  • <hostname> : 宛先ホスト名(IPも可)

これで、UDPのパケットを <hostname>:53 へ投げつけて、UDP的ペイロードとしては /dev/random から 100 Byte を読みだして付加し、毎秒1回づつ10回繰り返す、という動作になるはず。

まーUDPパケットではあるけれども、DNS的パケットとしてはかなり壊れているようにみえるはず。

備考

  • 2016/Apr/26 ごろ書いた。