Metasploit技术 --p1--信息收集

本文参考
《web安全攻防》
Metasploit快速入门(二)


由于自己扫描的机器好多服务没有开启,所以有些扫出来的结果也没什么收获!大家可以去看参考文章:Metasploit快速入门(二) ,这里面很详尽,而且很多实验获取了有效的反馈结果


0x01 Metasploit基础逼逼叨

1、MSF的五个模块

1、Auxiliaries(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,他们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
2、Exploit(漏洞利用模块)
漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种poc验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
3、Payload(攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。
4、Post(后期渗透模块)
该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感头信息,实施跳板攻击等。

5、Encoders(编码工具模块)
该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似地安全软件检测出来。

2、更新源

kali操作系统要及时更新源,更新命令有apt-get update 、apt-get upgrade 、apt-get dist-upgrade
apt-get update:只更新新软件包的索引源,作用是同步源的软件包的索引信息,从而进行软件更新。
apt-get upgrade:升级系统上安装的所有软件包,若更新失败,所涉及的包会保持更新之前的状态。
apt-get dist-upgrade:升级整个Linux系统,例如从Kali Linux 1.0.1升级到Kali Linux 1.0.2(不仅能够升级所有已安装的软件包,而且会处理升级过程中可能出现的软件冲突。某些情况下,它的部分升级过程需要人工参与)

3、渗透攻击步骤

使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察并发动攻击,大致的步骤如下:
1、扫描目标机系统,寻找可用漏洞
2、选择并配置一个漏洞利用模块
3、选择并配置一个攻击载荷模块
4、选择一个编码技术,用来绕过杀毒软件的查杀
5、渗透攻击

4、启动Metasploit

在终端中运行msfconsole启动Metasploit
在这里插入图片描述

5、常用命令

show exploits – 查看所有可用的渗透攻击程序代码 
show auxiliary – 查看所有可用的辅助攻击工具 
show options – 查看该模块所有可用选项 
show payloads – 查看该模块适用的所有载荷代码 
show targets – 查看该模块适用的攻击目标类型
search – 根据关键字搜索某模块 
info – 显示某模块的详细信息 
use – 进入使用某渗透攻击模块 
back – 回退 
set/unset – 设置/禁用模块中的某个参数 
setg/unsetg – 设置/禁用适用于所有模块的全局参数 
save – 将当前设置值保存下来,以便下次启动MSF终端时仍可使用

0x02 使用Metasploit进行被动信息收集

1、DNS记录扫描和枚举

DNS扫描和枚举模块可用于从给定的DNS服务器收集有关域名的信息,执行各种DNS查询(如域传送,反向查询,SRV记录等)

程序位于auxiliary模块中,进入msfconsole后,我们可以使用use命令调用我们想要的模块,我们要使用的auxiliary/gather/enum_dns模块.

(1)search gather进入gather模块,发现好多,找到我们需要的那个
在这里插入图片描述在这里插入图片描述(2)使用use auxiliary/gather/enum_dns 进入模块,输入info可以查看模块的信息,包括作者,描述,基本配置信息等
在这里插入图片描述(3)使用 show options 查看需要设置的参数
在这里插入图片描述在required列中,被标记为yes的参数必须包含实际的值,
设置需要查询的域名,设置线程数量,然后运行它
从输出信息中可以看到获取的DNS记录
在这里插入图片描述
dns扫描和枚举模块也可以用于主动信息收集,通过爆破的方式,设置ENUM_BRTtrue,可以通过字典暴力枚举子域名和主机名。WORDLIST选项可以设置字典文件。

2、CorpWatch公司名称信息收集

收集公司信息也是必不可少的,我们可以使用 CorpWatch公司名称信息搜索模块:auxiliary/gather/corpwatch_lookup_name,通过该模块可以收集公司的名称,地址,部门和行业信息。该模块与CorpWatch API连接,以获取给定公司名称的公开可用信息。

API申请:http://api.corpwatch.org

切换到auxiliary/gather/corpwatch_lookup_name模块,设置好公司名字,设置信息显示的数量
在这里插入图片描述此网站被 Q,需要配置代理才能使用这个服务。

3、搜索引擎子域名搜索器

收集子域名是寻找新目标的好办法,我们可以使用搜索引擎子域名收集模块。

模块名:

auxiliary/gather/searchengine_subdomains_collector

YahooBing收集域名的子域信息

切换到这个模块,设置好要要查询的域名,然后运行

在这里插入图片描述

4、Censys搜索

Censys是一个互联网设备搜索引擎,Censys每日通过ZMapZGrab扫描互联网上的主机和网站,持续监控互联网上所有可访问的服务器和设备。

我们可以使用Censys搜索模块,通过Censys REST API进行信息查询。可以检索超过100W的网站和设备信息。

Tip:如果需要使用Censys搜索模块,需要去https://censys.io注册获得API和密钥

use auxiliary/gather/censys_search		//调用模块
set CENSYS_DORK packtpub.com 		//设置目标站点
set CENSYS_SEARCHTYPE ipv4		 //设置搜索类型

在这里插入图片描述

5、Shadan 搜索引擎

Shodan搜索引擎是一个付费的互联网设备搜索引擎,Shodan运行你搜索网站的Banners信息,设备的元数据,比如设备的位置,主机名,操作系统等。

Tip:同样要使用Shodan搜索模块,需要先去Shodan官网( https://www.shodan.io)注册获取API Key。
调用模块:

use  auxiliary/gather/shodan_search

在这里插入图片描述通过Shodan搜索模块可以找到更多目标的信息,比如 IP 地址,开放的端口,位置信息等。

6、Shodan 蜜罐检查

检测目标是否为蜜罐,避免浪费时间或因为试图攻击蜜罐而被封锁。使用Shodan Honeyscore Client模块,可以利用Shodan搜索引擎检测目标是否为蜜罐。结果返回为0到1的评级分数,如果是1,则是一个蜜罐
在这里插入图片描述

7、邮箱信息收集

收集邮箱信息是渗透测试中常见的部分,它可以让我们了解互联网上目标的痕迹,以便用于后续的暴力攻击以及网络钓鱼等活动。

我们可以使用auxiliary/gather/search_email_collector模块,该模块是利用搜索引擎获取与目标有关的电子邮件信息
在这里插入图片描述感觉并没有得到什么有效信息!

0x03 使用Metasploit进行主动信息收集

该步骤的主要关注点是目标机器ip服务、可用服务、开放端口等。
辅助模块是Metasploit的内置模块,用search命令搜索有哪些可用端口模块。

 search portscan 

在这里插入图片描述出现了许多扫描类型

1、tcp端口扫描

输入use就可使用该模块,使用show options命令查看需要设置的参数
在这里插入图片描述Tip:扫描器模块一般使用RHOSTS,表示扫描整个网络,而不是RHOST(单机)

set RHOSTS  192.168.31.182   设置待扫描的ip地址
set PORTS  1-1000          设置待扫描的端口范围
set THREADS 20       设置扫描线程,线程数量越高,扫描的速度越快
set 命令来设置相应的参数
也可以使用unset命令取消某个参数值的设置

在这里插入图片描述

2、TCP SYN 扫描

相对普通的TCP扫描来说,SYN扫描速度更快,因为它不会完成TCP三次握手,而且可以在一定程度上躲避防火墙和入侵检测系统的检测。
使用的模块是auxiliary/scanner/portscan/syn,使用该模块,需要指定端口范围。
在这里插入图片描述

3、基于ARP的主机发现

通过ARP请求可以枚举本地网络中的存活主机,为我们提供了一种简单而快速识别目标方法。

当攻击者和目标机器处于同一个局域网时,可以通过执行ARP扫描发现主机

1、使用ARP扫描模块(auxiliary/scanner/discovery/arp_sweep),设置目标地址范围和并发线程,然后运行。
在这里插入图片描述2、如果启动了数据库,结果将存储在Metasploit数据库中,可以使用hosts显示已经发现的主机
在这里插入图片描述

4、UDP服务识别

UDP服务扫描模块运行我们检测模板系统的UDP服务。由于UDP是一个无连接协议(不面向连接),所以探测比TCP困难。使用UDP服务探测模块可以帮助我们找到一些有用的信息。

选择auxiliary/scanner/discovery/udp_sweep模块,设置目标范围,然后运行扫描即可

在这里插入图片描述

5、SMB扫描和枚举

多年来,SMB协议(一种在 Microsoft Windows系统中使用网络文件共享的协议)已被证明是最容易被攻击的协议之一,它允许攻击者枚举目标文件和用户,甚至远程代码执行。

1)使用无需身份验证的SMB共享枚举模块,可以帮助我们收集一些有价值的信息,比如共享名称,操作系统版本等。

模块名:auxiliary/scanner/smb/smb_enumshares

在这里插入图片描述2)SMB共享枚举模块在后续的攻击阶段也非常有用,通过提供凭据,可以轻松的枚举共享和文件列表
在这里插入图片描述Metasploit还提供其他的一些SMB扫描模块,让我们看看其他模块的用法。

3)SMB版本检测模块可以检测SMB的版本
在这里插入图片描述4)用户枚举模块可以通过SAM RPC服务枚举哪些用户存在
在这里插入图片描述
5)SMB登录检测模块可以测试SMB登录
在这里插入图片描述一不小心,搞了一个特别大的字典,只能强行ctrl+c 中断掉了。
在这里插入图片描述
6)MS17-0101永恒之蓝漏洞检测模块
在这里插入图片描述

