Open NTP を突っついてみたよ

Open NTP Server の Reflection&AMPが猛威を振るっているらしいのでちょこっと調べてみた。

ソースはこの辺り

【下準備】
・お手持ちのパッケージ(Ver 4.2.6系)

【下拵え】

  • /etc/ntp.conf に restrict default を追加

【検証開始】
対象サーバ

  • service ntpd restart で ntpd設定 を反映させる

攻撃元クライアント

  • ここからnseファイルを別マシンに取得する
  • 次の呪文を唱える

nmap -sU -pU:123 -Pn -n 対象サーバアドレス –script=ntp-monlist.nse


Starting Nmap 6.25 ( http://nmap.org ) at 2014-01-15 00:36 JST
Nmap scan report for 157.7.152.124
Host is up.
PORT STATE SERVICE
123/udp open|filtered ntp
| ntp-monlist:
| Target is synchronised with 2400:8500:1301:1052:a157:7:154:23f
| Alternative Target Interfaces:
| 2400:8500:1301:1051:a157:7:152:124f
| Public Servers (4)
| 50.31.240.56 180.235.230.254 219.123.70.91
| 2400:8500:1301:1052:a157:7:154:23f
| Public Clients (1)
|_ 攻撃元アドレス

  • テキトーなアドレスを埋め込むには次の呪文を唱える事で出来るのでは無かろうか?
  • nmap -sU -pU:123 -Pn -n 対象サーバアドレス –script=ntp-monlist.nse -e eth0 詐称先アドレス

【パケット状態】

  • tcpdump でキャプチャしてみると


nakacya:~ nakatomi$ sudo tcpdump -i en0 udp port 123
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
23:40:40.864832 IP 192.168.253.104.50481 > aaa.bbb.ccc.ddd.ntp: NTPv2, Reserved, length 192
23:40:40.873221 IP aaa..ccc..ntpbbbddd > 192.168.253.104.50481: NTPv2, Reserved, length 440
↑これが最大600行分送られてくる

【結果】
上記のような方法で monlist の中身を増やす事で最大600アドレスを monlist として追加し、アドレス詐称を行なって本来の攻撃先にパケットを大量送信する事が出来てしまう訳だな。

  • 知らない子とはお話しない
  • 分からない設定を施さない
  • restrict設定は default ignore の後に自分本来の設定を追加する事
  • /etc/ntp.conf に “ignore monlist”設定を追加する
  • NW機器は L3 ACL で防御

【後片付け】
対象サーバ

  • /etc/ntp.conf に restrict default を restrict default ignore に変更
  • /etc/ntp.conf に “ignore monlist” を追加する
  • service ntpd restart で ntpd設定 を反映させる

※ 2014/01/17 微修正