1. Nmap简介
- Nmap是一款用于网络发现和安全审计的网络安全工具。可用于列举网络主机清单、管理服务升级调度、监控主机、监控主机服务运行状况、检测目标主机是否在线和端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等。
2. 命令大纲
3. 命令详细介绍
3.1 端口扫描(Port Scanning)
- 检测目标主机上各个端口的状态(开放、关闭、过滤等)。支持多种扫描技术,如TCP SYN扫描、TCP Connect扫描、ACK扫描、UDP扫描、FIN扫描、IDLE扫描等。
3.1.1 TCP SYN扫描(半开放扫描)
- 命令:nmap -sS 192.168.206.140 或者 nmap 192.168.206.140
- 这种扫描方式通常用于不建立完整连接的情况下探测目标主机的TCP端口状态,避免了完整的三次握手过程,因此更隐蔽。默认就是TCP SYN扫描。
- 我这里扫描虚拟机可用端口,可以看到扫描到了三个开放端口。
- 以80端口为例,通过抓包可以看到,TCP SYN扫描,只要对端回复了ACK就认为端口是开放状态,不用建立三次握手。
3.1.2 TCP Connect扫描
- 命令:nmap -sT 192.168.206.140
- TCP Connect扫描会完成三次握手以确定端口是否开放。虽然这种方法相对慢且可能更容易被检测到,但其结果最可靠。
- 同样扫描到了三个开放端口
- 抓包可以看到,TCP Connect扫描必须完成三次握手才认为端口是开放状态。
3.1.3 UDP扫描
- 命令:nmap -sU 192.168.206.140
- 扫描开放的UDP端口
- 抓包可以看到UDP扫描时的数据包。
3.1.4 端口服务及版本扫描
- 命令:namp -sV 192.168.206.140
- 可以扫描到端口对应的服务及版本信息
- 可以看到,扫描的22端口是OpenSSH服务,80和8011是Nginx服务。
3.1.5 详细信息扫描
- 命令:namp -vv 192.168.206.140
- 提供更详尽的扫描过程信息和结果反馈。这包括了更多的调试信息、每个步骤的详细说明以及可能影响扫描行为的内部决策等。
- 可以比对下,详细扫描的结果
3.1.6 所有信息扫描
- 命令:nmap -A 192.168.206.140
- 这样扫描的更加详细,并且还会扫描出路由信息
- 我扫描的虚拟机地址,因此这里是直连。
- 扫描百度可以看到,经过了好几个路由。
3.1.7 随机扫描和延时扫描
- 命令:nmap --randomize-hosts --scan-delay 5 192.168.206.140
- 有时候扫描太快,可能会触发主机的防火墙,因此可以延时扫描,5代表延时5秒
3.1.8 指定端口扫描
- 扫描指定端口:nmap 192.168.206.140 -p 80 或者 nmap 192.168.206.140 -p 80,8011
- 扫描指定范围的端口:nmap 192.168.206.140 -p 1-1024
- 扫描全部端口(1-65535端口):nmap 192.168.206.140 -p-
3.1.9 扩展
- 如果我们是维护公司服务器的,有时候扫描出来公司服务器的端口开放着,但不知道这个端口是干什么的,是谁启动的。可以登录服务器,使用 lsof -i:port 查看端口
- 比如这里扫描到8011端口不知道是什么,就可以登录对应服务器查看。会有详细描述,包括所属程序,启动用户和端口状态等信息。
- 如果从网页去访问8011端口,也能从服务看到对方的信息。
3.2 主机探测(Host Discovery)
- 也称为ping扫描或存活探测,用于检测网络上的活动主机。它能通过多种方式(如ICMP、TCP、UDP等)来确定哪些主机在线。
3.2.1 扫描单个主机
- 命令:nmap -sP 192.168.1.2
- 如果主机在线,会显示Host is up
- 扫描一个不存在的主机,会报Host seems down,主机宕机。
3.2.2 扫描一个IP地址范围
- 命令:nmap -sP 192.168.1.1-255或者nmap -sP 192.168.1.1/24
- 在1-255网段,扫描到了三个在线的主机。
3.3 操作系统类型检测
- 命令:nmap -O 192.168.206.140
- 用于探测目标主机运行的操作系统类型和版本。
3.4 Nmap防火墙
- nmap扫描出来的端口状态
- open: 端口开放
- filtered: 端口被防火墙或安全软件阻止了,也可能是网络堵塞
- closed: 端口关闭
- 如果扫描时发现有的端口被防火墙阻止了,可通过以下方法绕过防火墙
- -PS: 实施TCP SYN ping扫描绕过防火墙
- -PA: 只扫描ACK包,可绕过防火墙
- -PU: 只对目标进行udp ping扫描。这种类型的扫描会发送UDP包来获取一个响应,可绕过防火墙。
- -PP: 进行一个ICMP时间戳ping扫描,可绕过防火墙
- -PE: 进行一个IEMP在指定的系统上输出ping,可绕过防火墙
- -Pn: 不采用ping方式扫描,可绕过防火墙
- -sA: 用于发现防火墙规则
3.5 结果导出
- 可以把扫描结果导出到文件中
- 命令:nmap 192.168.206.140 -oN res.txt
- 命令:nmap 192.168.206.140 -oX res.xml