极客之眼 Nmap:窥探世界的第一步

这篇具有很好参考价值的文章主要介绍了极客之眼 Nmap:窥探世界的第一步。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考

项目 描述
搜索引擎 Google 、Bing
Nmap 官方 Nmap Reference Guide
从实践中学习 Nmap 渗透测试 大学霸 IT 达人

描述

项目 描述
Linux 操作系统 Kali-Linux(x86-64)
Nmap 7.93

Nmap

极客之眼

极客之眼 Nmap:窥探世界的第一步

Nmap(Network Mapper)一个免费的开源网络扫描工具,它可以用来探测主机和端口,以及执行漏洞扫描和安全审计。Nmap可以扫描单个主机或整个网络段,识别目标主机的操作系统、应用程序和服务,确定网络拓扑,并生成可视化的拓扑图和报告。Nmap 可在所有主要计算机操作系统上运行,并且提供控制台和图形版本。

Nmap 具有许多高级功能,包括对不同类型的扫描技术和扫描策略的支持,以及对大规模网络和高速网络的扫描性能的优化。Nmap 还支持自定义脚本,可以扩展其功能以满足不同的需求。

Nmap 在安全审计、渗透测试、网络管理和漏洞研究等领域广泛应用。由于其广泛的功能和开放源代码的特点,Nmap 已经成为网络安全领域中最受欢迎和使用的工具之一

Nmap 与黑客的缠绵往事

Nmap 常常出现在一些与计算机黑客相关的电影和电视剧中,包括但不限于:

  1. 电影《银翼杀手2049》(Blade Runner 2049,2017),其中一个角色使用 Nmap 进行网络扫描。

  2. 《黑客帝国》(The Matrix,1999年):Nmap在该电影中被用于侦察目标网络。

  3. 《黑客帝国2:重装上阵》(The Matrix Reloaded,2003年):Nmap 在该电影中被用于扫描一个虚拟网络。

  4. 《黑客帝国3:矩阵革命》(The Matrix Revolutions,2003年):Nmap 在该电影中再次出现,被用于侦察和攻击目标网络。

极客之眼 Nmap:窥探世界的第一步

这些作品中出现 Nmap 的场景都与黑客或计算机安全相关,显示了 Nmap 在网络安全领域中的重要性和广泛应用。

CIDR

CIDR(Classless Inter-Domain Routing,无类别域间路由) 是一种用于分配 IP 地址的标准方法,与传统的 IP 地址分配方式相比,它 可以更有效地利用IP地址空间
在传统的IP地址分配方式中,IP 地址被分为 A、B、C、D、E 五类。每个类别的地址有不同的前缀位数,用于标识网络地址和主机地址。但是这种分配方式存在一些缺陷,如在分配 IP 地址时浪费了许多地址空间,并且不灵活,无法适应网络地址的快速增长。
为了克服这些缺陷,CIDR 被引入。CIDR 不再按照传统的IP地址分类,而是采用更加灵活的前缀长度来标识网络地址和主机地址。 CIDR通过允许网络管理员将不同的IP地址合并为一个更大的地址块,从而更有效地利用IP地址空间。CIDR还允许网络管理员按需分配地址,而无需受到传统IP地址分配方式的限制。
CIDR的出现解决了传统IP地址分配方式的许多问题,成为现代网络中IP地址分配的主流方式。

CIDR 的灵活高效

假设 有一个组织需要为其内部网络分配 IP 地址,其网络规模为 1000 个主机。在传统的 IP 地址分配方式中,该组织可以选择使用一个 B 类地址,其中网络地址占 16 位,主机地址占 16 位,总共有 65536 个地址,因此浪费了大量的地址空间。
而使用 CIDR,则可以选择一个 /22 前缀长度的地址块,其中网络地址占 22 位,主机地址占 10 位,总共有 1024个 地址。这样就不仅可以满足该组织的需要,而且可以更有效地利用IP地址空间,减少浪费。
另外,如果该组织的网络规模在未来增长到 2000个 主机,可以轻松地使用一个 /21 前缀长度的地址块来扩展网络,而无需更改现有的网络拓扑结构。
因此,CIDR 相比传统 IP 地址分配方式的优点在于更加灵活和高效,可以更好地适应网络规模和需求的变化。

Nmap 的获取

检测 Nmap 是否已经安装

获取 Nmap 的第一步是检查您是否已经拥有它。许多免费操作系统发行版(包括大多数 Linux 和 BSD 系统)都带有 Nmap 包,尽管它们可能没有默认安装。在 Unix 系统上,打开一个终端窗口并尝试执行如下命令:

nmap --version

如果 Nmap 存在并且在你的 PATH(环境变量), 您应该会看到类似于如下内容的输出。

