nanka iroiro

wakaran

俺、ハニーポッターになります その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を利用してログを見てみます. 日別のグラフです.

f:id:waaai_tanoshiiiii:20180225215920p:plain

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は起動も簡単で,とても使いやすいハニーポットだと感じました. 今後は他のログの解析なども行っていきたいです.