Metasploit快速入门(二)

摘要:
使用useauxiliary/weather/enum_ dns进入模块并输入信息以查看模块的信息,包括作者、描述、基本配置信息等。它通过showoptions显示特定参数并设置特定参数,并运行模块。您可以使用showoptions查看设置的参数。使用Shodan HoneycoreClient模块,您可以使用Shodan搜索引擎来检测目标是否是蜜罐。
Metasploit快速入门(二)

参考:

https://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652850556&idx=1&sn=bbfae36b3cbb012fc498ab3aa20501f3&chksm=bd5935b18a2ebca785209112971dcbde12a9718c94f0a63d6c5922aef573472ec143a2b18f1c&scene=21#wechat_redirect

目录

概述

信息收集是渗透测试中首先要做的重要事项之一,目的是尽可能多的查找关于目标的信息,我们掌握的信息越多,渗透成功的机会越大。在信息收集阶段,我们主要任务是收集关于目标机器的一切信息,比如IP地址,开放的服务,开放的端口。这些信息在渗透测试过程中启到了至关重要的作用。为了实现这一目的,我们将在本章学习各种扫描技术、如SMB扫描、SSH服务扫描,FTP扫描、SNMP枚举、HTTP扫描以及WinRM扫描和暴力破解。

收集信息的方式主要有三种:

  1. 被动信息收集这种方式是指在不物理连接或访问目标的时候(不通过发送数据包到目标),获取目标的相关信息,这意味着我们需要使用其他信息来源获得目标信息。比如查询whois信息。假设我们的目标是一个在线的Web服务,那么通过whois查询可以获得它的ip地址,域名信息,子域信息,服务器位置信息等。

  2. 主动信息收集:这种方式是只与目标建立逻辑连接获取信息,这种方式可以进一步为我们提供目标信息,让我们的目标的安全性进一步理解。在端口扫描中,使用最常用的主动扫描技术,探测目标开放的端口和服务

  3. 社会工程学:这种方式类似于被动信息收集,主要是针对人为错误,信息以打印输出、电话交谈、电子邮件等形式泄露。使用这种方法的技术有很多,收集信息的方式也不尽相同,因此,社会工程学本身就是一个技术范畴。

    社会工程的受害者被诱骗发布他们没有意识到会被用来攻击企业网络的信息。例如,企业中的员工可能会被骗向假装是她信任的人透露员工的身份号码。尽管该员工编号对员工来说似乎没有价值,这使得他在一开始就更容易泄露信息,但社会工程师可以将该员工编号与收集到的其他信息一起使用,以便更快的找到进入企业网络的方法。

msf被动信息收集

进入模块后使用back退出模块,如果使用exit会退出msf

准备工作

我们将从公司域名开始收集信息,获取公司有关信息,收集域名,检测蜜罐,收集电子邮件地址

DNS记录扫描和枚举

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

  1. 程序位于auxiliary/ɔːɡˈzɪlɪəri/模块中,进入msfconsole后,我们可以使用use命令调用我们想要的模块,我们要使用的auxiliary/gather/enum_dns模块。使用use auxiliary/gather/enum_dns 进入模块,输入info可以查看模块的信息,包括作者,描述,基本配置信息等, 通过show options显示具体参数

    Metasploit快速入门(二)第1张

  2. 设置具体参数,并运行模块,可以使用show options查看设置的参数。与dig @<server> name any类似

    Metasploit快速入门(二)第2张

    更多

    dns扫描和枚举模块也可以用于主动信息收集,通过爆破的方式,设置ENUM_BRTtrue,可以通过字典暴力枚举子域名和主机名。WORDLIST选项可以设置字典文件。

CropWatch公司名称信息收集

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

切换到auxiliary/gather/corpwatch_lookup_name模块,设置好公司名字,设置信息显示的数量

Metasploit快速入门(二)第3张

Tip:此网站被Q,需要配置代理才能使用这个服务

搜索引擎子域名收集器

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

模块名:auxiliary/gather/searchengine_subdomains_collector

YahooBing收集域名的子域信息

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

Metasploit快速入门(二)第4张

Censys搜索

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

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

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

Metasploit快速入门(二)第5张

