Nmapは、コンピューターネットワーク上のデバイスを検出および監査するために使用される人気のあるオープンソースネットワーク検出ツールです。単一のホストから大規模なコンピュータネットワークまでを迅速にスキャンして、各ホストとそのソフトウェアに関する有用な情報を提供できます。
ネットワークへの侵入者…待って、何?
毎日、スマートウォッチ、フィットネストラッカー、プリンター、スマートカメラなどのIoT製品が私たちの日常生活の一部になりつつあります。これらのデバイスの多くは、個人用または仕事用のスマートフォンと同期しています。故意であろうとなかろうと、これらのデバイスは企業ネットワークに接続している可能性があります。 Infobloxによると、組織の少なくとも半数が昨年だけこれを経験しています。
しかし、リスクは何ですか?ほとんどのIoTデバイスにはセキュリティが組み込まれておらず、多くの場合、ファームウェアとセキュリティのアップグレードが不足しています。このセキュリティの欠如は、ネットワークセキュリティを侵害しようとするサイバー犯罪者にとっての金鉱です。ただし、Nmapの検出および監査機能のおかげで、ネットワーク上の不正なホストまたはデバイス、およびネットワークで実行されているソフトウェアをすばやく検出して特定できます。いくつかのシナリオを見てみましょう。
[読者も気に入りました:ネットワークのインベントリを作成するためにクイックNMAPスキャンを実行します]
一般的なネットワーク検出
多くの場合、これらのサービスは非標準のポートでリッスンしている可能性があるため、開いているポートを知るだけでは十分ではありません。また、セキュリティの観点から、移植の背後にあるソフトウェアとバージョンを知りたいと思うでしょう。 Nmapのサービスおよびバージョン検出機能のおかげで、完全なネットワークインベントリとホストおよびデバイスの検出を実行し、デバイスまたはホストごとにすべてのポートをチェックし、それぞれの背後にあるソフトウェアを特定できます。
Nmapは、ソフトウェアが理解できる検出プローブを使用して、開いている各ポートに接続して問い合わせます。これを行うことにより、Nmapは、単に意味のない開いているポートではなく、そこにあるものの詳細な評価を提供できます。
この強力な機能を利用するには、次のことを行う必要があります。
- パラメータ
-sV
を使用してサービスとバージョンの検出を有効にする 。 - オプション
--allports
を追加します すべてのポートをスキャンします。デフォルトでは、Nmapはポート9100をチェックしません。多くのプリンターはこのポートを使用し、まれにNmapによってポートが印刷されます。 -
-T4
を使用する この検出には時間がかかる可能性があるため、実行を高速化するため。
$ nmap -sV --allports -T4 10.1.0.0/24
Nmap scan report for 10.1.0.1
Host is up (0.0038s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE VERSION
53/tcp open domain Unbound
80/tcp open http nginx
2022/tcp open ssh OpenSSH 7.5 (protocol 2.0)
5000/tcp open ssl/http-proxy HAProxy http proxy 1.3.1 or later
8443/tcp open ssl/http nginx
Service Info: Device: load balancer
Nmap scan report for 10.1.0.2
Host is up (0.82s latency).
Not shown: 992 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.3p1 Debian 1 (protocol 2.0)
80/tcp open http nginx
111/tcp open rpcbind 2-4 (RPC #100000)
443/tcp open ssl/http nginx
2049/tcp open nfs 3-4 (RPC #100003)
3260/tcp open iscsi?
6000/tcp open http aiohttp 3.6.2 (Python 3.8)
8080/tcp open http Apache httpd 2.4.46 ((Debian) mpm-itk/2.4.7-04 OpenSSL/1.1.1g)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
上記の出力から、Nmapは2つのホストを検出しました: 10.1.0.1 および10.1.0.2 。
最初のホストはロードバランサーとして検出されます。これは、pfSenseを実行しているルーターであるため非常に近いです。また、いくつかのポートが開いていて、ソフトウェアがそれぞれをリッスンしていることにも気づきました。 DNSサーバーがUnboundとして正しく検出されました。ポート80(予想される)および8443(非標準ポート)の背後にあるWebサーバーとしてのNginx。また、ポート2022が開いていて、その背後にOpenSSH7.5があります。ポート5000で、Nmapは少なくとも1.3.1のバージョンのHAProxyを検出しました。
2番目のホストはLinuxを実行し、ポート3260の背後にあるiSCSIサーバーを除いて、すべてのソフトウェアが正しく識別されました。
この情報をどうしますか?それを保存!次回ネットワークをスキャンして新しいホストとサービスを探すときと比較するためのベースラインが必要になります。検出された各ソフトウェアのセキュリティの脆弱性を確認してください。各デバイスを認識していることを確認してください!
不正なDHCPサーバー
DHCPサーバーは、すべてのネットワークの基本的なコンポーネントです。基本的に、ネットワークごとに1つのDHCPサーバーのみが存在し、ネットワークを適切に構成するために必要なすべての情報を提供する必要があります。
不正なDHCPサーバーは、通常のDHCPサーバーと同じですが、ITスタッフやネットワークスタッフによって管理されていません。これらの不正なサーバーは通常、ユーザーが故意または無意識のうちにルーターをネットワークに接続したときに表示されます。もう1つの可能性は、携帯電話、プリンター、カメラ、タブレット、スマートウォッチなどのIoTデバイスの侵害、またはITアプリケーションやリソースの侵害などのより悪いものです。
PXEはDHCPに大きく依存しているため、不正なDHCPサーバーは、特にPXEを使用してサーバーのフリートを展開しようとしている場合はイライラします。それだけでなく、セキュリティ上のリスクもあり、不正なDHCPサーバーが誤ったネットワーク設定とルートを提供する可能性があるため、ネットワークの停止が発生する可能性があります。
DHCP検出を実行するために、Nmapには broadcast-dhcp-discoverというスクリプトが含まれています 。このスクリプトは、 DE:AD:CO:DE:CA:FEのMACアドレスを使用してブロードキャストアドレスにDHCP要求を送信します 結果を報告します。
次の例では、スクリプト broadcast-dhcp-discover インターフェイスbond0で実行されます 不正なDHCPサーバーを発見します:
$ sudo nmap --script broadcast-dhcp-discover -e bond0
Starting Nmap 7.70 ( https://nmap.org ) at 2020-10-28 19:24 CDT
Pre-scan script results:
| dhcp:
| Response 1 of 2:
| Interface: bond0
| IP Offered: 10.1.0.78
| DHCP Message Type: DHCPOFFER
| Server Identifier: 10.1.0.1
| IP Address Lease Time: 5m00s
| Subnet Mask: 255.255.255.0
| Router: 10.1.0.1
| Domain Name Server: 10.1.0.1
| Domain Name: lab.opencloud.io
| Response 2 of 2:
| Interface: bond0
| IP Offered: 10.1.0.27
| DHCP Message Type: DHCPOFFER
| Server Identifier: 10.1.0.3
| IP Address Lease Time: 2m00s
| Renewal Time Value: 1m00s
| Rebinding Time Value: 1m45s
| Subnet Mask: 255.255.255.0
| Broadcast Address: 10.1.0.255
| Router: 10.1.0.3
|_ Domain Name Server: 10.1.0.3
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 10.31 seconds
上記の出力から、ネットワーク内の各DHCPサーバーからの応答に対応する2つの異なる応答を確認できます。
注目すべき最も重要なフィールドはサーバー識別子です 、これにより、潜在的な不正サーバーを含むDHCPサーバーのIPが表示されます。
この情報をどうしますか?組織のセキュリティポリシーはそれぞれ異なります。ただし、ほとんどの場合、不正なDHCPを停止して、ネットワークから削除する必要があります。
UPnPデバイス
ユニバーサルプラグアンドプレイとも呼ばれるUPnPは、任意のアプリケーションがルーターのポートを転送できるようにする複数のプロトコルのセットであり、手動のポート転送構成で多くの時間を節約します。
ただし、UPnPは危険であり、可能であれば、ネットワーク上で無効にする必要があります。悪意のあるアプリケーションを実行しているネットワーク上に不正なデバイスがあると想像してください。これらのアプリケーションは、UPnPを使用してポートを外部に転送し、悪意のある目的に使用する可能性があります。
UPnPは何度も悪用されてきました。最も顕著なケースの2つは、ミライです。 、IPカメラとホームルーターをターゲットにして、 Pinkslipbot 、感染したマシンを実際の制御サーバーのHTTPSベースのプロキシとして使用します。
残念ながら、ビデオゲームコンソールやGoogle Chromecastなどのストリーミングデバイスなど、多くの家庭用デバイスは現在UPnPを使用しています。
ネットワーク10.1.0.0/24をスキャンし、UPnPを使用してデバイスを検出するには、次のコマンドを実行してプラグイン broadcast-upnp-infoを実行する必要があります。 。 -T4
を使用する 発見をスピードアップするには:
% nmap -sV --script=broadcast-upnp-info -T4 10.1.0.0/24
Starting Nmap 7.91 ( https://nmap.org ) at 2020-11-02 18:59 CST
Pre-scan script results:
| broadcast-upnp-info:
| 239.255.255.250
| Server: Linux/2.6.12, UPnP/1.0, NETGEAR-UPNP/1.0
| Location: http://192.168.1.204:80/Public_UPNP_gatedesc.xml
| Manufacturer: NETGEAR, Inc.
| Name: WAN Device
| Manufacturer: NETGEAR, Inc.
| Name: WAN Connection Device
| Manufacturer: NETGEAR, Inc.
Nmapスクリプトは、UPnPを使用するデバイスを1つだけ検出し、製造元、オペレーティングシステム、ソフトウェアバージョンなどの必要な情報を提供します。
この情報をどうしますか? UPnPが必要ない場合は、無効にすることをお勧めします。それが不可能な場合は、デバイスを認識し、最新のファームウェアバージョンにアップグレードされていることを確認してください。
[セキュリティについてもっと知りたいですか? ITセキュリティとコンプライアンスのチェックリストを確認してください。 ]
結論
この記事では、Nmapを使用してネットワーク内の潜在的な不正デバイスを見つける方法について説明しました。 IoTデバイス(多くはセキュリティメカニズムを備えていない)の出現と人気の高まりに伴い、ネットワークに接続されているすべてのデバイスを追跡することがこれまで以上に重要になっています。 Nmapは、このような場合などに使用できる便利なツールです。