一个快速的SSH大规模扫描器、登录破解器、横幅抓取器和密码认证检查工具,使用python-masscan和shodan模块。
[ hacker@blackarch ~ ]$ sshprank -H
__ __
__________/ /_ ____ _________ _____ / /__
/ ___/ ___/ __ \/ __ \/ ___/ __ `/ __ \/ //_/
(__ |__ ) / / / /_/ / / / /_/ / / / / ,<
/____/____/_/ /_/ .___/_/ \__,_/_/ /_/_/|_|
/_/
--== [ by nullsecurity.net ] ==--
使用方法
sshprank <模式> [选项] | <杂项>
模式选项
-h <主机[:端口]> - 单个主机、CIDR、IP范围或主机列表文件,用于破解。
多个端口可用逗号分隔,例如:
127.0.0.1:22,222,2022 或 192.168.1.0/24:22
或 192.168.1.10-192.168.1.50:22 或 10.0.0.1-50
(默认端口:22)
-m <选项> [-r <数字>] - 传递任意masscan选项,对给定的主机进行端口扫描并
破解登录。找到的sshd服务将以支持'-h'选项和'-b'选项
的格式保存到'sshds.txt'。使用'-r'生成随机IPv4地址,
而不是扫描给定的主机。这些选项始终开启:'-sS -oX - --open'。
注意:如果你打算使用'--banner'选项,则需要指定
'--source-ip <某个IP地址>',这是masscan所需要的。
最好查阅masscan的选项!
-s <字符串;页数;限制> - 使用shodan搜索SSH服务器并破解登录。
请参阅下面的示例。注意:你需要一个比我提供的API密钥
更好的密钥,才能搜索超过100(=1页)个SSH服务器。
所以如果你使用这个密钥,请在'page'参数中使用'1'。
-b <主机[:端口]> - 从给定的目标抓取sshd横幅
(默认端口:22)
格式:与'-h'选项相同
-p <主机[:端口]> - 检查sshd是否支持密码认证
(默认端口:22)
格式:与'-h'选项相同
扫描选项
-r <数字> - 生成<数字>个随机IPv4地址,检查开放的sshd端口并
破解登录(仅与-m选项一起使用!)
凭证选项
-U <用户|文件> - 单个用户名或用户列表(默认:root)
-P <密码|文件> - 单个密码或密码列表(默认:root)
-c <文件> - 包含user:pass组合的列表
暴力破解选项
-e - 找到第一个登录后排除该主机。继续处理其他主机
-E - 找到第一个登录后完全退出sshprank
-z - 在破解前随机打乱目标列表
(仅与-h <文件>一起使用)。保存到'random_targets.txt'
-Z <数字> - 随机暴力破解:每次尝试随机选择目标+凭据。
<数字>总尝试次数,0 = 无限(与-h, -U/-P一起使用)
执行选项
-C <命令|文件> - 从文件(逐行)读取命令,或在登录破解成功后在
主机上执行单个命令
-N - 不输出ssh命令结果
线程选项
-x <数字> - 并行主机破解的线程数(默认:50)
-S <数字> - 并行服务破解的线程数(默认:20)
-X <数字> - 并行登录破解的线程数(默认:5)
-B <数字> - 并行横幅抓取的线程数(默认:70)
超时选项
-T <秒> - 认证和连接超时秒数(默认:5秒)
-R <秒> - (横幅)读取超时秒数(默认:3秒)
输出选项
-o <文件> - 将找到的登录写入文件。格式:
<主机>:<端口>:<用户>:<密码>(默认:owned.txt)
-v - 详细模式。显示找到的登录、sshd等信息。
(默认:关闭)
杂项选项
-i <字符串> - 伪装发送给sshd的SSH客户端版本字符串
(默认:paramiko的默认版本字符串)
-w <文件> - 会话文件:如果存在,则从其中恢复进度(跳过已尝试的
凭据)。当按下ctrl+c或-E时,状态会自动保存到
./sshprank_session.json(如果指定了-w,则保存到
<文件>)。通过-w传回该文件以恢复。
-H - 打印帮助
-V - 打印版本信息
示例
# 从给定列表中破解目标,使用用户admin、密码列表和20个主机线程
$ sshprank -h sshds.txt -U admin -P /tmp/passlist.txt -x 20
# 先扫描,然后从找到的sshd服务中破解,使用'root:admin'
$ sudo sshprank -m '-p22,2022 --rate 5000 --source-ip 192.168.13.37 \
--range 192.168.13.1/24' -P admin
# 生成1k个随机IPv4地址,然后以1k p/s进行端口扫描(此处为tcp/22),
# 并在找到的sshd上使用'root:root'破解登录
$ sudo sshprank -m '-p22 --rate=1000' -r 1000 -v
# 通过shodan搜索50个SSH服务器,并在找到的sshd上使用'root:root'破解登录
$ sshprank -s 'SSH;1;50'
# 抓取横幅并输出到文件,格式支持'-h'选项
$ sshprank -b hosts.txt > sshds2.txt
# 检查sshd是否支持密码认证
$ sshprank -p sshds.txt -v
# 打乱目标列表并破解
$ sshprank -h sshds.txt -z -U root -P /tmp/passes.txt
# 随机暴力破解:从IP/用户/密码列表中随机进行500次尝试
$ sshprank -h sshds.txt -U /tmp/users.txt -P /tmp/passes.txt -Z 500
# 无限随机暴力破解(按ctrl+c停止)
$ sshprank -h sshds.txt -U /tmp/users.txt -P /tmp/passes.txt -Z 0
# 伪装SSH客户端版本并破解
$ sshprank -h sshds.txt -i 'SSH-2.0-OpenSSH_8.9p1'
# 使用伪装版本检查密码认证
$ sshprank -p sshds.txt -i 'SSH-2.0-OpenSSH_7.4' -v
# 会话文件:按ctrl+c,然后再次运行以恢复
$ sshprank -h sshds.txt -U /tmp/users.txt -P /tmp/passes.txt -w sess.json
noptrix
查看docs/LICENSE。
我们在此强调,在nullsecurity.net上找到的与黑客相关的内容仅用于教育目的。我们对任何损害概不负责。您对自己的行为负责。