0x01 红队视角
合法声明:本文内容仅限授权安全测试,供安全研究人员学习。禁止用于非法用途,否则后果自负。
在一次红队行动中,目标是攻破某企业的内网系统。为了达到这个目的,我决定深入研究Webshell免杀技术,确保我的Webshell能够成功部署,并且不被目标环境中的安全设备检测到。这篇文章分享了我在这次行动中获取成功的方法。
Webshell的神秘面纱
首先,我们来看Webshell的技术原理。Webshell是一段恶意代码,植入到Web服务器中,攻击者可以利用它远程执行命令、窃取数据、提升权限等。通常,Webshell的形式多种多样,可以是PHP、ASP、JSP等语言编写,隐藏在网站的正常文件中。
Webshell的免杀技术就是让这段恶意代码能够躲过安全设备的检测,实现隐秘持久的控制。要实现这一点,首先要理解安全设备的工作原理,主要是基于特征检测和行为分析。特征检测是通过识别恶意代码的特征字符串来判断是否为Webshell,行为分析则是通过监控代码执行的行为特征进行判断。
有一次实战环境搭建

为了测试我的Webshell免杀技术,我搭建了一个简单的实验环境,包含一个运行Apache和PHP的Web服务器,以及一个典型的防护环境,模拟真实世界中的安全设备。我选择了常用的PHP Webshell,并对其进行了一些改动,以便测试不同免杀策略的效果。
环境搭建步骤如下:
- 搭建Web服务器:在虚拟机中安装Apache和PHP。
- 配置安全设备:部署一个常见的Web应用防火墙(WAF),如ModSecurity。
- 准备Webshell:使用一个简单的PHP Webshell作为测试样本。
这样一个实战环境使我能够随时调整免杀策略,并观测Webshell是否成功躲过检测。
Payload构造的艺术
接下来,我开始对Webshell进行免杀处理。免杀技术的核心在于混淆和伪装。
混淆是通过改变代码结构,使其特征和行为变得不易识别。我采用了以下几种混淆手段:
- 编码转换:将代码中的字符串替换为不同的编码格式,比如Base64或URL编码。
- 变量名替换:使用随机生成的变量名替换原来的变量名,增加代码分析的复杂度。
- 动态代码生成:通过拼接字符串来动态生成代码,使静态分析难以检测。
伪装则是让Webshell更像是正常代码:
- 伪装成插件或正常文件:将Webshell代码插入到插件文件中,或者伪装成图片文件。
- 增加正常逻辑:在Webshell代码中添加正常的业务逻辑代码。

实战绕过技巧
为了进一步提高免杀成功率,我还采用了一些更高级的技巧:
隐蔽的执行方式

避免直接在Webshell中执行命令,而是通过外部调用来间接执行,比如使用PowerShell或Python脚本来执行系统命令。
<pre><code class="language-python"># 使用Python隐蔽执行系统命令 import os os.system("whoami")</code></pre>
内存加载技术
将Webshell代码加载到内存中执行,以避免文件系统监控。这个技术对于绕过基于文件特征的检测特别有效。

<pre><code class="language-powershell"># 使用PowerShell加载并执行代码 $code = "[System.Environment]::UserName" Invoke-Expression $code</code></pre>
网络流量伪装
通过流量伪装技术,将Webshell的网络请求伪装成正常流量,比如使用加密协议或混淆流量特征。
<pre><code class="language-python"># 使用HTTPS请求来隐藏Webshell通信 import requests response = requests.get("https://example.com")</code></pre>
检测与防御
当然,作为红队成员,我也要了解防御者的视角。安全设备通常通过以下方式检测Webshell:
- 特征码库:基于已知Webshell特征码进行匹配。
- 行为分析:监控代码执行的异常行为,如频繁的系统调用、异常的网络请求等。
- 沙箱执行:在沙箱环境中执行代码以观察其行为。
为了对抗这些检测机制,我建议防御者采用更加智能的检测机制,比如结合机器学习进行行为分析,实时检测异常流量。
经验总结
在这次红队行动中,我学到了一些重要经验:
- 永远要有多个备选方案:在免杀失败的情况下,迅速切换到备选策略。
- 保持低调:尽量让Webshell的行为像正常代码,减少被检测的概率。
- 定期更新技术库:随着安全设备的不断升级,免杀技术也要不断更新。
通过这些免杀技术,我成功在目标系统中植入了Webshell,实现了持久控制。这不是简单的技术,而是一种艺术,需要不断练习和创新。希望这篇文章能给其他安全研究人员一些启发,在合法授权的情况下,去挑战更多的技术极限。