工具简介
Nmap(Network Mapper)是一款开源的网络探测和安全审计工具。它被设计用来快速扫描大型网络,也可以用于单个主机的扫描。Nmap使用原始IP数据包来确定网络上可用的主机、这些主机提供的服务、运行的操作系统类型、使用的防火墙类型等信息。
主要功能
主机发现
识别网络中的活跃设备
端口扫描
检测开放的端口和服务
版本检测
识别服务和应用版本
操作系统检测
确定目标系统的操作系统
基本用法
# 基本扫描
nmap 192.168.1.1
# 扫描多个目标
nmap 192.168.1.1 192.168.1.2
# 扫描IP范围
nmap 192.168.1.1-254
# 扫描整个子网
nmap 192.168.1.0/24
# 扫描特定端口
nmap -p 80,443,3306 192.168.1.1
# 扫描所有端口
nmap -p- 192.168.1.1
# 操作系统检测
nmap -O 192.168.1.1
# 服务版本检测
nmap -sV 192.168.1.1
# 全面扫描
nmap -A 192.168.1.1
常用参数
| 参数 | 说明 |
|---|---|
| -sS | TCP SYN扫描(默认) |
| -sT | TCP连接扫描 |
| -sU | UDP扫描 |
| -p | 指定要扫描的端口 |
| -O | 操作系统检测 |
| -sV | 服务版本检测 |
| -A | 启用操作系统检测、版本检测、脚本扫描和traceroute |
| -oN | 将结果保存为普通文本 |
使用示例
示例1:网络发现
# 快速发现子网内的主机(仅ping扫描)
nmap -sn 192.168.1.0/24
# 输出结果
nmap -sn 192.168.1.0/24 -oN hosts.txt
# 发现并扫描活跃主机
nmap -sn 192.168.1.0/24 | grep "Nmap scan report for" | cut -d" " -f5 > live-hosts.txt
nmap -sS -iL live-hosts.txt
发现局域网内的主机并进行后续扫描
示例2:Web服务器审计
# 扫描Web相关端口
nmap -p 80,443,8080,8443 192.168.1.0/24
# 版本检测和脚本扫描
nmap -sV --script=http-enum,http-headers,http-title -p 80,443 192.168.1.1
# 查找特定漏洞
nmap --script=vuln -p 80,443 192.168.1.1
# 完整Web应用扫描
nmap -sV -p 80,443 --script=http-* 192.168.1.1
检测Web服务器及其安全性
安全提示
- 仅在获得授权的网络上使用
- 大规模扫描可能会触发入侵检测系统警报
- 在生产环境中使用前先测试所有扫描
- 请注意某些扫描可能会导致服务中断
- 减少扫描频率可降低被发现的风险