Nmap version 7.93 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.6 openssl-3.0.8 libssh2-1.10.0 libz-1.2.13 libpcre-8.39 nmap-libpcap-1.7.3 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
下载并安装 Nmap
Linux

如果你使用的是 Linux 系统,那么你可能可以通过软件包工具直接对 Nmap 进行下载安装。例如,在 Kali Linux 中,你可以使用如下命令来对 Nmap 进行下载安装:

apt install nmap

如果软件包工具找不到 Nmap 也不要灰心,你可以前往 Nmap 官网 进行下载。

注:

在 Nmap 官网进行软件包下载是,你可能看到的都是 rpm 格式 的软件包,这些软件包无法在基于 Debian 的 Linux 系统中直接安装。但你可以通过在控制台中执行如下命令将 rpm 格式 的软件包转化为 deb 格式的软件包。

sudo alien <Nmap 的 rpm 格式的软件包>
MacOS 与 WIndows

前往 Nmap 官网 进行 Nmap 软件包的下载并将其存放路径放置于环境变量中即可。

Nmap 官网中提供了更多的安装方法,如果上述内容无法满足您的需求,请前往 Nmap 官网中查询,此处就不再赘述了。

区域扫描

极客之眼 Nmap:窥探世界的第一步

Nmap 是一个流行的网络扫描器,可以用来探测目标网络中的开放端口、操作系统类型、服务信息等。Nmap具有强大的功能和灵活性,可以通过各种选项和参数来配置扫描。

扫描目标通常是指在网络上寻找目标主机的 IP 地址和端口号,以了解网络的安全状态和漏洞。扫描目标可以是单个 IP 地址、IP 地址范围、CIDR 地址块、主机名或 URL 等。在扫描之前,需要先确定目标的范围和扫描的目的,以避免对网络造成不必要的干扰或风险。

需要注意的是,未经授权的扫描可能会触犯法律或违反道德规范,因此在进行扫描时应当获得合法授权,并遵守相关的法律法规和道德准则。同时,也应当尽可能保护自己的安全和隐私,避免将扫描结果泄露给未授权的人员或组织。

基本扫描

在终端中输入 nmap [目标IP地址] 来进行基本的主机扫描。例如,扫描192.168.1.1 主机,可以输入命令 nmap 192.168.1.1。如果想要扫描整个局域网内的主机,可以使用 nmap 192.168.1.0/24 命令,其中 /24 表示子网掩码。

举个栗子

执行如下命令以扫描 IP 地址为 172.17.48.10 的主机。

