WOWHoneypotで追加設定した項目を以下に記載します。
Firewallで全TCPポートを8080へリダイレクト
morihi-socさんが公開している構築方法では、80/tcp宛へのHTTP通信を8080/tcpへリダイレクトするだけです。
昨今、IoT系の攻撃が多いとのことなので、80/tcp以外のポートも検知したい。
そこで、構築手順にある設定を少し変更することで全ポートを8080/tcpへリダイレクトさせます。
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
-A PREROUTING -p tcp --dport 1:65535 -j REDIRECT --to-port 8080
応答ヘッダ追加
CMS等は特定のHTTPヘッダを返しますので、攻撃者は特定ヘッダを確認してから攻撃してる可能性があります。
例えば、ShodanはこのHTTPヘッダを確認してシステムを識別しています。
そこで逆手をとって、wowhoneypot.pyの120行目あたりに偽装したい追加のHTTPヘッダを追加します。
例えば、以下の行を追加します。
システムのHTTPヘッダを確認して追加することで、良い感じに攻撃を収穫できるのではないかなー。
・self.send_header('Server', 'Microsoft-IIS/6.0')
・self.send_header('X-Powered-By', 'PHP/5.6.30')
defaultのHTMLを変更
「応答ヘッダ追加」で書いたこととほとんど同じです。
ShodanはHTTPヘッダを確認してシステムを識別していますが、もちろんソースコードも確認してシステムを識別しています。
偽装したいシステムのソースを一部ひっぱり、HTMLに追加しました。
mrrules_local.xmlに30個程追加
攻撃を受けるための記述はmrrules.xmlに記載されているが、攻撃を受けた時の成功応答に関する記述がなかったので、自家焙煎することにしました。
攻撃の内容を見ると、実害系のwgetしてファイル取得することや、脆弱有無系のwhoamiを実行させたりすることが多い気がします。
そこで、URIまたはボディにwhoamiがあった場合「root」と返してあげるようにした。
他に来そうな脆弱有無系のコマンドを同じように作成しました。
<mrr>
<meta>
<mrrid>20009</mrrid>
<enable>True</enable>
<note>whoami(GET)</note>
</meta>
<trigger>
<method>GET</method>
<uri>whoami</uri>
</trigger>
<response>
<status>200</status>
<body filename="whoami.txt"></body>
</response>
</mrr>
<mrr>
<meta>
<mrrid>20010</mrrid>
<enable>True</enable>
<note>whoami(POST)</note>
</meta>
<trigger>
<method>POST</method>
<body>whoami</body>
</trigger>
<response>
<status>200</status>
<body filename="whoami.txt"></body>
</response>
</mrr>
最後に
WOWHoneypotの田植えと収穫に関する内容は多いけど、WOWHoneypotの育成があまり見受けられなかった。
mrrules_local.xmlがもう少し充実してきたら、公開、、、できたらいいな。