nmapは、スキャンを実行してサブネット上で稼働しているホストの数を確認するたびに、異なる間違った結果を表示し続けます。次のスキャンレポートを参照してください。
最初に行ったスキャンは、スーパーユーザー権限ではありませんでした。 2回目のスキャンは、スーパーユーザー権限を持っている場合に違いがあるかどうかを確認するために行われました。私が行った3番目のスキャンは、特定のIPアドレスに固有のものでした(最初の2回のスキャン中にもアップしましたが、報告されませんでした)。何か案が?
papagolf@Sierra ~ % nmap -sn 192.168.1.1-255
Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-10-31 18:50 IST
Nmap scan report for www.netis.cc (192.168.1.1)
Host is up (0.0048s latency).
Nmap scan report for 192.168.1.4
Host is up (0.00014s latency).
Nmap done: 255 IP addresses (2 hosts up) scanned in 19.31 seconds
papagolf@Sierra ~ % Sudo nmap -sn 192.168.1.1-255
[Sudo] password for papagolf:
Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-10-31 18:51 IST
Nmap scan report for 192.168.1.4
Host is up.
Nmap done: 255 IP addresses (1 Host up) scanned in 26.98 seconds
papagolf@Sierra ~ % Sudo nmap -sn 192.168.1.3
Starting Nmap 7.25BETA2 ( https://nmap.org ) at 2016-10-31 18:52 IST
Nmap scan report for 192.168.1.3
Host is up (0.0030s latency).
MAC Address: B0:47:BF:AC:A6:C4 (Samsung Electronics)
Nmap done: 1 IP address (1 Host up) scanned in 16.78 seconds
まず第一に、私は思いませんNmapは「間違った」結果を表示しています。異なるスキャンを実行しているため、わからない場合でもNmapを使用することは、決定的な結果をすぐに提供する魔法のオプションの組み合わせを使用することとは異なります。ネットワーク内の異なるデバイスは異なる動作をするため、異なる手法が存在します(ルーター、ファイアウォール、異なるOS ...)、そして多かれ少なかれ「見えない」ようにしたいかもしれません。ここで、Nmapの美しさは、あなたが実行できるようにする柔軟性です必要なものを見つけるために多くの異なるスキャンを行います。これを、いくつかのオプションを使用してX結果とZ結果を提供するマッピングツールとして想像してください。次に、それらを解釈して結論に至るのはあなたの脳です。すべてのデフォルトオプションを含む基本的なコマンド。
[1] pingスキャンのみを実行しており、デフォルトでは次のようになります。
ICMP
エコー要求を送信するTCP ACK
パケットをポート80
に送信します注:新しいバージョンNmapバージョン(あなたのバージョンも含まれていると思います)は、TCP SYN
パケットをポート443
に送信し、ICMP
タイムスタンプ要求も送信します。
[2]同じネットワークに属している(かつスーパーユーザーである)場合、つまり、実行中のコンピューターはNmapに192.168.1.X
のようなIPがあることを意味します。代わりにARP
リクエストが使用されますWireshark
を使用すると、ARP
パケット交換を確認できます。
[3]最後に、[1]のデフォルトの動作では、ICMP
エコーとTCP ACK
にRAWパケットを使用するため、非特権ユーザーを使用する場合はNmapはこの手法を使用できません。代わりに、Nmapは、通常のユーザーとしてconnectを使用して、ポートTCP SYN
に80
パケットを送信しますアプリケーションが行います。
Nmapの動作を理解している場合([1]、[2] and [3])次に、異なる結果が得られる理由を確認できます。
最初のスキャンでは、両方のコンピューター(192.168.1.1
と192.168.1.4
)がTCP
接続を受け入れました。アプリケーションはアクセスしたことをログに記録するため、これは非常にノイズの多いスキャンでした。しかし、あなたはあなたが望むものを得ました:彼らが生きているのを見る。 Nmapをスーパーユーザーとして実行しているときにこのタイプのスキャンを設定できることに注意してください(スーパーユーザーでも[3]を使用できます- [1]または[2])これで、まったく同じ結果が得られます。
2回目のスキャンでACK
がポート80
に送信され、ICMP
エコーが送信されましたが、192.168.1.1
はそれを無視しました。これは、ファイアウォールが設置されていることを意味する場合があります。一方、192.168.1.4
はACK
またはICMP
エコーのいずれかに応答しました。同じネットワーク(192.168.1.0
)を使用している場合は、代わりにARP
が使用されます([2]を参照)...がそうである場合、何らかの理由で192.168.1.1
が応答しませんでしたあなたのARP
リクエスト。したがって、あなたは同じネットワークにいなかったと思います。
3番目のスキャンでは、2番目のスキャンと同じ結果が192.168.1.3
にあるはずです。 192.168.1.3
が2回目のスキャンで表示されなかったという事実は、さまざまな事実に応答する可能性があります-おそらくそれはwifi経由で接続され、ダウンしていましたか?電力を節約するために自動的に切断されるとき、それは私の電話に時々起こります。これらの結果は一貫して得られましたか?より詳細なスキャンを実行して、Nmapがネットワークヒントを正確に解釈している理由を確認する必要があります。
最後に、ツールの学習に真剣に取り組んでいる場合は、FyodorのNmap本を取得することを強くお勧めします。Nmapは機能しますが、一部のコンピューターネットワークの動作やその他のトリックも使用できます。たとえば、-n
を使用して逆DNS
ルックアップをスキップし、テストを高速化できます。また、(デフォルトの80
から)異なるpingポートを試し、異なるpingのタイプ。
特権スキャンと非特権スキャンには違いがありますが、ポートスキャン(SYN
、ACK
など)のみです。違いは、特権のある人がターゲットIPに対して生のTCPパケットを作成する一方で、非特権のスキャンはconnect
syscallに依存することです。検出されたホストには影響しません。 、速度だけ(理由の詳細については、 nmapのドキュメント を参照してください)
3番目のスキャンでホストが検出された理由、他の2つのスキャンで検出されなかった理由は、さまざまです。一部のホストはpingパケットにまったく応答しません(ホストが応答することを100%確信していない限り、信頼性の高いスキャンではありません)。一部のホストは、応答の間に最小の遅延があり、ネットワークが過負荷の場合はパケットをドロップします。ファイアウォールなど
利用可能なすべてのホストの現実的なリストが必要な場合は、複数のタイプのスキャンを使用する必要がありますが、必要なスキャンは、必要な精度レベル、使用しているネットワークの知識、および使用できる時間によって異なります。
より良い結果をもたらすはずの単純なスキャンは
Sudo nmap -PS --disable-arp-ping 192.168.1.0/24
TCP最も一般的なポートに対するSYNスキャンを使用して、検出されたすべてのホストが一覧表示されます。それがニーズに合わない場合(スキャンされたすべての一般的なポートをブロックしているホストがあるかもしれません)、もっと試してみてください次のような高度なスキャン:
Sudo nmap -PA 192.168.1.0/24
Sudo nmap -sA -p1-65535 192.168.1.0/24
Sudo nmap -sN -p1-65535 192.168.1.0/24
Sudo nmap -PO 192.168.1.0/24
すべてのスキャンがすべてのホストを検出するわけではありません。
PS:スキャン中に何が起こっているかの詳細を知りたい場合は、フラグ--reason
、--packet-trace
および/または-vv
。これらのフラグにより、ポートがopen
/closed
/filtered
/unfiltered
とマークされた理由を示すより詳細な出力が可能になり、各ホストに送信されるパケットと一般的な目的の冗長性
2番目のスキャンでもわかるように、192.168.1.1は表示されず、スキャンのモードは
-sn-pingのみポートスキャンなし
icmp接続が原因で、このホスト(192.168.1.3)が起動していないように見えることがある問題があるはずです