Repository navigation
3.1.8 正式版 —— 应用内版本号已升至 3.1.8,3.1.7.1 及更早版本可在菜单「更新 → 检查更新」看到本版提示。
本版累计了 3.1.7.1 之后的 16 个提交,改动集中在对抗 / 免杀、目标端兼容性、MCP 工具与界面体验四块。
对抗 / 免杀
- C# 动态载荷重构 + 对抗升级:
payload.dll改写结构特征 —— 原二进制会被按 GodZ 家族泛型特征(Backdoor:MSIL/GodZ.A!gen)查杀,改 Mvid 无效、必须动结构。ETW 静默先于 AMSI(先断遥测,再做有痕迹的动作);AMSI 优先用 VEH + 硬件断点(Dr0)拦截,不修改系统模块的任何字节,被拒时才降级为字节补丁;同时修复 x86 下 stdcall 补丁桩少弹栈。已在真实环境实测插件可执行。源码在payloadsrc/(NxJob.cs/NxTop.cs/LY.cs/Native.cs/Etw.cs/Hwbp.cs/Amsi.cs+build_payload.bat),便于自行构建 - PHP 载荷:禁用 exec 环境下的命令执行(新):目标
disable_functions禁掉exec / passthru / system / shell_exec / popen / proc_open / putenv时,载荷转为 FastCGI 客户端连本机 php-fpm(自动发现 socket),通过PHP_ADMIN_VALUE注入sendmail_path触发 C 层popen执行命令 —— 不依赖任何被禁函数、不落地 - 插件工具全内存加载:凭据抓取(Pillager / hunter)、Mimikatz 均 PE→shellcode 内存执行,无文件落盘;提权(TH_TOOLS)用分片上传替代落地 exe
- 目标端字符集按
file.encoding自动对齐,减少因编码差异导致的特征
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# 保留字),生成的壳根本无法编译
MCP 工具
- 修复响应非法 JSON 打断 SSE 连接(
oplog_query等以[开头的输出被当作原始 JSON 直出) - 修复
file_search因目录项文件名为 null 导致整目录结果丢失,并改为真正的通配符匹配 - 修复
functions.substring空串/越界崩溃,掩盖真实错误 - 内置 JDBC 驱动按需上传:连接前探测目标端 classpath,缺了才经 JarLoader 分片送达
- CLI 启动恢复自动写入 Claude Code / Codex 客户端配置
- 恢复 Mimikatz 免 frame 执行路径(共享内存加载 + PE→shellcode + 分片上传 +
evalFunc) - 无头模式下插件工具(NewCmd / Mimikatz / TH_TOOLS 等)可正常实例化(此前构造期建 Swing 组件必报
HeadlessException)
数据库
- 内置达梦 DM8 与人大金仓 KingbaseES V8:驱动(均 target v50,JDK 6 起可用)、类型、连接串、库表 SQL 模板,驱动按需上传
- 达梦:
dm.jdbc.driver.DmDriver,jdbc:dm://host:port[/db],默认端口 5236 - 金仓:
com.kingbase8.Driver(旧版com.kingbase.Driver兼容),jdbc:kingbase8://host:port/db,默认端口 54321 - 连接串格式与默认端口已对照厂商官方文档核实
- 达梦:
- 连接编码不再把
Auto原样传给目标端(会解析成该 Shell 的实际编码,修复连库即报错) - 修复目标端 UPDATE/DDL 的成功提示被当错误抛出(update 型 SQL 假失败)
- 驱动加载走 TCCL,兼容 JDK 16+ 模块强封装
JDK 兼容
- 下发到目标端的字节码全部降至 v50(payload / 全部 modules / 全部插件资产),JDK 6–17 真机矩阵(真 Tomcat + 真 JSP + HTTP 联调)通过
界面
- Shell 多选一键分享:选中多条 →
Ctrl+C打包成一条gsl5://链接,导入端逐条还原并显示「共 N 条」 - 「目标 → 导入链接」改为弹出粘贴框:空白输入框粘贴 + 一键从剪贴板填入 + 自动预填(此前该菜单项的处理方法缺失,点击无反应)
- 列表刷新更快、不再跳:改成「立即出列表 + 后台补算归属地」,刷新后保持选中行与滚动位置(原来整表重建会丢选中、跳回顶部)
- 快捷键:
Enter打开选中的 Shell(仅单选生效,多选会提示)、Delete/Backspace/ 小键盘Del删除(支持多选)、Ctrl+A全选、Ctrl+C复制分享链接、Ctrl+V导入、Ctrl+F关键字过滤、Esc关右键菜单;对话框弹出时快捷键让路 - 双击 Shell 直接打开交互窗口(此前从未绑定过,双击无反应)
- 长操作有等待光标反馈;没有壁纸时去掉表格每格的半透明合成,滚动更顺
- 界面改版(随本次一并合入):新增后渗透插件中心(
PostExPluginHub,按插件注解自动归类、卡片式切换)、全局色调遮罩(亮度 / 灰度,UiToneOverlay)、SVG 图标体系(38 个页签图标)与终端适配器;Shell 分组由 JTree 重构为 JList;文件选择 / 另存为 / 效果设置面板重构;启动模式对话框重写(去掉写死的默认路径与账号) - 数据库界面:类型下拉与「测试连接」支持达梦 / 人大金仓
- 主窗口开合动效(默认关闭):绕竖轴 3D 旋转 / 沿中缝对折两种样式,可调时长与延迟,在「配置 → 应用设置 → 界面效果 → 动效」里开启预览
其它
- JarLoader 无头环境大 jar 上传 NPE、
jarmembuff://在 JDK 16+ 失效修复 - WebSocket 加密器模板硬编码 AES key 改为
{secretKey}占位符 - 修复主窗口启动 NPE
说明
- 应用内版本号 3.1.8(
ApplicationContext.RELEASE_TAG),此前的dev预发布版随本版发布下线 - jar SHA256
3634ABA4787F5F59BBC62AA209FD960AAA3CB78478A2A27F22B38F1AD1CC38BF(size 84565135) - 上一个稳定版:3.1.7.1