使用 Sucrack 和 Hydra 在 Linux 中暴力破解 Root 密码

Beginner

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索两种方法及相应的工具,用于通过对 Linux 系统进行暴力破解攻击来获取 root 用户密码。该实验将帮助你理解其背后的原理,并避免在此过程中常见的错误。


Skills Graph

使用 sucrack 通过 su 命令暴力破解 root 密码

在这一步中,我们将学习如何使用 sucrack 工具通过 su 命令暴力破解 root 用户的密码。

su 命令用于在 Linux 系统上切换到另一个用户的身份。除了 root 用户外,其他用户在使用此命令时需要提供目标用户的密码。

我们将用于暴力破解 su 命令的工具是 sucracksucrack 是一个多线程的 Linux 工具,旨在通过 su 命令暴力破解本地用户密码。

由于 su 命令需要从 TTY shell 获取用户输入,因此简单的 shell 脚本无法完成暴力破解攻击。sucrack 是用 C 语言编写的,并支持多线程,使得暴力破解过程非常高效。

你可以访问 sucrack 的官方网站以获取更多信息。

在真实场景中,目标机器可能无法访问互联网,因此你可以通过以下两种方法之一安装 sucrack

  • 下载 sucrack 的源代码并上传到目标机器,然后编译并运行。
  • 下载 sucrack 的源代码,在本地编译,然后将编译后的二进制文件上传到目标机器。

在本实验中,我们已经为你安装了 sucrack

  1. 在尝试暴力破解之前,我们将设置实验环境:

    打开终端并导航到项目目录:

    cd /home/labex/project

    运行脚本 env_setup_1.sh 以设置实验环境:

    ./env_setup_1.sh

    该脚本将我们切换到无特权的 www-data 用户。我们的目标是通过暴力破解获取 root 用户的密码。

    我们已经在 /tmp/common-wordlists.txt 准备了一个预先生成的单词列表用于演示。你也可以使用自己的单词列表。

  2. 使用 sucrack 暴力破解 su 命令的语法如下:

    sucrack -w <threads> [-u <username>] <wordlist>

    参数说明:

    • -w:指定线程数
    • <wordlist>:指定单词列表文件
    • -u:指定要暴力破解的用户名。如果不指定用户名,sucrack 默认会暴力破解 root 用户的密码。

    让我们尝试运行以下命令进行暴力破解:

    sucrack -w 20 /tmp/common-wordlists.txt > ~/sucrack.log && reset

    暴力破解的输出被重定向到 sucrack.log 文件。

    注意:reset 命令用于清除终端屏幕,因为有时在使用 sucrack 后,终端可能无法正常显示。

  3. 这次暴力破解可能需要一些时间。一段时间后,检查 sucrack.log 文件以确认密码:

    cat ~/sucrack.log

    预期输出:

    password is: really
  4. 然后,我们可以使用以下命令切换到 root 用户:

    su - root

    输入密码 really 以切换到 root 用户。

    really
  5. /root 目录下创建一个名为 success_1.txt 的文件,以确认你已成功切换到 root 用户:

    echo "Success_1" > /root/success_1.txt

    你可以检查 /root/success_1.txt 文件以确认你已成功切换到 root 用户。

你已经学会了如何使用 sucrack 暴力破解 root 用户的密码!

使用 hydra 通过 SSH 暴力破解 root 密码

在这一步中,我们将学习如何使用 hydra 工具通过 SSH 协议暴力破解 root 用户的密码。

在上一步中,我们应该仍然是 root 用户,而在这一步中,我们需要切换到 labex 用户。你可以通过运行以下命令切换到 labex 用户:

su - labex
  1. 确保目录设置为 /home/labex/project

    cd /home/labex/project

    运行脚本 env_setup_2.sh 以设置实验环境:

    ./env_setup_2.sh

    与上一步类似,执行此脚本后,你将切换到 www-data 用户。

  2. 在尝试暴力破解 SSH 协议之前,我们需要检查目标机器是否允许 root 用户通过 SSH 登录。你可以通过运行以下命令来检查:

    cat /etc/ssh/sshd_config | grep -i permitrootlogin

    如果输出显示 PermitRootLogin 设置为 yes,那么我们可以继续进行暴力破解攻击。否则,无需尝试。

  3. 我们将用于暴力破解 SSH 协议的工具是 hydrahydra 是一款著名的暴力破解工具,支持多种协议,包括 RDP、SMB、HTTP、MySQL 等。hydra 已预装在 Kali Linux 和我们的实验 Ubuntu 环境中。

    使用 hydra 暴力破解 SSH 协议的语法如下:

    hydra -l root -P passwords.txt -t 4 -V < IP > ssh

    参数说明:

    • -l:指定用户名
    • -P:指定单词列表文件
    • -t:指定线程数
    • -V:显示暴力破解攻击的进度和详细信息

    让我们尝试使用 /tmp/common-wordlists.txt 单词列表暴力破解 root 用户的密码,并将输出保存到 hydra.log 文件中:

    hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.log

    一段时间后,root 用户的密码被成功破解。

    检查 hydra.log 文件以确认密码:

    cat ~/hydra.log

    示例输出:

    ...
    [22][ssh] host: 127.0.0.1   login: root   password: penguin
    1 of 1 target successfully completed, 1 valid password found
    ...
  4. 现在我们已经获得了 root 用户的密码,可以通过运行以下命令切换到 root 用户:

    su - root

    输入密码 penguin 以切换到 root 用户。

    penguin

    你现在应该是 root 用户。你可以通过运行以下命令来确认:

    whoami

    输出应为 root

  5. /root 目录下创建一个名为 success_2.txt 的文件,以确认你已成功切换到 root 用户:

    echo "Success_2" > /root/success_2.txt

    你可以检查 /root/success_2.txt 文件以确认你已成功切换到 root 用户。

注意:如果你使用的是 hydra v9.0 之前的版本,在暴力破解 SSH 协议时可能会报告误报。你可以通过运行 hydra -v 来检查 hydra 的版本。

总结

在本实验中,我们学习了两种在 Linux 系统上暴力破解 root 用户密码的方法:通过 su 命令使用 sucrack 工具,以及通过 SSH 协议使用 hydra 工具。我们详细介绍了每种方法的安装、使用和分步操作,帮助你理解其背后的原理并避免常见的错误。本实验提供了有关权限提升技术的宝贵实践经验,这些技术可以应用于各种场景。