在侦查过程中,信息收集的初始阶段是扫描。

侦查是什么?

侦查是尽可能多的收集目标网络的信息。从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息:

电子邮件、端口号、操作系统、运行的服务、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黑客与极客

点赞(186)

评论列表共有 0 条评论

立即
投稿
返回
顶部