Nmap备忘单:从探索到漏洞利用 第一章
东二门陈冠希
在侦查过程中,信息收集的初始阶段是扫描。
侦查是什么?
侦查是尽可能多的收集目标网络的信息。从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息:
电子邮件、端口号、操作系统、运行的服务、Traceroute或者DNS的信息、防火墙识别和逃逸等等
NMAP的简介nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
NMAP脚本引擎NMAP脚本引擎是NMAP最强大且灵活的特性。它允许用户编写简单的脚本来自动化执行各种网络任务,基本上这些脚本采用lua语言进行编写。通常NMAP的脚本引擎可以做很多事情,比如:
网络发现这是NMAP的基本功能,例子包括查找目标域名的whois信息,在查询ARIN,RIPE,或APNIC上查询目标ip的所有权,查找开放端口,SNMP查询和列出可用的NFS/SMB/RPC共享和服务。
漏洞检测当一个新的漏洞被发现,你想赶在入侵者之前快速扫描网络来识别出有漏洞的系统。虽然NMAP不是一个全面的漏洞扫描器,但NSE是强大到足以应付苛刻的漏洞检查。许多漏洞脚本已经可用,并计划编写更多的脚本。
后门检测很多攻击者和一些自动化蠕虫会留下后门以便后期可再次进入。其中一些可以被NMAP基于正则表达式检测。
漏洞利用作为一种脚本语言,NSE甚至可以进行漏洞利用,而不仅仅是找到它们。添加自定义攻击脚本的这个功能可能对某些人(特别是渗透测试人员)有价值,但不打算把NMAP开发成metasploit框架那样的东西。
正如你所看到的,我已经使用(-sc)选项(或-script),这会执行一个默认脚本来扫描网络。你可以看到我们得到ssh、rpcbind netbios-sn,但端口过滤或关闭,所以我们可以说,可能会有一些防火墙阻塞我们的请求。稍后我们将讨论如何识别防火墙和试图逃避它们。
现在我要发现模式的运行ping扫描(-sP –script discovery),这样它会尝试所有可能的方法来扫描,这样我将得到更多有趣的信息。
图像中可以看到,它正在根据脚本的规则尝试所有可能的方法。有关更多信息,请参见下一个图像。
你能看到有趣的端口和协议吗?你可以看到dns-bruteforce发现主机包含一些blog,cms,sql,log,mail等二级域名。这里我们可以执行SQL注入,博客可能是WordPress,Joomla等,所以我们可以利用已公开的CMS漏洞。
接下来我会描述如何编写自己的NMAP脚本,并通过NMAP去调用。
基本扫描技术
在这里我将展示用于扫描网络/主机的基本技巧。但在此之前,你应该知道关于扫描后的NMAP状态的一些基本的东西。
端口状态:扫描后,你可能会看到一些结果,端口状态是过滤,打开,关闭,等等。让我解释这一点。
扫描单个网络开放:这表明一个应用程序侦听此端口上的连接。
关闭:这表示收到了探头,但没有应用程序侦听此端口。
已过滤:这表明探针没有收到,无法建立连接。它也表明探针被某些筛选给丢弃。
未过滤:这表明探针接收但无法建立连接。
打开/过滤:这表示该端口进行过滤或打开,但NMAP的无法建立连接。
关闭/过滤:这表示该端口进行过滤或关闭,但NMAP的无法建立连接。
执行NMAP 192.168.1.1或者www.baidu.com这样的主机名。
扫描多个网络/目标执行NMAP 192.168.1.1 192.168.1.2等,NMAP将扫描同个网段内不同的ip地址。
你还可以在相同的命令一次扫描多个网站/域名。见下面的图片。这将域名转换为其对应的IP地址和扫描目标。
扫描连续的IP地址命令:NMAP 192.168.2.1-192.168.2.100
NMAP也可以用使用CIDR(无类别域间路由)表示法整个子网。
命令:NMAP 192.168.2.1/24
扫描目标列表
如果你有大量的系统进行扫描,就可以在文本文件中输入IP地址(或主机名),并使用该文件作为输入。
命令:NMAP -iL [LIST.TXT]
扫描随机目标
该-IR参数可以用来选择随机Internet主机进行扫描。 NMAP会随机生成目标的指定数量,并试图对其进行扫描。
侵入性扫描语法:NMAP -ir [主机数]
该-exclude选项与用于从NMAP的扫描中排除主机。
命令:NMAP 192.168.2.1/24 -exclude 192.168.2.10
最常用的NMAP的选项,试图用一个简单字母A的替代长字符串。它也会执行路由跟踪等。
命令:NMAP -A主机
使用NMAP探索
使用NMAP探索是非常有趣且对渗透测试非常有帮助。在发现过程中可以了解服务,端口号,防火墙的存在,协议,操作系统等,我们将一个接一个讨论。
不进行Ping
该-PN选项指示NMAP跳过默认的发现检查并对执行对目标的完整端口扫描。当扫描被阻止ping探针的防火墙保护的主机时,这是非常有用的。
语法:NMAP -PN 目标
仅进行Ping扫描
选项-sP让NMAP仅对主机进行ping。当要探测一批ip地址中哪些是可达的时候非常有用。通过指定特定的目标,你可以得到更多的信息,比如MAC地址。
命令: NMAP -sP 目标
TCP SYN扫描
在我们开始之前,我们必须知道SYN数据包是什么。
基本上是一个syn包被用于启动两个主机之间的连接。
在TCP SYN ping发送一个SYN包到目标系统,并监听响应。这种替代探索方法对被配置为阻止标准ICMP ping消息主机是有用的。
该-PS选项进行TCP SYN Ping。
命令:NMAP -PS主机
TCP Ack Ping扫描
这种类型的扫描将只扫描确认(ACK)数据包。
选项-PA对指定主机进行TCP Ack Ping扫描。
命令:NAMP -PA 目标
UDP Ping 扫描
选项-P对指定主机进行UDP Ack Ping扫描。
SCTP初始化Ping
选项-PY指示的Nmap执行一个SCTP INIT Ping。此选项将包含一个最小的INIT块的SCTP包。这一探索方法试图找到使用流控制传输协议(SCTP)主机。 SCTP通常用于对基于IP的电话系统。
命令:NMAP -PY 目标
ICMP Echo ping
选项-PE将对指定主机执行ICMP(互联网控制消息协议)回显Ping。
命令:NMAP -PE 目标
ICMP 时间戳 ping
选项-PP执行一次ICMP时间戳ping。
命令:NAMP -PP 目标
ICMP 地址掩码 ping选项-PM 进行ICMP 地址掩码 ping.
命令:nmap –PM target
IP 协议 Ping
选项-PO执行IP协议Ping扫描
命令:NMAP -PO protocol 目标
一个IP协议的ping发送带有指定的协议目标的数据包。如果没有指定的协议,则默认的协议1(ICMP)、2(IGMP)和4(IP中的IP)的使用。
ARP Ping
选项-PR用于执行ARP ping扫描。该-PR选项指示的Nmap对指定目标执行ARP(地址解析协议)ping操作。
命令:NMAP -PR 目标
扫描本地网络时,-PR选项会自动暗中启用。这种类型的发现是比其它Ping的方法快得多。
路由跟踪
选项-traceroute可被用于跟踪的网络路径指定的主机。
语法:NMAP -traceroute 目标
强制反向DNS解析
选项-r指示的Nmap始终执行对目标IP地址的反向DNS解析。
语法:NMAP -R 目标
选项-r在对一个IP段进行侦查时非常有用,Nmap将尝试查询每个ip地址的反向DNS信息 。
禁用反向DNS解析
选项-n用于禁用反向DNS解析
命令:NMAP -n 目标
反向dns解析会很明显的减慢Nmap扫描的过程。使用-n选项大大降低了扫描时间,尤其是扫描大量主机的时候。如果你不关心目标系统的DNS信息,并愿意执行产生更快的结果扫描此选项很有用。
选择DNS查找方法
选项-system-dns指示NMAP使用主机系统自带的DNS解析器,而不是其自身内部的方法。
命令:NMAP -system-dns 目标
手动指定DNS服务器
选项-dns-servers用于扫描时手动指定DNS服务器进行查询。
语法:NMAP -dns-server server1 server2 目标
选项-dns-servers允许您为nmap的查询指定一个或多个备用服务器,这对于没有配置DNS,或者如果你想防止您的扫描查找出现在您的本地配置的DNS服务器的日志文件系统非常有用。
清单扫描
选项-sL将显示一个列表,并执行指定的IP地址反向DNS查找。
语法:NMAP -sL 目标
在接下来的文章中,我将讨论如何使用不同的方法来发现服务,主机和banner,并还将讨论如何和怎样在Nmap使用NSE来找到和逃避防火墙,以及如何编写自己的Nmap脚本。 Nmap的最重要的部分是知道如何查找漏洞,并尝试利用它们。 敬请关注。
*参考来源:infosecinstitute,FB小编东二门陈冠希编译,转载请注明来自FreeBuf黑客与极客