2018年10月8日月曜日

Honeypotのログ確認ツールを作ったりした


WOWHoneypot導入から一日足らずですが、そこそこにアクセスはやってきますね。ログは/log/access_logに入っていますし、アクセス先を見るだけでも十分面白いのですが、ヘッダのbase64デコードがいちいち面倒なので、ツールを作ってみることにしました。

- そこそこに見やすいデザインを、何も考えずに作りたい
    ->jQueryとかBootstrapだとかを使ってWebページっぽくしたい
- ハニーポット稼働サーバをWebサーバにしたくない
    ->80番はWOWに与えている&変なポートを空けておきたくない
-DBとか導入するのは混乱しそうなので先にしたい

という残念な仕様を満たした結果「手動でaccess_log、Cowrie.jsonをハニーポットサーバから取ってきてローカルで稼働してるXAMPP環境に放り込む」になりました。ログを読み込んで切り分ける部分も何もかもPHPに任せる形にしたので、手抜き感がすごい。











こういった感じです。

- WOWのログ
 access_logは一行単位なので、各要素を空白で区切り、base64の要素はデコードし、URL部分とリクエストすべてを表示する部分は「サニタイジングをした上で」表示させる形にしました。うっかりデコードした中にあるスクリプトが動いたら怖いので、その辺りは注意が必要になります。本当はダブルクォーテーションやら「[」「]」の処理もしなければならないのですが、PHPにごねられたので本日は諦めました。





 なお作りながらログの確認をしていたのですが「POST /[数文字].php」が結構ありました。ボディに怪しいmd5()があったので、既に不審なファイルが置いてあるかを確認していたりするのかなと思いつつ。

 - Cowrieのログ
 こちらはjson形式で纏まっている方を元に作成しました。eventid毎でjsonに含まれる要素は異なるので、一括で扱うのであれば注意が必要です。私は「cowrie.login.success」「cowrie.command.input」のeventidだけ追いたかったので、その辺りを分岐させつつ後はWOWの方と同じです。


 - とりあえずこれで色々確認できるように
なったと言えばなったのですが、あまりに手動要素が多いのとログの並び替えはしたいとか、可能なら勝手に国別に統計取って欲しいみたいなのがあるので、様子見しつつ改修していきたいと思います。

- ソースとか
もう少し綺麗にしてからどこかに投げます、あまりにもお粗末すぎるので…