注意事項
他者の端末に対して本ツールを無許可で使用する行為は法律に抵触する可能性があります。管理者から許可を得た端末や自身の端末に対して使用してください。
概要
Nmap(Network Mapper)は、ターゲット端末上で実行されているソフトウェアの名称、バージョン、使用しているポートなどを特定することができるオープンソースのコマンドラインツールです。1997年のリリースから継続的に開発が進められており、歴史が長くサイバーセキュリティ業界では著名なツールです。
NmapはサイバーキルチェーンやMITRE ATT&CKにおける偵察での利用が効果的です。そのため、ペネトレーションテストを行う解析者や攻撃者などが使用します。
Nmapは以下のコマンドにより実行することができます。
nmap <スキャンタイプ> <オプション> <ターゲット>
スキャンタイプ、オプションは豊富に用意されており、用途に合わせてさまざまなスキャンを実行することができます(参考資料:リファレンスガイド、チートシートなど)。
ペネトレーションテストにおける利用方法
前述したとおり、Nmapは偵察での利用が効果的です。そして、偵察で得られた情報から戦略を立て、ペネトレーションテストを実施し、最終的に顧客へ報告を行います。
以下では、用意したターゲット端末に対してNmapによるスキャンを実行し、戦略を立てていく様子を紹介します。
①ポートスキャン
ターゲット端末が外部に公開しているサービスを特定することは、戦略を立てる上で重要な情報になります。その情報を得る方法の1つにポートスキャンがあります。
Nmapではスキャンタイプとオプションを指定しない場合、ターゲット端末に対してTCP SYNパケットを送付するポートスキャンを実行します。
用意したターゲット端末(192.168.1.1)に対して実行したポートスキャンの結果は下図のとおりです。
本スキャンにより、80番、135番、139番、445番ポートが開放されていることがわかりました。この結果から、開放ポートからの侵入を試みる戦略を立てることができます。
②開放ポートで実行されているソフトウェアとバージョンの特定
ターゲット端末が開放している各々のポートに対して、実行するソフトウェアを特定することができると戦略がより立てやすくなります。
Nmapの-sVオプションを用いた場合、各々のポートで実行されているソフトウェアの名称とそのバージョンを特定することができます。
用意したターゲット端末(192.168.1.1)に対して、スキャンを実行した結果は下図のとおりです。
以降では80番ポートに着目します。本スキャンにより、80番ポートではWebサーバーのNginxが実行していることがわかりました。実際にWebブラウザーを用いてターゲット端末にアクセスすることで、Webサーバーの実行を確認することができます。
加えて、本スキャン結果により80番ポートで実行されているNginxのバージョンが1.20.0であることもわかります。Nginx 1.20.0は最新のバージョンではなく、脆弱性(CVE-2021-23017など)が存在するため、対策が推奨されます。
このようにして、顧客に報告するべき内容を見つけることができました。また、これらの結果から、存在する脆弱性に対するエクスプロイトを用意することで、侵入を試みる戦略を立てることができます。
③OSの特定
ターゲット端末のOSも戦略を立てる上で重要な情報になります。
Nmapの-Oオプションを用いた場合、ターゲット端末のOSを特定することができます。なお、-Oオプションを用いるためには、スーパーユーザー権限が必要になります。 用意したターゲット端末(192.168.1.1)に対して、スキャンを実行した結果は下図のとおりです。
本スキャンにより、ターゲット端末のOSはWindows 10のVersion 1709–1909のいずれかであることがわかりました。Windows 10 Version 1709–1909は既にサポートが終了しており、さまざまな脆弱性が存在します。
このようにして、顧客に報告するべき内容をさらに見つけることができました。また、この結果から、OSに存在する脆弱性に対してエクスプロイトを用意することで、侵入を試みる戦略を立てることができます。加えて、②で特定したNginxに存在する脆弱性に対してエクスプロイトを用意する際にも、特定したOSの情報を考慮することで、悪用可能性を高められることが期待できます。