Nmap是一个免费的开源用于网络发现和安全审计的实用程序,简单来说nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。在kali里已经集成了nmap,大家可以通过安装kali来使用nmap这个工具。它还有一个图形化界面的叫zenmap
nmap的常用参数介绍
-p(指定端口号)
-Pn(不进行ping扫描)
-PS(syn ping扫描)
-PA(ACK ping扫描)
-PU(UDP ping扫描)
-PR(ARP扫描)
-PE -PP -PM(ICMP扫描) nmap -PE -PP -PM --send-ip 目标ip (探测主机是否存活) nmap -PP --excludefile ip 目标ip (不显示扫描结果,为了让存活扫描更快)
-PB(ICMP扫描)
-n(不用域名解析)
-R(为所有目标解析域名)
-iL(从列表中选东西)先创一个文件夹,然后nmap -iL 5.txt
-iR(随机选择目标)
-sS(半开放扫描)
-v(详细内容)
-vv(更加详细的内容)
-O(系统探测)
-oN(txt格式输出)
-oX(xml格式输出)
-oG(GREP输出)
-sT(TCP扫描)
-sU(udp扫描)
-sA(tcp ACK扫描)
-F(快速扫描端口)
-r(按随机顺序扫描端口)
-f(绕过防火墙)
-D (使用诱饵隐藏扫描) nmap -D假ip 目标ip
-e(使用指定接口)
脚本扫描
nmap脚本路径cd /usr/share/nmap/scripts
然后ls大家可以看到nmap的很多配套脚本
nmap的使用
nmap 要用的参数 要扫描的IP地址
例如 nmap -A x.x.x.x (-A是要使用的参数(参数已经在上方介绍了)x.x.x.x(要扫描的ip地址))
nmap脚本扫描
例如:nmap --script 刚才ls列出的脚本名 目标地址
nmap的6个扫描状态
-
open
应用程序正在此端口上主动接受 TCP 连接、UDP 数据报或 SCTP 关联。找到这些通常是端口扫描的主要目标。具有安全意识的人知道每个开放端口都是攻击的途径。攻击者和渗透测试者希望利用开放端口,而管理员则试图在不阻止合法用户的情况下使用防火墙关闭或保护它们。开放端口对于非安全扫描也很有趣,因为它们显示可在网络上使用的服务。
-
closed
关闭的端口是可访问的(它接收并响应 Nmap 探测数据包),但没有应用程序监听它。它们有助于显示主机在 IP 地址上运行(主机发现或 ping 扫描),并作为操作系统检测的一部分。因为关闭的端口是可访问的,所以以后可能值得扫描,以防某些端口打开。管理员可能需要考虑使用防火墙阻止此类端口。然后它们会以过滤状态出现,接下来讨论。
-
filtered
Nmap 无法确定端口是否打开,因为包过滤阻止其探测到达该端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。这些端口会挫败攻击者,因为它们提供的信息太少。有时它们会以 ICMP 错误消息作为响应,例如类型 3 代码 13(目标不可达:管理上禁止通信),但过滤器简单地丢弃探测而不响应的情况要常见得多。这会强制 Nmap 重试几次,以防探测由于网络拥塞而不是过滤而被丢弃。这会显着减慢扫描速度。
-
unfiltered
未过滤状态意味着端口可以访问,但 Nmap 无法确定它是打开还是关闭。只有用于映射防火墙规则集的 ACK 扫描将端口分类为这种状态。使用其他扫描类型(例如窗口扫描、SYN 扫描或 FIN 扫描)扫描未过滤的端口可能有助于确定端口是否打开。
-
open|filtered
当无法确定端口是打开还是过滤时,Nmap 会将端口置于此状态。对于开放端口没有响应的扫描类型,会发生这种情况。缺少响应也可能意味着数据包过滤器丢弃了探测或它引起的任何响应。所以 Nmap 不能确定端口是打开还是被过滤了。UDP、IP 协议、FIN、NULL 和 Xmas 扫描以这种方式对端口进行分类。
-
closed|filtered
端口是打开还是被过滤了。UDP、IP 协议、FIN、NULL 和 Xmas 扫描以这种方式对端口进行分类。
-
closed|filtered
当 Nmap 无法确定端口是关闭还是过滤时使用此状态。它仅用于 IP ID 空闲扫描。