Real-Fruit-Snacks/Rapids

GitHub: Real-Fruit-Snacks/Rapids

模块化凭证喷洒工具,可自动扫描端口并对28种协议进行批量认证测试,适用于授权安全评估中的凭证验证和横向渗透测试。

Stars: 0 | Forks: 0

Rapids ![Python](https://img.shields.io/badge/language-Python-3776AB.svg) ![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey) ![License](https://img.shields.io/badge/license-MIT-blue.svg) **模块化凭证喷洒工具,用于授权安全测试。** 使用原生 Python 库同时对 28 个协议进行凭证喷洒。指向网络,提供凭证,它会自动扫描端口、检测服务、发现域,并对其发现的所有内容测试身份验证。核心功能无需外部工具依赖。
## 快速开始 ``` git clone https://github.com/Real-Fruit-Snacks/Rapids.git cd Rapids pipx install -e . ``` ``` # 自动扫描端口,发现域名,测试所有检测到的服务 rapids -t 192.168.1.0/24 -u admin -p 'Password123' # 从文件加载多个凭据 rapids -t 10.10.10.50 -C creds.txt # 使用访问证明验证进行喷洒 rapids -t 192.168.1.100 -u admin -p 'Pass123' --verify # 使用NT哈希进行传递哈希 rapids -t 10.10.10.50 -u administrator -p ':aad3b435b51404eeaad3b435b51404ee' # 试运行 -- 预览将要测试的内容 rapids -t 192.168.1.0/24 -C creds.txt --dry-run ``` 需要 Python 3.10+ 和 nmap 进行自动扫描。NetExec 可选,用于 `--nxc` 模式。 ## 功能 ### 28 个原生协议模块 每个协议都使用原生 Python 库实现 —— SMB/MSSQL/Kerberos 使用 impacket,SSH 使用 paramiko,WinRM 使用 pywinrm,数据库使用 pymysql/psycopg2/redis。不调用 CLI 工具意味着更快的执行和更丰富的错误处理。 ``` rapids -t 10.0.0.5 -u admin -p pass -s smb,ssh,rdp rapids -t 10.0.0.5 -u admin -p pass --nxc # Swap to NetExec modules ``` ### 自动发现 将 Rapids 指向 IP 地址,它会自动运行 nmap 服务扫描。检测到的端口会映射到正确的模块,域通过 SMB 发现,不同端口上的 HTTP 端口会分开保留(不会对 Web 应用进行去重)。 ### 自适应跳过 跟踪每个端点和每个主机的超时情况。某个端口连续 3 次超时后,该端点会被跳过。某个主机所有端口累计 5 次超时后,整个主机将被标记为不可达。 ### 访问证明 使用 `--verify` 在成功认证后执行访问证明命令 —— 列出 SMB 共享、通过 WinRM 运行 `whoami`、查询数据库版本、获取 Redis 服务器信息。 ### NT 哈希支持 跨 SMB、RDP、WinRM、MSSQL、LDAP 和 Kerberos 进行哈希传递。凭证可以是密码或 NT 哈希(以 `:` 开头)。哈希和密码凭证可以在凭证文件中自由混合。 ### 双模块系统 每个支持的协议都有一个原生库模块和一个可选的 NetExec 包装器。使用 `--nxc` 切换到 NetExec 支持的模块,以获得更好的兼容性。 ### 每服务超时 RDP 和 WinRM 连接本质上比 SSH 或 SMB 慢。Rapids 自动应用超时倍数 —— RDP 为 3 倍,WinRM/Kerberos 为 2 倍 —— 让慢速协议有足够的时间,而不会惩罚快速协议。 ### 凭证掩码 使用 `--mask-creds` 在所有输出中隐藏密码,以便在实时渗透测试中安全地进行屏幕共享。 ## 架构 ``` rapids/ rapids.py # CLI entry point (Click) core/ engine.py # SprayEngine -- ThreadPoolExecutor, adaptive skip models.py # Target, Credential, SprayResult dataclasses input_parser.py # Target/credential parsing, nmap XML, port scanning output.py # Rich tables, banner, summary, JSON export theme.py # Catppuccin Mocha color palette modules/ base.py # ServiceModule abstract base class nxc_base.py # NxcModule base (NetExec wrapper) smb.py # impacket SMBConnection ssh.py # paramiko rdp.py # xfreerdp + nxc fallback + impacket CredSSP winrm_mod.py # pywinrm (NTLM) mssql.py # impacket TDS mysql.py # pymysql postgres.py # psycopg2 ldap_mod.py # ldap3 kerberos_mod.py # impacket getTGT ... # + 18 more native modules nxc_smb.py # NXC wrapper modules (9 total) ... ``` 每个模块都实现 `test_credential()` 用于认证,`verify_access()` 用于访问证明。喷洒引擎通过 ThreadPoolExecutor(默认 10 线程)处理并发、自适应跳过和结果收集。 | 层级 | 技术 | |-------|------------| | 语言 | Python 3.10+ | | CLI | Click | | AD 协议 | impacket (SMB, MSSQL, Kerberos, RDP) | | SSH | paramiko | | WinRM | pywinrm | | 数据库 | pymysql, psycopg2, redis-py, pymongo, oracledb | | 输出 | Rich (Catppuccin Mocha) | | 扫描 | nmap (自动发现) | ## 命令参考 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-t, --target` | 目标 (IP, IP:port, IP:port:service, CIDR) | -- | | `-T, --targets-file` | 目标文件(每行一个) | -- | | `-n, --nmap` | 用于自动发现的 Nmap XML 文件 | -- | | `-u, --user` | 单个用户名 | -- | | `-p, --pass` | 单个密码或 NT 哈希(前缀 `:`) | -- | | `-C, --creds` | 凭证文件(每行 user:pass) | -- | | `-s, --services` | 要测试的逗号分隔服务 | 全部 | | `-w, --threads` | 并发线程数 | `10` | | `--timeout` | 连接超时(秒) | `5` | | `--delay` | 尝试之间的延迟(秒) | `0.0` | | `-d, --domain` | AD 协议的域(自动发现) | -- | | `--verify` | 成功认证后运行访问证明 | -- | | `--nxc` | 使用 NetExec 模块而非原生模块 | -- | | `--mask-creds` | 在输出中掩码凭证 | -- | | `--dry-run` | 预览而不发送流量 | -- | | `-o, --output` | 将结果写入 JSON 文件 | -- | ### 凭证文件格式 ``` # -C / --creds(每行一个用户名:密码) admin:Password123 administrator:aad3b435b51404eeaad3b435b51404ee sa:SQLServer2024! # -U / --userfile(每行一个用户名) admin administrator # -P / --passfile(每行一个密码/哈希) Password123 :aad3b435b51404eeaad3b435b51404ee ``` ## 平台支持 | 功能 | Linux | macOS | Windows | |---------|-------|-------|---------| | 核心喷洒引擎 | 完整 | 完整 | 完整 | | 自动 nmap 扫描 | 完整 | 完整 | 完整 | | 原生模块 (28) | 完整 | 完整 | 完整 | | NetExec 模块 | 完整 | 完整 | 部分 | | RDP (xfreerdp) | 完整 | 完整 | -- | | Evil-WinRM | 完整 | 完整 | -- | | Catppuccin 主题 | 完整 | 完整 | 完整 | ## 安全 通过 [SECURITY.md](SECURITY.md) 或 GitHub 安全公告报告漏洞。请勿就安全问题公开发布 issue。 Rapids **不会**: - 存储或缓存超出当前会话的凭证 - 从已认证服务中窃取数据 - 利用漏洞(仅测试凭证有效性) - 绕过网络访问控制或防火墙 - 在目标系统上持久化 ## 许可证 [MIT](
标签:impacket, paramiko, Pass-the-Hash, PoC, PostgreSQL, Python安全工具, pywinrm, Redis, SMB, SNMP, SSH, WinRM, 云存储安全, 凭据复用, 凭证喷洒, 域渗透, 密码喷射, 工业互联网, 数据统计, 暴力破解, 服务发现, 横向移动, 电子数据取证, 端口扫描, 编程规范, 网络安全, 网络扫描, 逆向工具, 错误配置检测, 隐私保护