介绍
在本实验中,我们将探索两种方法及相应的工具,用于通过对 Linux 系统进行暴力破解攻击来获取 root 用户密码。该实验将帮助你理解其背后的原理,并避免在此过程中常见的错误。
使用 sucrack 通过 su 命令暴力破解 root 密码
在这一步中,我们将学习如何使用 sucrack 工具通过 su 命令暴力破解 root 用户的密码。
su 命令用于在 Linux 系统上切换到另一个用户的身份。除了 root 用户外,其他用户在使用此命令时需要提供目标用户的密码。
我们将用于暴力破解 su 命令的工具是 sucrack。sucrack 是一个多线程的 Linux 工具,旨在通过 su 命令暴力破解本地用户密码。
由于 su 命令需要从 TTY shell 获取用户输入,因此简单的 shell 脚本无法完成暴力破解攻击。sucrack 是用 C 语言编写的,并支持多线程,使得暴力破解过程非常高效。
你可以访问 sucrack 的官方网站以获取更多信息。
在真实场景中,目标机器可能无法访问互联网,因此你可以通过以下两种方法之一安装 sucrack:
- 下载
sucrack的源代码并上传到目标机器,然后编译并运行。 - 下载
sucrack的源代码,在本地编译,然后将编译后的二进制文件上传到目标机器。
在本实验中,我们已经为你安装了 sucrack。
在尝试暴力破解之前,我们将设置实验环境:
打开终端并导航到项目目录:
cd /home/labex/project运行脚本
env_setup_1.sh以设置实验环境:./env_setup_1.sh该脚本将我们切换到无特权的
www-data用户。我们的目标是通过暴力破解获取root用户的密码。我们已经在
/tmp/common-wordlists.txt准备了一个预先生成的单词列表用于演示。你也可以使用自己的单词列表。使用
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后,终端可能无法正常显示。这次暴力破解可能需要一些时间。一段时间后,检查
sucrack.log文件以确认密码:cat ~/sucrack.log预期输出:
password is: really然后,我们可以使用以下命令切换到 root 用户:
su - root输入密码
really以切换到 root 用户。really在
/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
确保目录设置为
/home/labex/project:cd /home/labex/project运行脚本
env_setup_2.sh以设置实验环境:./env_setup_2.sh与上一步类似,执行此脚本后,你将切换到
www-data用户。在尝试暴力破解 SSH 协议之前,我们需要检查目标机器是否允许 root 用户通过 SSH 登录。你可以通过运行以下命令来检查:
cat /etc/ssh/sshd_config | grep -i permitrootlogin如果输出显示
PermitRootLogin设置为yes,那么我们可以继续进行暴力破解攻击。否则,无需尝试。我们将用于暴力破解 SSH 协议的工具是
hydra。hydra是一款著名的暴力破解工具,支持多种协议,包括 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 ...现在我们已经获得了 root 用户的密码,可以通过运行以下命令切换到 root 用户:
su - root输入密码
penguin以切换到 root 用户。penguin你现在应该是 root 用户。你可以通过运行以下命令来确认:
whoami输出应为
root。在
/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 工具。我们详细介绍了每种方法的安装、使用和分步操作,帮助你理解其背后的原理并避免常见的错误。本实验提供了有关权限提升技术的宝贵实践经验,这些技术可以应用于各种场景。