介绍
在本实验中,我们将探索两种方法及相应的工具,用于通过对 Linux 系统进行暴力破解攻击来获取 root 用户密码。该实验将帮助你理解其背后的原理,并避免在此过程中常见的错误。
在本实验中,我们将探索两种方法及相应的工具,用于通过对 Linux 系统进行暴力破解攻击来获取 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 用户的密码。
在上一步中,我们应该仍然是 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
工具。我们详细介绍了每种方法的安装、使用和分步操作,帮助你理解其背后的原理并避免常见的错误。本实验提供了有关权限提升技术的宝贵实践经验,这些技术可以应用于各种场景。