目录
综合信息收集扫描 (Stealth SYN + Service + OS)
Nmap 主要功能
Nmap 主要有以下几个核心功能,这些功能帮助网络管理员和安全专业人员深入了解网络状态和安全态势:
- 主机发现:识别网络中有哪些主机在线(存活)。
- 端口扫描:检测目标主机上哪些端口是开放的、关闭的或被过滤的。
- 服务及版本探测:识别开放端口上运行的服务及其具体的版本信息。
- 操作系统检测:推断目标主机所使用的操作系统类型和版本。
- 脚本引擎(NSE):使用内置的 Lua 脚本进行更高级的检测,如漏洞扫描、漏洞利用等。
网络存活主机发现 (ARP Ping Scan)
sudo nmap -sn -PR 192.168.1.0/24
-sn
: 禁用端口扫描,只进行主机发现。-PR
: 使用 ARP 请求进行发现。在本地局域网中,ARP 比 ICMP Ping 更可靠、更快,且无法被防火墙阻止。- 使用场景:在取得内网访问权限后,快速、准确地绘制本地网段的存活主机地图。
综合信息收集扫描 (Stealth SYN + Service + OS)
sudo nmap -sS -sV -O --top-ports 1000 -T4 192.168.1.105
-sS
: TCP SYN (半开放) 扫描。发送 SYN 包,收到 SYN/ACK 则认为端口开放,但不完成三次握手,速度快且隐蔽。-sV
: 版本探测。向开放端口发送特定探测报文,根据响应指纹识别服务及其版本号。-O
: 操作系统检测。通过分析 TCP/IP 协议栈指纹来猜测目标操作系统。--top-ports 1000
: 扫描 Nmap 数据库中概率最高的 1000 个端口,在速度和信息收集量之间取得最佳平衡。-T4
: 设置时序模板为 4 (Aggressive),加快扫描速度。- 使用场景:对目标进行初步但全面的侦查,获取端口、服务、版本和操作系统等核心信息,为后续攻击提供方向。
全端口扫描 (Full Port Scan)
sudo nmap -sS -p- --min-rate 5000 -T4 -Pn 192.168.1.105
-p-
: 扫描所有 65535 个端口。--min-rate 5000
: 指示 Nmap 每秒至少发送 5000 个包。这是极重要的优化参数,可大幅提升扫描速度。-Pn
: 跳过主机发现,将所有主机视为在线。在对单一目标进行全端口扫描时使用,避免发现阶段浪费时间。- 使用场景:在需要彻底排查目标开放端口时使用,常用于攻击面较小的关键服务器,以发现隐藏的、非标准的管理端口或后门。
NSE 漏洞脚本扫描
nmap -sV --script vuln -p 80,443,445 192.168.1.105
--script vuln
: 调用所有分类为 "vuln" (漏洞) 的 NSE 脚本。这些脚本会检查目标是否存在已知的公开漏洞。-p 80,443,445
: 限制扫描端口,只对最可能存在漏洞的服务进行检测,提高效率。- 使用场景:快速对目标进行漏洞筛查,寻找容易利用的弱点 (low-hanging fruit)。常用于时间紧迫的评估或大规模资产初筛。
SMB 信息枚举
nmap --script smb-enum-shares,smb-enum-users,smb-os-discovery -p 445 192.168.1.105
--script smb-enum-shares
: 枚举可用的 SMB 共享文件夹。--script smb-enum-users
: 尝试枚举系统上的用户账户。--script smb-os-discovery
: 获取通过 SMB 披露的操作系统信息。- 使用场景:在发现开放 445 端口后,对 Windows 或 Samba 服务器进行深度信息收集,为横向移动或权限提升做准备。
HTTP 服务深度枚举
nmap -p 80,443,8080,8443 --script http-enum,http-headers,http-security-headers -sV 目标IP
--script http-enum
: 基于字典枚举 Web 目录和文件(如/admin
,/phpmyadmin
)。--script http-headers
: 获取 HTTP 响应头,分析服务器、框架、Cookie 等信息。--script http-security-headers
: 检查缺失的安全头(如 CSP, HSTS, X-Frame-Options)。- 使用场景:对 Web 服务器进行快速配置审计和敏感路径发现,寻找攻击入口。
SSH 安全审计
nmap -p 22 --script ssh2-enum-algos,ssh-hostkey,ssh-auth-methods 目标IP
ssh2-enum-algos
: 枚举 SSH 支持的加密算法、MAC 算法和压缩算法。用于发现弱算法。ssh-hostkey
: 获取 SSH 服务器的主机密钥(公钥)及其指纹。ssh-auth-methods
: 列出服务器支持的认证方法(如publickey
,password
,keyboard-interactive
)。- 使用场景:评估 SSH 服务配置安全性,为暴力破解或算法降级攻击提供信息。
隐蔽扫描与防火墙规避
sudo nmap -sF -T2 --scan-delay 500ms -f --data-length 16 -D RND:10,ME -g 53 目标IP
-sF
: FIN 扫描。发送只有 FIN 标志位的 TCP 包。关闭的端口会回复 RST,开放的端口则忽略。可能绕过无状态防火墙。-T2 --scan-delay 500ms
: 使用慢速扫描 (T2
/Polite
) 并手动添加延迟,大幅降低流量速率,避免触发 IDS 阈值。-f
: 对探测包进行 IP 分片,使包过滤器更难检测。--data-length 16
: 在包中添加随机长度的净荷,扰乱流量特征分析。-D RND:10,ME
: 使用 10 个随机诱骗 IP,并用ME
代表真实地址,淹没在噪音中。-g 53
: 指定源端口为 53 (DNS)。防火墙可能对来自此端口的流量策略更宽松。- 使用场景:在需要高度隐蔽、绕过严格的防火墙或入侵检测系统 (IDS) 时使用。速度极慢,但隐蔽性极高。