no final do loop:
done | nc localhost 30002
Eu estou fazendo um desafio onde eu tenho que alimentar uma senha (que eu tenho) e uma senha de 4 dígitos (que só pode ser encontrada via brute forçando todas as 10000 possibilidades) para um daemon netcat. Atualmente estou fazendo
#!/bin/bash
PWD='UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ'
for n in 'seq 1 9999';
do
STR='echo $PWD $n | nc localhost 30002'
echo "passcode $n: $STR"
done
mas isso é muito lento: talvez passe 1 senha por segundo. Eu poderia fazer algo parecido com
#!/bin/bash
PWD='UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ'
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
Quando uso nc manualmente, posso enviar e receber várias linhas em uma instância nc. No entanto, parece que só posso enviar uma linha no bash, o que não parece certo. Como posso enviar várias linhas, uma de cada vez, para nc?
no final do loop:
done | nc localhost 30002
pwd='UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ'
for i in 'seq -f "%04g" 0 9999';
do
str='echo $pwd ' ' $i'
echo $str
done | nc localhost 30002
Tags bash netcat shell-script