我正在做一个挑战,我必须向 netcat 守护进程提供一个密码(我有)和一个 4 位密码(只能通过暴力破解所有 10000 种可能性才能找到)。目前我正在做
#!/bin/bash
PWD='HpNYTlstOGHyQXmg6gzctqAwOmw1NiPQ'
for n in `seq 1 9999`;
do
STR=`echo $PWD $n | nc localhost 30002`
echo "passcode $n: $STR"
done
但这非常慢:它可能每秒执行 1 个密码。我可以做类似的事情吗
#!/bin/bash
PWD='HpNYTlstOGHyQXmg6gzctqAwOmw1NiPQ'
nc localhost 30002 #somehow pipe the output to a file without closing it
for n in `seq 1 9999`;
do
echo "$PWD $n" #echo a line into the stdin of nc
#set STR equal to whatever was outputted from nc
echo "passcode $n: $STR"
done
当我手动使用 nc 时,我可以在一个 nc 实例中发送和接收多行。然而,我似乎只能在 bash 中发送一行,这似乎不对。如何一次发送多行至 nc?
答案1
在 for 循环结束时:
done | nc localhost 30002