Recolectar emails de comunidades en internet.

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í:

Ejecutando el script para colectar emails de foros desde el NSLU2. 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.

Ejecutando el script desde el NSLU2

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. 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.

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 como aporrealos y noticierodigital ejecutado desde el iPhone. 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.

Script para recolectar emails de foros web ejecutado desde el iPhone

Etiquetas: , , , ,

Acerca de orvtech

Para saber un poco mas de mi, puedes: - Leer la pagina: Acerca de Oliver Rivas. - Agregar mi perfil de Google+ a tus círculos. - Seguirme por Twitter. - Seguirme por Identi.ca. - Hacerte Fan de orvtech.com en facebook.