ログをdiscordに吐くbot作った
やったこと
WOWHoneypotのログを定期的に知らせてくれるbotを作成した
以前、slackにログを吐くbotの記事を見たことがある気がしたのだが、自分はdiscordを多く使うのでこっちを選んだ
環境
- Ubuntu18.04
- Python3
詳細
Pythonは最近学習を初めたばかりなのでコードが汚いのは勘弁...
使用する場合は自己責任でお願いします
使い方
pip install discord.py python core.py
core.pyにtokenと cogs/log.py にWOWHoneypotのログファイルのパスを記入してください
コマンドの説明
!log [Y-m-d | all]
ログを出力する
Y-m-dの形式で日付指定、allで全て出力
引数を指定しないと実行時の日付のログを出力
!tmstart
毎時00分になった時に1時間前のログを表示する機能を有効にする
!tmstop
!tmstartで有効にした機能を無効にする
!bhelp
!helpより詳細な説明を表示する
感想
最近Pythonの学習を本格的に初めた
"Python初心者"を脱出し、今よりもPythonの理解度が上がったら一度コードを書き直してみようと思った
あとgitむずかしい
ハニーポットを植えた+α
前回の記事ではハニーポットを構築し、ハンティングルールをとりあえず設定した
一つだけでは足りない気もしたのでアクセスが多そうなコンテンツをいくつか追加してみた
phpinfo.phpを追加
mrrules.xmlに条件を追記
<mrr> <meta> <mrrid>10001</mmrid> <enable>True</enable> <note>phpinfo</note> </meta> <trigger> <uri>phpinfo</uri> </trigger> <response> <status>200</status> <header> <name>Server</name> <value>Apache</value> </header> <header> <name>X-Powerd-By</name> <value>PHP/[任意のバージョン]</value> </header> <header> <name>Content-Type</name> <value>text/html; charset=UTF-8</value> </header> <body filename="phpinfo.html"></body> <!-- ↑wowhoneypotではphpを使用できないので、別ファイルに保存したphpinfoの結果を返すようにする --> </response> </mrr>
phpinfo.htmlを作成する
$curl http://localhost/phpinfo.php > phpinfo.html
外部に露見したらまずそうなところを改変したり、mrrules.xmlで指定したバージョンと合わせておいたほうがいいかも?
WP-loginを追加
同じくmrrules.xml
<mrr> <meta> <mrrid>10002</mmrid> <enable>True</enable> <note>wp-login</note> </meta> <trigger> <uri>wp-login</uri> </trigger> <response> <status>200</status> <header> <name>Server</name> <value>Apache</value> </header> <header> <name>X-Powerd-By</name> <value>PHP/[任意のバージョン phpinfoのと合わせる]</value> </header> <header> <name>Cache-Control</name> <value>no-cache, must-revalidate, max-age=0</value> </header> <header> <name>Set-Cookie</name> <value>wordpress_test_cookie=WP+Cookie+check; pass=/wordpress</value> </header> <header> <name>X-Frame-Optiom</name> <value>SAMEORIGIN</value> </header> <header> <name>Content-Type</name> <value>text/html; charset=UTF-8</value> </header> <body filename="wp-login.html"></body> </response> </mrr>
WP-login.htmlを作成
$curl http://localhost/wp-login.php > wp-login.html
WOWHoneypotを植えた
やったこと
かなり前にWOWHoneypotをCentOSに植えた
環境
- CentOS7.6
- Python3
インストール
特に何も躓くことなく完了
$cd /opt $git clone https://github.com/morihisa/WOWHoneypot.git WOWHoneypot $cd WOWHoneypot $sudo firewall-cmd --add-port=80/tcp --zone=public --permanent $sudo firewall-cmd --add-forward-port:port=80:proto=tcp:toport=8080 --zone=public --permanent $sudo firewall-cmd --reload
アクセスルールの追加
アクセスしてきたときのURLによってコンテンツを変えられる機能がある
$vim art/mrrules.xml
これを編集することでルールを設定できる
とりあえず攻撃が多いであろうphpMyAdminのルールを設定した
デフォルトでルールが用意されているが、簡易的なものなのでこれを無効化
96行目
<enable>True</enable> ↓ <enable>False</enable>
新しくルールを追加
以下のブログを参考にさせていただいた
graneed.hatenablog.com
ハンティング機能の設定
有効にすると、送られてきたリクエストに特定の文字列が含まれている場合に 通常のログとは別に保存してくれる
vim config.txt
29行目
hunt_enable=False ↓ hunt_enable=True
これで機能を有効化できた
vim art/huntrules.txt
このファイルにルールを記載する
正規表現が使用可能
自分は以下を追加した
- echo
- download
- java
- exec
- cmd
- syscmd
本体を起動する
$python wowhoneypot.py
無事起動することを確認
ログはlogフォルダ内に保存される
感想(?)
とても構築が簡単
製作者様が日本人ということもあり、readmeを読んだだけでもすぐ構築できる
ハニポ初心者が始めるならば、cowrieよりもこちらのほうが良さげだと思った