Weevely Webshell入侵检测之小试牛刀
字数 1136 2025-08-15 21:31:42
Weevely Webshell入侵检测与分析指南
一、Weevely Webshell概述
1.1 Webshell基本概念
- Webshell是黑客常用的攻击工具,通常以asp或php后门文件形式存在
- 攻击者将后门文件混入网站服务器WEB目录下的正常网页文件中
- 通过浏览器访问后门文件可获得命令执行环境,实现对网站服务器的控制
1.2 Weevely特性
- 针对PHP的webshell自由软件
- 模拟类似telnet的连接shell
- 主要用于:
- web程序漏洞利用
- 隐藏后门
- 替代web页面式管理
- 技术特点:
- 服务器端PHP代码经过base64编码
- 可绕过主流杀毒软件和IDS检测
- 使用字符串变形技术,不直接使用eval、system等敏感函数
项目地址:https://github.com/epinna/weevely3.git
二、Weevely部署与使用
2.1 安装步骤
# 克隆仓库
git clone https://github.com/epinna/weevely3.git
# 安装依赖
sudo pip3 install prettytable Mako PyYAML python-dateutil PySocks --upgrade
2.2 生成后门木马
python3 weevely.py generate <密码> <输出文件>
示例:
python3 weevely.py generate weevely backdoor.php
生成的backdoor.php特点:
- 内容经过加密处理
- 每次生成的木马内容都不相同
- 无法通过检测payload的方式进行识别
2.3 连接后门木马
python3 weevely.py <目标URL> <密码>
示例:
python3 weevely.py http://X.X.X.X/backdoor.php weevely
连接后可执行:
- 数据读取
- 数据库爆破
- 内网攻击等操作
三、Weevely Webshell连接特征分析
3.1 会话特征
- 连接成功后会产生固定的36条会话数据流
3.2 请求特征
- POST请求的Content-Length固定为83位
- 请求头中包含:"Accept-Encoding: identity"
3.3 响应特征
- 成功回包的Content-Length为60
- 回包http_server_body包含:
- 45位base64编码的加密数据
- 12位数字串
- 格式为:
\r\n\r\n[A-Za-z\d+/]{45}([A-Za-z\d+/=]==|[A-Za-z\d+/][A-Za-z\d+/][A-Za-z\d+/=])
四、Weevely Webshell检测规则
4.1 Snort检测规则
请求检测规则
alert http any any -> any any (
msg:"MALWARE BACKDOOR Weevely PHP backdoor webshell detected";
flow:established,to_server;
content:"POST"; http_method;
content:"Accept-Encoding|3a| identity"; http_header;
content:"Content-Length: 83";
flowbits:set, Weevely_post_req;
noalert;
classtype:web-application-attack;
sid:2000001;
rev:1;
metadata:created_at 2020_08_12, updated_at 2020_08_12, by sampson;
)
响应检测规则
alert http any any -> any any (
msg:"MALWARE BACKDOOR Weevely PHP backdoor webshell detected";
flow:established,to_client;
content:"200"; http_stat_code;
content: "Content-Length: 60";
content:"|3d 3d|"; http_server_body;
nocase;
pcre: "/\r\n\r\n[A-Za-z\d+/]{45}([A-Za-z\d+/=]==|[A-Za-z\d+/][A-Za-z\d+/][A-Za-z\d+/=])/";
flowbits: isset, Weevely_post_req;
classtype:web-application-attack;
sid:2000002;
rev:1;
metadata:created_at 2020_08_12, updated_at 2020_08_12, by sampson;
)
4.2 规则说明
- 第一条规则检测Weevely特有的POST请求特征
- 第二条规则检测Weevely特有的响应特征
- 使用flowbits实现两条规则间的关联
- 通过pcre正则匹配响应体中的特定base64编码模式
五、防御建议
- 文件监控:对WEB目录进行实时监控,检测异常文件创建
- 流量分析:部署上述Snort规则进行网络流量检测
- 权限控制:限制Web服务器写入权限
- 代码审计:定期检查服务器上的PHP文件
- 日志分析:关注异常的POST请求模式
- 更新维护:保持Web应用和服务器软件的最新版本
通过以上措施,可以有效检测和防御Weevely Webshell的攻击行为。