收集到了非常多的IP信息和端口信息

Shodan 搜索引擎

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

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

Metasploit快速入门(二)第6张

通过Shodan搜索模块可以找到更多目标的信息,比如 IP 地址,开放的端口,位置信息等。

Shodan 蜜罐检查

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

Metasploit快速入门(二)第7张

邮箱信息收集

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

我们可以使用auxiliary/gather/search_email_collector模块,该模块是利用搜索引擎获取与目标有关的电子邮件信息

Metasploit快速入门(二)第8张

从输出信息来看,可以看到该模块利用GoogleBingYohoo搜索目标有关的电子邮件地址。

主动信息收集

更推荐使用nmap

通常来说,通过扫描进行主动信息收集,从这一步开始,我们将直接与目标进行逻辑连接。

端口扫描是一个有趣的信息收集过程,它涉及对目标系统更深入的搜索,但是由于主动端口扫描涉及对目标系统直接访问,可能会被防火墙和入侵检测系统检测到。

TCP 端口扫描

让我们从TCP端口扫描模块开始,看看我们能获取目标的哪些信息?

我们要使用的模块是use auxiliary/scanner/portscan/tcp

Tip:我们将利用此模块扫描渗透测试实验环境的网络,请遵守当地法律法规,请勿直接扫描互联网设备。

Metasploit快速入门(二)第9张

