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 规则说明

  1. 第一条规则检测Weevely特有的POST请求特征
  2. 第二条规则检测Weevely特有的响应特征
  3. 使用flowbits实现两条规则间的关联
  4. 通过pcre正则匹配响应体中的特定base64编码模式

五、防御建议

  1. 文件监控:对WEB目录进行实时监控,检测异常文件创建
  2. 流量分析:部署上述Snort规则进行网络流量检测
  3. 权限控制:限制Web服务器写入权限
  4. 代码审计:定期检查服务器上的PHP文件
  5. 日志分析:关注异常的POST请求模式
  6. 更新维护:保持Web应用和服务器软件的最新版本

通过以上措施,可以有效检测和防御Weevely Webshell的攻击行为。

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 安装步骤 2.2 生成后门木马 生成的backdoor.php特点: 内容经过加密处理 每次生成的木马内容都不相同 无法通过检测payload的方式进行识别 2.3 连接后门木马 连接后可执行: 数据读取 数据库爆破 内网攻击等操作 三、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检测规则 请求检测规则 响应检测规则 4.2 规则说明 第一条规则检测Weevely特有的POST请求特征 第二条规则检测Weevely特有的响应特征 使用flowbits实现两条规则间的关联 通过pcre正则匹配响应体中的特定base64编码模式 五、防御建议 文件监控 :对WEB目录进行实时监控,检测异常文件创建 流量分析 :部署上述Snort规则进行网络流量检测 权限控制 :限制Web服务器写入权限 代码审计 :定期检查服务器上的PHP文件 日志分析 :关注异常的POST请求模式 更新维护 :保持Web应用和服务器软件的最新版本 通过以上措施,可以有效检测和防御Weevely Webshell的攻击行为。