生産性のない話

趣味の範囲でサイバーセキュリティの話

WOWHoneyhotを植えてみる

久しぶりにハニーポット関連。 morihi-soc 氏が作成した WOWHoneypot というWebハニーポットを使ってみました。

github.com

詳しい説明は以下のスライドで。

sssslide.com

Python3だけで動く極々単純な仕組みのハニーポットです。ざっくり言うと、待ち受けポートでHTTPが動いて、デフォルトではとりあえず200を返すWebサーバです。 正直初めてWebハニーポットを建てるのなら、これくらいシンプルなものでいいと思います。どうせ高機能なの入れてもデフォルトでしか動かさないだろうし……。

いつものようにDockerで動かします。 必要なのはPython3のみなので、別にそのままホスト上でやってもいいんですが、最近なんかツールを入れるときはとりあえずDockerに使うようになってきました。

こんな感じのDockerfileを作ります。

FROM ubuntu:latest

RUN apt-get update && apt-get -y upgrade
RUN apt-get -y install git python3

WORKDIR /root
RUN git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot
WORKDIR /root/wowhoneypot
CMD ["python3", "wowhoneypot.py"]

で、ビルドします。

docker build -t wowhoneypot .

で、立ち上げます。

docker run -it -v /home/blue/wowhoneypot/log:/root/wowhoneypot/log -p 80:8080 -d --name wowhp wowhoneypot

ポートは80番に接続し、コンテナ内のログ用のディレクトリを共有にしています。

1か月ほど動かしてみた

期間

2017年12月24日 ~ 2018年1月26日

アクセス数

全アクセス : 2149

ユニークなソースIP : 290

1つのIPからの最多アクセス回数 : 287

観測した攻撃の例

S2-045を狙った攻撃は色々なところから色々なコマンドを実行しようとしょっちゅう来ています。 D-Link製のルーターを狙った攻撃では、「cd /var/tmp && echo -ne \x00\xA0\xAF\x21\x20 >> drop && echo OK」というようなコマンド実行が大量にあり、おそらくバイナリファイルを直接echoで書き出そうとしているようでした。 Shellshockも一度来ると複数のURLパスに大量に同じコマンド実行を試みる攻撃があり、アクセス数がかなり増えました。 phpmyadmin脆弱性を狙った攻撃もかなり頻繁にあり、特にZmEuというツールを利用したスキャン(参考)がかなり多いです。

後は意味は分からないですが、/直下へのPOSTで謎のBase64で符号化されたデータを送ってくるリクエストが900件以上ありました(参考)。

それ以外には、Ruby on Railsを狙った攻撃や、魔法少女アパッチマギカTomcatの管理画面へのログイン試行、新年の挨拶なんかを観測できました。

WebLogicを狙う攻撃を観測してみたい

植えてからしばらくして、WebLogic脆弱性(CVE-2017-10271)のPoCが公開され、実際の攻撃に利用されだしました。前回の記事 でも書きましたし、WOWHoneypotでも観測できたようです。

ハニーポット観察記録(38)「WebLogic の WLS Security に対するコマンド実行の試み(CVE-2017-10271)」 at www.morihi-soc.net

ということで、うちでも観測してみたいなーと思い、記事では7001番ポート(WebLogicのデフォルトポート)に攻撃が来ていたので、こちらでも7001番ポートで待ち受けてみました。

docker run -it -v /home/blue/wowhoneypot/log_7001:/root/wowhoneypot/log -p 7001:8080 -d --name wowhp_7001 wowhoneypot

Dockerで立ち上げるポートを付け替えているだけです。 結果として、2017年12月28日 ~ 2018年1月26日の期間で42のアクセスがありました。

内CVE-2017-10271を狙った攻撃は全部で6つのIPから24件ありました。「/wls-wsat/CoordinatorPortType」へのPOSTですが、それとは別に、調査目的のGETリクエストも4つのIPから5件ありました。PoCによっては最初にGETしてWebLogicのコンテンツであるかを確認するようなものもあったので、そうした攻撃前の調査通信と思われます。

攻撃の内容はpingコマンドで攻撃の成功を確認するものや、wgetでファイルをダウンロードするもの、また、touchコマンドで「/tmp」配下にファイルを作成するものなどがありました(touchでファイルを作成したところで何がしたいのか不明ですが……)。

WebLogicの攻撃は事前にHTTPヘッダでWebLogicを利用していることを調べたり、GETでコンテンツがあるかを確認してから攻撃が来るパターンもあるようなので、ちゃんと観測しようとすると、その辺の調整は必要ですね。

(ちなみに、CVE-2017-10271を狙った攻撃を観測するようのルールはすでにあるようなので、アップデートすれば観測できそうです。)

今回は以上です。 漠然とハニーポットを立てて攻撃を観測するのもいいですが、何か特定の脆弱性を狙った攻撃を観測したいとなった場合はある程度カスタマイズは必要ですね。 WOWHoneypotでもルールにマッチした場合に応答を変えるような機能もありますし、単純なものなら、それだけで事足りそうです。 もしくは、WOWHoneypotを参考にして、自分で作ってもいいかなと思いました。ソースコードはそれほど複雑でもないので。

後はログの分析の方法を考える必要がありますね。同じ攻撃ばっかり見ててもつまらないので……。