(5)nmap
简介:
Nmap也叫网络映射器(Network Mapper)是一个广泛使用的开源网络扫描工具。它用于探测和扫描计算机网络 上的主机和服务,以获取有关网络拓扑、开放端口、操作系统类型等信息。Nmap提供了灵活的扫 描技术,包括TCP、UDP、ICMP等多种扫描方式,可以快速地扫描大型网络。
Nmap具有许多功能,包括:
- 端口扫描:Nmap可以识别目标主机上开放的端口,从而帮助确定哪些服务正在运行。
- 操作系统识别:Nmap可以通过分析网络通信特征尝试识别目标主机的操作系统类型。
- 服务和版本探测:Nmap可以探测目标主机上正在运行的具体服务及其版本信息。
- 漏洞扫描:Nmap可以与漏洞扫描工具结合使用,帮助发现网络上存在的安全漏洞。
- 脚本扫描:Nmap支持使用Nmap脚本引擎(NSE)执行自定义脚本,以便执行更复杂的网络 扫描和自动化任务。
用法:
功能 | 命令行选项 | 说明 |
---|---|---|
目标规范 | ||
主机发现 | -sL | 列出要扫描的目标 |
-sn | 禁用端口扫描,只进行Ping扫描 | |
-Pn | 将所有主机视为在线 - 跳过主机发现 | |
-PS/PA/PU/PY[portlist] | TCP SYN/ACK,UDP或SCTP发现给定端口 | |
-PE/PP/PM | CMP回显,时间戳和网络掩码请求发现探测 | |
-PO[protocol list] | IP协议Ping | |
-n/-R | 永远不进行DNS解析/始终解析[默认:有时] | |
-dns-servers | 指定自定义DNS服务器 | |
–system-dns | 使用操作系统的DNS解析器 | |
–traceroute | 跟踪到每个主机的跳跃路径 | |
扫描技术 | -sS/sT/sA/sW/sM | TCP SYN/Connect()/ACK/Window/Maimon扫描 |
-sU | UDP扫描 | |
-sN/sF/sX | TCP Null,FIN和Xmas扫描 | |
–scanflags | 自定义TCP扫描标志 | |
-sI<zombie host[:probeport]> | 空闲扫描 | |
-sY/sZ | SCTP INIT/COOKIE-ECHO扫描 | |
-sO | IP协议扫描 | |
-b | FTP弹跳扫描 | |
端口规范和扫描顺序 | -p | 仅扫描指定的端口 |
–exclude-ports | 从扫描中排除指定的端口 | |
-F | 快速模式 - 扫描比默认扫描更少的端口 | |
-r | 连续扫描端口 - 不随机排序 | |
–top-ports | 扫描最常见的个端口 | |
–port-ratio | 扫描比更常见的端口 | |
-sV | 探测开放端口以确定服务/版本信息 | |
–version-intensity | 设置从0(轻量级)到9(尝试所有探测)的探测强 度 | |
–version-light | 限制在最有可能的探测(强度2) | |
–version-all | 尝试每个探测(强度9) | |
–version-trace | 显示详细的版本扫描活动(用于调试) | |
脚本扫描 | -sC | 等效于–script=default |
–script= | 是以逗号分隔的目录、脚本文件或脚本类别 | |
–script-args= <n1=v1,[n2=v2,…]> | 为脚本提供参数 | |
–script-args-file=filename | 在文件中提供NSE脚本参数 | |
–script-trace | 显示发送和接收的所有数据 | |
–script-updatedb | 更新脚本数据库。 | |
–script-help= | 显示有关脚本的帮助信息。 是以逗号分隔的脚本文 件或脚本类别列表。 | |
操作系统检测 | -O | 启用操作系统检测 |
–osscan-limit | 限制操作系统检测到有希望的目标 | |
–osscan-guess | 更积极地猜测操作系统 | |
时序和性能 | -T<0-5> | 设置时序模板(值越高,扫描速度越快) |
–min-hostgroup/max-hostgroup | 并行主机扫描组大小 | |
–min-parallelism/max-parallelism | 探针并行化 | |
–min-rtt-timeout/max-rtttimeout/initial-rtt-timeou | 指定探测往返时间。 | |
–max-retries | 限制端口扫描探针的重传次数。 | |
–host-timeout | 在经过这么长时间后放弃目标 | |
–scan-delay/–max-scan-delay | 调整探测之间的延迟 | |
–min-rate | 每秒发送不少于个数据包 | |
–max-rate | 每秒发送不超过个数据包 | |
防火墙/IDS 回避和欺骗 | -f; --mtu | 分片数据包(可选使用给定的MTU) |
-D <decoy1,decoy2[,ME],…> | 使用伪装扫描 | |
-S <IP_Address> | 伪装源地址 | |
-e | 使用指定的接口 | |
-g/–source-port | 使用给定的端口号 | |
–proxies <url1,[url2],…> | 通过HTTP/SOCKS4代理中继连接 | |
–data | 在发送的数据包中添加自定义有效负载 | |
–data-string | 在发送的数据包中添加自定义ASCII字符串 | |
–data-length | 在发送的数据包中添加随机数据 | |
–ip-options | 发送具有指定IP选项的数据包 | |
–ttl | 设置IP生存时间字段 | |
–spoof-mac <macaddress/prefix/vendor name> | 伪装您的MAC地址 | |
–badsum | 发送具有伪造的TCP/UDP/SCTP校验和的数据包 | |
输出 | -oN/-oX/-oS/-oG | 将扫描结果以正常、XML、s |
-oA | 同时以三种主要格式输出 | |
-v | 增加详细程度 (使用-vv或更高级别可获得更大效 果) | |
-d | 增加调试级别 (使用-dd或更高级别可获得更大效果 | |
–reason | 显示端口处于特定状态的原因 | |
–open | 仅显示开放的 (或可能开放的)端口 | |
–packet-trace | 显示发送和接收的所有数据包 | |
–iflist | 打印主机接口和路由 (用于调试) | |
–append-output | 追加而不是覆盖指定的输出文件 | |
–resume | 恢复中断的扫描 | |
–noninteractive | 禁用通过键盘的运行时交互 | |
–stylesheet <path/URL> | XSL样式表 ,用于将XML输出转换为HTML | |
–webxml | 引用Nmap.Org上的样式表 ,以获取更便携的XML | |
–no-stylesheet | 不要引用任何样式表 | |
–append-output | 追加而不是覆盖指定的输出文件 | |
–resume | 恢复中断的扫描 | |
–noninteractive | 禁用通过键盘的运行时交互 | |
–stylesheet <path/URL> | XSL样式表 ,用于将XML输出转换为HTML | |
–webxml | 引用Nmap.Org上的样式表 ,以获取更便携的XML | |
–no-stylesheet | 不要引用任何样式表 |
用例:
- 运行基本的端口扫描命令:
- target_ip:目标ip
nmap -p 1-100 target_ip
nmap -p 1-100 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0011s latency).
Not shown: 99 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
Nmap done: 1 IP address (1 host up) scanned in 1.88 seconds
nmap -p 1-100 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0096s latency).
Not shown: 97 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 11.92 seconds
这将扫描目标 IP 地址的端口范围 1-100,并报告开放的端口。
- 进行操作系统识别:
nmap -O target_ip
nmap -O 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:25 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0013s latency).
Not shown: 991 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
3306/tcp open mysql
7000/tcp open afs3-fileserver
8000/tcp open http-alt
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows XP|7|2012
OS CPE: cpe:/o:microsoft:windows_xp::sp3 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2012
OS details: Microsoft Windows XP SP3, Microsoft Windows XP SP3 or Windows 7 or Windows Server 2012
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.66 seconds
nmap -O 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:26 EDT
Nmap scan report for 118.193.46.232
Host is up (0.018s latency).
Not shown: 993 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|phone
Running: Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.87 seconds
该命令将尝试对目标 IP 地址进行操作系统识别,以确定其运行的操作系统类型。
- 进行服务和版本探测:
nmap -sV target_ip
nmap -sV 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:28 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0077s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
25/tcp open smtp?
80/tcp open http Apache httpd
110/tcp open pop3?
443/tcp closed https
888/tcp open http Apache httpd
3306/tcp open mysql MySQL (unauthorized)
8888/tcp open ssl/http Ajenti http control panel
Service Info: Host: 0b842aa5.phpmyadmin
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 280.35 seconds
使用此命令,Nmap将探测目标 IP 地址上运行的服务和相应的版本信息。
- 执行 Nmap 脚本:
nmap --script vuln target_ip
nmap --script vuln 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:36 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0071s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug)
110/tcp open pop3
443/tcp closed https
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 754.78 seconds
nmap --script vuln 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:44 EDT
Nmap scan report for 169.254.218.205
Host is up (0.023s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1111/tcp closed lmsocialserver
3306/tcp open mysql
5102/tcp closed admeng
Host script results:
|_smb-vuln-ms10-054: false
|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR
Nmap done: 1 IP address (1 host up) scanned in 104.80 seconds
这将运行名为 “vuln” 的 Nmap 脚本,用于检测目标 IP 地址上的漏洞。
- 设置扫描速度/时间:
nmap -T4 target_ip
nmap -T4 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:52 EDT
Warning: 169.254.218.205 giving up on port because retransmission cap hit (6).
Nmap scan report for 169.254.218.205
Host is up (0.072s latency).
Not shown: 982 closed tcp ports (reset)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
514/tcp filtered shell
902/tcp open iss-realsecure
912/tcp open apex-mesh
1007/tcp filtered unknown
1026/tcp filtered LSA-or-nterm
1038/tcp filtered mtqp
1455/tcp filtered esl-lm
1862/tcp filtered mysql-cm-agent
3306/tcp open mysql
5050/tcp filtered mmcc
5989/tcp filtered wbem-https
32771/tcp filtered sometimes-rpc5
50003/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 162.75 seconds
nmap -T4 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:53 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0087s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 49.26 seconds
使用此命令,您可以设置 Nmap 的扫描速度/时间。在示例中,使用级别 4 表示较快的扫描速度。
- 启用操作系统识别、版本探测和脚本扫描:
nmap -A target_ip
nmap -A 118.193.46.232
>>Starting Nmap 7.70 ( https://nmap.org ) at 2023-06-08 09:58 EDT
Nmap scan report for 118.193.46.232
Host is up (0.020s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE VERSION
22/tcp open tcpwrapped
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open tcpwrapped
110/tcp open tcpwrapped
888/tcp open tcpwrapped
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|WAP|phone
Running: iPXE 1.X, Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:ipxe:ipxe:1.0.0%2b cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: iPXE 1.0.0+, Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone
TRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 ... 30
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 58.75 seconds
该命令启用了操作系统识别、版本探测和脚本扫描功能,提供了更全面的信息收集和分析。
-
指定输出文件的前缀:
nmap -oA output_file_prefix target_ip
- nmap的
-oA
选项允许同时将三种格式的输出文件存储到一个文件名相同的目录中,即在一个操作中生成nmap
格式、grepable
文件格式和XML
格式的输出文件。 -oN
:指定nmap格式的输出文件,格式为[文件前缀].nmap
。-oG
:指定grepable格式的输出文件,格式为[文件前缀].gnmap
。-oX
:指定XML格式的输出文件,格式为[文件前缀].xml
。- 使用
-oA
选项可以一次性将所有文件都生成,并且它们会出现在同一个目录中,命名格式为[文件前缀].nmap
,[文件前缀].gnmap
和[文件前缀].xml
。
- nmap的
以下是使用-oA
选项的语法:
nmap -oA [输出文件前缀] [目标IP地址]
例如,如果要扫描192.168.1.1 IP地址,并将扫描结果以“output_scan”为文件前缀保存在“/home/user/output/”文件夹中,则可以使用以下命令:
nmap -oA /home/user/output/output_scan 192.168.1.1
扫描结果将保存为/home/user/output/output_scan.nmap
,/home/user/output/output_scan.gnmap
和/home/user/output/output_scan.xml
这三个文件。
使用-oA
选项可以方便地将扫描结果保存到一个目录中,并且能够方便地比较和分析不同格式的输出文件。
- 操作
nmap -oA test_A 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 10:33 EDT
Nmap scan report for 118.193.46.232
Host is up (0.013s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds
使用此命令,您可以指定输出文件的前缀,Nmap 将生成多个输出文件,包括文本、XML 和 nmap 格式 的文件。
- 显示详细输出信息:
nmap -v target_ip
nmap -v 118.193.46.232
使用此命令,Nmap 将显示更详细的扫描输出信息,包括每个扫描步骤的进展情况和结果。