Tip:扫描器模块一般使用RHOSTS,表示扫描整个网络,而不是RHOST(单机, 支持CIDR

当我们使用Metasploit模块的时候,可以使用show options查看所有可配置的选项,使用show missing查看必须要配置但尚未配置的参数。

Metasploit快速入门(二)第10张

TCP SYN 扫描

相对普通的TCP扫描来说,SYN扫描速度更快,因为它不会完成TCP三次握手,而且可以在一定程度上躲避防火墙和入侵检测系统的检测。

使用的模块是auxiliary/scanner/portscan/syn,使用该模块,可以指定端口范围,默认1-10000

db_nmap方式

使用db_nmap的好处在于可以将结果直接存储到Metasploit数据库中,而不再需要db_import进行导入。

操作与nmap相同

具体请查看:https://www.cnblogs.com/kikochz/p/13619449.html

基于ARP的主机发现

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

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

使用ARP扫描模块(auxiliary/scanner/discovery/arp_sweep),设置目标地址范围和并发线程,然后运行。

Metasploit快速入门(二)第11张

如果启动了数据库, 结果将存储在msf数据库中,可以使用hosts显示已经发现的主机

UDP服务识别

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

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

![](https://img2020.cnblogs.com/blog/2005355/202009/2005355-20200909094925883-1890582121.png

SMB扫描和枚举

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

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

模块名:auxiliary/scanner/smb/smb_enumshares

  • SMB共享枚举模块在后续的攻击阶段也非常有用,通过提供凭据,可以轻松的枚举共享和文件列表

Metasploit快速入门(二)第12张

Metasploit还提供其他的一些SMB扫描模块,让我们看看其他模块的用法。

  • SMB版本检测模块可以检测SMB的版本

Metasploit快速入门(二)第13张

  • 用户枚举模块可以通过SAM RPC服务枚举哪些用户存在

Metasploit快速入门(二)第14张

  • SMB登录检测模块可以测试SMB登录

    Metasploit快速入门(二)第15张

其他的模块,都在 auxiliary/scanner/smb/中,可以敲 TAB键查看,你可以一个个学习,这里就不一一举例讲解。

FTP扫描

使用auxiliary/scanner/ftp/ftp_version模块,设置好扫描范围和线程,就可以运行扫描了。如果扫描过慢请设置threads

Metasploit快速入门(二)第16张

与之前的扫描一样,扫描结果会保存到数据库中,可以使用services命令查看已经检测的服务信息。找到版本信息可以查询具体的攻击模块

HTTP扫描

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

  • 准备工作

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

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

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

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

  • 使用模块:use auxiliary/scanner/http/cert检测目标的HTTP SSL证书

    Metasploit快速入门(二)第17张

  • 使用模块:use auxiliary/scanner/http/http_put检测目标是否开启PUT,相同的还有DELETE

    Metasploit快速入门(二)第18张

SHH扫描

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

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

1、模块名称:auxiliary/scanner/ssh/ssh_version

msf5 > use auxiliary/scanner/ssh/ssh_version
msf5 auxiliary(scanner/ssh/ssh_version) > set RHOSTS 192.168.177.144
RHOSTS => 192.168.177.144
msf5 auxiliary(scanner/ssh/ssh_version) > run

[+] 192.168.177.144:22    - SSH server version: SSH-2.0-OpenSSH_7.1 ( service.version=7.1 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH service.cpe23=cpe:/a:openbsd:openssh:7.1 service.protocol=ssh fingerprint_db=ssh.banner )
[*] 192.168.177.144:22    - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/ssh/ssh_version) >

当然这里的RHOSTS 选项也可以指定为网络地址,从而扫描整个网段。

获取版本信息之后,我们就可以搜索该版本的漏洞。

2、测试常用口令登录SSH,可以使用SSH登录测试模块, 使用自己提供的密码字典或是msf自带的字典cd /usr/share/metasploit-framework/data/worklists

msf5 > use auxiliary/scanner/ssh/ssh_login
msf5 auxiliary(scanner/ssh/ssh_login) > set RHOSTS 192.168.177.144
RHOSTS => 192.168.177.144
msf5 auxiliary(scanner/ssh/ssh_login) > set USERNAME user
USERNAME => user
msf5 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/password.lst
PASS_FILE => /root/password.lst
msf5 auxiliary(scanner/ssh/ssh_login) > run

[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

3、如果登录成功了,可以用sessions 查看会话和与目标进行会话交互

img

免责声明:文章转载自《Metasploit快速入门(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js数组循环的时间复杂度Apache/Nginx/IIS 访问日志详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

生成 git 密钥 步骤

http://blog.csdn.net/wfdtxz/article/details/8678982 git使用https协议,每次pull, push都要输入密码,相当的烦。使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。大概需要三个步骤:一、本地生成密钥对;二、设置github上的公钥;三、修改git的remote url为git协议。...

关于xshell使用遇到的问题

好久不用xshell,之前怎么使用的都忘记了,这次做个笔记,方便以后使用。 1.首先下载xshell,直接去官网上下载。 填好信息,去邮箱查看,下载。 2 安装xshell也没什么问题,直接下一步即可。 3 xshell的使用   选择新建,弹出下面窗口,填好ip。 如果出现输入用户名密码窗口,直接输入即可。 没有出现的情况下,首先判断ssh服务有没有...

Linux 之不同运维人员共用root 账户权限审计

一、为什么?   在中小型企业,公司不同运维人员基本都是以root 账户进行服务器的登陆管理,缺少了账户权限审计制度。不出问题还好,出了问题,就很难找出源头。   这里介绍下,如何利用编译bash 使不同的客户端在使用root 登陆服务器使,记录各自的操作,并且可以在结合ELK 日志分析系统,来收集登陆操作日志 二、环境   服务器:centos 6.5...

访问局域网中的虚拟机(详细教程!)

访问局域网中的虚拟机(详细教程!) 如何利用局域网中的一台PC访问另一台PC中的虚拟机(例如VMware创建的Linux虚拟机)? 解决方案如下:(图中序号代表操作顺序) 1. 首先我们将虚拟机中的sshd的端口映射到主机的端口中 步骤如下: step1: 设置VMware中虚拟机的虚拟网络编辑器 1 step2: 经过以上操作,我们就完...

用ssh进行git clone出现 fatal: Could not read from remote repository.

问题:在通过MobaXterm进行ssh连接的服务器上用ssh进行git clone出现 fatal: Could not read from remote repository. 解决方法:proxychains git clone xxx 在git clone之前加上proxychains即可。...

【Git】4、创建代码仓库,HTTP、SSH拉取远端代码

拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1、创建远程代码仓库 2、创建仓库 3、进入仓库 4、HTTP(S)获取远程仓库 首次拉取 更新代码 临时记住密码 永久记住密码 5、 SSH拉取 拉取代码 创建一个ssh key 添加公钥到服务器 再次拉取代码 更新代码 6、小结 H...