首先,如果措辞不当,请首先道歉。将尝试清楚解释。
我有一个名为testpassword的二进制文件,用法可能相当明确。如下
./testpassword hello
如果你好正确密码,那么输出将是
pass=correct
如果你好不正确的密码,输出将是
pass=incorrect
我是Linux和shell脚本的完全初学者,但是制作了一个非常粗略的简单脚本,名为bruteforce.sh。使用单词列表执行“强力”攻击。内容如下
./testpassword hello
./testpassword jelly
./testpassword watermelon
./testpassword anotherword
etc..
我在一个新的剧本中运行了以下内容,经过一段非常粗暴的方式,在成功时通知我
./bruteforce.sh 2 2>&1 >/dev/null | grep -n pass=correct
输出类似于12: pass=correct
。其中12是bruteforce.sh中的行号
当我在屏幕上看到这个时,我可以按ctrl-c并运行
awk 'NR==12' bruteforce.sh
获取与行号对应的正确传递。我只是想知道是否有更简单或更清洁的方式来完成这个
的任何部分提前感谢任何建议
答案 0 :(得分:0)
也许这样的事情。
for i in {1..1000}; do
(echo -n "$i: " && ./testpassword $i) | grep pass=correct
done
这只是在脚本输出之前回显当前密码。当然,{1..1000}
可以替换为您打算使用的单词列表。