Nmapを使用してネットワーク上のライブホストを見つけようとしています。コマンドSudo nmap -sP 192.168.2.1/24
を使用してUbuntuでネットワークをスキャンしています。ただし、ライブホストを見つけることができません。自分のPCのネットワークアドレスをライブとして取得するだけです。ブラウザを介してDHCPクライアントリストを表示すると(ネットワークIPを使用してブラウザ経由でルーターにアクセスできます)、ネットワーク上に約10のライブホストがあります。これが発生している理由と、ネットワーク上のライブホストを見つける方法を誰かに教えてもらえますか?
これは、nmapでホスト検出を実行する最も簡単な方法です。
nmap -sP 192.168.2.1/24
なぜそれはいつもうまくいかないのですか?
このコマンドを実行すると、nmapは指定されたIPアドレス範囲にpingを送信して、ホストが稼働しているかどうかを確認します。 pingが失敗すると、synパケットをポート80に送信しようとします(SYNスキャン)。最新のホストベースのファイアウォールはpingとポート80をブロックするため、これは100%信頼できるわけではありません。Windowsファイアウォールはデフォルトでpingをブロックします。ネットワーク上にあるホストがpingをブロックしており、ポート80が接続を受け入れていません。したがって、nmapはホストが起動していないと想定します。
この問題の回避策はありますか?
はい。使用可能なオプションの1つは、ホスト検出プロセスをスキップし、すべてのIPアドレスでポートスキャンを実行しようとする-P0フラグを使用することです(この場合、空のIPアドレスもスキャンされます)。明らかに、小規模(20-50ホスト)のネットワークを使用している場合でも、スキャンを完了するにはかなりの時間がかかります。しかし、それはあなたに結果を与えるでしょう。
より良いオプションは、スキャンするカスタムポートを指定することです。 Nmapを使用すると、SYN/UDPパケットで特定のポートをプローブできます。TCP-22(ssh)またはTCP-3389(windowsリモートデスクトップ)またはUDP-などの一般的に使用されるポートをプローブすることをお勧めします161(SNMP)。
Sudo nmap -sP -PS22,3389 192.168.2.1/24 #custom TCP SYN scan
Sudo nmap -sP -PU161 192.168.2.1/24 #custom UDP scan
N.B.スキャン用のカスタムポートを指定した後でも、アクティブなホストを取得できない場合があります。多くは、ホストの構成方法とホストが使用しているサービスによって異なります。したがって、さまざまな組み合わせでプローブを続ける必要があります。適切な許可なしにネットワーク上でスキャンを実行しないでください。
pdate:ネットワークをスキャンするとき、特定のコマンドですべての望ましい結果が得られるかどうかを確認することはできません。アプローチは、基本的なpingスイープから開始することであり、それが機能しない場合は、ホストで実行されている可能性のあるアプリケーションを推測し、対応するポートをプローブしてください。 Wiresharkを使用するアイデアも興味深いです。 ACKパケットを送信してみてください。
nmap -sP -PA21,22,25,3389 192.168.2.1/24 #21 is used by ftp
2つ更新:フラグ-sPおよび-P0は、それぞれ-snおよび-Pnと呼ばれるようになりました。ただし、古いフラグは新しいバージョンでも機能します。
これを確認する最も簡単な方法は、nmapを使用してpingスイープを実行した後にARPテーブルを確認することです。
arp -a -n
これには、ICMPをフィルタリングするホストも含めて、ARPクエリに応答したすべてのホストがリストされます。
Wireshark を確認してください。ローカルネットワーク上のすべてのトラフィックをログに記録します。ブロードキャストしているノードがわかります。何が送信されているかも確認できます。 Ubuntu Software Centerから入手できます。
さらに、コマンドラインから buntuにWiresharkをインストールする に関するリンクがあります。
DHCPルーティングテーブルに表示されるトラフィックに関しては、多くの仮想マシンがリスト内の個別のマシンとして表示されることを覚えておいてください。通常、デフォルトの24時間のリース時間内(ほとんどのWiFiルーターの場合)にネットワークに接続されているものはすべて、リストに表示されます。ルーターのリース期間を確認することもできます。誰かがあなたのネットワークに夜通しかどうかを教えてくれるかもしれません。デュアルNICまたはNICおよびワイヤレスカード)を備えた一部のデバイスでは、両方のインターフェイスが有効になっている場合、2回表示されます。
多くの人がネットワーク上にいることを忘れている他のこと:
約6年前のオフィスで私が使用していた3メガバイトの小さな接続は、すべての過剰なトラフィックのために128kにダウンしました。所有者は、何が起こっているのかを確認することが可能であるかどうか知りたいと思いました。すべてのトラフィックがWindows 2000サーバーを通過するわけではなかったため、昔のパートタイムのIT担当者は肩をすくめました。サーバーのルーティングテーブルとトラフィックログを確認したところ、何も見つかりませんでした。彼らは奇妙にルーターを使っていなかったので、ネットワーク上の何でもモデムからアドレスを取得することができました。彼がサーバーで調べたルーティングテーブルは、数年前に存在していた静的マッピングのみを対象としています。同じサブネット上にないことに気付きました。次に、サーバーでDHCPがオンになっていないことを示しました。
Wiresharkで夜通しの掃引を行ったところ、すべてのトラフィックが時間外に受信されていました。同僚の1人が知らずに彼のマシンで日本のセックスサイトをホストしていました。攻撃者は、ハイエンドのビデオ編集ソフトウェアのクラックされたバージョンに付随するバックドアをインストールした後、マシンをルート化しました。また、異なる部門のさまざまなマシンで異なる時間にTor
、demonoid
、およびbitTorrent
を実行していることもわかりました。 Wiresharkはすべてを見つけました。翌日、インターネットはフルスピードで稼働しました...ルーターも設置しました。
Wiresharkに対応していない場合は、tcpdump
も試してみてください。
このbashスクリプトは、ネットワーク上のすべてのライブホストのIPアドレスを出力します。
#!/bin/bash
nmap $1 -n -sP | grep report | awk '{print $5}'
rwilson@rwilson-Aspire-E5-521:~/Scripts/Utils$
Mon Jul 27 06:41 AM> ./livehosts.sh 192.168.1.1/24
192.168.1.1
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
192.168.1.118
192.168.1.122
192.168.1.123
192.168.1.126
192.168.1.129
192.168.1.133
192.168.1.134
192.168.1.156
192.168.1.159
192.168.1.168
192.168.1.170
管理者権限(root
)を取得したら、netdiscover(8)
を-r
フラグとともに使用して、異なるクラスとマスクを指定できます。デフォルトではネットワーククラスC/24を使用します。
例えば:
$ Sudo netdiscover -r 172.16.17.0/24
出力は次のようになります。
Currently scanning: Finished! | Screen View: Unique Hosts
3 Captured ARP Req/Rep packets, from 3 hosts. Total size: 180
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
172.16.17.1 00:50:56:c0:00:08 1 60 VMware, Inc.
172.16.17.2 00:50:56:f9:b9:b6 1 60 VMware, Inc.
172.16.17.254 00:50:56:fc:e4:76 1 60 VMware, Inc.
時々 arp -a -n
IPアドレスを取得しません。実行中nmap -sP 192.168.1.1/24
はライブホストを取得し、その後arp
を再試行すると、ライブホストが表示されます。それはそれがLinuxミントで私のためにどのように働いたかです。しかし、いつでもnmap
を信頼できます。
ホストのフィンガープリントも必要で、無料でクローズドなソースツールを使用しても構わない場合は、 fing
別のオプションです:
Sudo fing -r 1
に比べ nmap 192.168.1.1/24 -n -sP
これは大幅に高速で、MACアドレスからデバイスの製造元を検出しようとします。
免責事項:私はツールやそれを作っている会社とは関係がなく、ツールが内部で何をしているのか(悪かどうか)の手がかりはありません。私は自分のLANでIPを見つけるために mobile apps を使用していて、それが便利だと感じました。
ネットワーク上のホストを見つける例:
arp-scan 192.168.12.0/24 # if vlan tagged interface use -Q vlanid
etherape(GUI)は、ネットワークアクティビティのグラフを表示します。
上記のその他のツールもここにあります。