破解root用户:使用非root用户的“su”自动登录root

破解root用户:使用非root用户的“su”自动登录root

我想编写一个脚本,允许我将密码传递给su命令。这样做的原因是为了自动化从非 root 帐户登录到 root 的过程。从我对安全的基本了解来看,我知道这样做的危险。我仍然需要它来尝试通过从文件中读取密码来破解 root 用户密码。

我听说过使用该expect命令来自动化交互,但我不知道它是如何工作的,或者它是否适用于这种情况。任何有关使用的信息expect将不胜感激。

请注意,这sudo不是一个选项,因为我的用户不在 sudoer 列表中。

我尝试过的事情 - 使用管道传递密码由于类型错误而不起作用"su must be used from terminal"- 使用回显的内容传递密码echo 只会在输入密码后显示

答案1

做这种“单线风格”

expect -c 'spawn su - ;expect Password:;send "your-password\n";interact'

查看输出以su -确保这是否是用于捕获密码的正确短语。我在这里使用的是 Linux 的翻译版本,因此单词应该是“Senha:”而不是“Password:”。

  • expect -c '':对此命令运行以下操作
  • spawn su -:执行该命令
  • expect Password:期望密码这个词能做某事
  • send "your-password\n":输入您的密码,然后按 Enter 键
  • interact:保持对命令的交互准备。

答案2

您可以用来expect为您完成这项工作。将以下内容保存到文件中,使其可执行,然后运行它:

#!/usr/bin/expect
spawn su
expect "Password:"
send "YOUR_PASS\n"
interact

(显然,你需要指定正确的路径expect。这里我/usr/bin/expect以作为例子。)

如果YOUR_PASSroot 密码正确,您现在应该拥有 root shell。如果没有,您将收到身份验证失败的消息。

interact请注意,在完全自动化的脚本上下文中可能不需要该命令,因为它将进程的控制权交给了用户,即将击键发送到当前进程并返回 stderr 和 stderr。

man expect有关命令spawnexpectsendinteract以及许多其他命令的更详细说明,请参阅 参考资料。

相关内容