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地址