7)其他的模块,都在 auxiliary/scanner/smb/中,可以一个个学习,这里就不一一举例
在这里插入图片描述

6、SSH版本扫描和检测

SSH是一个广泛使用的远程登录程序。它使用强大的加密提供身份认证和保证机密性。在本节中,我们将通过SSH版本扫描模块,确定目标使用的SSH版本,确定是否为易受攻击的SSH版本,如果是,我们可以利用它。

在之前的扫描中,我们发现目标机器开放了TCP 22端口,这也是SSH的默认端口,我们用SSH版本探测模块来获取目标系统上运行的SSH版本信息。

1)模块名称:auxiliary/scanner/ssh/ssh_version
在这里插入图片描述当然这里的RHOSTS 选项也可以指定为网络地址,从而扫描整个网段。
获取版本信息之后,我们就可以搜索该版本的漏洞。

2)测试常用口令登录SSH,可以使用SSH登录测试模块
在这里插入图片描述3) 如果登录成功了,可以用sessions 查看会话和与目标进行会话交互
在这里插入图片描述

7、FTP扫描

使用FTP扫描模块对网络中所有的FTP服务进行版本扫描

准备工作
FTP版本扫描模块运行我们检测正在运行的FTP版本

1)使用auxiliary/scanner/ftp/ftp_version模块,设置好扫描范围和线程,就可以运行扫描了。
在这里插入图片描述
2)与之前的扫描一样,扫描结果会保存到数据库中,可以使用services命令查看已经检测的服务信息。
在这里插入图片描述

