つい最近の事ですが、Dionaeaを植えて、欲しいデータが取れなかったお(・∀・)などと供述しておりましたが、Dionaeaのそもそもの目的というかターゲットが違っていたようなので、それは当然のことだったらしい。
目には目を、WebにはWebのハニーポットであるGlastopfなるものがあるようなので、今回はGlastopfをインストールしましょうとなっと。
公式ウェブを見るとマニュアルのあるOSは色々とあるようですが、Debianを選択します。
http://glastopf.org/
最近Debianなマイブーム。
準備するのがめんどうだったので、ディレクトリに入っていたDebianをVirtualBoxで作ったんですが、ISOイメージが古かったようで色々とする必要がありました。
まずはaptのListを更新。
http://www.debian.or.jp/using/mirror.html
W: 以下の鍵 ID に対して利用可能な公開鍵がありません: ********
上のエラーが出て、apt-get Updateができない模様。
GPGキーをゲットする必要があるらしい。
gpg --keyserver pgp.mit.edu --recv-keys 7638D0442B90D010 gpg --armor --export 7638D0442B90D010 | apt-key add - gpg --keyserver pgp.mit.edu --recv-keys CBF8D6FD518E17E1 gpg --armor --export CBF8D6FD518E17E1 | apt-key add - apt-get update apt-get upgrade reboot
結局、通常の3倍くらいは時間がかかってしまうので、よけいにめんどうな事になってしまいました。
急がば回れってことですね。
最初から新しいISOイメージをDLして用意した方が良いです。
反面教師ってやつです。
7のLatestになると思っていたら、8(Jessie)まで上がっていました。
root@debian-glas:~# cat /etc/debian_version 8.1
ま、いいかと。そのまま進めることにします。backportとやらを追加する必要があるようで
Jessie用のURLをググって調べて入れました。
tail /etc/apt/sources.list # Backports repository deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
ではここからは公式の通りに進めていきます。
apt-get update apt-get install python python-openssl python-gevent libevent-dev python-dev build-essential make apt-get install python-argparse python-chardet python-requests python-sqlalchemy python-lxml apt-get install python-beautifulsoup mongodb python-pip python-dev python-setuptools apt-get install g++ git php5 php5-dev liblapack-dev gfortran apt-get install libxml2-dev libxslt-dev apt-get install libmysqlclient-dev pip install --upgrade distribute cd /opt git clone git://github.com/glastopf/BFR.git cd BFR phpize ./configure --enable-bfr make && make install Build complete. Don't forget to run 'make test'. Installing shared extensions: /usr/lib/php5/20131226/
最後のパスは違ってくるのでメモ。
あとでphp.iniに書き込むbfr.soのパスを確認しました。
# ls -l /usr/lib/php5/20131226/ 合計 392 -rwxr-xr-x 1 root root 44840 6月 27 02:20 bfr.so 〜略 /etc/php5/apache2/php.ini /etc/php5/cli/php.ini zend_extension = /usr/lib/php5/20131226/bfr.so
このパスをPHP.INIへ書き込みませる。
続いてはインストールですが、2通りの方法があるようで
pip install glastopf
もしくは
cd /opt git clone https://github.com/glastopf/glastopf.git git clone https://github.com/client9/libinjection.git git clone https://github.com/glastopf/pylibinjection.git cd glastopf python setup.py install
となるのですが、参考サイトのままだと以下のURLの問題にぶつかります。
どっちにしろあかんかった(訳:ダメだったんだよね)。
Can’t install glastopf on Ubuntu 14.04: NameError: name 'sys_platform' is not defined
#200
が、既に解決策もでてますので、落ち着いてサクっと実行します。
目標をセンターに入れて、カチャカチャターン!
cd /opt wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz tar zxvf distribute-0.6.49.tar.gz cd distribute-0.6.49/ rm -rf /usr/local/lib/python2.7/dist-packages/distribute-0.7.3-py2.7.egg-info/ rm -rf /usr/local/lib/python2.7/dist-packages/setuptools* python setup.py install
ディレクトリを移動して、再度installすると上手くいくはず。
cd ../glastopf/ python setup.py install
ではでは立ち上げてみます!!
root@debian-glas:/opt/myhoneypot# glastopf-runner 2015-06-27 02:55:58,313 (glastopf.glastopf) Initializing Glastopf 3.1.3-dev using "/opt/myhoneypot" as work directory. 2015-06-27 02:55:58,626 (glastopf.glastopf) Connecting to main database with: sqlite:///db/glastopf.db 2015-06-27 02:55:58,777 (glastopf.modules.handlers.emulators.dork_list.dork_page_generator) Bootstrapping dork database. 2015-06-27 02:56:02,216 (glastopf.modules.handlers.emulators.dork_list.database_sqla) Done with insert of 5096 dorks into the database. 2015-06-27 02:56:02,217 (glastopf.glastopf) Generating initial dork pages - this can take a while. socket.error: [Errno 98] Address already in use: ('0.0.0.0', 80)
おーまいがー!!orz
へっへっへ、ここは通さねえぜと。Apache。
root@debian-glas:/opt/myhoneypot# /etc/init.d/apache2 stop [ ok ] Stopping web server: apache2.
と、小ネタを挟みつつ、再度実行。
どうやら待ち受け状態となったようです。
root@debian-glas:/opt/myhoneypot# glastopf-runner 2015-06-27 02:57:53,054 (glastopf.glastopf) Initializing Glastopf 3.1.3-dev using "/opt/myhoneypot" as work directory. 2015-06-27 02:57:53,102 (glastopf.glastopf) Connecting to main database with: sqlite:///db/glastopf.db 2015-06-27 02:57:53,175 (pyhpfeeds) connecting to hpfriends.honeycloud.net:20000 2015-06-27 02:57:53,178 (glastopf.glastopf) Glastopf started and privileges dropped.
対象のローカルIPにアクセスしてみますと、驚愕の事実が!!
どんなものが出たかは秘密にするので、ぜひ自分で試してみてください。
ログはこんな感じで取得できるようです。
2015-06-27 02:58:42,166 (glastopf.glastopf) 192.168.24.56 requested GET / on debian-glas:80 2015-06-27 02:58:42,370 (glastopf.glastopf) 192.168.24.56 requested GET /style.css on debian-glas:80 2015-06-27 02:58:42,431 (glastopf.modules.handlers.emulators.dork_list.database_sqla) Done with insert of 1 dorks into the database. 2015-06-27 02:58:42,559 (glastopf.glastopf) 192.168.24.56 requested GET /favicon.ico on debian-glas:80
たとえばバックスラッシュを含むような攻撃っぽいアクセスをすると
'wsgi.errors':', mode 'w' at 0x7f14477a11e0>, 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)} failed with UnicodeEncodeError
と、こんな情報やUserAgentだったりがズラズラとログに残るようです。
ChromeのプラグインAdvanced REST clientをつかってDeleteを送ってみると、ちゃんとDeleteが来たということが分かります。
'REQUEST_METHOD': 'DELETE', 'wsgi.errors':', mode 'w' at 0x7f14477a11e0>, 'wsgi.input': , 'wsgi.multiprocess': False, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)} failed with HTTPError
LogをCatしても確認できますが、詳細なことはDBの方が良いですかな。せっかくですし。
Sqliteの分析をするためのセットアップをしましょうか。
# apt-get install sqlite3 python-pysqlite2
インストールしておいて何ですが、Firefoxのプラグイン「SQliteManager」で簡単な解析は可能ですんで、これを使ってもいいかな?と。
Glastopfをどんどん使っているうちに、だんだんとこういうデータ欲しいなって思ってくると思うので、その辺のところまで辿り着いてからプログラミングしてもいいし。と思います。
それでも遅くはないはずです。遠回りでも特別な道って感じで。
簡易のものなので、大した解析はできませんすぃ。
では。