俺、ハニーポッターになります その1 -WOWHoneypotを構築してみた-
やったこと
ハニーポットを構築して出てくるログを観測してみました.
使用するハニーポット
morihi-socさんのWOWHoneypotを使用してみます.
構築
dockerで作ります.
Dockerfile
FROM debian:jessie-slim RUN groupadd -g 1000 wow && \ useradd -g 1000 -d /wow -m -g wow wow RUN apt-get update && \ apt-get install -y git python3 RUN su - wow -c "git clone https://github.com/morihisa/WOWHoneypot.git /wow/wowhoneypot" USER wow WORKDIR /wow/wowhoneypot CMD [ "/usr/bin/python3", "/wow/wowhoneypot/wowhoneypot.py"]
docker-compose.yml
version: "2.0" services: wow: build: . restart: always ports: - "80:8080" volumes: - "./log:/wow/wowhoneypot/log"
80番ポートを開けて起動
docker-compose up -d
観測
とりあえずkibanaを利用してログを見てみます. 日別のグラフです.
24日間で合計15992件のアクセスがありました. ただしその殆どが2月11日〜12日と17日に集中していることがわかります.今回は手始めに大量に出ているログの原因を探ります.
11-12日に観測されたログは以下のようになっていました.ログは一部隠してます.
{ "uri_version": "HTTP/1.1", "status": "401", "timestamp": "2018-02-12T11:59:56+0900", "mrrid": "1032", "id": "2018-02-12T11:59:56+0900-2760", "src_ip": "***.***.***.***", "header": { "Host": "***.***.***.***", "Content-Type": " application/x-www-form-urlencoded", "Authorization": " Basic cm9vdDpwYSQkdzByZDE=" }, "dst_port": "80", "path": "/manager/html", "dst_ip": ""***.***.***.***, "method": "GET", "geoip_country": "HK", "geoip_city": null }
このような/manager/html
へのアクセスが8000件近くありました.Authorization
ヘッダをデコードすると
Basic root:pa$$w0rd1
となっていました.Tomcatの管理マネージャのログインページ(Basic認証)にブルートフォースしているようです.
次に17日のログをみてみます.
{ "status": "200", "uri_version": "HTTP/1.1", "timestamp": "2018-02-17T13:40:00+0900", "mrrid": "1011", "id": "2018-02-17T13:40:00+0900-2245", "src_ip": "***.***.***.***", "header": { "Content-Length": " 119", "Cookie2": " $Version=\"1\"", "Accept-Language": " pt-br", "Host": "***.***.***.***", "Accept": " */*", "User-Agent": " Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv", "Connection": " Close, TE", "Cookie": " wordpress_test_cookie=WP+Cookie+check", "Pragma": " no-cache", "TE": " deflate,gzip;q=0.3", "Content-Type": " application/x-www-form-urlencoded" }, "dst_port": "80", "dst_ip": "***.***.***.***", "path": "/blog//wp-login.php", "post": "log=webmaster&pwd=madison&wp-submit=Login&redirect_to=http%3A%2F%2F***.***.***.***%2F/blog/%2Fwp-admin%2F&testcookie=1\r\n", "method": "POST", "geoip_country": "NL", "geoip_city": "Amsterdam" }
パスは//wp-login.php
,/blog//wp-login.php
,/wordpress//wp-login.php
,/wp//wp-login.php
が約1500件ずつあり,POSTのデータに様々なユーザ名とパスワードを入れてアクセスしていました.
こちらはwordpressの管理マネージャのログインページにブルートフォースをかけているようです.
これらはマッチ&レスポンスのルールに設定されています.ルールのIDはmrrid
フィールドの値です.
今回の場合11-12日に観測されたリクエストのmrridは1032(Tomcat manager),17日に観測されたリクエストのmrridは1011(WordPress login page)となっていました.
mrrid1011のルールを見てみます.ルールはart/mrrules.xml
に記載されています.
<mrr> <meta> <mrrid>1011</mrrid> <enable>True</enable> <note>WordPress login page</note> </meta> <trigger> <uri>/wp-login.php</uri> </trigger> <response> <status>200</status> <header> <name>Set-Cookie</name> <value><![CDATA[wordpress_test_cookie=WP+Cookie+check; path=/]]></value> </header> <body filename="wp-login.html"></body> </response> </mrr>
ざっくりと見た感じ<trigger>
にかかれていたルールにマッチした時に,<response>
に書かれている内容で返すようです.
この場合だとURIに/wp-login.php
が含まれている時に予め用意されていたwp-login.html
を返すようです.
この設定により攻撃者が気持ち良くブルートフォースできるということですね.
まとめ
今回はWOWHoneypotを構築し,ログを簡単に見てみました. 他のWebハニーポットは触ったことないのですが,少なくともWOWHoneypotは起動も簡単で,とても使いやすいハニーポットだと感じました. 今後は他のログの解析なども行っていきたいです.