nmap 172.17.48.10

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 09:57 CST
Nmap scan report for localhost (172.17.48.10)
Host is up (0.0000060s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
扫描结果解析

CST

CST(中国标准时间)是 China Standard Time 的缩写,指的是 UTC+8 时区,也就是 北京时间。它包括中国大陆、台湾、香港、澳门等地区的时间。

Nmap scan report for localhost (172.17.48.10)

指明扫描结果的来源,localhost 为目标计算机的名称,而 localhost 通常指本机的名称。172.17.48.10 为目标计算机的 IP 地址。

Host is up (0.0000060s latency).

Host is up 表示扫描的目标主机处于活动状态,即可访问和响应。而0.0000060s latency 则是指从扫描主机(即运行 Nmap 的计算机)到目标主机的 往返时延,也称为“延迟”或“延迟时间”。

Not shown: 998 closed tcp ports (reset)

  1. reset
    TCP Reset 是 TCP 协议中的一种标准控制消息,用于中止 TCP 连接或通知对方主机某些异常情况。 在扫描期间,Nmap通常会发送三种不同类型的TCP包来识别目标主机上的端口状态:SYN(同步)包、ACK(确认)包和 RST(重置)包。其中,SYN 包用于发起 TCP连接,ACK 包用于确认 TCP 连接,而 RST 包则用于重置TCP连接或表示某个端口不可用。在这个例子中,由于目标主机关闭了 998 个TCP端口,因此 Nmap 在扫描期间会收到 998 个 RST 包作为响应。

  2. Not shown
    其中的“Not shown”表示Nmap没有显示所有的端口扫描结果。在这个例子中,“Not shown: 998 closed tcp ports (reset)”表示在扫描期间发现了998个关闭的TCP端口,但这些端口并没有在扫描结果中显示。

PORT STATE SERVICE

其中的 PORT 列显示扫描到的端口号,而 STATE 列则显示相应端口的状态。在这个例子中,22/tcp80/tcp 分别是两个开放的端口,其状态为 open。而 open 表示该端口处于开放状态,即目标主机正在运行该端口对应的服务或应用程序,并能够响应连接请求。

SERVICE 列则显示与相应端口关联的服务或应用程序的名称,这有助于识别目标主机上正在运行的服务和应用程序。在这个例子中,22/tcp 对应的服务是 SSH(Secure Shell),而 80/tcp 对应的服务是 HTTP(Hypertext Transfer Protocol)

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

这是 Nmap 扫描的最后一行输出结果,它表示扫描已经完成,并提供了以下信息:

  • 扫描了 1 个IP地址,即目标主机的 IP 地址。
  • 扫描期间检测到 1 个主机处于活动状态,即 目标主机是活跃的,能够响应 Nmap 的请求。
  • 整个扫描过程 耗时 0.23 秒,即 Nmap 在 0.23 秒内完成了对目标主机的扫描。
域名解析服务

Nmap 的目标除了可以使用 IP 地址来进行标识,还可以通过使用目标主机的域名来进行指定。Nmap 将使用 DNS(域名解析服务)服务解析域名以获取目标主机所处的 IP 地址,并对该 IP 地址所对应的主机进行扫描。对此,请参考如下示例:

nmap www.baidu.com

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 11:53 CST
Nmap scan report for www.baidu.com (112.80.248.76)
Host is up (0.038s latency).
Other addresses for www.baidu.com (not scanned): 112.80.248.75
Not shown: 998 filtered tcp ports (no-response)
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

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

区域扫描

在使用 Nmap 对目标进行扫描时,可以一次性指定多个目标来进行扫描,要求是这些目标需要以空格隔开。对此,请参考如下示例:

nmap 192.168.0.1 192.168.43.1 172.17.48.22

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 18:37 CST
Nmap scan report for 192.168.43.1
Host is up (0.0099s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
53/tcp open  domain

Nmap done: 3 IP addresses (1 host up) scanned in 3.11 seconds

指定多个目标来进行扫描,仅仅在目标较少的情况是可行的。但不必担心,因为 Nmap 早已经为你担心过了。
Nmap 可以进行区域扫描,也就是指定一个或多个 IP 地址范围来进行扫描。

CIDR

你可以通过向 Nmap 提供一个使用 CIDR 来表示的 IP 地址范围来实现区域扫描。对此,请参考如下示例:

扫描 IP 地址范围 192.168.43.0 ~ 192.168.43.255 中的主机

nmap 192.168.43.0/24

执行结果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 12:02 CST
Nmap scan report for 192.168.43.1
Host is up (0.0054s latency).
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
53/tcp open  domain

Nmap scan report for TwoMoons (192.168.43.12)
Host is up (0.0015s latency).
Not shown: 994 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
1688/tcp open  nsjtp-data
2179/tcp open  vmrdp

Nmap done: 256 IP addresses (2 hosts up) scanned in 6.56 seconds

扫描结果表明该次扫描总共花费时间 6.56 秒,扫描了 256 个 IP 地址,其中有 2 个主机处于活动状态。
第一个 IP 地址为 192.168.43.1,扫描结果显示该主机仅开放了用于提供 DNS 服务的 53 号端口。 第二个 IP 地址是 192.168.43.12,扫描结果显示它开放了提供 SSH、MSRPC、NetBIOS-SSN、Microsoft-DS、NSJTP-Data、VMRDP 等服务的多个端口。

列表扫描
正向 DNS 查询与反向 DNS 查询

DNS(Domain Name System) 是互联网上用于解析域名和 IP 地址 之间关系的协议。正向 DNS 查询是将域名解析为 IP 地址,而反向 DNS 查询则是将 IP 地址解析为域名。

正向 DNS 查询是常见的 DNS 查询类型。它将域名作为输入,然后查询 DNS 服务器以获取该域名对应的 IP 地址。例如,当用户在 Web 浏览器中输入网站的域名时,Web 浏览器将首先发出 DNS 查询以获取该域名的IP地址,然后将 IP 地址用于与 Web 服务器建立连接。

反向 DNS 查询是一种相对不常见的 DNS 查询类型。它将 IP 地址作为输入,然后查询 DNS 服务器以获取该IP地址对应的域名。反向 DNS 查询通常用于安全和网络管理目的。例如,当管理员需要确定哪个主机使用了特定的 IP 地址时,可以进行反向 DNS 查询以获取该 IP 地址的主机名。

列表扫描

列表扫描(List Scan) 是主机发现的一种退化形式,它只是简单地枚举指定网络(IP 地址范围)中每个主机的 IP 地址,并不发送任何数据包来探测主机的存活状态。 在默认情况下,Nmap仍会进行 反向 DNS 解析 来获取主机的名称,这有助于更好地了解网络拓扑和标识主机的身份。

举个栗子

nmap -sL 127.0.0.0/28

执行效果

执行该命令后,Nmap 将列出指定网络中的所有的 IP 地址并对这些 IP 地址进行反向 DNS 查询。

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 17:28 CST
Nmap scan report for 127.0.0.0
Nmap scan report for localhost (127.0.0.1)
Nmap scan report for 127.0.0.2
Nmap scan report for 127.0.0.3
Nmap scan report for 127.0.0.4
Nmap scan report for 127.0.0.5
Nmap scan report for 127.0.0.6
Nmap scan report for 127.0.0.7
Nmap scan report for 127.0.0.8
Nmap scan report for 127.0.0.9
Nmap scan report for 127.0.0.10
Nmap scan report for 127.0.0.11
Nmap scan report for 127.0.0.12
Nmap scan report for 127.0.0.13
Nmap scan report for 127.0.0.14
Nmap scan report for 127.0.0.15
Nmap done: 16 IP addresses (0 hosts up) scanned in 2.57 seconds

除了可以确保目标具有正确的 IP 地址外,列表扫描还可以用作健全性检查的一种方式,以确保目标网络中没有未知的主机。如果发现不认识的主机名或 IP 地址,可能需要进一步调查以避免扫描错误的公司网络。

拒绝反向 DNS 查询

反向 DNS 查询需要耗费时间,在指定网络中存在大量主机时,耗费的时间会变得十分明显。
在某些情况下,我们仅需要列出指定网络中所有的 IP 地址而不必对这些 IP 地址进行反向 DNS 查询。在这类情况下,我们可以使用 -n 选项来拒绝列表扫描这一默认行为(反向 DNS 查询)。对此,请参考如下示例:

nmap -sL -n 127.0.0.0/28

执行效果

由于没有对指定网络中的每一个 IP 地址进行反向 DNS 查询,执行上述命令后便立刻得到了输出。

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 17:27 CST
Nmap scan report for 127.0.0.0
Nmap scan report for 127.0.0.1
Nmap scan report for 127.0.0.2
Nmap scan report for 127.0.0.3
Nmap scan report for 127.0.0.4
Nmap scan report for 127.0.0.5
Nmap scan report for 127.0.0.6
Nmap scan report for 127.0.0.7
Nmap scan report for 127.0.0.8
Nmap scan report for 127.0.0.9
Nmap scan report for 127.0.0.10
Nmap scan report for 127.0.0.11
Nmap scan report for 127.0.0.12
Nmap scan report for 127.0.0.13
Nmap scan report for 127.0.0.14
Nmap scan report for 127.0.0.15
Nmap done: 16 IP addresses (0 hosts up) scanned in 0.00 seconds
主机名与 CIDR

Nmap 还支持使用 主机名CIDR 搭配一同描述需要被扫描的目标主机。对此,请参考如下示例:

nmap -sL -n www.baidu.com/30

扫描结果

由 CIDR 指定的网络位为 30 bit,故主机位有 2 bit(IPv4 使用 32 bit 来表示 IP 地址),可以表示该网络中的四台(由 2 2 2^2 22 的计算结果得出)不同的主机 IP。因此本次扫描的目标为包含 www.baidu.com (112.80.248.76) 在内的四台主机。

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 16:38 CST
Nmap scan report for www.baidu.com (112.80.248.76)
Other addresses for www.baidu.com (not scanned): 112.80.248.75
Nmap scan report for 112.80.248.77
Nmap scan report for 112.80.248.78
Nmap scan report for 112.80.248.79
Nmap done: 4 IP addresses (0 hosts up) scanned in 0.07 seconds
IP 地址段

在使用 Nmap 的过程中,你还可以通过 IP 地址段的方式向 Nmap 指定需要被扫描的 IP 范围。通过 IP 地址段,你将能够以相比 CIDR 更灵活精确的方式指定目标主机。你可以通过如下示例理解 IP 地址段(在 IP 地址段中,使用符号 - 来规定范围)。

nmap -sL 192.168.43.150-155

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 17:32 CST
Nmap scan report for 192.168.43.150
Nmap scan report for 192.168.43.151
Nmap scan report for 192.168.43.152
Nmap scan report for 192.168.43.153
Nmap scan report for 192.168.43.154
Nmap scan report for 192.168.43.155
Nmap done: 6 IP addresses (0 hosts up) scanned in 0.07 seconds

注:

在使用符号 - 来指定范围的同时,还可以通过使用符号 “,” 以允许在 IP 地址中的某一字节中指定多段范围。对此,请参考如下示例:

nmap -sL 192.168.43.150-152,153,154-155

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 18:21 CST
Nmap scan report for 192.168.43.150
Nmap scan report for 192.168.43.151
Nmap scan report for 192.168.43.152
Nmap scan report for 192.168.43.153
Nmap scan report for 192.168.43.154
Nmap scan report for 192.168.43.155
Nmap done: 6 IP addresses (0 hosts up) scanned in 0.14 seconds
笛卡尔积

不单单能够对 IP 地址中的单个字节使用 - 符号来确定其范围,你还可以在多个字节中使用该符号。扫描的目标对象将以多个小范围之间的笛卡尔积的形式存在。对此,请参考如下示例:

nmap -sL 192-193.168.43.150-155

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 17:33 CST
Nmap scan report for 192.168.43.150
Nmap scan report for 192.168.43.151
Nmap scan report for 192.168.43.152
Nmap scan report for 192.168.43.153
Nmap scan report for 192.168.43.154
Nmap scan report for 192.168.43.155
Nmap scan report for 193.168.43.150
Nmap scan report for 193.168.43.151
Nmap scan report for 193.168.43.152
Nmap scan report for 193.168.43.153
Nmap scan report for 193.168.43.154
Nmap scan report for 193.168.43.155
Nmap done: 12 IP addresses (0 hosts up) scanned in 0.08 seconds

注:

同样,你也可以在 IP 地址的多个字节中使用符号 “,” 用以指定多个范围。对此,请参考如下示例:

nmap -sL 192,193.168.43.150,151-155

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 17:41 CST
Nmap scan report for 192.168.43.150
Nmap scan report for 192.168.43.151
Nmap scan report for 192.168.43.152
Nmap scan report for 192.168.43.153
Nmap scan report for 192.168.43.154
Nmap scan report for 192.168.43.155
Nmap scan report for 193.168.43.150
Nmap scan report for 193.168.43.151
Nmap scan report for 193.168.43.152
Nmap scan report for 193.168.43.153
Nmap scan report for 193.168.43.154
Nmap scan report for 193.168.43.155
Nmap done: 12 IP addresses (0 hosts up) scanned in 0.12 seconds
大满贯

在使用 - 指定主机范围的过程中,你可以在 IP 地址中的单个字节部分直接使用 - 来表示 0~255 的范围。使用

nmap -sL -n 0-255.-.-.-

你将得到 IP 协议所支持的所有有效的 IP 地址。你可能会好奇,为什么不是使用 nmap -sL -n 0-255.-.-.- 而不是 nmap -sL -n -.-.-.-。这是由于 Linux 将 - 开头的字符视为命令的选项,使用 nmap -sL -n -.-.-.- 会导致 -.-.-.- 被认为是选项而不是值而导致错误。

注:

nmap -sL -n 0-255.-.-.-

还可以被替换为

nmap -sL -n *

nmap -sL -n *.*.*.*

它们都可以正常的工作并得到你希望的结果。事实上,在 Nmap 指定目标的过程中,如果需要指定单个或多个的小范围(IPv4 中的单个字节)为 0~255,那么符号 * 与 符号 - 两者在大多数情况下是可替换的。

目标来源

文件

目标主机的可以来自于命令中,也可以来自于文件中。您可以使用 Nmap 的 -iL 选项 从文件中读取主机列表。主机列表文件可以包含您想要扫描的任何主机,可以用来标识主机的格式包括 IP 地址、主机名、CIDR、或 IP 地址段每个主机必须由一个或多个空格、制表符或换行符分隔。

输入文件可以包含以 # 开头的注释,这些注释将被忽略,不会影响到 Nmap 的正常工作。

举个栗子

存放主机列表的文件 target.txt 中的内容

# TwoMoons
172.17.48.1   www.baidu.com
# RedHeart
192.168.43.9-13
# Binary Moon
www.bing.com/30
# Hello  World

执行命令

nmap -n -sL -iL ./target.txt

扫描结果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 19:05 CST
Nmap scan report for 172.17.48.1
Nmap scan report for www.baidu.com (112.80.248.75)
Other addresses for www.baidu.com (not scanned): 112.80.248.76
Nmap scan report for 192.168.43.9
Nmap scan report for 192.168.43.10
Nmap scan report for 192.168.43.11
Nmap scan report for 192.168.43.12
Nmap scan report for 192.168.43.13
Nmap scan report for www.bing.com (204.79.197.200)
Other addresses for www.bing.com (not scanned): 13.107.21.200
Nmap scan report for 204.79.197.201
Nmap scan report for 204.79.197.202
Nmap scan report for 204.79.197.203
Nmap done: 11 IP addresses (0 hosts up) scanned in 0.21 seconds

随机

当您需要进行互联网范围内的研究时,可以使用 Nmap 中的 -iR 选项来生成随机目标列表。您可以 指定要生成的 IP 数量在生成列表时,Nmap会自动跳过私有、多播或未分配地址范围内的IP。 但请注意,进行未经授权的扫描是非法的,并且可能会引起网络管理员的不满和投诉。因此,使用此选项需要谨慎并自行承担风险。

举个栗子

随机产生 15 个 IP 地址。

nmap -n -sL -iR 15

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 19:08 CST
Nmap scan report for 204.69.196.187
Nmap scan report for 154.244.62.174
Nmap scan report for 56.119.186.67
Nmap scan report for 34.101.71.137
Nmap scan report for 75.84.202.233
Nmap scan report for 50.214.223.218
Nmap scan report for 28.189.185.104
Nmap scan report for 70.24.99.36
Nmap scan report for 77.27.14.163
Nmap scan report for 204.154.26.215
Nmap scan report for 9.112.223.139
Nmap scan report for 48.151.70.189
Nmap scan report for 199.29.136.71
Nmap scan report for 160.145.157.48
Nmap scan report for 58.156.220.12
Nmap done: 15 IP addresses (0 hosts up) scanned in 0.00 seconds

筛选

在使用 Nmap 进行扫描时,可能会遇到需要从目标主机列表中排除某些特定主机的情况。

–exclude

–exclude 参数可用于排除单个主机或主机范围。对此,请参考如下示例:

 nmap -n -sL 192.168.43.10-100 --exclude 192.168.43.20-100,192.168.43.12

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 19:44 CST
Nmap scan report for 192.168.43.10
Nmap scan report for 192.168.43.11
Nmap scan report for 192.168.43.13
Nmap scan report for 192.168.43.14
Nmap scan report for 192.168.43.15
Nmap scan report for 192.168.43.16
Nmap scan report for 192.168.43.17
Nmap scan report for 192.168.43.18
Nmap scan report for 192.168.43.19
Nmap done: 9 IP addresses (0 hosts up) scanned in 0.00 seconds

注:

被排除的主机之间使用逗号而不是空格进行分隔。

文件

我们可以将需要排除的主机记录在一个文本文件中,然后使用 –excludefile 选项指定该文件以便从主机列表中排除不需要的主机。
存放被排除主机的文件中可以包含以 # 开头的注释,这些注释将被忽略,不会影响到 Nmap 的正常工作。

举个栗子

存放被排除主机的文件 exclude.txt 的内容

# Hello China
192.168.43.20-50 192.168.43.50-100
# Binary Moon
192.168.43.12
# Red Heart

在终端中执行如下命令

nmap -n -sL 192.168.43.10-100 --excludefile exclude.txt

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 19:55 CST
Nmap scan report for 192.168.43.10
Nmap scan report for 192.168.43.11
Nmap scan report for 192.168.43.13
Nmap scan report for 192.168.43.14
Nmap scan report for 192.168.43.15
Nmap scan report for 192.168.43.16
Nmap scan report for 192.168.43.17
Nmap scan report for 192.168.43.18
Nmap scan report for 192.168.43.19
Nmap done: 9 IP addresses (0 hosts up) scanned in 0.01 seconds

跟踪

路由跟踪

在使用 Nmap 进行扫描工作时,通过使用 –traceroute 选项,你将能够在扫描过程中执行类似于 traceroute 命令的跟踪路由操作,以识别到达目标主机的路由路径。

在扫描过程中,Nmap 将向目标主机发送一系列的 ICMP 数据包,并对每个数据包的 TTL 值逐渐递增。当数据包到达下一个路由器时,它将被路由器丢弃,并返回 ICMP “time exceeded”(时间超过) 错误消息,这将提供有关到达该路由器的信息。通过分析这些错误消息,Nmap 可以确定到达目标主机的完整路由路径。

–traceroute 选项可用于帮助识别网络故障、发现网络中的瓶颈,以及更好地了解网络拓扑结构。然而,需要注意的是,这个选项可能会被一些网络管理员视为对网络的侵入,并导致被禁止或追究责任。因此,在使用这个选项时,需要确保已获得适当的授权,并遵守所有相关法律法规。

举个栗子

 nmap --traceroute www.baidu.com

执行效果

Starting Nmap scan report for www.baidu.com (112.80.248.75)
Host is up (0.039s latency).
Other addresses for www.baidu.com (not scanned): 112.80.248.76
Not shown: 998 filtered tcp ports (no-response)
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

TRACEROUTE (using port 443/tcp)
HOP RTT      ADDRESS
1   1.84 ms  172.17.48.1
2   8.57 ms  192.168.43.1
3   ... 13
14  40.78 ms 112.80.248.75

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

其中:

  • TRACEROUTE (using port 443/tcp)
    表示这是一个使用 TCP 端口 443 进行 traceroute 的扫描。

  • HOP
    路由器的跳数,指从扫描主机到目标主机的中间路由器的数量。

  • RTT
    往返时间(Round-Trip Time),即从扫描主机发送请求到中间路由器再返回扫描主机的总时间。

  • ADDRESS
    每个中间路由器的IP地址。

从输出结果可以看出,该扫描跨越了 14 个路由器,并在 11.58 秒内完成,最终达到了目标主机 112.80.248.75

数据包跟踪

Nmap 的 –packet-trace 选项会输出每个发送和接收的网络数据包的详细信息,包括数据包的大小、时间戳、源 IP 和端口、目标 IP 和端口以及用于发送和接收数据包的协议。此选项可以用于调试网络问题或查看扫描器如何与目标进行通信。

举个栗子

-sn 用于指定 Nmap 仅对目标主机进行主机存活性探测,即检测主机是否正在运行。使用该选项是为了避免 Nmap 默认执行的端口扫描导致数据包信息过多,增大了对数据包收发信息进行分析的难度。

nmap --packet-trace -sn www.baidu.com

执行效果

Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-29 20:31 CST
SENT (0.1113s) ICMP [172.17.48.10 > 112.80.248.75 Echo request (type=8/code=0) id=4663 seq=0] IP [ttl=56 id=47695 iplen=28 ]
SENT (0.1115s) TCP 172.17.48.10:53372 > 112.80.248.75:443 S ttl=48 id=58953 iplen=44  seq=3307973816 win=1024 <mss 1460>
SENT (0.1115s) TCP 172.17.48.10:53372 > 112.80.248.75:80 A ttl=56 id=61205 iplen=40  seq=0 win=1024
SENT (0.1116s) ICMP [172.17.48.10 > 112.80.248.75 Timestamp request (type=13/code=0) id=32242 seq=0 orig=0 recv=0 trans=0] IP [ttl=55 id=24205 iplen=40 ]
RCVD (0.1697s) ICMP [112.80.248.75 > 172.17.48.10 Echo reply (type=0/code=0) id=4663 seq=0] IP [ttl=53 id=47695 iplen=28 ]
NSOCK INFO [0.1950s] nsock_iod_new2(): nsock_iod_new (IOD #1)
NSOCK INFO [0.1950s] nsock_connect_udp(): UDP connection requested to 114.114.114.114:53 (IOD #1) EID 8
NSOCK INFO [0.1950s] nsock_read(): Read request from IOD #1 [114.114.114.114:53] (timeout: -1ms) EID 18
NSOCK INFO [0.1950s] nsock_iod_new2(): nsock_iod_new (IOD #2)
NSOCK INFO [0.1950s] nsock_connect_udp(): UDP connection requested to 8.8.8.8:53 (IOD #2) EID 24
NSOCK INFO [0.1950s] nsock_read(): Read request from IOD #2 [8.8.8.8:53] (timeout: -1ms) EID 34
NSOCK INFO [0.1950s] nsock_write(): Write request for 44 bytes to IOD #1 EID 43 [114.114.114.114:53]
NSOCK INFO [0.1950s] nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 8 [114.114.114.114:53]
NSOCK INFO [0.1950s] nsock_trace_handler_callback(): Callback: WRITE SUCCESS for EID 43 [114.114.114.114:53]
NSOCK INFO [0.1950s] nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 24 [8.8.8.8:53]
NSOCK INFO [0.2440s] nsock_trace_handler_callback(): Callback: READ SUCCESS for EID 18 [114.114.114.114:53] (98 bytes)
NSOCK INFO [0.2440s] nsock_read(): Read request from IOD #1 [114.114.114.114:53] (timeout: -1ms) EID 50
NSOCK INFO [0.2440s] nsock_iod_delete(): nsock_iod_delete (IOD #1)
NSOCK INFO [0.2440s] nevent_delete(): nevent_delete on event #50 (type READ)
NSOCK INFO [0.2440s] nsock_iod_delete(): nsock_iod_delete (IOD #2)
NSOCK INFO [0.2440s] nevent_delete(): nevent_delete on event #34 (type READ)
Nmap scan report for www.baidu.com (112.80.248.75)
Host is up (0.058s latency).
Other addresses for www.baidu.com (not scanned): 112.80.248.76
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

分析

这是一次对 www.baidu.com 进行的快速主机发现扫描,使用了 -sn(只进行主机发现,不进行端口扫描) 选项。

在扫描过程中,Nmap 使用了 ICMP Echo requestTCP SYN 包作为探测方式,通过发送这些包并等待目标主机的响应来判断目标主机是否存活。同时,该扫描还查询了 DNS 服务器来解析 www.baidu.comIP 地址。输出结果显示目标主机 www.baidu.com 位于 IP 地址 112.80.248.75,主机存活并且响应速度为 0.058 秒。文章来源地址https://www.toymoban.com/news/detail-464590.html

到了这里,关于极客之眼 Nmap:窥探世界的第一步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于如何生成ssh密钥--远程访问的第一步

    第一步:从git官网下载windows版本的git:http://git-scm.com/downloads 第二步:写入以下系统path环境变量: 第三步:进入cmd,并输入(配置信息): 可以查看已经配置的信息:  第四步:执行命令生成密钥 进行回车确认:分别为,私钥的保存路径,不更改就回车;密码,不设置就回

    2024年02月11日
    浏览(49)
  • ESP32连接WiFi(迈出物联网的第一步)

    首先我们需要下载相应的arduino的ESP32库。网上有教程,自行编写,如有需要可评论,人多可出教程 言归正传。首先。我们先新建一个空文件 在里面的setup函数中写入这些代码  115200是我们串口通信的波特率。 这是串口会显示的画面,   WiFi.begin(\\\"A\\\",\\\"88888888\\\");第一个分号是写

    2024年02月08日
    浏览(36)
  • 学会Python开发的第一步:写一个桌面小程序

    嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 当使用桌面应用程序的时候,有没有那么一瞬间, 想学习一下桌面应用程序开发? 建议此次课程大家稍作了解不要浪费太多时间, 因为没有哪家公司会招聘以为Python程序员开发桌面程序吧? Python 3.6 Python是一种代

    2024年02月03日
    浏览(48)
  • ubuntu安装中文拼音输入法,装系统的第一步

    本教程对ubuntu系统的最新版本通用,无论你是22.04、20.04、18.04都可以。 首先安装中文输入法必须要让系统支持中文语言,可以在 Language Support 中安装中文语言包。 输入法必须基于框架,常用的输入法框架有 ibus 和 fcitx,我一直都选的ibus。 安装完成后可以在 Language Support 中选

    2024年02月12日
    浏览(46)
  • 安装Pygame库:在Python中创建游戏的第一步

    🌱博客主页:青竹雾色间. 😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注 目录 前言 Pygame库概述 安装Pygame库 方法一、在pycharm内部直接安装 方法二、通过pip直接安装 验证安装 Pygame是一个功能强大的Python游戏开发库,它提供了丰富的工具和函数,帮助开发者轻松创建2D游戏

    2024年02月07日
    浏览(82)
  • 文章一:SVN入门指南 - 版本控制新手的第一步

    概述:在本篇文章中,我们将介绍版本控制的基本概念和SVN的基础知识。从安装和配置SVN开始,逐步学习仓库创建、提交、更新等基本操作,让您快速入门SVN版本控制。 1. 引言 在软件开发过程中,版本控制是必不可少的工具。它允许开发团队对代码进行有效管理,记录代码

    2024年02月13日
    浏览(48)
  • 金字塔的思维--思考的第一步就是先提炼出一个基本框架

            如果以哲学的眼光来看待这一切,那么可以说每一件事情都包含在其他事物之间,包括我们的社会体系,包括整个自然界,万事万物都处于某一特定的体系当中。一辆行驶的汽车,一匹奔跑的骏马,一栋建筑,一个面包,你、我、他,所有的一切都从属于某一个大的

    2024年02月08日
    浏览(38)
  • CV大一统模型的第一步!Segment Anything Model 最全解读!

     Datawhale干货  作者:崔腾松,Datawhale成员 Meta 开源万物可分割 AI 模型:segment anything model (SAM)。 本文列举了一些资料,并从SAM的功能介绍、数据集、数据标注、图像分割方法介绍,研发思路以及对未来的展望来展开详细介绍。并综合了一些评价谈论,放眼当下和展望未来,

    2023年04月19日
    浏览(60)
  • 成为MySQL大师的第一步:轻松学习MySQL数据库的终极指南!

    官网:https://dev.mysql.com/ 1.1 安装 1.1.1 版本 MySQL官方提供了两个版本: 商业版本(MySQL Enterprise Edition) 该版本是收费的,我们可以使用30天。 官方会提供对应的技术支持。 社区版本(MySQL Community Server) 该版本是免费的,但是MySQL不会提供任何的技术支持。 1.1.2 安装 官网下载

    2024年02月06日
    浏览(39)
  • Go For Web:踏入Web大门的第一步——Web 的工作方式

    本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了解一些概念,

    2023年04月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包