NMAP使用教程
1.NMAP介绍
Nmap是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹、WAF识别及常见安全漏洞。它的图形化界面是Zenmap,分布式框架为Dnmap。
Nmap的主要特点如下所示:
- 主机探测:探测网络上的主机,如列出相应tcp和ICMP请求、ICMP请求、开放特别端口的主机。
- 端口扫描:探测目标主机所开放的端口。
- 版本检测:探测目标主机的网络服务,判断其服务名称及版本号。
- 系统检测:探测目标主机的操作系统及网络设备的硬件特性。
- 支持探测脚本的编写:使用Nmap的脚本引擎和Lua编程语言。
2.NAMP入门
2.1 扫描单个目标地址
Nmap 192.168.181.129
2.2 扫描多个目标地址
Nmap 150.109.68.57 192.168.181.129
2.3 扫描一个范围内的目标地址
Nmap 192.168.181.100-110
2.4 扫描目标地址所在的某个网段
Nmap 192.168.181.100/24
2.5 扫描主机列表targets.txt中所有的目标地址
Nmap –iL C:\Users\targets.txt
2.6 扫描除某一目标地址之外的所有目标地址
Nmap 192.168.181.100/24 –exclude 192.168.181.128
2.7 扫描除某一文件中的目标地址之外的目标地址
Nmap 192.168.0.100/24 –excludefile C:\Users\targests.txt
2.8 扫描某一目标地址的21、22、23、80端口
Nmap 192.168.0.100 –p 21,22,23,80
2.9 对目标地址进行路由追踪
Nmap --traceroute 192.168.0.105
2.10 扫描目标地址所在C段的在线状况
Nmap –sP 192.168.0.100/24
2.11 目标地址的操作系统指纹识别
Nmap –O 192.168.0.100
2.12 目标地址提供的服务版本检测
Nmap –sV 192.168.0.100
2.13 探测防火墙状态
Nmap –sF –T4 192.168.181.129
状态识别
状态 含义 Open 开放的,表示应用程序正在监听该端口的连接,外部可以访问 Filtered 被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问 Closed 关闭的,表示目标主机未开启该端口 Unfiltered 未被过滤的,表示Nmap无法确定端口所处状态,需进一步探测 open/filtered 开放的或被过滤的,Nmap不能识别 Closed/filtered 关闭的或未被过滤的,Nmap不能识别
3.NMAP进阶
3.1 鉴权扫描
使用--script=auth可以对目标主机或目标主机所在的网段进行应用弱口令检测。 Nmap --script=auth 192.168.0.105
3.2 暴力破解攻击
Nmap具有暴力破解的功能,可对数据库,smb,snmp等进行简单密码的暴力猜解。 Nmap --script=brute 192.168.0.105
3.3 扫描常见漏洞
Nmap具有漏洞扫描的功能,可以检查目标主机或网段是否存在常见的漏洞。 Nmap --script=vuln 192.168.0.105
3.4 应用服务扫描
Nmap具有很多常见应用服务的扫描脚本,例如vnc服务、mysql服务、Telnet服务、rsync服务等,此处以vnc服务为例。 Nmap --script=realvnc-auth-bypass 192.168.0.105
3.5 探测局域网内更多服务开启的情况
Nmap –n –p 445 --script=broadcast 192.168.0.105
3.6 Whois解析
Nmap –script external baidu.com
4.参数详解
用法:nmap [扫描类型] [选项] {目标规范} 目标规格:可以传递主机名,IP地址,网络等。 -iL <输入文件名>:从主机/网络列表中输入 -iR <num主机>:选择随机目标 --exclude <host1 [,host2] [,host3],...>:排除主机/网络 --excludefile <exclude_file>:从文件中排除列表 主机发现: -sL:列表扫描-仅列出要扫描的目标 -sP:Ping扫描-只能确定主机是否在线 -P0:将所有主机视为在线-跳过主机发现 -PS / PA / PU [端口列表]:对给定端口的TCP SYN / ACK或UDP发现探针-PE / PP / PM:ICMP回显,时间戳和网络掩码请求发现探针 -n / -R:从不进行DNS解析/始终解决 扫描技术: -sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon扫描 -sN / sF / sX:TCP Null,FIN和Xmas扫描 --scanflags <标志>:自定义TCP扫描标志 -sI <僵尸主机[:probeport]>:Idlescan -sO:IP协议扫描 -b <ftp中继主机>:FTP退回扫描 端口规格和扫描顺序:-p <端口范围>:仅扫描指定的端口,例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F:快速-仅扫描nmap-services文件中列出的端口) -r:连续扫描端口-不要随机化 OS检测: -O:启用OS检测 --osscan-limit:将OS检测限制在有希望的目标上 --osscan-guess:猜测OS -T [0-6]:设置定时模板(越高越快) --min-hostgroup / max-hostgroup <msec>:并行主机扫描组大小 --min-parallelism / max-parallelism <msec>:探针并行化 --min-rtt-timeout / max-rtt-timeout / initial-rtt -timeout <msec>:指定 服务/版本检测: -sV:探测打开的端口以确定服务/版本信息 --version-light :仅限于可能的探针以进行更快的识别 --version-all:尝试对每个探针进行版本检测 --version-trace:显示详细的版本扫描活动(用于调试) MISC的XSL样式表: -6:启用IPv6扫描 -A:启用OS检测和版本检测 --datadir <dirname>:指定自定义Nmap数据文件位置 --send-eth /-send-ip:使用原始以太网帧或IP数据包发送数据包 --privileged:假定用户具有完全特权 -V:打印版本号 -h:打印此帮助摘要页面。 例子: nmap -v -A scanme.nmap.org nmap -v -sP 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -P0 -p 80 探针往返时间 --host-timeout <msec>:经过很长的时间后放弃目标 --scan-delay /-max-scan-delay <msec>:调整两次探查之间的延迟防火墙/ ID闪避和溢出 -f; --mtu <val>:分片数据包(可选的/具有给定的MTU) -D <decoy1,decoy2 [,ME],...>:用诱饵掩盖扫描 -S <IP_Address>:欺骗源地址 -e <iface >:使用指定的接口 -g /-source-port <端口号>: --data-length <num>:将随机数据附加到发送的数据包中 --ttl <val>:设置IP生存时间字段 --spoof-mac <mac地址,前缀或供应商名称>:欺骗您的MAC地址