`nmap -p0-65535 0.0.0.0` 是否扫描本地主机上的所有 IP 地址?

`nmap -p0-65535 0.0.0.0` 是否扫描本地主机上的所有 IP 地址?

扫描nmap -p0-65535 0.0.0.0所有 tcp 端口任何本地主机上的 IP 地址的数量,因此报告在任何本地 IP 地址(包括 192.168.1.97 和 127.0.0.1)的 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

不会。当nmap扫描多个 IP 地址时,它会显示单独的端口列表。它不会合并来自不同 IP 地址的结果。比较nmap 127.0.0.1-2(或)的结果nmap 127.0.0.1 127.0.0.2

nmap 0.0.0.0相当于nmap 127.0.0.1 .至少对于您正在使用的软件来说是这样。


请记住,当您nmaproot用户身份运行时,它默认使用不同的扫描方法。例如,这就是允许它扫描“端口 0”的原因。然而,当不以 root 身份运行时,“Nmap 要求底层操作系统通过发出 connect 系统调用来与目标计算机和端口建立连接”。

重点是,我忘记了这个区别:-),所以我去追踪你使用的操作系统,即 Linux。这个我以前看过,哈哈此行为不属于 Linux 官方文档的一部分。一般来说,您应该更喜欢使用127.0.0.1,它在 IPv4 的所有实现中都有记录并成为标准。

你可以追踪tcp_v4_连接通过到具体条件:

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;
}

这表明在 Linux 上,nmap -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。不过也许可以。我不知道,我没试过。

相关内容