使用字典攻击对 SSH 服务器进行渗透测试。使用 C 语言编写。
brute krag 在南非荷兰语中意为“暴力破解”
此工具仅用于道德测试目的。 cbrutekrag 及其所有者不对用户的滥用行为负责。 用户必须遵守当地法律的规定。
$ cbrutekrag -h
_ _ _
| | | | | |
___ | |__ _ __ _ _| |_ ___| | ___ __ __ _ __ _
/ __|| '_ \| '__| | | | __/ _ \ |/ / '__/ _` |/ _` |
| (__ | |_) | | | |_| | || __/ <| | | (_| | (_| |
\___||_.__/|_| \__,_|\__\___|_|\_\_| \__,_|\__, |
OpenSSH Brute force tool 0.6.0 __/ |
(c) Copyright 2014-2024 Jorge Matricali |___/
https://github.com/matricali/cbrutekrag
usage: ./cbrutekrag [-h] [-v] [-aA] [-D] [-P] [-T TARGETS.lst] [-C credentials.lst]
[-t THREADS] [-f OUTPUT FORMAT] [-o OUTPUT.txt] [-F SCAN OUTPUT FORMAT] [-O SCAN_OUTPUT.txt] [TARGETS...]
-h, --help 本帮助
-v, --verbose 详细模式
-V, --verbose-sshlib 详细模式(sshlib)
-s, --scan 扫描模式
-D, --dry-run 空跑
-P, --progress 进度条
-T, --targets <file> 目标文件
-C, --credentials <file> 用户名和密码文件
-t, --threads <threads> 最大线程数
-o, --output <file> 输出日志文件
-F, --format <pattern> 输出日志格式
可用占位符:
%DATETIME%, %HOSTNAME%
%PORT%, %USERNAME%, %PASSWORD%
-O, --scan-output <file> 扫描器的输出日志文件
-F, --scan-format <pattern> 扫描器的输出日志格式
可用占位符:
%DATETIME%, %HOSTNAME%
%PORT%, %BANNER%.
默认:
"%HOSTNAME%:%PORT%\t%BANNER%\n"
-a, --allow-non-openssh 接受非 OpenSSH 服务器
-A, --allow-honeypots 允许被检测为蜜罐的服务器
--timeout <seconds> 设置连接超时(默认:3)
--check-http <host> 在成功登录后尝试打开 TCP 隧道
cbrutekrag -T targets.txt -C combinations.txt -o result.log
cbrutekrag -s -t 8 -C combinations.txt -o result.log 192.168.1.0/24
root root
root password
root $BLANKPASS
$TARGET root
root $TARGET
| 占位符 | 用途 | 作为密码 | 作为用户名 |
|---|---|---|---|
| $BLANKPASS | 空密码 | ✔️ | - |
| $TARGET | 使用主机名或 IP 作为密码 | ✔️ | ✔️ |
输出格式可以使用命令行选项 -f 轻松定制
示例:./cbrutekrag -f "%HOSTNAME%:%PORT%|%USERNAME%|%PASSWORD%\n",这会产生类似以下的输出:
192.168.0.100:22|root|toor
192.168.0.105:22|ubnt|ubnt
%DATETIME%\t%HOSTNAME%:%PORT%\t%USERNAME%\t%PASSWORD%\n
2024/04/01 13:05:13 192.168.0.100:22 root admin
| 占位符 | 描述 | 示例 |
|---|---|---|
| %DATETIME% | 替换为 Y/m/d HH:ii:ss 日期 | 2024/04/01 12:46:27 |
| %HOSTNAME% | 替换为主机名或 IPv4 | 192.168.0.100 |
| %PORT% | 替换为连接端口 | 22 |
| %USERNAME% | 替换为使用的用户名 | root |
| %PASSWORD% | 替换为使用的密码 | admin |
| \n | 替换为换行符 | |
| \t | 替换为制表符 |
输出格式可以使用命令行选项 -F 轻松定制
示例:./cbrutekrag -F "%HOSTNAME%\t%PORT%\t%BANNER%\n",这会产生类似以下的输出:
192.168.0.100 22 SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
192.168.0.105 22 SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2
%HOSTNAME%:%PORT%\t%BANNER%\n
192.168.0.100:22 SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2
| 占位符 | 描述 | 示例 |
|---|---|---|
| %DATETIME% | 替换为 Y/m/d HH:ii:ss 日期 | 2024/04/01 12:46:27 |
| %HOSTNAME% | 替换为主机名或 IPv4 | 192.168.0.100 |
| %PORT% | 替换为连接端口 | 22 |
| %BANNER% | 替换为服务器横幅 | SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2 |
| \n | 替换为换行符 | |
| \t | 替换为制表符 |
cbrutekrag 使用 libssh - SSH 库 (http://www.libssh.org/)
依赖:
makegcc 编译器libssh-devgit clone --depth=1 https://github.com/matricali/cbrutekrag.git
cd cbrutekrag
make
make install
依赖:
cmakegcc 编译器makelibssl-devlibz-devgit clone --depth=1 https://github.com/matricali/cbrutekrag.git
cd cbrutekrag
bash static-build.sh
make install