找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4531

积分

1

好友

619

主题
发表于 2 小时前 | 查看: 3| 回复: 0

MatouWebshell 是一个基于 Vue 3 和 Python 开发的,针对Webshell利用与管理的工具平台。它旨在为安全研究人员提供一个集成的环境,用于管理和操控已植入的Webshell,并扩展后渗透能力。

项目简介

目前,该平台集成了以下核心工具:

  • Webshell管理工具:基于哥斯拉(Godzilla)Webshell的设计思路开发,着重于去除通信流量中的强特征,并支持高度自定义流量格式,以实现伪装正常业务流量的目的。目前主要支持目标系统为Linux,支持的Webshell类型包括JSP/JSPX和PHP。

重要声明:本文及相关工具仅用于合法的安全研究、学习与授权测试。请勿利用文章内的相关技术从事非法渗透测试。由于传播、利用此文所提供的信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具和内容均来自网络,仅做学习和记录使用,安全性需自测。

项目启动

1. 直接运行ELF二进制文件

由于项目是使用 GLIBC_2.38 进行编译的,建议在以下版本或更新的系统上运行:

  • Ubuntu 23.10
  • Fedora 39 / 40
  • Arch Linux
  • Debian 13
  • openSUSE Tumbleweed

启动步骤:

  1. 将项目解压至目标目录。
  2. 给予 app.bin 文件可执行权限。
  3. 支持以下启动参数:
    • --debug:输出调试信息。
    • --port:指定服务监听的端口。

执行命令示例:

./app.bin --debug --port 6324

启动成功后,终端会输出详细的调试信息,包括已注册的Webshell类型和服务地址。

MatouWebshell终端启动界面,显示调试日志与服务地址

  1. 使用浏览器访问控制台地址,例如 http://localhost:6324/

MatouWebshell Web控制台首页

2. 使用Docker镜像

对于希望快速部署的用户,也提供了Docker镜像。

拉取镜像:

docker pull henry404/matouwebshell:1.0

运行容器:

docker run -it --rm -p 5001:5001 -v matou_data:/app/router_modules/webshellmanager_router/data henry404/matouwebshell

Webshell管理功能详解

Webshell生成

基础配置
在生成Webshell时,需要配置以下基础参数:

  • 参数名:客户端在初始化阶段,需要将加密的Payload以表单格式发送至服务端,POST请求参数形如 {参数名}={encryptedPayload}
  • Webshell类型:支持 PHP、JSP 和 JSPX。
  • CookieName:可以将其理解为激活Webshell功能的“密钥”开关。只有当请求中包含正确值的对应Cookie时,Webshell才会响应。
  • 标识符替换:此功能用于替换代码中指定前缀的变量标识符,支持“随机生成”和从“变量池文件”中选取。变量池文件位于 router_modules/webshellmanager_router/webshell 目录下,用户可以自行编辑。

Webshell生成基础配置界面

高级选项
不同类型Webshell的高级选项有所不同。

  • PHP类型:提供了“模拟正常业务”功能。启用后,可以将生成的Webshell代码嵌入到预设的正常业务页面模板中,大幅增加隐蔽性。模板来源于 webshell/normal_template 目录。

PHP Webshell模拟正常业务高级选项

  • JSP/JSPX类型:支持代码混淆功能。JSP仅支持Unicode编码混淆,而JSPX支持更丰富的组合,包括Unicode编码、CDATA拆分、HTML实体编码、HTML+Unicode、CDATA+Unicode以及CDATA+HTML编码。例如,可以对 getParameter 等关键字进行混淆,并可通过滑块控制Unicode编码的比例。

JSPX Webshell混淆配置界面

混淆后的代码示例如下:

