Pupy
安装
安装说明以及所有其他文档都在 wiki 上。为了最大程度的兼容性,建议使用 Docker Compose。
描述
Pupy 是一个跨平台、多功能的远程访问木马(RAT)和后渗透工具,主要由 Python 编写。它具有全内存执行指导,留下的足迹非常小。Pupy 可以使用多种传输方式进行通信,通过反射注入迁移到进程中,并从内存中加载远程 Python 代码、Python 包和 Python C 扩展。
特性
-
Windows 有效载荷可以使用反射 DLL 从内存中加载整个 Python 解释器。
- Pupy 不接触磁盘。
-
可以打包成单个 .py 文件,在所有操作系统上运行时除了 Python 标准库外不需要其他依赖。
- 当 PyCrypto 不可用时,会被纯 Python 实现的 AES 和 RSA 替代。
-
可以反射式地迁移到其他进程中。
-
从内存中远程导入纯 Python 包(.py,.pyc)和已编译的 Python C 扩展(.pyd,.so)。
- 导入的 Python 模块不接触磁盘。
-
易于扩展,模块编写简单,按操作系统和类别排序。
-
模块可以使用 rpyc 直接访问远程客户端上的 Python 对象。
-
从 Pupy shell 交互式地访问远程对象,并获得远程属性的自动补全。
-
通信传输是模块化和可堆叠的。使用 HTTP over HTTP over AES over XOR 或可用传输的任意组合来渗透数据。
-
使用 obfsproxy 可插拔传输进行通信。
-
同时在多个主机上执行非交互式命令。
-
在远程主机上运行的命令和脚本可以中断。
-
命令和参数的自动补全。
-
可以定义自定义配置:命令别名、模块、连接时自动运行等。
-
在全内存远程 Python 解释器上打开带有自动补全的交互式 Python shell。
-
可以远程打开交互式 shell(cmd.exe、/bin/bash 等)。
- Unix 和 Windows 客户端上的远程 shell 有一个真正的 tty,所有键盘信号都像 SSH shell 一样工作。
-
远程执行 PE 可执行文件并从内存中执行。
-
生成各种格式的有效载荷:
格式 | 架构 | 简称 |
---|---|---|
Android 包 | x86 & ARMv7 | apk |
Linux 二进制 | x86 | lin_x86 |
Linux 二进制 | x64 | lin_x64 |
Linux 共享对象 | x86 | so_x86 |
Linux 共享对象 | x64 | so_x64 |
Windows PE 可执行文件 | x86 | exe_x86 |
Windows PE 可执行文件 | x64 | exe_x64 |
Windows DLL | x86 | dll_x86 |
Windows DLL | x64 | dll_x64 |
Python 脚本 | x86 & x64 | py |
PyInstaller | x86 & x64 | pyinst |
Python 一行命令 | x86 & x64 | py_oneliner |
Powershell | x86 & x64 | ps1 |
Powershell 一行命令 | x86 & x64 | ps1_oneliner |
Ducky 脚本 | N/A | rubber_ducky |
-
使用 Python 或 Powershell 一行命令从单个命令行部署到内存中。
-
在生成的有效载荷中嵌入"脚本",以"离线"执行某些任务,无需网络连接(例如:启动键盘记录器、添加持久性、执行自定义 Python 脚本、检查虚拟机等)。
-
多目标平台:
平台 | 支持状态 |
---|---|
Windows XP | 支持 |
Windows 7 | 支持 |
Windows 8 | 支持 |
Windows 10 | 支持 |
Linux | 支持 |
Mac OSX | 有限支持 |
Android | 有限支持 |
文档
所有文档都可以在 wiki 上找到。
常见问题
服务器可以在 Windows 上运行吗?
Pupy 尚未在 Windows 上测试过。理论上,它应该可以在任何支持 Docker 和 Docker Compose 的平台上运行。但是,您需要为 Windows 平台调整 Docker Compose 安装说明。
我无法安装 Pupy。安装失败了。
- 请参考 wiki。您的答案可能在那里。
- 搜索 Github 问题,看看您的问题是否已经解决。
- 如果您的问题尚未解决,请按照问题指南开启一个新问题。
如果您不遵循这些步骤,您的问题将被关闭。
Android 和/或 Mac OSX 有效载荷和模块不工作。
Pupy 对 Android 和 OSX 的支持是有限的。这些平台可能维护不善,可能会间歇性地出现问题。某些模块(如键盘记录器)可能在这些平台上缺失。
开发
如果有人想参与 Pupy 的开发,请不要犹豫!所有帮助都非常感谢,所有的 pull request 都会被审查。
此外还有一个关于开发的小说明。请在提交任何 commit 之前运行 flake8。配置文件在这里。
联系方式
平台 | 联系信息 |
---|---|
电子邮件 | contact@n1nj4.eu |
https://twitter.com/n1nj4sec |
这个项目是一个个人开发项目,请尊重它的理念,不要将其用于邪恶目的!
特别感谢
特别感谢所有帮助改进 Pupy 并使其成为更好工具的贡献者!:)