8、SMTP枚举

SMTP服务由两个允许枚举用户的内部命令:VRFY(确认有效用户名)和EXPN(显示用户的实际地址,别名和邮件列表)

准备工作
SMTP用户枚举模块通过实现这些SMTP命令从而枚举有效的用户列表

默认情况下,SMTP枚举模块使用unix_users.txt(文件位于: /usr/share/metasploit-framework/data/wordlists/)文件作为字典,你也可以指定自己的字典文件。切换到auxiliary/scanner/smtp/smtp_enum模块,设置好目标和线程,然后开始
在这里插入图片描述
输出结果中应当显示目标Metasploitable 2中有效的SMTP用户
(我这边没开这些服务)

9、SNMP 枚举

简单网络管理协议(SNMP)是用于管理网络设备的协议,比如监控设备的状态信息,接口信息,网络接口的数据吞吐量等。通过SNMP扫描器可以找到特定系统的大量信息。本节中,我们将学习如何使用它。
准备工作

Metasploit有一个专门用于扫描 SNMP 设备的内置辅助模块。在进行攻击之前必须先了解它。首先,团体字符串(只读/读写)在可以在设备本身上挖掘或修改的信息类型中起着重要作用。管理信息库 (MIB) 接口允许我们查询设备和提取信息。

Tip:如果目标系统为Windows且配置了SNMP(通常是RO/RW团体字符串),我们可以提取系统重启时间,系统上的用户名,系统网络信息,运行的服务等各种有价值的信息。

当通过SNMP查询时候,可以通过MIB API进行设备信息提取。Metasploit在其数据库中加载默认MIB列表,它们用于查询设备获取更多信息。
怎么做

  1. 通过SNMP登录模块可以通过公共团体名登录到目标系统。
    在这里插入图片描述2、通过SNMP扫描模块收集信息,比如端口,服务,主机名,进程等信息。
    在这里插入图片描述 原文章开启了这个服务,然后的确扫到了很多详细信息,但是我这边没开,就就。。。

10、HTTP扫描

超文本传输协议(HTTP)是一个应用层协议,它是万维网通信的基础。它被众多的应用程序使用,从物联网(IoT)设备到移动应用程序。它也是搜索漏洞的好地方。
准备工作

HTTP SSL证书检测模块可以检测Web服务器的证书。

Robots.txt内容检测模块可以搜索robots.txt文件并分析里面的内容。

如果服务端允许未授权的PUT请求方法,则可以将任意的Web页面插入到网站目录中,从而导致执行破坏性的代码或者往服务器填充垃圾数据,从而造成拒绝服务攻击。

Jenkins-CI HTTP扫描模块可以枚举未授权的Jenkins-CI服务。
怎么做

1)检测目标的HTTP SSL证书
在这里插入图片描述2)检测robots.txt文件
在这里插入图片描述3)HTTP可写路径 PUT/DELETE 文件访问模块可以通过PUT和DELETE请求上传和删除Web服务器上的内容。
在这里插入图片描述4)Jenkins-CI扫描模块在这里插入图片描述

11、WinRM扫描和爆破

Windows远程管理(WinRM)是WS-Management协议的Microsoft实现。该协议是基于简单对象访问协议(SOAP)的、防火墙友好的标准协议,使来自不同供应商的硬件和操作系统能够互相交互。
准备工作

WinRM身份认证方法检测模块通过向目标发现HTTP/HTTPS请求,检测是否为WinRM服务,如果是,将会检测支持的身份认证方法。

通过SMB_login模块可以检索目标的登录凭证。我们可以用WinRM命令运行模块测试是否可以通过WinRM服务运行Windows命令。
怎么做

1)WinRM身份认证检测
在这里插入图片描述
2)使用WinRM命令运行模块
在这里插入图片描述okk,关于辅助模块服务扫描到这里就告一段落了!
特别感谢 合天智汇 的这篇好文分享 :Metasploit快速入门(二)

猜你喜欢

转载自blog.csdn.net/qq_44108455/article/details/107440520