Metasploit端口扫描技术

xingyun86 2018-7-17 2575


作为一款渗透测试业界使用广泛的工具,Metasploit包含多种端口扫描技术,并与其它扫描工具接口良好,例如nmap扫描结果可以很方便的导入,或者使用db_nmap命令,其功能与nmap一样。下面我们逐一介绍Metasploit的端口扫描技术。

准备工作

Metasploit中的扫描器和大部分的其他辅助模块使用RHOSTS选项而不是RHOST,RHOSTS选项可以是IP地址段(192.168.1.20-192.168.1.30),CIDR地址段
(192.168.1.0/24),由逗号分隔的多个地址段(192.168.1.0/24, 192.168.3.0/24),以及行分隔的主机列表文件(file:/tmp/hostlist.txt)。

默认情况下,所有扫描器模块的THREADS值都将设置为“1”。 THREADS值设置扫描时要使用的并发线程数。 将此值设置为更高的数字,以加快扫描速度或降低扫描速度,以减少网络流量,但请务必遵守以下准则:

● 将Win32系统上的THREADS值保持在16以下

● 在Cygwin下运行MSF时,请将THREADS保持在200以下

● 在类Unix操作系统上,THREADS可以设置高达256。

本节内容包括:

● nmap &
db_nmap

● 端口扫描

● SMB版本扫描

● 空闲扫描


nmap & db_nmap

我们可以使用db_nmap命令对目标运行Nmap,扫描结果会自动存储在数据库中。 但是,如果希望稍后将扫描结果导入到其他应用程序或框架中,则可能需要以XML格式导出扫描结果。nmap拥有三种输出格式(xml,grepable和normal)。 可以使用'-oA'标记后跟所需的文件名来运行Nmap扫描,以生成三个输出文件,然后发出db_import命令来导入Metasploit数据库。

如下面例子所示,在msfconsole中调用nmap对192.168.26.0/24网段的主机进行扫描和服务版本探测(-sV),并详细输出结果(-v),结果以三种输出格式写入subnet_1中。

下图红框中为输出结果文件。

下面使用db_import命令将结果导入到Metasploit数据库中,并使用hosts命令查看导入的结果。

如果希望将扫描自动保存到Metasploit数据库中,可以省略输出标志并使用db_nmap。上面的nmap扫描示例可以修改为“db_nmap -v -sV 192.168.1.0/24”。

我们先使用“hosts -d”命令将刚才导入的结果从数据库中删除,然后使用db_nmap重新扫描。

从上面的扫描结果看,db_nmap扫描结果和nmap扫描结果一样。


端口扫描

除了运行Nmap之外,还有其他端口扫描器可以在框架内使用。在msfconsole下运行search portscan命令搜索Metasploit中的端口扫描器

为了比较起见,我们将对比nmap与Metasploit扫描模块对端口80的扫描结果。 首先,使用nmap扫描开放80端口的主机。以下命令的含义是:屏幕输出subnet的扫描结果,并grep命令搜索80/open的结果,打印IP地址

先前运行的nmap扫描是SYN扫描,因此在Metasploit中,针对同一个IP地址段同样运行SYN扫描。

可以看到,两者的扫描结果一样。

下面加载'tcp'扫描器,并将它用于另一个目标。 与所有前面提到的插件一样,它使用RHOSTS选项。 请记住,我们可以发出'hosts -R'命令,以使用我们的数据库中的主机自动设置此选项。

我们可以看到,Metasploit的内置扫描仪模块能够为我们找到系统和开放端口。 如果碰巧在没有安装Nmap的系统上运行Metasploit,这是您的武器库中的另一个很好的工具。

SMB版本扫描

现在已经确定了哪些主机在网络上可用,接下来可以尝试确定它们的操作系统。 这将有助于缩小攻击目标在一个特定的系统,而不是在没有缺陷的主机上浪费时间。

由于扫描中有许多系统已经打开445端口,所以我们将使用scanner / smb / version模块来确定哪个版本的Windows在目标上运行,哪个Samba版本在Linux主机上。

另请注意,如果我们现在发出hosts命令,新获取的信息存储在Metasploit的数据库中。

空闲扫描

Nmap的IPID空闲扫描允许我们使用另一个主机的IP地址欺骗网络,偷偷的扫描目标。为了完成这种类型的扫描,我们需要找到一个在网络上空闲的主机,并使用增量式或破碎的小端(Broken Little-Endian)增量的IPID序列。Metasploit包含扫描模块scanner/ip/ipidseq可以用于查找符合要求的主机。

注:在免费的在线Nmap书中,可以找到有关Nmap空闲扫描的更多信息

通过扫描结果可以判断,我们拥有几台僵尸主机可以用来空闲扫描(192.168.26.129,12.168.26.135,192.168.26.221)(操作环境是VMware虚拟机,192.168.26.2是网关,实际情况主机个数更多),在使用僵尸主机扫描目标之前,我们先使用正常的nmap扫描,如下图所示。

下面我们尝试使用僵尸主机192.168.26.221扫描目标主机192.168.26.135,看结果与之前未使用僵尸主机扫描的结果是否一致。

从上图可以看出,两种扫描的结果一致。

在第二种情况下,扫描192.168.26.135主机时使用的是非攻击主机的真实IP,而是目标网络中的其他空闲主机(本例子中是192.168.26.221)


上面我们讲述了metasploit中端口扫描的相关技术,包括:

  1. 使用nmap扫描和db_nmap扫描:在msfconsole中运行db_nmap扫描,扫描结果直接存储在数据库中,nmap扫描的结果也可以使用db_import命令导入数据库中;
  2. 端口扫描:使用Metasploit自带的端口扫描辅助模块扫描,在没有nmap的主机上是一个很好的替代扫描工具
  3. SMB版本扫描:确定主机的操作系统
  4. 空闲扫描:使用网络中的僵尸主机IP地址,静默地扫描网络主机。

以上内容仅是自己的观点,仅供合法地渗透测试,欢迎各位留言讨论。


×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回