乐于分享
好东西不私藏

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

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


法律声明

本文介绍的工具仅用于授权的安全测试、CTF 竞赛和教育研究目的。 未经授权访问计算机系统属于违法行为。使用本工具前,请确保已获得目标系统所有者的明确书面授权。


项目背景

在当今的 Web 安全领域,Node.js 已经成为企业级应用的主流技术栈之一。然而,传统的 WebShell 管理工具在面对 Node.js 环境时往往显得力不从心——它们大多针对 PHP、ASP、JSP 等传统技术栈设计,缺乏对 JavaScript 运行时特性的深入理解。

TL-NodeJsShell 由天禄实验室开发,专门针对 Node.js 环境设计,提供从内存马注入到文件管理的一站式解决方案。


核心功能

1. 内存马注入技术

内存马(Memory Shell)是无文件攻击的典型代表,它不依赖文件系统持久化,而是在进程内存中驻留,具有极高的隐蔽性。TL-NodeJsShell 支持以下注入方式:

注入类型
适用场景
技术原理
Express 中间件注入
Express 框架应用
动态注册中间件,拦截 HTTP 请求
Koa 中间件注入
Koa 框架应用
利用洋葱模型,注入异步中间件
原型链污染
通用 Node.js 应用
利用 JavaScript 原型继承机制

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 模板,支持自定义参数配置:

  • 一键生成编码后的攻击载荷
  • 模板变量自动替换
  • 支持导出和部署

技术架构

后端技术栈

组件
技术选型
说明
运行时
Go 1.21+
高性能、跨平台编译
Web 框架
Gin
轻量级 HTTP 框架
数据库
SQLite + GORM
嵌入式存储,无需外部依赖
通信协议
WebSocket + HTTP
实时双向通信

前端技术栈

组件
技术选型
说明
框架
Vue 3 + TypeScript
组合式 API,类型安全
构建工具
Vite
极速热更新
UI 组件库
Element Plus
企业级组件
状态管理
Pinia
轻量级状态管理
终端模拟
xterm.js
全功能终端模拟器
代码编辑器
Monaco Editor
VS Code 同款编辑器

项目目录结构

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/                     # 文档资源

界面展示

主控制面板

Dashboard

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

终端交互

Terminal

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

文件管理

File Manager

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

Payload 生成

Payload Generator

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

Shell 配置

Shell Config

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

系统信息

System Info

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

代码编辑

Code Editor

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

代理管理

Proxy Manager

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

设置中心

Settings

全局设置面板,管理应用偏好和默认配置。


快速部署

环境要求

  • 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。


适用场景

场景
描述
授权渗透测试
在获得书面授权的前提下,对目标 Node.js 应用进行安全评估
CTF 竞赛
Web 安全类题目的 Node.js 内存马利用
安全研究
研究 Node.js 运行时安全、原型链污染等漏洞
红队演练
企业内部安全演练中的攻击方工具

获取工具:

点下方名片关注后发送:260313

低价考证包括但不限于CISP系列、PMP等等国内网安证书请关注公众号后点菜单栏的找棉花糖。

☟上下滑动查看更多

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 炸裂!这款 Node.js 内存马神器让安全圈彻底疯狂

猜你喜欢

  • 暂无文章