ロー・インタラクションのハニーポットとはいえ、この動作には当然土台となるOSが必要である。nepenthesは「Linux系」「BSD系」「Mac OS X」「Windows(要Cygwin)」とさまざまなOSで動作することが可能となっている。
今回は、Red Hatとも互換性の高い「CentOS」の5.2 FINALを用いる。OSのインストールについては、詳細な記事がインターネット上に存在するため今回は割愛させていただき、nepenthesに関する部分のみを取り上げさせていただく。
OSのインストール完了後、nepenthes本体のインストールに入る前に、各種モジュールの準備などが必要となる。nepenthesのREADMEによると、動作に必要とされる、モジュールは以下のとおりであるが、これ以外にtftpコマンドが必要となる。
【nepenthesの動作に必要とされるモジュール】
ほとんどのモジュールは、yum(Yellow Dog Updater Modified)コマンドを用いることでインストールできるが、インストールの前に現在のシステムに必要なモジュールがインストールされているかどうかの確認を行うことをお勧めする。インストールされているかどうかを確認するには、それぞれ以下のように実行するとよい(libadnsについては、yumではなく、ソースからインストールする必要があるためインストール方法は別途紹介する)。
# rpm -qa | grep tftp # rpm -qa | grep curl # rpm -qa | grep pcre # rpm -qa | grep pcap
上記コマンドそれぞれを実行後、何も結果が表示されない場合は、そのモジュールはインストールされていないということである。以下は、筆者が作成した環境でのインストール確認ログである。
# rpm -qa |grep tftp # rpm -qa |grep curl curl-7.15.5-2.el5 # rpm -qa |grep pcre pcre-6.6-1.1 # rpm -qa |grep pcap libpcap-0.9.4-11.el5 # rpm -qa | grep ^file- file-4.17-9.0.1.el5
上記結果から、「tftp」がシステム内にインストールされていないことが分かる。また、nepenthesの動作には、devel版も必要となるので「curl-devel」「pcre-devel」について、別途、インストールが必要である。
上記ログにおいて、インストールされていないと判明したものに対して、yumを用いてインストールを行う。インストールの際のコマンドは下記のように実行する。
yum install <ソフトウェア、モジュール名>
例えば、tftpの場合であれば下記のようなログになる。
yum install tftp
上記の要領でインストールされていなかったモジュールのインストールを行っていただきたい。
それでは、最後のモジュール、libadnsのインストールを行う。特に気を付ける点などはなく、下記のような方法でインストール可能だ。
# wget http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz # tar zxvf adns.tar.gz # cd adns-1.2/ # ./configure # make # make install
インストールが完了したら、モジュールのロードを行うためのファイルとコマンドの実行が必要になる。まず、下記の内容を記述したファイル(ファイル名は任意)を/etc/ld.so.conf.d/以下に作成する。
/usr/local/lib
作成が完了したら、「ldconfig」を実行してモジュールのロードを行う。この作業は初回のみ必要となるので、OSの再起動などが発生しても、実行する必要はない。ファイルの作成からモジュールのロードは下記手順である(任意の名前のファイルは「nep_mod.conf」とした)。
# vi /etc/ld.so.conf.d/nep_mod.conf "/etc/ld.so.conf.d/nep_mod.conf" [New] 2L, 16C written # ldconfig
nepenthes本体のインストール準備の最後は、nepenthes起動用グループとユーザーの作成である。
# groupadd nepenthes # useradd -g nepenthes -d /dev/null -s /sbin/nologin nepenthes
それでは、nepenthes本体のインストールである。前述した環境が整っていれば以下の手順でスムーズにインストールが進むだろう。./configureの時点で何かのモジュールが存在しないといったエラーが返された場合は適宜yumなどを使用し、モジュールを追加していただきたい。
# wget http://nchc.dl.sourceforge.net/sourceforge/nepenthes/nepenthes-0.2.2.tar.gz # tar zxvf nepenthes-0.2.2.tar.gz # cd nepenthes-0.2.2 # ./configure # make # make install
上記コマンドでインストールが完了するとnepenthesは「/opt/nepenthes」以下に作成される。
これで起動の準備は整ったのだが、起動前に注意することがある。それは、nepenthesが脆弱性をエミュレートするに当たって、nepenthesが使用するポートが事前に使われているかどうかである。OSをインストールする際に、サーバ系ソフトウェア、例えばApacheなどをインストールしていて自動で起動していた場合はそちらが優先され、nepenthesがポート開放に失敗する。そのような場合は、オープンポートが競合するサービスを停止するか、ポート番号を変更すればよい。
nepenthes起動前(サーバ系ソフトウェアのSSHのみ)と起動後のnetstatの結果を掲載(LISTENステータスのみ)しておくので、事前の確認を行う参考としてほしい。
【nepenthes起動前】 # netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN udp 0 0 *:63 【nepenthes起動後】 # netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3140 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:42 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3372 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6129 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5554 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:27347 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:17300 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3127 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2103 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2105 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2745 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2107 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:220 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1023 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:1434 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* |
リスト2 nepenthesがオープンするポートの一覧 |
nepenthesがかなりの数のポートをオープンしていることが分かるだろう。nepenthes起動前と後を比較するとtcp/22番とudp/68番以外はnepenthesが脆弱性をエミュレートするために開放しているポートであるということが分かる。
それでは、nepenthesを起動しよう。
Copyright © ITmedia, Inc. All Rights Reserved.