##BUG反馈群
基于 Godzilla 深度二次开发的 WebShell 管理与红队后渗透平台。在保留 Godzilla 全部能力的基础上,扩展了 MCP 服务(AI 驱动)、MCP 插件工具(全内存加载)、Shell 一键分享(gsl5:// 链接)、团队协作(多数据源)、NetCore 动态载荷 等能力,并提供完整的操作审计。
⚠️ 本工具仅供授权的安全测试与研究使用,严禁用于任何非法用途。使用本工具产生的任何后果由使用者自行承担。详见文末免责声明。
| 功能 | 说明 |
|---|---|
| 多平台 WebShell 管理 | JSP / ASPX / PHP / ASP / ASP.NET Core:文件管理、命令执行、数据库操作、批量测试、导入导出 |
| Shell 一键分享(CV 分享) | 选中 Shell 按 Ctrl+C 即复制 gsl5:// 分享链接(URL / 密码 / 密钥 / 分组等 24 项配置全打包);对方 Ctrl+V 或「目标 → 导入链接」一键导入,自动挂原分组 |
| MCP 服务(AI 操控) | 内置 HTTP/SSE 服务,Claude Desktop / Claude Code / Codex 一键接入;Shell 管理、命令执行、文件操作等 70+ 工具,Bearer Token 鉴权 |
| MCP 插件工具 | @McpTool 注解机制,插件方法自动注册为 MCP 工具:提权(TH_TOOLS)、凭据抓取(Mimikatz)、杀软识别、OA 信息等 10 个工具,全部内存加载不落盘 |
| 存活扫描 | 菜单「攻击 → 存活扫描」批量检测分组内 Shell 存活状态;另有批量连接测试 |
| 客户端证书认证 | Shell 支持双向 TLS:客户端证书路径 + 证书密码,适配要求客户端证书的目标 |
| 团队协作与审计 | 单机 SQLite / UNC 远程 SQLite / PostgreSQL 三数据源,全量操作审计 |
| NetCore 动态载荷 | ASP.NET Core Middleware 载荷 + AES Base64 加密,文件 / 命令 / SQL / 插件加载 |
| 检查更新 | 菜单「更新 → 检查更新」手动比对 GitHub 最新 Release,不是最新版提示跳转下载 |
新增:
- 全局 MCP 服务与 AI 操控(3.1.0)+ MCP 插件工具(3.1.5)
- Shell 一键分享 / 导入(
gsl5://链接,Ctrl+C / Ctrl+V) - NetCore 动态载荷(3.1.0)
- 团队多数据源协作(单机 / UNC / PostgreSQL)
- MCP Bearer Token 鉴权 + CLI 自动写配置 + Linux headless 支持(3.1.3)
- 检查更新(3.1.4)
- C2 流量伪装容器链:PNG / PDF / GIF(3.1.7)
- 达梦 DM8 / 人大金仓 KingbaseES 数据库支持,内置驱动按需上传(3.1.8)
- PHP 无 exec 环境命令执行(FastCGI 连本机 php-fpm,不依赖被禁函数)(3.1.8)
- JDK 6–17 目标端全兼容(下发字节码统一 v50)(3.1.8)
修复:
- PHP 混淆乱码、DisplayName 中文乱码(PHP/JSP/C# 连带修复,3.1.5)
- 杀软识别名称乱码(3.1.5)
- PHP 免杀模板 0KB(3.1.1)
- 命令回显、Shell 加载遮罩竞态(3.1.2)
- MCP 响应非法 JSON 打断 SSE 连接、
file_search丢失整个目录结果(3.1.8) - 数据库 UPDATE / DDL 报假失败(
Query OK被当错误抛出)(3.1.8)
完整明细见 更新日志。
仓库只维护 src 源码:src 是全部功能的唯一源码来源,修改后重新打包即得到可运行的 gsl5.jar。
gsl/
├── src/ # 全部源码
│ ├── core/ # 核心框架
│ │ ├── ApplicationContext.java # 全局上下文(RELEASE_TAG、godMode 等)
│ │ ├── Db.java # SQLite 持久化层
│ │ ├── MigrateDb.java # SQLite → PostgreSQL 迁移
│ │ ├── OperationAuditLog.java # 操作审计
│ │ ├── annotation/ # MCP 工具注解(McpTool / McpParam)
│ │ ├── shell/ # ShellEntity 等
│ │ ├── shellprocessor/ # ASP/PHP/JSP/C# 编码与变形处理器
│ │ ├── c2profile/ # C2 配置模板
│ │ └── ui/ # MainActivity、StartupModeDialog、ShellFileManager 等
│ ├── shells/
│ │ ├── channel/ # 请求通道(HTTP 直连 / C2 Profile)
│ │ ├── payloads/ # 各平台动态载荷源码(java / csharp / netcore)
│ │ ├── cryptions/ # 流量加密器(JavaAes / csharpAes / phpXor / aspXor / netcore)
│ │ └── plugins/ # 插件(java / csharp / netcore / asp / php / generic + assets 目标端模块)
│ ├── util/ # HTTP 客户端、IP 库、工具函数
│ ├── data/ # 内置资源(av.json、qqwry.ipdb)
│ └── META-INF/ # 打包清单(Main-Class: core.Gsl5Main)
| 目录 | 作用 |
|---|---|
src/core/ |
应用核心:全局上下文(版本号)、SQLite 持久化(Db / MigrateDb)、操作审计、@McpTool/@McpParam 注解机制(MCP 插件工具)、Shell 实体、编码与变形处理器、C2 模板、全部界面 |
src/shells/payloads/ |
各语言动态载荷源码(Java / C# / NetCore),生成 WebShell 时编译打包进载荷 |
src/shells/cryptions/ |
流量加密器源码(JAVA_AES_BASE64 / CSHARP_AES_BASE64 / PHP_XOR / ASP_XOR / NETCORE_AES_BASE64 等) |
src/shells/plugins/ |
插件工具(TH_TOOLS / Mimikatz / OaTools / Useradd / ShellAvscan / McpService 等);按目标语言分子目录,generic/ 为应用级(MCP 服务),assets/ 为目标端模块源码 |
src/shells/channel/ |
请求通道实现(HTTP 直连 / C2 Profile 通道) |
src/util/ |
通用工具(HTTP 客户端、纯真 IP 库、工具函数) |
src/data/ |
内置资源(av.json 杀软指纹、qqwry.ipdb IP 地理位置库) |
预编译
gsl5.jar不纳入仓库(见 Release 下载);native/JNI 源码与相关编译脚本仅本地开发环境持有,不随仓库分发。 运行/构建还需外部依赖(lib/:ASM、PostgreSQL 驱动等;bin/:okhttp、kotlin-stdlib 等),未纳入本仓库。 修改源码后重新打包见 编译与构建。
-
JDK 6–17 全兼容:下发到目标端的字节码全部降至 v50(
payload.classs、全部modules/*.class、全部插件.classs),JDK 6 / 11 / 17 真机矩阵(真 Tomcat + 真 JSP + HTTP 联调)全部通过;目标端字符集按file.encoding自动对齐,不再依赖代码页猜测 -
达梦 / 人大金仓(新):内置达梦 DM8 与 KingbaseES V8 的 JDBC 驱动(均编译为 v50,JDK 6 起可用)、数据库类型、连接串与库表 SQL 模板;连接前自动探测目标端 classpath,缺驱动才按需上传。
db_list_types与 GUI 数据库下拉同步支持- 达梦:驱动
dm.jdbc.driver.DmDriver,连接串jdbc:dm://主机:端口[/库名],默认端口 5236 - 金仓:驱动
com.kingbase8.Driver(旧版com.kingbase.Driver作为候选),连接串jdbc:kingbase8://主机:端口/库名,默认端口 54321 - 连接串格式与默认端口已对照达梦/金仓官方文档核实
- 达梦:驱动
-
PHP 载荷:禁用 exec 环境下的命令执行(新):目标
disable_functions禁掉exec / passthru / system / shell_exec / popen / proc_open / putenv时,载荷转为 FastCGI 客户端连本机 php-fpm(自动发现 socket),通过PHP_ADMIN_VALUE注入sendmail_path触发 C 层popen执行命令,不依赖任何被禁函数、不落地 -
C# 载荷升级:
payload.dll改写结构特征(原二进制会被按 GodZ 家族特征查杀);新增payloadsrc/(NxJob.cs/NxTop.cs/LY.cs+build_payload.bat)便于自行构建 -
界面:新增后渗透插件中心(
PostExPluginHub,按插件注解自动归类、卡片式切换)、全局色调遮罩(亮度 / 灰度,UiToneOverlay)、SVG 图标体系(38 个页签图标);Shell 分组由 JTree 重构为 JList;文件选择 / 另存为 / 效果设置面板重构;启动模式对话框重写(去掉写死的默认路径与账号) -
MCP 工具修复:
oplog_query等以[开头的输出此前被当作原始 JSON 直出,产生非法响应并打断 SSE 连接(客户端报MCP error -3)file_search遇到目录列表中文件名为 null 的条目会抛 NPE 并被吞掉,导致整个目录的搜索结果丢失;同时改为真正的通配符(*/?)匹配functions.substring在空串 / 越界时执行substring(0,-1)崩溃,把真实错误盖成String index out of range: -1- 无头模式下插件工具(NewCmd / Mimikatz / TH_TOOLS 等)因构造期创建 Swing 组件而全部报
HeadlessException,现已可在无头模式使用
-
MCP:CLI 启动恢复自动写入 Claude Code / Codex 客户端配置;恢复 Mimikatz 免 frame 执行路径(共享内存加载 + PE→shellcode + 分片上传 +
evalFunc),不再依赖 GUI -
数据库:目标端 UPDATE / DDL 的成功提示(
Query OK, N rows affected)不再被当错误抛出,修复 update 型 SQL 全部报假失败;驱动加载改走 TCCL,兼容 JDK 16+ 模块强封装 -
JarLoader:无头环境下大 jar 上传 NPE 修复;
jarmembuff://在 JDK 16+ 报 unknown protocol 修复 -
WebSocket 加密器:模板中硬编码的 AES key 改为
{secretKey}占位符 -
新增终端适配器
ShellTerminalAdapter;修复JavaAShell.include的 NPE;修复shell_create走 C2 分支时未替换模板占位符 -
C2 流量伪装容器链修复(png / gif / pdf,Java 与 C# 载荷均已实测通过):此前这几条链只有 Java 内存马能用,C# 载荷连接失败,且失败原因不止一个:
c2.aspx/c2.ashx模板的首次请求只加载载荷、不写响应,客户端拿到空 body 直接报not a png/gif/pdf container;现改为两个分支共用同一条响应出口,首次连接也返回合法容器- 三条链的客户端解压 / 解码循环没有终止条件,遇到截断或畸形的流会死循环占满一个 CPU 核;又因为解码方法是
synchronized的,该线程会一直占住通道锁,导致后续请求全部阻塞(现象:只发出一个数据包、界面一直停在等待)。现加入无进展检测并抛出明确异常 - C# 侧的容器编码器与 Java 不一致:
pdfEncode产出的是裸 deflate,缺 zlib 头与 Adler32,客户端与 PDF 阅读器都无法解析;pngIdatChunk在输入为空时不写 deflate 块,产生的 zlib 流永远结束不了。两者均已补齐 pdfEncode把out用作变量名(C# 保留字),生成的壳根本无法编译
-
C# 载荷对抗升级:
payloadsrc/新增Native.cs/Etw.cs/Hwbp.cs并重写Amsi.cs—— ETW 静默先于 AMSI(先断遥测,再做有痕迹的动作);AMSI 优先用 VEH + 硬件断点(Dr0)拦截,不修改系统模块的任何字节(避开"内存页与磁盘镜像不一致"这类取证),被拒时才降级为字节补丁;同时修复 x86 下 stdcall 补丁桩少弹栈的问题 -
Shell 多选一键分享:「目标 → 分享链接(支持多选)」/ 右键「复制分享链接」把选中的多条 Shell 打包成一条
gsl5://链接;导入端逐条还原并显示「共 N 条」。(此前多选导入本身可用,但「导入链接」菜单项的处理方法缺失、点了没反应,且右键「复制选中」复制的是单元格文本而非链接) -
导入链接对话框:「目标 → 导入链接」改为弹出输入框 —— 空白框粘贴链接、可一键从剪贴板填入、剪贴板已是链接时自动预填
-
界面响应性:
- 列表刷新改为「立即出列表 + 后台补算归属地」,刷新后保持选中行与滚动位置(原来整表重建会丢选中、跳回顶部)
- 启动后台预热 IP 库;没有壁纸时表格不再走每格 alpha 合成的半透明包装
- 长操作有等待光标反馈(新增
BusyCursor),避免用户以为没点上而重复点击 - 主窗口开合动效(默认关闭):打开时展开、关闭时收起,两种样式 —— 绕竖轴 3D 旋转(近侧放大、远侧缩小变暗)/ 沿中缝对折;时长 60–900ms、延迟 0–2000ms 可调,在「配置 → 应用设置 → 界面效果 → 动效」开启并可点「预览」重播
- 导入链接失败不再静默吞异常:剪贴板确实是
gsl5://链接却解析/入库失败时会弹窗给出原因
-
快捷键(主窗口聚焦时;弹出对话框时快捷键让路,
Enter归对话框的默认按钮):Enter打开选中的 Shell —— 仅当恰好选中一条时生效;多选状态下按Enter不会打开(会提示"一次只能开一条"),避免误开错的那条。双击某一行同样可以打开Delete/Backspace(Enter 上方带 ← 的键)/ 小键盘Del:删除选中的 Shell,支持多选,仍会弹确认框Ctrl+A全选 ·Ctrl+C复制分享链接(支持多选)·Ctrl+V导入链接 ·Ctrl+F关键字过滤 ·Esc关闭右键菜单- 焦点在输入框里时全部快捷键不拦截(Backspace 正常删字符)
-
数据库:连接编码不再把
Auto(shell 的默认值)原样传给目标端 —— 会解析成该 Shell 的实际编码,修复达梦/金仓/MySQL 等连库时因characterEncoding=Auto报错
- 生成窗口:运行时 / 算法 / 后缀 / 混淆 / C2 模板集中在一个「生成」表单,不再连环弹窗
- 综合插件乱码修复:界面中文恢复;RDP 改为本机
reg/netsh命令,不再投放StartRdp.exe - 文件管理执行改为
cmd.exe /c start;按钮防连点 - aspx/ashx 生成只替换 stub 内密码密钥;asmx/soap 才替换包装层占位符
- ASPX 混淆不再插入会破坏编译的不可见字符
- MCP 补齐数据库工具(连接 / 库表 / 预览 / 执行 / 已存配置)
execCommand不再无脑重试;Mimikatz 仍走原来的runPe2
-
C2 流量伪装容器链(新):新增
pngidat/pdfstream/gifdata三个加密链,请求保持裸密文,响应伪装为结构合法的 PNG(密文藏 IDAT 图像数据区)/ PDF(FlateDecode 流 + 正确 xref 偏移)/ GIF(LZW 光栅)文件 -
随机图像尺寸、随机分块、随机陪衬 chunk(gAMA/tEXt),每个数据包形态不同
-
新增
pngC2/pdfC2/gifC2三个 profile 模板(jar 内嵌,profile 目录缺失时启动自动生成) -
MCP 免弹窗:MCP 模式下所有 UI 弹窗转日志输出,异常堆栈直接返回给 AI 判断
-
修复
shell_create指定 c2Profile 失败、shell_add的 c2Profile 未持久化 -
MCP CLI 桌面环境不再强制 headless(shell 操作可用),无显示环境仍自动 headless
-
修复 GUI 报错弹窗布局(还原 699x333 固定尺寸与父窗口居中)
-
修复发包后长连接不关闭:OkHttp 连接池 keep-alive 挂起(客户端最长 5 分钟)→ 每次请求完成立即断开 TCP
- 主界面中文口字修复:内嵌 CJK 字体兜底,无中文字体环境(Linux/精简 JRE)自动回退,不再显示方框
- JSP/JSPX 超级混淆解析错误修复:十进制转义生成非法 XML 字符引用导致 JSP 无法解析,改为按码点输出
- 十六进制转义按 Unicode 码点输出(原按 UTF-8 字节 hex,CJK 字符错码点)
- MCP 生成免弹窗:
shell_create程序化选择处理器,不再弹出选择对话框;obfuscation参数支持 6 变体(superObfuscation / superUnicode / superHex / superXml / superRandom / superDouble) - 移除 RASP 绕过模块(不保证绕过,不再内置)
- 编码 Auto 自动探测(BOM/UTF-16/重音启发 + 方向回推)+ 文件查看乱码修复
- spring 内存马空 body 阻断正常请求空白页修复
- 修复 PHP 混淆乱码:模板生成/输出统一 UTF-8 编码(PhpConstInclude / PhpConstEval / PhpNone / Generate)
- 修复 DisplayName 中文乱码:PHP 全版本常量文件包含(include_once)、PHP 全版本常量解密绕过(eval)
- 连带修复 JSP/C# 处理器乱码:JSP/JSPX 超级混淆、无
- MCP 插件工具:
@McpTool注解机制,插件方法声明即被 MCP 扫描导入为工具(tools/list 自动列出、按 Shell 载荷类型分发)plugin_NewCmd_exec命令执行 ·plugin_NewCmd_info1获取信息1(Pillager 凭据收集:Chrome/IE/Wifi/WinSCP/Navicat/QQ)·plugin_NewCmd_info2获取信息2(hunter/SharpHunter 内网信息:系统/进程/网络/AD)plugin_OaTools_proxyOA 信息提取(8 目标)·plugin_Useradd_adduser添加 Windows 用户 ·plugin_ClassLoader_run自定义 class 加载执行plugin_Mimikatz_run凭据提取 ·plugin_TH_TOOLS_exec提权框架(6 个 Potato)·plugin_EfsPotato_runEfsPotato 提权 ·plugin_ShellAvscanPlugin_scan杀软识别
- 全部内存加载:info1/info2/Mimikatz 均 PE→shellcode 内存执行,无文件落盘(免杀软查杀)
- TH_TOOLS 无 GUI 化:大文件分片上传替代 GUI 组件,MCP 下完整支持提权链
- shell_info 补全:URL/主机名/用户/IP/OS/Webshell 路径/Shell 类型/AES Key + 系统关键信息
- 修复杀软识别名称乱码(isMessyCode 误判导致 GBK 破坏性转换)
- 菜单「赞助」改为「更新」,新增「检查更新」
- 点击检查 GitHub 最新 Release,不是最新版提示跳转下载
- 启动时自动静默检查,有新版才弹窗
- MCP Bearer Token 鉴权:
/sse/message/health/config全路由鉴权,非本机绑定无 Token 拒绝启动 - CLI 自动写配置:
java -jar gsl5.jar mcp启动后自动写入 Claude Code + Codex 配置(含 Authorization header) - CLI 显式 Token:命令行直接打印完整 Bearer Token,无需去文件里找
- Linux headless 修复:无 GUI 环境不再报 Font NPE
- 命令回显修复、Shell 加载遮罩竞态修复
- JNI 自动加载、Win x64 DLL 内置
- PHP 免杀模板 0KB 修复
- NetCore 动态载荷 + 全局 MCP Claude/Codex 配置
- GUI 模式(默认):图形化操作界面,启动时可选择数据源(见下表)。
- MCP 无头模式:
java -jar gsl5.jar mcp [port] [bindHost],内置 HTTP/SSE 服务,供 Claude Desktop / Claude Code / Codex 等 AI 助手远程调用全部功能。默认 绑定0.0.0.0:9123(全网卡),可指定网卡 IP /127.0.0.1。
启动时由 StartupModeDialog 选择数据源:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 单机模式 | 本地 SQLite data.db |
个人使用 |
| 团队-远程 SQLite | UNC 共享路径(如 \\host\share\data.db) |
小团队、内网共享 |
| 团队-PostgreSQL | 远程 PG,多人共享 Shell 列表 + 操作审计 | 多人协作 |
core/Db.java:SQLite 持久化层(shell/shellEnv/plugin/seting/shellGroup五张表)core/MigrateDb.java:SQLite → PostgreSQL 一键迁移工具(java -cp gsl5.jar;lib/postgresql-*.jar core.MigrateDb [host] [port] [db] [user] [pass])
集中管理 JSP / ASPX / PHP / ASP / ASP.NET Core 多类 WebShell:
- 文件管理(
ShellFileManager):浏览目录、上传/下载、删除/复制/移动、改属性、大文件分片续传、从 URL 远程下载到目标 - 命令执行(
NewCmd):Windows 走cmd /c、Linux 走bash,支持交互终端 - 数据库工具:MySQL / Oracle / SQL Server / PostgreSQL / SQLite,执行 SQL、保存常用连接
- 批量连接测试、搜索、克隆、导入导出(
gsl5://import?data=...链接共享配置) - NetCore 载荷(
NetCoreDynamicPayload+NETCORE_AES_BASE64):面向 ASP.NET Core Middleware 的完整动态载荷(文件 / 命令 / SQL / 插件加载)
- CV 分享(
gsl5://链接):主界面选中 Shell 按Ctrl+C,URL / 密码 / 密钥 / 载荷 / 加密器 / 编码 / 请求头 / 代理 / 超时 / 备注 / C2Profile / 大文件参数 / 客户端证书 / 所属分组共 24 项配置打包(gzip + Base64URL)后自动复制到剪贴板 - CV 导入:收到链接后按
Ctrl+V自动检测剪贴板并提示导入;也可菜单「目标 → 导入链接」手动粘贴。导入自动生成新 ID 避免与原库冲突、自动挂回原分组,支持一次导入多条 - 存活扫描:菜单「攻击 → 存活扫描」批量检测当前分组内 Shell 存活状态;另有批量连接测试、搜索、克隆
- 客户端证书认证:Shell 支持双向 TLS(客户端证书路径 + 证书密码),适配要求客户端证书的目标
- MCP 模式同样支持:
shell_export/shell_import/shell_batch_test
| 插件 | 平台 | 功能 |
|---|---|---|
TH_TOOLS |
Java / C# | Potato 系列提权(EfsPotato / BadPotato / GodPotato / SweetPotato)、Shellcode 注入、自定义 Payload |
Mimikatz |
通用 | 凭据抓取 |
Useradd |
Java / C# / 通用 | 添加账号 |
OaTools |
Java / C# | 金蝶 / 致远 / 泛微 / 用友 / Weblogic / vCenter 等专项代理 |
ShellAvscan |
通用 | 目标安全软件探测 |
McpService |
通用(应用级) | 内置 MCP HTTP/SSE 服务;全局菜单入口,支持 Claude / Codex 一键写配置 |
| NetCore 插件组 | .NET Core | RealCmd / PortScan / Zip / HttpProxy / EasySocks / EvalCode / ExecuteAssembly / ShellcodeLoader |
- FlatLaf 主题、壁纸管理器、透明度调节
OperationAuditLog全量操作审计:记录谁、何时、做了什么,团队模式下可经oplog_query查询
- Java:JDK / JRE 8 或以上(开发机已验证
1.8.0_431)
java -jar bin/gsl5.jar启动后选择数据源(单机 SQLite / 远程 SQLite / PostgreSQL),进入主界面。
java -jar bin/gsl5.jar mcp # 默认 0.0.0.0:9123
java -jar bin/gsl5.jar mcp 9999 # 自定义端口(仍绑 0.0.0.0)
java -jar bin/gsl5.jar mcp 9999 127.0.0.1 # 端口 + 绑定地址
java -jar bin/gsl5.jar mcp 0.0.0.0:9123 # host:port 写法
java -jar bin/gsl5.jar mcp 192.168.1.10:9123然后在 Claude / Codex 的 MCP 配置中添加(详见 MCP 服务)。
- 3.1.8(最新):JDK 6–17 全兼容 + 达梦/人大金仓内置 + PHP 无 exec 命令执行 + C2 容器链(PNG/GIF/PDF)修复 + C# 载荷对抗升级 + 界面与快捷键改版 — Release · jar
- 3.1.7.1:生成窗口免弹窗 + 综合插件乱码修复 + 文件管理执行/防连点 + MCP 数据库工具 — Release · jar
- 3.1.7:C2 流量伪装容器链(PNG/PDF/GIF)+ MCP 免弹窗修复 + 报错弹窗布局修复 — Release · jar
- 3.1.6:口字修复 + 超级混淆解析错误修复 + MCP 生成免弹窗(obfuscation 6 变体)+ 移除 RASP — Release · jar
- 3.1.5:PHP 混淆乱码修复 + MCP 插件工具(
@McpTool10 个工具,全部内存加载)+ shell_info 补全— Release · jar - 3.1.4:检查更新 + 菜单优化 — Release · jar
- 3.1.3:MCP Token 鉴权 + CLI 自动写配置 + Linux headless 修复 — Release · jar
- 3.1.2:命令回显修复 + JNI 自动加载 — Release · jar
- 3.1.1:PHP 免杀 0KB 修复 — Release · jar
- 3.1.0:NetCore + 全局 MCP — Release · jar
以下为 GUI 模式的日常操作流程。AI / MCP 操控见下一节 MCP 服务。
主界面左侧为 Shell 分组树,右侧为操作区。菜单 / 右键分组 → 添加 Shell,填写配置(字段对应 data.db 的 shell 表):
| 字段 | 说明 |
|---|---|
| URL | WebShell 地址 |
| 密码 / 密钥(secretKey) | 通信密钥 |
| Payload | JavaDynamicPayload / CSharpPayload / PhpPayload / NetCoreDynamicPayload 等,需与目标服务端匹配 |
| 加密(cryption) | JAVA_AES_BASE64 / JAVA_C2 / PHP_XOR / CSHARP_AES_BASE64 / NETCORE_AES_BASE64 等 |
| 编码(encoding) | 目标控制台编码。MCP 连接时自动从 DB 带入;为空/auto 时用 chcp/locale 自动检测并写回(Windows 多为 GBK,Linux 多为 UTF-8);也可 shell_detect_encoding |
| 请求头 / 左右标志(reqLeft / reqRight) | 自定义请求体包裹方式 |
| 代理 / 超时 | proxyType/Host/Port、connTimeout、readTimeout |
| 备注 / 笔记 | remark、note |
保存后双击或右键 连接;支持 测试连接、批量测试、搜索、克隆、导入 / 导出(gsl5://import?data=... 链接共享配置)。
选中已连接的 Shell 后,右侧切换标签:
- NewCmd —— 命令执行。Windows 走
cmd /c、Linux 走bash。 - ShellFileManager —— 文件管理:浏览、上传 / 下载、删除、复制、移动、改属性、大文件分片续传、从 URL 远程下载到目标。
- 数据库 —— 配置目标库(MySQL / Oracle / SQL Server / PostgreSQL / SQLite)→ 执行 SQL、管理连接配置。
- 插件 —— 右键 Shell → 插件 → 选择功能模块。
- 导出:主界面选中 Shell(可多选)→ 按
Ctrl+C→ 分享链接自动复制到剪贴板,提示「链接已复制,可发送给他人通过 Ctrl+V 导入」 - 分享:把链接发给同事(微信 / QQ / 聊天工具均可)
- 导入:对方打开 GSL5 后按
Ctrl+V(自动检测剪贴板并提示),或菜单「目标 → 导入链接」粘贴 → 确认即一键入库
- 链接内含 Shell 完整配置(URL、密码、密钥、载荷、加密器、编码、请求头、代理、超时、备注、C2Profile、大文件参数、客户端证书、所属分组,共 24 项),gzip + Base64URL 编码
- 导入自动生成新 ID(不与原库冲突)、自动挂回原分组,支持一次导入多条 Shell
- MCP 模式同样支持:
shell_export/shell_import(自动回连测试) ⚠️ 链接内含密码与密钥,请仅分享给可信人员
- TH_TOOLS —— Potato 系列提权(EfsPotato / BadPotato / GodPotato / SweetPotato)、Shellcode 注入、自定义 Payload
- Mimikatz 凭据抓取 | Useradd 添加账号 | ShellAvscan 探测目标安全软件
- OaTools —— 金蝶 / 致远 / 泛微 / 用友 / Weblogic / vCenter 等专项代理
面向 ASP.NET Core Middleware 的完整动态载荷(不是传统 aspx):
| 类型 | 名称 |
|---|---|
| Payload | NetCoreDynamicPayload |
| Cryption | NETCORE_AES_BASE64 |
| 入口 | ASP.NET Core Middleware(.cs) |
能力(payload_core.dll / 类名 LY):会话 test/close、基础信息、文件管理、命令执行、SQL(目标进程需已加载对应 DbProviderFactory)、插件 include 加载。
插件(src/shells/plugins/netcore/):RealCmd / SuperTerminal / PortScan / Zip / HttpProxy / EasySocksProxy / InlineExecuteAssembly / EvalCode / ShellcodeLoader(Windows)。未移植强依赖 System.Web / 域提权的 MemoryShell、Potato 等。
使用步骤:
- 生成:Payload=
NetCoreDynamicPayload,加密器=NETCORE_AES_BASE64 - 将生成的 Middleware 放入 ASP.NET Core 项目:
app.UseMiddleware<GslCoreShellMiddleware>(); - 添加 Shell,密码密钥一致后连接
- 打开 Shell 后插件页可见 NetCore 功能
源码说明见 src/shells/cryptions/netcore/README.md。
启动选 "团队-PostgreSQL" → 多人共享同一 Shell 列表 → 所有操作自动写入审计日志(MCP 可经 oplog_query 查询;GUI 经操作审计面板查看)。从单机迁到团队库可用 MigrateDb 一键迁移。
- GUI:菜单 配置 → MCP 服务(若无配置菜单则 fallback 到插件菜单)。面板约 780×520,支持绑定地址 / 端口 / 启动 / 停止。
- CLI:
java -jar gsl5.jar mcp [port] [bindHost],也支持host:port写法。 - 默认绑定:
0.0.0.0:9123(全网卡);可改为127.0.0.1或指定网卡 IP。 - 启动后日志类似:
[MCP] 服务已启动 bind=0.0.0.0:9123,并提供可访问 URL 列表。
GUI 面板第二行:
| 按钮 | 写入目标 |
|---|---|
| 写入全部配置 | Claude Code + Claude Desktop + Codex |
| 写入 Claude | ~/.claude/mcp.json、项目 mcp.json / .mcp.json、Claude Desktop claude_desktop_config.json |
| 写入 Codex | ~/.codex/config.toml → [mcp_servers.gsl5] |
也可经 MCP 工具 mcp_config:client=claude|codex|all,write=true,可选 host / outputPath。
{
"mcpServers": {
"gsl5": {
"type": "sse",
"url": "http://127.0.0.1:9123/sse"
}
}
}[mcp_servers.gsl5]
type = "sse"
url = "http://127.0.0.1:9123/sse"连接 / 执行时自动处理远程控制台编码:
- 显式
encoding参数 → 强制使用 auto或 DB 为空 → 探测(chcp/locale)并写回 DB- DB 已有值 → 使用 DB 值,并做冷连接校验
- 缓存命中不重复探测(
auto/shell_detect_encoding)
可用工具 shell_detect_encoding 主动探测并写回。
| 分类 | 工具 | 说明 |
|---|---|---|
| Shell 管理 | shell_list |
列出所有 Shell(可按分组过滤) |
shell_get |
获取单个 Shell 完整配置 | |
shell_add / shell_edit / shell_delete |
增 / 改 / 删 Shell | |
shell_clone |
克隆 Shell | |
shell_backup |
备份 Shell 列表 | |
| 查询 / 批量 | shell_count |
按分组统计 |
shell_search |
关键词搜索 | |
shell_batch_test |
批量测试连接 | |
| 远程探测 | shell_info |
远程系统信息(OS / 用户 / 目录) |
shell_test |
测试单条连接 | |
shell_detect_encoding |
探测远程控制台编码并写回 DB | |
process_list |
列出进程 | |
net_info |
网络连接信息 | |
| 命令执行 | shell_exec |
执行系统命令(encoding 支持 GBK/UTF-8/auto) |
| 文件操作 | file_list |
列目录 |
file_read |
读文件(自动判断文本 / 二进制) | |
file_search / file_roots |
按名搜索 / 列文件系统根目录 | |
file_upload_local / file_download_local |
本机路径直传 / 直存(不经 AI 中转) | |
file_delete / file_copy / file_move |
删 / 复制 / 移动 | |
file_mkdir / file_attr |
建目录 / 设属性(权限 / 时间戳) | |
file_remote_down |
从 URL 远程下载到目标 | |
| 数据库 | db_exec |
执行 SQL |
db_list_types / db_configs |
列支持的库类型 / 管理连接配置 | |
| Payload / 生成 | payload_list |
列出所有载荷与加密器(含 NetCore) |
shell_create |
生成 Shell 文件(可指定 cryption、genFile、c2Profile、obfuscation) |
|
c2profile_list / c2profile_get |
列出 / 获取 C2 配置 | |
| 环境 | shell_env |
读取 / 设置 Shell 环境变量 |
| 导入导出 | shell_export / shell_import |
导出 / 导入(gsl5:// 链接) |
| 设置 | settings_get / settings_set |
读 / 改应用设置 |
| 配置 | config_read / config_write |
读 / 写 config.yaml |
| MCP 管理 | mcp_status |
服务状态(绑定地址 / 可访问 URL) |
mcp_config |
生成 / 写入 Claude 或 Codex 配置(client/write/host) |
|
| 审计 | oplog_query |
查询团队操作日志 |
shell_create的obfuscation参数默认default(不启用增强);传其它值会写入godMode设置,启用增强传输模式。C2 模板可通过c2profile_list查询,指定c2Profile参数可避免弹 UI 选择框。
1. 启动 GSL5 MCP 服务(GUI 面板或 mcp 无头)
2. 写入 Claude / Codex 配置并连接 SSE
3. shell_list / shell_detect_encoding → 查看 Shell 并校正编码
4. shell_exec → 在目标执行命令
5. file_list/file_read → 浏览、读取文件
6. db_exec → 查询数据库
7. oplog_query → 回溯操作审计
运行时读取/写入的文件(位于运行目录,非源码仓库内容):
| 文件 | 说明 |
|---|---|
data.db |
SQLite 数据库,存储 Shell 配置 / 插件 / 环境变量 / 设置 / 分组 |
config.yaml |
运行配置(MCP 端口、认证、团队 PG 连接等) |
config.yaml 结构示例(请替换为你的真实连接信息):
server:
port: 9123 # MCP HTTP 服务端口
auth:
enable: false # 是否启用 MCP 认证
password: ""
mcp:
enable: true # 是否启动 MCP 服务
database: # 团队 PostgreSQL(仅团队模式使用)
host: 127.0.0.1
port: 5432
database: gsl5
username: gsl5
password: <your-password>每个 Release 对应一个 tag(3.1.5 / 3.1.4 / 3.1.3 …),tag 指向该版本发布时的源码。要打包某个版本的 jar,先切到对应 tag:
git checkout 3.1.5 # 切到 3.1.5 发布源码,按下文步骤编译打包
git checkout main # 回到最新开发源码
⚠️ 源码默认 GBK 编码(McpService.java为 UTF-8)。编辑 GBK 文件时避免用会重编码为 UTF-8 的工具,纯 ASCII 改动建议用sed。
# 1) 编译核心源码(GBK)
javac -encoding GBK -cp "lib/*;bin/*" -d out/production/gsl5 \
src/core/**/*.java src/shells/**/*.java src/util/**/*.java
# 2) 编译 MCP 服务(UTF-8,依赖已编译的核心)
javac -encoding UTF-8 -cp "lib/*;bin/*;out/production/gsl5" \
-d out/production/gsl5 src/shells/plugins/generic/McpService.java
# 3) 打包
cd out/production/gsl5 && jar cf gsl5.jar *更新已有 jar 中的单个 class(免重新打包):
jar uf out/artifacts/gsl5_jar/gsl5.jar shells/plugins/generic/McpService.class构建产物输出到 out/production/gsl5/(class)与 out/artifacts/gsl5_jar/gsl5.jar(jar)。lib/(ASM、PostgreSQL 等)与 bin/(okhttp、kotlin-stdlib 等)依赖需自行准备。
Q:MCP 连接失败?
A:检查绑定地址与端口(默认 0.0.0.0:9123)是否被占用、防火墙是否放行;确认 Claude / Codex 配置的 URL 与实际可访问地址一致。本机客户端可用 127.0.0.1,跨机需写网卡 IP 并用 mcp_config/写入配置 生成对应 URL。
Q:Shell 连接超时? A:检查目标 URL 是否可达,Payload / 加密方式是否与目标服务端匹配。
Q:中文乱码?
A:目标输出默认 GBK(Windows)/ UTF-8(Linux),可在 Shell 配置中设置 encoding,或用 MCP shell_detect_encoding / encoding=auto 自动探测写回。
Q:NetCore 载荷怎么用?
A:生成时选 NetCoreDynamicPayload + NETCORE_AES_BASE64,把 Middleware .cs 挂进 ASP.NET Core 管道(UseMiddleware),不是上传 aspx。纯文件上传默认不能当 aspx 用。
Q:团队模式连不上数据库?
A:PostgreSQL 需允许远程连接(pg_hba.conf),确认用户名密码正确;先用 StartupModeDialog 的 Test Connection 验证。
Q:怎么把 Shell 配置分享给同事?
A:选中 Shell 按 Ctrl+C,把复制的 gsl5:// 链接发给对方;对方按 Ctrl+V 或菜单「目标 → 导入链接」即可一键导入。链接含密码密钥,仅发给可信人员。
本工具仅供安全研究和授权测试使用,严禁用于任何非法用途。使用本工具产生的任何后果由使用者自行承担。所有操作会被审计日志完整记录。
