Kali Linux,作为一个专为网络安全和渗透测试设计的Linux发行版,内置了Nmap这一开源网络扫描和安全审计工具。Nmap因其强大的功能而被广泛用于网络安全领域。在Kali Linux中,Nmap已经预装,因此用户可以直接开始使用。
nmap扫描有以下几个部分:主机发现,端口扫描,版本检测,操作系统检测等;下面我主要讲述这几部分。
1.主机发现
这个主要用于确定网络上哪些主机是活动的。它的原理与ping类似,但是手段不限于ping。有时ping是无法测出对方主机是否存活的,比如在对方开启防火墙禁用ping的情况下。
以下是常用命令及说明:
-sL:List Scan,仅列出指定目标的IP地址,不进行主机发现。
-sn:Ping Scan,只进行主机发现,不进行端口扫描。会发送多种类型的数据包进行探测。
-Pn:假设所有指定的主机都是开启的,跳过主机发现,直接进行端口扫描。
-PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO方式进行端口扫描。
nmap -PS 192.168.2.0/24:对192.168.2.0/24网段进行TCP SYN扫描。如果不指定端口,会自动扫描1000个常用端口,速度较慢。
-PE/PP/PM:使用ICMP echo、timestamp和netmask请求包来发现主机。
-PO[protocollist]:使用IP协议包探测对方主机是否开启。
-n/-R:-n表示不进行DNS解析,-R表示总是进行DNS解析。
--dns-servers<serv1[,serv2],...>:指定使用的DNS服务器。
--system-dns:使用系统的DNS服务器。
--traceroute:追踪每个路由节点。
解释:
-sP :Ping 扫描
-PO:无 Ping 扫描
-PS:TCP SYN Ping 扫描
-PA:TCP ACK Ping 扫描
-PU:UDP Ping 扫描
-PE;-PP;-PM:ICMP Ping Types 扫描
-PR:ARP Ping 扫描
-n:禁止DNS 反向解析
-R:反向域名解析
-SL:列表扫描
演示:
nmap -sn 192.168.1-100 (也可以是外网)扫描局域网192.168.1-192.168.100范围内哪些IP的主机是活动的。

2.端口扫描
端口扫描是nmap最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。默认情况下,Nmap会扫描1000个最有可能开放的TCP端口。Nmap通过探测将端口划分为6个状态:
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙或IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
open|filtered:端口是开放的或被屏蔽。
closed|filtered:端口是关闭的或被屏蔽。
用法:
-sS/sT/sA/sw/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
# nmap -sS 192.168.2.108
# nmap -ss -p500-2000 192.168.2.108
-sU:指定使用UDP扫描方式确定目标主机的UDP端口状况。
-SN/sF/sX:指定使用TCP Nu11,FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags <flags>:定制TCP包的flags。
-sI <zombiehost[:probeport]>:指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ:使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO:使用IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>:使用FTP bounce scan扫描方式。
下图就可以看到哪些端口是开放的:

c段端口扫描:
nmap -p 80,443,8000,8080 -Pn 152.136.221.120/200
注释:-Pn:指定iP地址段,前面的是四个端口。这个命令的意思是扫描从152.136.221.120开始的200个IP地址上的80、443、8000和8080端口,并且不进行主机发现。
3.版本检测
在确定了开放的端口之后,Nmap可以进一步尝试确定运行在这些端口上的服务的版本信息。这是通过发送特定的数据包并分析响应来完成的,目的是识别服务的确切版本。
用法
-sV:指定让Nmap进行版本侦测(V指version)
--version-intensity <level>:指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-1ight:指定使用径量侦测方式 (intensity 2)
--version-a11:尝试使用所有的probes进行侦测 (intensity 9)
--version-trace:显示出详细的版本侦测过程信息。
演示:

4.操作系统检测
Nmap可以通过分析响应数据包的特征来推断目标主机的操作系统类型。这通常涉及到发送一系列数据包并分析响应的时间、大小和特征。
用法:
-0:指定Nmap进行OS侦测。
--osscan-1imit:限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和cTosed的端口)。
--osscan-guess:大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。
1171

被折叠的 条评论
为什么被折叠?



