学习nmap的一些使用方法分享

Nmap是一款开源的网络扫描和安全评估工具,可以用于发现网络上的主机和服务,检测开放的端口和漏洞等。下面是Nmap工具的一些入门和进阶使用方法:

nmap的入门级使用

1. 安装Nmap:在终端中输入以下命令来安装Nmap:

sudo apt-get install nmap

2. 扫描目标主机:在命令行中输入以下命令来扫描一个目标主

nmap [目标主机的IP地址或主机名]

例如,要扫描IP地址为192.168.0.1的主机,可以输入以下命令:

nmap 192.168.0.1

这时候nmap将开始扫描目标主机,并显示扫描结果。

3. 扫描特定端口:如果你只对特定的端口感兴趣,可以使用“-p”参数指定要扫描的端口范围。例如,要扫描目标主机上的80端口和443端口,可以输入以下命令:

nmap -p 80,443 [目标主机的IP地址或主机名]

nmap将只扫描指定的端口,并显示扫描结果。

4. 扫描多个主机:如果你想同时扫描多个主机,可以在命令行中指定多个目标主机的IP地址或主机名。例如,要扫描192.168.0.1和192.168.0.2两个主机,可以输入以下命令:

nmap 192.168.0.1 192.168.0.2

nmap将同时扫描这两个主机,并显示扫描结果。

5. 扫描整个子网:如果你想扫描整个子网,可以在目标主机中使用通配符“*”。例如,要扫描192.168.0.0/24子网中的所有主机,可以输入以下命令:

nmap 192.168.0.*

Nmap将扫描该子网中的所有主机,并显示扫描结果。

这些是Nmap的入门级使用方法。

nmap的进阶级使用

1. 指定端口范围扫描:你可以使用“-p”参数指定要扫描的端口范围。例如,要扫描主机的1到1000端口,可以输入以下命令:

nmap -p 1-1000 [目标主机的IP地址或主机名]

Nmap将只扫描指定范围的端口。

2. 指定扫描类型:Nmap支持多种扫描类型,如TCP扫描、UDP扫描、SYN扫描等。你可以使用“-s”参数指定要使用的扫描类型。例如,要执行TCP全连接扫描,可以输入以下命令:

nmap -sT [目标主机的IP地址或主机名]

Nmap将使用TCP全连接扫描目标主机。

3. 指定扫描脚本:Nmap内置了许多扫描脚本,可以执行特定的扫描任务。你可以使用“--script”参数指定要执行的脚本。例如,要执行HTTP漏洞扫描,可以输入以下命令:

nmap --script http-vuln* [目标主机的IP地址或主机名]

Nmap将执行所有以“http-vuln”开头的脚本,并显示扫描结果。

4. 指定扫描速度和超时时间:你可以使用“-T”参数指定扫描速度和超时时间。例如,要以慢速进行扫描,并设置超时时间为10秒,可以输入以下命令:

nmap -T2 --timeout 10s [目标主机的IP地址或主机名]

Nmap将以慢速进行扫描,并将超时时间设置为10秒。

5. 扫描结果输出格式:Nmap支持多种输出格式,如文本、XML、HTML等。你可以使用“-o”参数指定输出格式和文件名。例如,要将扫描结果保存为XML文件,可以输入以下命令:

nmap -oX scan_result.xml [目标主机的IP地址或主机名]

扫描结果保存到名为“scan_result.xml”的XML文件中。

一些常用的命令实操:

1. **基本扫描**:

- 扫描单个目标: nmap 192.168.56.101

- 扫描多个目标: nmap 192.168.56.101 192.168.56.105

- 扫描IP范围: nmap 192.168.56.1-120

- 扫描整个子网:`nmap 192.168.56.0/24`

2. **指定端口扫描**:

- 扫描特定端口:`nmap -p 22,80,8080 192.168.56.101`

- 扫描所有端口:`nmap -p1-65535 192.168.0.1`

3. **Ping扫描**(只发现活跃主机,不扫描端口):

- `nmap -sn 192.168.56.0/24`

4. **操作系统和服务版本检测**:

- 检测操作系统:`nmap -O 192.168.56.105`

- 检测服务版本:`nmap -sV 192.168.56.101`

5. **快速扫描**: (只适用于局域网,同一vlan下的;不经过任何安全设备)

- `nmap -F 192.168.0.1`

6. **防火墙绕过技术**: (可绕过以前的防火墙,但是由于nmap扫描时有自己的特征,在扫web页面的时候,会在请求头里加入自己的特征)

- 使用TCP SYN扫描(而不是默认的TCP connect扫描):`nmap -sS 192.168.56.105`

7. **输出结果**:

- 保存为文本文件:`nmap -oN output.txt 192.168.1.1`

- 保存为XML格式:`nmap -oX output.xml 192.168.56.105`

8. **脚本扫描**:

- 使用默认的Nmap Scripting Engine脚本:`nmap -sC 192.168.1.1`

- 使用特定脚本:`nmap --script=[script-name] 192.168.1.1`

9. **开启详细模式**:

- `nmap -v 192.168.56.101`

10. **避免DNS解析**:

- `nmap -n 192.168.56.101`

nmap的状态码讲解:

- Open(开放):表示端口是开放的,意味着该端口正在监听传入的连接请求。

- Closed(关闭):表示端口是关闭的,意味着该端口不接受传入的连接请求。

- Filtered(过滤):表示端口被过滤,意味着Nmap无法确定端口的状态,可能是由于防火墙或其他网络设备的限制。 ---服务是开了,但是受到防火墙保护无法访问

- Unfiltered(未过滤):表示端口未被过滤,但Nmap无法确定端口的状态。

- Open|Filtered(开放或过滤):表示Nmap无法确定端口是开放还是被过滤。

- Closed|Filtered(关闭或过滤):表示Nmap无法确定端口是关闭还是被过滤。