Como canalizar um loop para uma conexão netcat

0

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?

    
por qxu21 18.12.2017 / 07:32

2 respostas

2

no final do loop:

done | nc localhost 30002
    
por 18.12.2017 / 07:34
0
    pwd='UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ'
    for i in 'seq -f "%04g" 0 9999';
    do
         str='echo $pwd ' ' $i'
         echo $str
    done | nc localhost 30002
    
por 18.02.2018 / 04:05