`nmap -p0-65535 0.0.0.0`ローカルホストのすべてのIPアドレスをスキャンしますか?

`nmap -p0-65535 0.0.0.0`ローカルホストのすべてのIPアドレスをスキャンしますか?

nmap -p0-65535 0.0.0.0すべてのTCPポートスキャンどのlocalhostのIPアドレス数は、192.168.1.97および127.0.0.1を含むすべてのローカルIPアドレスでTCPポートをリッスンするサービスを報告しますか?

$ nmap -p0-65535 0.0.0.0

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-24 17:48 EDT
Nmap scan report for 0.0.0.0
Host is up (0.00066s latency).
Not shown: 65529 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
631/tcp   open  ipp
3306/tcp  open  mysql
5432/tcp  open  postgresql
9050/tcp  open  tor-socks
33060/tcp open  mysqlx

Nmap done: 1 IP address (1 host up) scanned in 5.40 seconds

ユニオンを出力しているようです。

$ nmap -p0-65535 localhost

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-24 17:48 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00033s latency).
Other addresses for localhost (not scanned):
Not shown: 65529 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
631/tcp   open  ipp
3306/tcp  open  mysql
5432/tcp  open  postgresql
9050/tcp  open  tor-socks
33060/tcp open  mysqlx

そして

Nmap done: 1 IP address (1 host up) scanned in 4.50 seconds

$ nmap -p0-65535 192.168.1.97

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-24 17:49 EDT
Nmap scan report for ocean.fios-router.home (192.168.1.97)
Host is up (0.00036s latency).
Not shown: 65532 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
3306/tcp  open  mysql
33060/tcp open  mysqlx

ありがとうございます。

答え1

習慣。複数のIPアドレスをスキャンすると、別々nmapのポートのリストが表示されます。他のIPアドレスの結果はマージされません。比較結果nmap 127.0.0.1-2(または)nmap 127.0.0.1 127.0.0.2

nmap 0.0.0.0nmap 127.0.0.1 少なくとも使用しているソフトウェアについては同じです。


nmapユーザーとして実行すると、デフォルトでrootは他の検索方法が使用されます。たとえば、これが「ポート0」をスキャンできるようにします。ただし、root として実行されていない場合、「Nmap はデフォルトのオペレーティングシステムが接続システムコールを実行して、ターゲットコンピュータとポートへの接続を確立するように要求します。」

ポイントは、私がその違いを忘れてしまったということです:-) だから、どのOSを使用しているのかを追跡しに行きましたが、まさにLinuxです。私はこれを以前見たことがあります。ハハ、この動作は公式のLinuxドキュメントの一部ではありません。一般的に127.0.0.1文書化されており、すべてのIPv4実装で標準化されているものを使用することをお勧めします。

あなたは追跡することができますtcp_v4_connectionに至るまで特定の条件:

if (!fl4->daddr) {
    fl4->daddr = fl4->saddr;
    if (!fl4->daddr)
        fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
    dev_out = net->loopback_dev;
    fl4->flowi4_oif = LOOPBACK_IFINDEX;
    res->type = RTN_LOCAL;
    flags |= RTCF_LOCAL;
    goto make_route;
}

これはLinuxnmap -sT 0.0.0.0ではnmap -sT 127.0.0.1

また、nmap -sT 0.0.0.0 -S 192.168.1.97同等ですnmap -sT 192.168.1.97:-)。 (IPアドレスが192.168.1.97であると仮定)。ここまで読んだら、自分で試してみるのもいいようです:-)。

同様に、root として実行する場合、デフォルトの検索タイプは次のようになります。いいえオペレーティングシステム呼び出し connect() を使用して各 TCP ポートに接続します。代わりに、nmapは「生のTCPパケットを送受信します」。したがって、パケットを生成して自分自身を決定するには、nmapコードに完全に依存する必要があります。 nmap はオペレーティングシステムと同じパケットを生成しない場合があります。したがって、sudo nmap 0.0.0.0 -S 192.168.1.97同じ結果が得られない可能性がありますsudo nmap 192.168.1.97。しかし、おそらく。わかりません。試してみたことがありません。

関連情報