DebianにWebハニーポットのGlastopfをインストールしてみます

つい最近の事ですが、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をどんどん使っているうちに、だんだんとこういうデータ欲しいなって思ってくると思うので、その辺のところまで辿り着いてからプログラミングしてもいいし。と思います。
それでも遅くはないはずです。遠回りでも特別な道って感じで。
簡易のものなので、大した解析はできませんすぃ。
では。

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です