Ese script en bash permite la reproducción en bucle de la acción de emitir
un voto mediante un formulario HTML de un conocido festival que pide un correo para posterior validación del mismo por link.
Como era de esperar, sólo se permitia un voto por cuenta de correo y nombre.
#!/bin/bash ### htmel[er]-fuck[er] 0.2 ### URL=http://www.mailinator.com/maildir.jsp?email= COMPLETO=~/40-votos DIR=~/www.mailinator.com LINKS=~/www.mailinator.com/links LBM=http://www.blabla-rock.com/concursos/concurso-de-bandas/votos/?pag=xxx while read line do CORREO=${line#*=} sudo curl --socks5 127.0.0.1:9050 -d "votos_bandas=1&nombre=$line" $LBM wget -r $URL$CORREO sleep 4 cd $DIR echo $CORREO > utf CORREO=`cat utf` | sed 's/\%40/\@/' utf > utf-2 CORREO=`cat utf-2` cat /home/own/www.mailinator.com/maildir.jsp\?email\=$CORREO |grep msgid > $DIR/msgid-extract sleep 7 IDVALIDO=`/usr/bin/urlxtract.sed $DIR/msgid-extract|head -n 1` lynx -dump "http://www.mailinator.com$IDVALIDO" | egrep -o "http:.*" > links sleep 7 VI=`cat links |grep "votos"| tail -n 1` wget --save-cookies wget-cook --keep-session-cookies $VI PHPID=`cat wget-cook | awk '{print $7}'| tail -n 1` sleep 4 sudo curl --socks5 127.0.0.1:9050 -b PHPSESSID=$PHPID -d "act=votar_vid&uid=$CORREO%40mailinator.com&idmaketa=xxx" $LBM sleep 2 sudo /etc/init.d/tor restart echo $CORREO >> correos-enviados # sudo mkdir ~/procesado/$DIR-$CORREO # sudo cp -r $DIR ~/procesado/$DIR-$CORREO-$(date +%F-%H%M) rm utf utf-2 wget-cook msgid-extract cd .. sudo rm -rf $DIR # WAIT=$[ ( $RANDOM % 60 ) + 1 ] sleep $WAIT done < "$COMPLETO"
Analizando un poco este script tenemos lo siguiente:
URL=http://www.mailinator.com/maildir.jsp?email=
Mailinator es un servidor de correo que permite One Time Accounts,cuentas de correo que creamos para un sólo uso y no tener que dar nuestro correo personal si no queremos, la clara desventaja es que se caracterizan por una ID, y si la conocemos podemos leer el correo asociado sin introducir ningún pass.
COMPLETO=~/40-votos
Ese fichero contiene el número de votos que queremos ir introduciendo, en el siguiente formato:
Ximena+Pelayo+Caraballo&uid=addisonj86%40mailinator.com
Pedro+Ferrer+Nieto&uid=ziyawangz001%40mailinator.com
Gael+Gálvez+Rosado&uid=tepper.drew%40mailinator.com
Agustín+Rosario+Deleón&uid=victorysmile2001%40mailinator.com
[…]
Para lograrlo se hizo un shuffle de Nombre+Apellido1+Apellido2 + correo@mailinator con otros pequeños scripts y que se comentarán más adelante de entre unas listas creadas al efecto con apellidos y nombres en este caso españoles, los correos de listas de spam.
Con nuestra siguiente cadena recogida en CORREO=${line#*=} :
Agustín+Rosario+Deleón&uid=victorysmile2001%40mailinator.com
Se va haciendo el POST con CURL y el correo de activación llega a su respectivo buzón.
Después, formamos otra URL de acceso directo a los buzones para descargarnos la página entera en formato texto y extraer entonces el enlace exacto del último correo recibido,
lynx -dump «http://www.mailinator.com$IDVALIDO» | egrep -o «http:.*» > links
del fichero creado links también habrá que extraer el enlace válido que tiene el siguiente formato:
$blabla-rock.com/votos?vi=2cc38f6722b04482c1da6d8f5982ae70
de la siguiente manera:
VI=`cat links |grep «votos»| tail -n 1`
Con esto y con el PHPSSID concreto de la sesión que hemos guardado en un fichero mediante el parámetro –save-cookies de wget ( teniendo en cuenta que sólo nos es válido para votar el PHPSSID que se nos crea la anterior url ), ya podemos realizar la última instancia POST con curl hacia el link válido que nos proporciona el buzón y proceder a una legítima votación con:
sudo curl –socks5 127.0.0.1:9050 -b PHPSESSID=$PHPID -d «act=votar_vid&uid=$CORREO%40mailinator.com&idmaketa=197″ $LBM
También se ha hecho uso de la red tor para anonimizar las conexiones al servidor y alternar las direcciones ip desde las que se ejecutan las acciones.
Subiendo 1,2,3,4..1340…. =)