1. 介绍
Nmap即网络映射器,对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。它的图形化界面是Zenmap,分布式框架为Dnamp。
1.1 基本功能
主机探测,即探测一组主机是否在线端口扫描,即扫描主机端口,嗅探所提供的网络服务推断主机所用的操作系统版本检测支持探测脚本的编写1.2 Nmap在实际中应用场合如下
通过对设备或者防火墙的探测来审计它的安全性探测目标主机所开放的端口通过识别新的服务器审计网络的安全性探测网络上的主机2. Nmap相关命令详解
2.1 Nmap用于主机发现
HOST DISCOVERY:-sL: List Scan - 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现-sn: Ping Scan - 只进行主机发现,不进行端口扫描-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析--dns-servers <serv1[,serv2],...>: 指定DNS服务器--system-dns: 指定使用系统的DNS服务器 --traceroute: 追踪每个路由节点
2.2 Nmap用于端口扫描
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX:指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
–scanflags :定制TCP包的flags。
-sI <zombiehost[:probeport]>:指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ:使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO:使用IP protocol 扫描确定目标机支持的协议类型。
-b :使用FTP bounce scan扫描方式
2.3 Nmap用于端口参数与扫描顺序
PORT SPECIFICATION AND SCAN ORDER:
-p : 扫描指定的端口
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
-F: Fast mode – 快速模式,仅扫描TOP 100的端口
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。
–top-ports :扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)
–port-ratio : 扫描指定频率以上的端口。与上述–top-ports类似,这里以概率作为参数,让概率大于–port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件。
2.4 Nmap用于版本侦测
SERVICE/VERSION DETECTION:
-sV: 指定让Nmap进行版本侦测
–version-intensity : 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
–version-light: 指定使用轻量侦测方式 (intensity 2) 。
–version-all: 尝试使用所有的probes进行侦测 (intensity 9) 。
–version-trace: 显示出详细的版本侦测过程信息。
2.5 Nmap用于操作系统探测
OS DETECTION:
-O: 启用操作系统检测,也可以使用-A来同时启用操作系统检测和版本检测
–osscan-limit:针对指定的目标进行操作系统检测
–osscan-guess:推测操作系统检测结果
3. Nmap具体操作演示
本机ip为192.168.10.55
3.1 用Nmap扫描特定IP地址
nmap 192.168.10.55 #扫描本机ip
nmap -vv 192.168.10.55 #用-vv对结果进行详细输出
nmap 192.168.10.168 #扫描别的机器ip
3.2 自行设置端口范围进行扫描
nmap -p 1-1000 192.168.10.55 #扫描本机1-1000之间的端口
3.3 指定端口号进行扫描
nmap -p 22,80,3306 192.168.10.55 #扫描本机22,88,3306的端口
3.4 对目标进行Ping扫描
nmap -sP 192.168.10.168 #探测目标主机是否在线
nmap -sP 192.168.10.0/24#探测192.168.10.0网段的主机是否在线,只显示在线的主机
3.5 路由跟踪
nmap --traceroute 192.168.10.168 #对目标主机进行路由追踪
3.6 操作系统探测
nmap -O 192.168.10.55
3.7 万能开关扫描
nmap -A 192.168.10.55 #可以查看到目标服务器上ssh的版本号、内核版本、端口等
3.8 查找主机服务版本号
nmap -sV 192.168.10.168
3.9 使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机
有时候包过滤防火墙会阻断标准的ICMP ping请求,在这种情况下,我们可以使用TCP ACK和TCP Syn方法来扫描远程主机
nmap -PS 192.168.10.168
3.10 SYN扫描
利用基本的SYN扫描方式测试其端口开放状态。
nmap -sS -T4 192.168.10.168
nmap -PS -p 22,80 192.168.10.168
3.11 FIN扫描
利用FIN扫描方式探测防火墙状态。用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。
nmap -sF -T4 192.168.10.168
3.12 ACK扫描
利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包。
nmap -sA -T4 192.168.10.168
nmap -PA -p 22,80 192.168.10.168
3.13 执行一次隐蔽的扫描
nmap -sS 192.168.10.168
都到这儿了,更多文章,详见个人微信公众号ALL In Linux,来扫一扫吧!
如果觉得《Nmap-主机 端口扫描工具》对你有帮助,请点赞、收藏,并留下你的观点哦!