0x01 起步:理解内网横向移动的艺术
在渗透测试和红队评估中,内网横向移动是一个关键步骤。攻击者一旦从外部入侵成功,就需要在目标网络内部扩展控制范围,以确保所有有价值的资产都在掌控之中。内网横向移动指的是在内部网络中,从一个已妥协的主机向其他主机传播控制的过程。
核心原理是利用泄露的认证信息、配置错误以及系统漏洞在网络中横向传播。攻击者可能会利用不当配置的共享文件夹、凭证缓存、弱口令等方式在内网中寻找其他能够访问的目标。
0x02 渗透环境的搭建
为了有效地模拟内网横向移动,我们需要一个多主机的虚拟化环境。这个环境需要包含常见的企业内网结构,例如:
- 一台模拟的域控制器(Windows Server)
- 几台加入域的工作站(Windows 10)
- 一台外部攻击者主机(Kali Linux)
使用VirtualBox或VMware来搭建这个实验环境。确保所有虚拟机在同一网络中,并配置好域控制器和工作站的域关系。这将为我们的横向移动测试提供现实的场景。
0x03 实战演示:从一台主机到整个网络
一旦在某台工作站上获得初始访问权限,我们可以开始进行横向移动。以下是一个典型的实战步骤:

信息收集
首先,使用内网扫描工具(如nmap、net view、nbtstat)收集网络中其他主机的信息。了解网络拓扑和活跃的计算机是横向移动的基础。
<pre><code class="language-bash"># 使用nmap进行内网扫描 nmap -sn 192.168.1.0/24</code></pre>
凭证收集
在目标主机上,尝试收集有用的凭证,这些凭证可以用于访问其他主机。
<pre><code class="language-bash"># 在被攻陷的Windows主机上,使用mimikatz提取凭证 mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"</code></pre>
利用提权和横向移动
假设已经获取了一组有效的凭证,接下来可以使用这些凭证在网络中横向移动。例如,利用远程桌面协议(RDP)或Windows的远程管理协议(WinRM)来访问其他主机。
<pre><code class="language-bash"># 使用wmiexec进行横向移动 wmiexec.py DOMAIN/username:password@target_ip</code></pre>
0x04 绕过技术:规避安全防护的多种方式
现代企业网络通常部署了多层次的安全防护措施,如防火墙、IDS/IPS、EDR等。因此,成功的横向移动需要一定的绕过技巧。
规避EDR检测
在使用已知工具时,EDR可能会检测到异常活动。为了绕过检测,可以使用一些技术手段,比如:
- 修改工具的签名(加壳、混淆)
- 编写自定义的恶意脚本
下面是一个简单的Python脚本示例,用于执行不易被检测的命令:

<pre><code class="language-python">import os import base64

加密命令
def execute_hidden_command(cmd): encoded_cmd = base64.b64encode(cmd.encode()).decode() os.system(f'echo {encoded_cmd} | base64 -d | bash')

执行加密的shell命令
execute_hidden_command('whoami')</code></pre>
0x05 检测与防御:给蓝队一剂强心针
虽然攻击者可以通过多种技术手段绕过防御,但作为蓝队,我们也有很多办法来检测和防御横向移动。
监控横向移动的痕迹
- 日志分析:通过分析Windows事件日志和Sysmon日志发现可疑的登录和命令执行。
- 网络流量分析:使用网络流量分析工具(如Wireshark)监控异常流量。
加强凭证管理
- 限制高权限账号的使用:减少高权限账号在多台主机上登录的机会。
- 多因子认证(MFA):为关键系统启用MFA,增加帐户的安全性。
0x06 经验分享:从攻击者的角度看世界
在多年的红队工作中,我深刻体会到,内网横向移动不仅仅是技术上的挑战,更是一种思维方式的考验。攻击者需要具备敏锐的观察力,能够在复杂的网络环境中发现薄弱环节并加以利用。
总结:内网横向移动是红队评估中不可或缺的一环,通过深入理解企业网络结构、有效利用工具与技术手段,攻击者能够在目标网络中实现扩展控制。对于防守一方,提升检测能力和安全意识是抵御此类攻击的关键。希望这篇文章能够为读者提供一些有价值的思考与参考。