炸裂!这款 Node.js 内存马神器让安全圈彻底疯狂

法律声明
本文介绍的工具仅用于授权的安全测试、CTF 竞赛和教育研究目的。 未经授权访问计算机系统属于违法行为。使用本工具前,请确保已获得目标系统所有者的明确书面授权。
项目背景
在当今的 Web 安全领域,Node.js 已经成为企业级应用的主流技术栈之一。然而,传统的 WebShell 管理工具在面对 Node.js 环境时往往显得力不从心——它们大多针对 PHP、ASP、JSP 等传统技术栈设计,缺乏对 JavaScript 运行时特性的深入理解。
TL-NodeJsShell 由天禄实验室开发,专门针对 Node.js 环境设计,提供从内存马注入到文件管理的一站式解决方案。
核心功能
1. 内存马注入技术
内存马(Memory Shell)是无文件攻击的典型代表,它不依赖文件系统持久化,而是在进程内存中驻留,具有极高的隐蔽性。TL-NodeJsShell 支持以下注入方式:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Next.js 专项支持
针对 Next.js 框架的 Server-Side Rendering 特性,项目实现了专门的原型链污染利用链。通过构造特定的 multipart/form-data 请求,配合 Next-Action 等 HTTP 头,实现远程代码执行。
// Next.js 内存马核心 Payload 结构
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"value": "{\"then\":\"$B1337\"}"
}
2. 多层编码加密
为了绕过各类安全检测设备(WAF、IDS、IPS),项目内置了三种编码方案:
-
Base64 编码:支持多层嵌套编码,增加流量混淆度 -
XOR 异或加密:使用密码作为密钥进行异或运算 -
AES-GCM 加密:采用 AES-256-GCM 模式,提供认证加密
AES 加密模块采用 GCM(Galois/Counter Mode)模式,相比传统的 CBC 模式,它同时提供保密性和完整性验证:
// AES-GCM 加密实现
gcm, _ := cipher.NewGCM(block)
nonce := make([]byte, gcm.NonceSize())
io.ReadFull(rand.Reader, nonce)
ciphertext := gcm.Seal(nonce, nonce, plaintext, nil)
3. 交互式终端
基于 xterm.js 构建的虚拟终端,提供接近原生 SSH 的操作体验:
-
实时命令执行与输出回显 -
命令历史记录 -
多 Shell 会话管理 -
延迟监控与连接状态检测
4. 文件管理系统
完整的远程文件管理功能:
-
目录浏览:实时获取远程服务器目录结构 -
文件传输:支持大文件分块传输,避免内存溢出 -
在线编辑:集成 Monaco Editor,支持语法高亮 -
文件预览:图片、文本等常见格式直接预览
5. Payload 生成器
内置多种 Payload 模板,支持自定义参数配置:
-
一键生成编码后的攻击载荷 -
模板变量自动替换 -
支持导出和部署
技术架构
后端技术栈
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
前端技术栈
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
项目目录结构
TL-NodeJsShell/
├── server/ # Go 后端服务
│ ├── cmd/api/ # 应用入口
│ └── internal/
│ ├── app/ # 应用核心(路由、中间件)
│ ├── config/ # 配置管理
│ ├── core/
│ │ ├── crypto/ # 加密模块(AES、XOR、Base64)
│ │ ├── exploit/ # 利用模块(内存马注入)
│ │ ├── payload/ # Payload 生成器
│ │ ├── proxy/ # 代理支持
│ │ └── transport/ # HTTP 通信层
│ ├── database/ # 数据模型
│ └── handlers/ # API 处理器
├── web/ # Vue 3 前端
│ └── src/
│ ├── api/ # API 客户端
│ ├── components/ # 可复用组件
│ ├── stores/ # Pinia 状态仓库
│ ├── types/ # TypeScript 类型定义
│ └── views/ # 页面视图
└── docs/ # 文档资源
界面展示
主控制面板

Shell 管理界面,清晰展示所有已连接的 Shell 状态、延迟信息和系统基本信息。
终端交互

基于 xterm.js 的全功能虚拟终端,支持命令历史和实时输出。
文件管理

直观的文件浏览器,支持上传、下载、编辑和预览操作。
Payload 生成

可视化的 Payload 生成器,支持模板选择和编码配置。
Shell 配置

灵活的 Shell 配置选项,支持代理、自定义 Headers 等高级设置。
系统信息

实时获取目标服务器的系统信息,包括操作系统、Node.js 版本、CPU 和内存等。
代码编辑

集成 Monaco Editor,提供 VS Code 级别的代码编辑体验。
代理管理

支持 HTTP、HTTPS、SOCKS5 代理配置,满足复杂网络环境需求。
设置中心

全局设置面板,管理应用偏好和默认配置。
快速部署
环境要求
-
Go 1.21 或更高版本 -
Node.js 16 或更高版本 -
npm / yarn / pnpm
后端构建
cd server
go mod download
go build -o NodeJsshell cmd/api/main.go
./NodeJsshell
前端构建
cd web
npm install
npm run build
访问应用
后端服务默认监听 http://localhost:8080,前端静态资源由 Go 服务器直接托管。
安全特性
通信加密
支持三种编码方式,可根据目标环境的安全检测能力灵活选择:
-
Base64:适用于基础混淆需求 -
XOR:适用于绕过简单的流量特征检测 -
AES-256-GCM:适用于高安全性要求场景
代理支持
支持多种代理协议,便于在复杂网络环境中进行渗透测试:
-
HTTP 代理 -
HTTPS 代理 -
SOCKS5 代理
自定义 Headers
可配置任意 HTTP 请求头,用于模拟正常流量或绑定特定 Cookie。
适用场景
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
获取工具:
点下方名片关注后发送:260313
获取工具:
点下方名片关注后发送:260313

☟上下滑动查看更多

夜雨聆风