扫描主机
判断存活性
nmap在探测前会把域名通过DNS解析器解析为IP地址,也可以使用指定的DNS解析器进行解析,使用--dns-servers参数指定
使用ICMP
扫描端口
强制扫描端口
在扫描目标机器时,跳过“Ping探测”阶段,直接强制扫描端口,以此来绕过防火墙的拦截。
在默认情况下,当你使用 Nmap 扫描一个 IP 时,它会先发送一个 ICMP 请求(也就是俗称的 Ping) 去试探一下目标主机是否“活着”。
- 如果主机有回应,Nmap 才会接着扫描它的具体端口。
- 如果主机没有回应(Ping不通),Nmap 就会认为这台机器没开机或不存在,直接停止后续的扫描。
很多服务器为了安全,会开启防火墙并禁止 Ping(也就是拦截 ICMP 数据包)。
- 如果你不用
-Pn参数:Nmap 会因为 Ping 不通目标而放弃扫描,导致你获取不到任何端口信息,即使这台机器其实是正常运行的。 - 如果你加上
-Pn参数: 你就是在告诉 Nmap:“别管这台机器能不能 Ping 通,直接假设它是活着的,给我硬扫它的端口。”
指定端口扫描
使用命令-p m-n扫描之间的所有端口
端口的情况说明
- Open 表示端口处于开放状态
- Closed 表示端口处于关闭状态
- Filterd 表示端口处于过滤无法收到信息
- UnFilterd 表示端口收到返回的probe,但是无法确认
- Open/UnFilterd 表示端口处于开放或者未过滤状态
- Closed/UnFilterd 表示端口处于关闭或者为过滤状态
识别指纹
为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等。
通过分析目标往Nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等。
nmap通过向目标主机发送多个UDP与TCP数据包并分析其响应来进行操作系统指纹识别工作
全面扫描
-A通常用于对目标进行深度且全面的扫描,并实时查看扫描进度。
-A(全面扫描 / 综合扫描) 这是一个“强力”参数(Aggressive scan options)。启用它相当于同时开启了 Nmap 的四个高级功能,可以一次性获取目标机器极其丰富的指纹和配置信息:- 操作系统探测 (
-O):尝试识别目标机器运行的操作系统类型及版本。 - 服务版本探测 (
-sV):探测开放端口上具体运行的服务及版本号(也就是你上一节记的内容)。 - 默认脚本扫描 (
-sC):使用 Nmap 脚本引擎 (NSE) 中的默认脚本集合对目标进行自动化安全测试(比如检测常见漏洞、获取更详细的服务信息)。 - 路由追踪 (
--traceroute):追踪从你的电脑到目标主机之间经过的路由节点。
- 注意:因为动作很大,发送的数据包非常多,所以扫描速度较慢,且极易被目标防火墙或 IDS(入侵检测系统)记录和拦截。
- 操作系统探测 (
其他参数
详细输出
-v(详细输出模式 / Verbose)- 由于 nmap 扫描极其耗时,如果什么都不加,终端界面会一直卡在那里没有任何反馈,让人误以为程序死机了。
- 加上
-v后,Nmap 会在扫描过程中实时打印出它正在做什么(例如:“发现了一个开放的 80 端口”、“正在尝试识别操作系统”等)。 - 提示:如果想看更底层的详细信息,可以使用
-vv(双重详细)。