検索
連載

攻撃者側から見た侵入前の事前調査(下見)不正侵入の手口と対策(1)(2/2 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

バナーチェックを行う

 対象サーバで実行中のサービスに対してコマンドを実行し、その応答メッセージ(バナー)からソフトウェアの種類やバージョンを推測する。これにより、対象サーバ上のどの個所が脆弱なのかを知ることができる。

 バナー情報を調べるには、先に説明したdig(DNS)やtelnet(DNS以外のほか全般)といったコマンドを用いるとよい。以下は、前述の検出した待機ポートに対してバナーチェックを行った結果である。

 コラム 〜 telnetバナーチェックのコツ 〜

telnetでポートにアクセスした際に何の応答もなかった場合は、[Enter]キーを何度か押したり、適当な文字列を入力してみるとよい。場合によっては何らかの応答メッセージを得られるかもしれない。


 もちろん不正な文字列などを入力した場合は、不審な痕跡としてサーバ側のログに残ったり、IDSで検知される可能性がある。

22/tcp(SSH)

 22/tcpは通常であればSSHサービスだろう。telnetでアクセスしてみる。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 バナー情報からOpenSSHバージョン3.1p1を使用していることが分かる。[Enter]キーを押すとSSHコネクションが切断される。

25/tcp(SMTP)

 25/tcpは通常であればSMTPサービスだろう。telnetでアクセスしてみる。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 バナー情報からSendmailバージョン8.11.6を使用していることが分かる。また、SendmailのようなSMTPソフトウェアの中には、上記のようにHELPコマンドを実行することで、ソフトウェアのバージョン情報を知ることができる場合もある。なお、quitコマンドの実行はSMTPコネクションの終了を意味する。

53/tcp、53/udp(DNS)

 53/tcp、53/udpは通常であればDNSサービスだろう。DNSの場合はdigコマンドを使用する。対象DNSソフトウェアがBINDであれば、bindゾーンのCHAOSクラスにversionを問い合わせると、BINDのバージョンが返ってくる場合がある。ただし、この手法が有効なのは、BINDバージョン

4.9.5以上からだ。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 バナー情報の「ANSWER SECTION」からBIND 9.2.0を使用していると推測できる。

80/tcp(http)

 80/tcpは通常であればHTTPサービスだろう。telnetコマンドでアクセスしてみる。telnetによるHTTPコネクション確立後、「HEAD/HTTP/1.0[Enter][Enter]」を実行する。ヘッダ入力の終わりを示すために[Enter]キーを2回押すことが重要。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 HTTPサーバの場合、Server:にバージョン情報が含まれる。この対象サーバはApache1.3.23 を使用しており、mod_ssl2.8.7、OpenSSL0.9.6b、DAV1.0.3、PHP4.1.2、mod_perl1.26といったソフトウェア(モジュール)も併用しているようだ。また、使用しているOSはRed Hat Linuxであることも読み取れる。

443/tcp(https)

 443/tcpは、通常であればSSL(TLS)で暗号化された通信を行うHTTPサービス(HTTPS)だろう。この場合、OpenSSL付属のopensslコマンドを使うとよい。opensslによりHTTPSコネクションを確立した後は、通常のHTTPサーバと同様のコマンド(HEAD/HTTP/1.0[Enter][Enter])を実行すればよい。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 以上のバナーチェックの結果を踏まえると、対象サーバの構成は以下のとおりとなる。

  • 攻撃対象サーバの構成(3)
    • IPアドレス:192.168.0.10(ns.example.co.jp)
    • 推測OS:Red Hat Linux
    • サービス構成:
待機ポート サービス名 使用ソフトウェア
22/tcp ssh OpenSSH_3.1p1
25/tcp smtp Sendmail 8.11.6
53/tcp domain BIND 9.2.0
80/tcp http Apache/1.3.23(mod_ssl/2.8.7、OpenSSL/0.9.6b、 DAV/1.0.3、PHP/4.1.2、mod_perl/1.26)
443/tcp https Apache/1.3.23(mod_ssl/2.8.7、OpenSSL/0.9.6b、DAV/1.0.3、PHP/4.1.2、mod_perl/1.26)

そのほか

 今回は行わなかったが、まれにBINDのような特殊な問い合わせ方法でしかバナーを得られない場合もある。その一例を以下に示す。

111/tcp、111/udp(sunrpc)

 111/tcp、111/udpがオープンしていた場合、rpcinfoコマンドを使用してRPC情報を得ることが可能だ。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 111/tcp、111/udpでportmapperが、32768/tcp、32768/udpでstatus(NFSなどで用いらるファイル状態監視)が動作していることが分かる。なお、programに表示されている内容は、RPC番号(/etc/rpcファイル参照)を意味している。

161/udp(SNMP)

161/udpがオープンしていた場合は、net-snmp(旧:ucd-snmp)に付属するsnmpwalkコマンドを実行してSNMP MIB情報を入手するとよい。MIBには、対象サーバのシステム情報など有用な情報が含まれている。

  • 実行コマンドの書式

バージョン5.xの場合

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

バージョン4.xの場合

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記より、対象サーバはLinux Kernel 2.4.18-3を使用していることが分かる。

2049/tcp、2049/udp(NFS)

 2049/tcp、2049/udpがオープンしていた場合、showmountコマンドを使用してNFSのエクスポート情報を得ることが可能だ。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記は、192.168.0.10上の/homeディレクトリを、192.168.0.0/24に対してNFSエクスポート(NFSマウント許可)している。

5680/tcp(Canna)

 5680/tcpがオープンしていた場合は、Cannaサービス(日本語仮名漢字変換システム)が起動している可能性が高い。その場合は、Cannaソフトウェア付属のcannastatコマンドを使用してCannaのバージョン情報を調べる。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Cannaバージョン3.5を使用していることが分かる。

そのほかの情報収集

1.エラーメッセージから入手

 一般的に予想される以外のコマンドを実行するとサーバから何らかのエラーメッセージが返ってくる場合があるが、そのエラーメッセージの中には、攻撃者に役立つ情報が隠されていることもある。

存在しないWebページ

 対象のWebサーバが出力するエラーメッセージから、Webサーバの種類やバージョン情報を知ることができる。例えばApacheの場合、ページの行末(フッタ)にWebサーバの種類を示すシグネチャが出力される場合がある。その例を画面1に示す。

画面1 Apache: ServerSignature Onの場合
画面1 Apache: ServerSignature Onの場合

エラーメールのヘッダ

 バナーからメールサーバのバージョンを読み取れなかった場合は、対象メールサーバに対して、存在しないと思われるメールアドレスあてにメールを送信してみるとよい。ほとんどの場合がメールサーバから送信者あてにエラーメールが返信されるだろう。そして、そのエラーメールのヘッダのReceived: には、メールサーバで使用しているソフトウェア名やバージョン情報、さらにはどういった経路でそのメールが配送されたのかを特定することもできる。

 以下の例は、192.168.0.10に対して存在しないあて先[email protected]にメールを送った結果、返信されたエラーメールに記述されたReceived:ヘッダの一部である。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

※上記 Received:の意味
Received: from 送信元ホスト
by 受信ホスト(使用ソフトウェアの種類) with プロトコル(SMTP|ESMTP)
id 一意のキューID;
メッセージの受信日時

 上記のReceived:ヘッダから読み取れるのは、ns.example.co.jp(192.168.0.10)が 8.11.6(おそらくはSendmail)のMTA(Mail Tranfer Agent)を使用しているということだ。また、ns.example.co.jpにexample.co.jpあてのメールを送ると、いったん内部のpop.example.co.jp(10.0.16.2)に送られるようだ(*2)。

*2 一番下に記述されているReceived:行が、送信元に最も近いMTA(MUA)が残した記録で、逆に一番上に記述されているReceived:行が、宛先に最も近いMTA(MUA)が残した記録となる。

2.OS の推測

 対象サーバが使用するOSをより正確に特定する方法として、対象サーバのTCP/IPにおける通信の振舞の違いにより判断するという手法がある。この手法を用いたツールとしては、ポートスキャンツールのNmapがお勧めだ(*3)。


※注 NmapによるOS推測は、IDSに検知される可能性がある。

  • 実行コマンドの書式

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

※注 Nmapを実行する前に、対象サーバに対してpingコマンドを実行し応答があるかどうかを確認すること。もし、応答がない場合は、-P0オプション(pingなしモード)の指定が必要。

  • コマンドの実行例と結果

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 192.168.0.10はLinux Kernel 2.4.0-2.5.20であると推測した。実際のバージョンも 2.4.18-3 であることから、どうやら推測は当たっているようだ。

 以上、攻撃者が行うであろう事前調査の手法をいくつか紹介した。今回入手できたた内容をまとめると、対象サーバのサービス構成は、最終的に以下のとおりであると推測される。

  • 攻撃対象サーバの構成(4)
    • IPアドレス:192.168.0.10 (ns.example.co.jp)
    • 推測OS:Red Hat Linux (Linux Kernel 2.4.0 - 2.5.20)
    • サービス構成:
待機ポート サービス名 使用ソフトウェア
22/tcp ssh OpenSSH_3.1p1
25/tcp smtp Sendmail 8.11.6
53/tcp domain BIND 9.2.0
80/tcp http Apache/1.3.23(mod_ssl/2.8.7、OpenSSL/0.9.6b、DAV/1.0.3、PHP/4.1.2、mod_perl/1.26)
443/tcp https Apache/1.3.23(mod_ssl/2.8.7、OpenSSL/0.9.6b、DAV/1.0.3、PHP/4.1.2、mod_perl/1.26)

 今回は、攻撃者側から見た「事前調査」を解説した。次回は、攻撃者が利用できる情報をいかにして与えないようにするかといった対策法を紹介する。

筆者紹介

三井物産株式会社GTIプロジェクトセンタ

主に、不正アクセス監視サービス、セキュリティ検査、セキュリティポリシー策定支援などのサービス提供している。また、セキュリティに関する教育サービスも実施中。

木村 靖(きむら やすし)

セキュリティコンサルタントとして、不正アクセス監視やセキュリティ検査 などに従事している。金融機関、官公庁、大手製造業などへのセキュリティシ ステムの導入、セキュリティ検査などの実績を持つ。



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |