sucrack 是 Kali Linux 中一款专注于 SU 命令密码暴力破解 的工具,核心功能是通过"字典攻击"的方式,尝试使用预设的密码列表(或标准输入的密码)反复调用系统的 su 命令,以破解目标用户(通常是 root 等特权用户)的登录密码,从而获取切换用户的权限。
其核心特点包括:支持多线程加速破解、可自定义密码改写规则(如大小写转换、添加数字等)、能通过环境变量适配不同系统的 su 命令反馈,适用于渗透测试中对本地用户或远程主机用户的密码爆破场景(需先获取目标主机的操作权限)。
二、工具 Usage 中文翻译(表格版)
2.1 基础语法
| 英文语法 | 中文翻译 |
|---|---|
| sucrack [-char] [-w num] [-b size] [-s sec] [-u user] [-l rules] wordlist | sucrack [选项] 密码字典文件 |
| The word list can either be an existing file or stdin. In that case, use '-' instead of a file name | 密码字典可以是已存在的文件,也可以是标准输入(此时用 '-' 代替文件名) |
| Either -w or -s has to be given | 必须指定密码字典文件(或标准输入 '-') |
2.2 选项说明(Options)
| 选项 | 英文说明 | 中文翻译 |
|---|---|---|
| -h | print this message | 打印帮助信息(本 Usage 内容) |
| -a | use ansi escape codes for nice looking statistics | 使用 ANSI 转义码,显示更美观的破解统计信息 |
| -s sec | statistics display interval | 设置统计信息的显示间隔(单位:秒) |
| -c | only print statistics if a key other than `q' is pressed | 仅在按下非 'q' 键时,才打印破解统计信息('q' 键通常用于退出) |
| -r | enable rewriter | 启用密码改写功能(需配合 -l 选项指定改写规则) |
| -w num | number of worker threads running with | 设置工作线程数量(num 为具体数字,线程数越多,破解速度通常越快,需根据主机性能调整) |
| -b size | size of word list buffer | 设置密码字典缓冲区大小(size 为具体数值,用于缓存字典内容,优化读取效率) |
| -u user | user account to su to | 指定要切换到的目标用户(如 root、普通用户等,默认通常为 root) |
| -l rules | specify rewriting rules; rules can be: A = all characters upper case, F = first character upper case, L = last character upper case, a = all characters lower case, f = first character lower case, l = last character lower case, D = prepend digit, d = append digit, e = 1337 characters, x = all rules | 指定密码改写规则(需先启用 -r 选项),规则说明: A = 所有字符转为大写 F = 首字符转为大写 L = 尾字符转为大写 a = 所有字符转为小写 f = 首字符转为小写 l = 尾字符转为小写 D = 在密码前添加数字 d = 在密码后添加数字 e = 将密码转为"1337 字符"(如 a→4、e→3、o→0 等) x = 启用所有改写规则 |
2.3 环境变量(Environment Variables)
| 环境变量 | 英文说明 | 中文翻译 |
|---|---|---|
| SUCRACK_SU_PATH | The path to su (usually /bin/su or /usr/bin/su) | 指定系统中 su 命令的路径(默认通常为 /bin/su 或 /usr/bin/su,适配不同系统的 su 位置) |
| SUCRACK_AUTH_FAILURE | The message su returns on an authentication failure (like "su: Authentication failure" or "su: Sorry") | 指定 su 命令在"认证失败"时返回的提示信息(如 "su: Authentication failure" 或 "su: Sorry",用于工具识别破解失败) |
| SUCRACK_AUTH_SUCCESS | The message that indicates an authentication success. This message must not be a password listed in the wordlist (default is "SUCRACK_SUCCESS") | 指定标识"认证成功"的提示信息(该信息不能是密码字典中的密码,默认值为 "SUCRACK_SUCCESS",用于工具识别破解成功) |
2.4 示例(Example)
| 英文示例命令 | 中文说明 |
|---|---|
| export SUCRACK_AUTH_SUCCESS="sucrack_says_hello" sucrack -a -w 20 -s 10 -u root -rl AFLafld dict.txt | 1. 先设置环境变量,将"认证成功"提示信息设为 "sucrack_says_hello" 2. 运行 sucrack:启用美观统计(-a)、20 个工作线程(-w 20)、每 10 秒显示一次统计(-s 10)、目标用户为 root(-u root)、启用密码改写并应用规则 AFLafld(-rl AFLafld)、使用密码字典 dict.txt |
三、sucrack 完整使用教程
3.1 前提条件
- 已获取目标主机的操作权限(sucrack 需在目标主机本地运行,或通过 SSH 等远程连接在目标主机上执行);
- 目标主机安装了
su命令(Linux 系统默认自带); - 准备好密码字典文件(如 Kali 自带的 /usr/share/wordlists/rockyou.txt,需先解压:
gunzip /usr/share/wordlists/rockyou.txt.gz)。
3.2 步骤 1:确认工具安装与帮助信息
Kali 通常默认预装 sucrack,若未安装,执行以下命令安装:
sudo apt update && sudo apt install sucrack -y
查看帮助信息,确认工具可用:
sucrack -h
输出内容应与前文 "选项说明" 一致,说明工具正常。
3.3 步骤 2:配置环境变量(可选,按需适配)
默认情况下,sucrack 已适配多数 Linux 系统的 su 反馈,但部分特殊系统需手动配置环境变量:
- 指定
su路径(若su不在 /bin 或 /usr/bin):
export SUCRACK_SU_PATH="/path/to/your/su" - 指定"认证失败"提示(如部分系统提示"su: 认证失败"):
export SUCRACK_AUTH_FAILURE="su: 认证失败" - 指定"认证成功"提示(避免与字典密码冲突,建议自定义):
export SUCRACK_AUTH_SUCCESS="sucrack_success_flag"
3.4 步骤 3:基础破解命令(无密码改写,单线程)
场景:破解目标用户 testuser,使用字典 rockyou.txt,单线程运行:
sucrack -u testuser /usr/share/wordlists/rockyou.txt
说明:工具会逐个尝试字典中的密码,若破解成功,会输出"认证成功"提示(如前文的 "sucrack_success_flag"),并显示对应的密码。
3.5 步骤 4:多线程加速破解(常用)
场景:破解 root 用户,使用 10 个线程,每 5 秒显示一次统计:
sucrack -a -w 10 -s 5 -u root /usr/share/wordlists/rockyou.txt
参数说明:
-a:美观显示统计(如已尝试密码数、成功率等);-w 10:10 个线程并行,建议线程数不超过主机 CPU 核心数(避免卡顿);-s 5:每 5 秒刷新一次统计信息。
3.6 步骤 5:启用密码改写规则(提升破解成功率)
场景:字典密码多为小写,需尝试"首字母大写+尾字母加数字"等规则,破解 root 用户:
export SUCRACK_AUTH_SUCCESS="success_msg"
sucrack -a -w 8 -s 3 -u root -rl Fd /usr/share/wordlists/rockyou.txt
参数说明:
-r:启用密码改写;-l Fd:应用规则 F(首字母大写)和 d(尾字母加数字),例如字典中的"123456"会被改写为"1234561""1234562"..."1234569""1234560"。
若需启用所有改写规则,将 -l Fd 改为 -l x 即可。
3.7 步骤 6:通过标准输入(stdin)传入密码
场景:若密码来自其他工具的输出(而非本地文件),可通过管道将标准输入作为密码源:
cat custom_passwords.txt | sucrack -u testuser -
说明:- 表示使用标准输入作为密码字典,cat custom_passwords.txt 的输出会作为密码列表传入 sucrack。
3.8 步骤 7:退出与结果查看
- 破解过程中,按下
q键可强制退出工具; - 若破解成功,工具会在终端输出"认证成功"提示(如 SUCRACK_SUCCESS),并显示对应的用户名和密码;
- 若需保存结果,可将输出重定向到文件:
sucrack -a -w 10 -u root rockyou.txt > crack_results.txt 2>&1
四、注意事项
- 合法性:使用 sucrack 破解他人主机密码需获得明确授权,未经授权的破解属于非法行为,需承担法律责任;
- 线程数:线程数并非越多越好,过多线程会导致主机 CPU 占用过高,反而降低破解效率,建议根据 CPU 核心数设置(如 4 核 CPU 设为 4-8 线程);
- 字典选择:密码字典的质量直接影响破解成功率,建议使用包含常见密码的字典(如 rockyou.txt),或根据目标用户习惯自定义字典;
- 环境变量冲突:若"认证成功"提示(SUCRACK_AUTH_SUCCESS)与字典中的密码重复,会导致工具误判破解成功,需避免此情况。