Nmap端口扫描工具
Nmap(Network Mapper)是一个开源的网络扫描和安全审计工具,用于发现网络上的主机和服务。Nmap通过发送特定的数据包并分析响应,可以确定主机的可达性、操作系统类型、开放端口及其对应的服务等信息。以下是Nmap的详细介绍,包括其安装、基本使用、扫描类型和常见示例。
一、Nmap的安装
在Debian/Ubuntu上安装
sudo apt update sudo apt install nmap
在CentOS/RHEL上安装
sudo yum install nmap
在macOS上安装(通过Homebrew)
brew install nmap
二、Nmap的基本使用
扫描单个主机
nmap 192.168.1.1
扫描多个主机
nmap 192.168.1.1 192.168.1.2 192.168.1.3
扫描IP范围
nmap 192.168.1.1-10
扫描子网
nmap 192.168.1.0/24
三、Nmap的扫描类型
TCP SYN扫描(默认)
nmap -sS 192.168.1.1
- 描述:发送SYN数据包,如果收到SYN/ACK响应,则端口开放。
TCP连接扫描
nmap -sT 192.168.1.1
- 描述:尝试建立完整的TCP连接,适用于无法使用原始套接字的场景。
UDP扫描
nmap -sU 192.168.1.1
- 描述:发送UDP数据包,检测UDP端口的开放状态。
SCTP INIT扫描
nmap -sY 192.168.1.1
- 描述:发送SCTP INIT数据包,检测SCTP端口的开放状态。
SCTP COOKIE-ECHO扫描
nmap -sZ 192.168.1.1
- 描述:发送SCTP COOKIE-ECHO数据包,检测SCTP端口的开放状态。
TCP ACK扫描
nmap -sA 192.168.1.1
- 描述:发送ACK数据包,确定防火墙规则和端口状态。
TCP窗口扫描
nmap -sW 192.168.1.1
- 描述:基于TCP窗口大小的差异检测端口状态。
TCP Maimon扫描
nmap -sM 192.168.1.1
- 描述:发送FIN/ACK数据包,检测端口状态。
四、Nmap常见示例
快速扫描
nmap -T4 192.168.1.1
- 描述:使用较高的速度进行扫描。
服务版本检测
nmap -sV 192.168.1.1
- 描述:检测开放端口上运行的服务版本。
操作系统检测
nmap -O 192.168.1.1
- 描述:检测目标主机的操作系统类型。
脚本扫描
nmap -sC 192.168.1.1
- 描述:使用默认的Nmap脚本引擎(NSE)脚本进行扫描。
全端口扫描
nmap -p- 192.168.1.1
- 描述:扫描所有1到65535号端口。
仅显示开放端口
nmap --open 192.168.1.1
- 描述:仅显示开放的端口。
生成扫描报告
nmap -oN output.txt 192.168.1.1
- 描述:将扫描结果保存到文件中。
五、Nmap的高级用法
结合Ping扫描
nmap -sn 192.168.1.0/24
- 描述:进行Ping扫描,检查哪些主机在线。
探测防火墙
nmap -sA 192.168.1.1
- 描述:检查目标主机是否有防火墙。
指定源端口
nmap --source-port 53 192.168.1.1
- 描述:使用特定源端口进行扫描,绕过某些防火墙规则。
使用随机数据包顺序
nmap --randomize-hosts 192.168.1.0/24
- 描述:随机化扫描顺序,避免检测。
探测特定端口范围
nmap -p 80,443,8080 192.168.1.1
- 描述:扫描指定端口。
探测僵尸主机
nmap -sI zombie_host:80 192.168.1.1
- 描述:使用僵尸主机进行隐蔽扫描。
六、Nmap脚本引擎(NSE)
Nmap脚本引擎(NSE)提供了丰富的脚本库,用于检测、漏洞扫描和网络探测。
使用默认脚本
nmap -sC 192.168.1.1
指定特定脚本
nmap --script=http-title 192.168.1.1
使用脚本类别
nmap --script=intrusive 192.168.1.1
列出所有可用脚本
ls /usr/share/nmap/scripts/
七、Nmap的输出格式
标准输出
nmap 192.168.1.1
保存为普通文本
nmap -oN output.txt 192.168.1.1
保存为XML格式
nmap -oX output.xml 192.168.1.1
保存为Grepable格式
nmap -oG output.gnmap 192.168.1.1
同时保存多种格式
nmap -oA output 192.168.1.1
总结
Nmap是一个功能强大且灵活的网络扫描工具,广泛应用于网络发现、服务版本检测、操作系统指纹识别和安全审计。通过掌握Nmap的基本使用、扫描类型、常见示例和高级用法,网络管理员和安全专家可以有效地识别和分析网络上的主机和服务,及时检测和响应潜在的安全威胁。Nmap脚本引擎(NSE)进一步扩展了其功能,提供了丰富的脚本库用于更复杂的扫描和探测任务。