if (session.g<![CDATA[\u0065]]>t<![CDATA[\u0074\u0041\u0074t\u0072i\u0062]]>ute("$payload$") == null

Webshell连接与配置

基本连接参数
添加Webshell连接时,需要填写以下基本信息:

  • URL地址:Webshell的完整访问路径。
  • 连接密码请注意,此密码仅用于加密通信流量,可以与生成Webshell时设置的CookieName不同,且可以随时更改。
  • 参数名:与生成Webshell时设置的“参数名”保持一致。
  • Cookie名称:此处应填写生成Webshell时设置的 CookieName,这是激活Webshell的真正“开关”。

添加Webshell连接基础信息配置

此外,还支持配置网络代理(HTTP/SOCKS)以通过代理服务器连接目标。

Webshell连接网络代理设置

传输与加密定制
这是MatouWebshell的一大特色,允许用户深度自定义通信的加密方式、请求格式和响应格式。

  • 可选择AES_BASE64_JSON等加密类型。
  • 请求格式支持 Form、JSON、XML、Plain Text甚至PNG图片伪装。
  • 响应格式同样支持JSON等,并允许自定义JSON响应模板,其中 PAYLOAD_DATA 作为加密数据的占位符。

数据传输与加密配置页面

更强大的是,它支持完全自定义请求内容。你可以精细地定义请求体(Form、JSON、XML、Plain)、请求头(Headers),并插入动态变量如随机User-Agent ${random_ua}、时间戳 ${timestamp}、UUID ${uuid} 以及最重要的加密数据 ${encrypted_data}

自定义HTTP请求内容定义编辑器

通信示例

  • 请求为XML,响应为JSON:这种组合可以很好地伪装成某些API接口的通信。

XML请求与JSON响应的通信示例

  • 请求为Form,响应为PNG:将返回数据隐藏在图片文件中,绕过一些基于内容类型的检测。

Form请求与PNG图片响应的通信示例

核心管理功能

1. 命令行终端
提供一个交互式Web终端,支持执行系统命令。

  • 支持 cd 命令切换目录,切换后的路径会自动同步到文件管理器。
  • 支持上下键查看历史命令。
  • 提供清空输出功能。

Webshell命令行终端执行命令

2. 文件管理
文件管理器界面分为三栏,功能全面:

  • 左侧:目录树,清晰展示文件夹结构。
  • 中间:当前目录的文件和文件夹列表。
  • 顶部:地址栏和操作按钮区。

浏览方式多样:点击目录树、双击文件列表中的文件夹,或直接在地址栏输入路径后回车。

Webshell文件管理界面

  • 上传/下载:支持普通模式和大文件分块传输模式。可以在全局设置中配置大文件传输的参数,如分块大小、请求间隔、重试次数等,以适应不同的网络环境和规避检测。

大文件传输全局配置界面

  • 文件编辑:双击文本文件或点击“编辑”按钮,可在内置编辑器中修改文件内容(支持小于1MB的文本文件)。
    文本文件编辑界面
  • 压缩/解压:支持对选中的文件/文件夹进行ZIP压缩,以及对ZIP文件进行解压。
    文件压缩功能对话框
    文件解压功能对话框
  • 修改属性:支持修改文件的权限属性(RWX)和时间属性(修改时间、访问时间)。
    修改文件权限属性对话框
    修改文件时间属性对话框

3. 数据库管理
提供直观的数据库管理界面。

  1. 输入数据库类型、主机、端口、用户名、密码等配置信息,点击“连接测试”。
  2. 连接成功后,左侧会显示数据库结构树。
  3. 在SQL查询区域编写或执行语句(支持多语句,用分号分隔)。点击左侧数据库的表节点,会自动生成 SELECT * FROM 查询语句。
  4. 查询结果会以表格形式展示在下方。

Webshell数据库管理界面,显示连接配置与SQL查询结果

4. 内网穿透
此功能允许通过已控制的Webshell服务器作为跳板,访问其内网资源。

  • SOCKS5代理:在本地开启一个SOCKS5代理端口。将浏览器、扫描器等任何支持SOCKS协议的工具指向该端口,即可访问Webshell内网。支持IP白名单功能。
  • 端口映射:将内网特定IP和端口映射到本机的某个端口。例如,将内网 192.168.1.1:80 映射到本机 8080 端口,然后访问 localhost:8080 即可。
  • 反向DMZ(仅JSP支持):适用于反弹Shell等场景。

内网穿透功能配置界面,展示端口映射与SOCKS隧道

5. 内存马注入(仅限JSP)
针对Java Web环境,提供了无文件内存马注入功能,这是渗透测试中常用的持久化手段。

  • 加载内存马:配置内存马路径、密钥(即Cookie名称)、参数名,并选择类型(Servlet 或 Filter)。加载成功后,只有携带正确Cookie的请求才会激活内存马,否则返回正常页面,具有极强的隐蔽性。加载记录会保存在历史中。

JSP内存马加载与管理界面

  • 获取组件信息:可以查看当前Web应用中所有已注册的Servlet和Filter的详细信息,便于分析环境。

获取Web应用Servlet和Filter详细信息的结果页面

  • 卸载内存马:选择内存马类型,并指定其路径和对应的Wrapper/Filter名称,即可将其从内存中清理。

卸载内存马功能对话框

总结

MatouWebshell 作为一个集Webshell管理、流量伪装、文件操作、数据库管理、内网穿透和内存马注入于一体的后渗透平台,在PythonVue.js的驱动下,提供了较为完善的图形化操作界面。它特别注重流量的隐蔽性与可定制性,适合安全研究人员在授权环境中进行深入的攻防演练和研究。正如所有安全工具一样,其价值在于提升防御者的认知与能力,请务必在合法合规的范围内使用。

项目地址

https://github.com/HeNrY4396/MatouWebshell

希望这篇关于MatouWebshell的详细介绍能为你带来启发。如果你对Web安全、渗透测试或工具开发有更多兴趣,欢迎到云栈社区参与讨论,与更多开发者交流学习。




上一篇:Webshell检测与应急响应实战:PHP/JSP/ASP脚本分析与防御指南
下一篇:百度OpenClaw与搜索Skill:解析AI Agent底层生态新动向
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-18 06:23 , Processed in 0.471010 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表