6 de agosto de 2012

TooLs: Buscar direcciones de correos


Hace un tiempo estaba probando una librería en Python llamada urllib2 que me permite entre tantas cosas realizar una conexión HTTP y consultar una pagina web.

La idea de hoy es realizar un script donde el usuario ingrese una dirección de pagina web y el motor pueda determinar todas las direcciones de correo electrónicas que hay.

La idea es muy simple y el script es aún mucho más, gracias a urllib2, una vez que podamos realizar la conexión con la URL indicada, solo quedará realizar un macheo con expresiones regulares a todo el código interpretado.

Se me ocurrió hacer este código, donde seguramente faltarán muchos controles y restricciones, pero sin embargo podemos ver el poder de Python como lenguaje de programación.

import re
import urllib2

url = raw_input("Ingrese una URL (http://): ")
web = urllib2.urlopen(url)
html = web.read()
mailExp = re.compile(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4}')
mailList = mailExp.findall(html)
print "Mail scaneados %s" % (list(set(mailList)))
print "En total son: %s" % (len(list(set(mailList))))

Como para explicar el código de forma simple y rápida aunque no tiene ningún secreto, en las dos primeras líneas importo las librerías re y urllib2, la primera para trabajar con expresiones regulares y la otra para trabajar con peticiones http a páginas web.

Luego le solicito al usuario que ingrese una URL, luego intento realizar una conexión con la librería urllib2, almaceno el código html en una variable, luego creo mi expresión regular para buscar direcciones de correo y finalmente comienzo a buscar en el código html almacenado.

Finalmente muestro las direcciones de correos sin repetir y la cantidad encontrada.

Vean como en 9 líneas de código fuente, pudimos hacer el principio de una poderosa herramienta, que podemos programar para que recorra recursivamente la página, o saltar de una a otros enlaces, vean con que facilidad podemos buscar cadenas o fragmento de código gracias a las expresiones regulares.

Observen de que manera los spammers comienzan a recopilar información y generar sus bases de datos con cientos y miles de cuentas de correos, esperando para inundar la red.

Gente, si hay alguien que quiera colaborar o ir mejorando este código para luego compartirlo y seguir creciendo en GitHub, por favor no dejen de contactarme, les prometo ir publicando en este espacio muchos más TooLs para que comiencen a preparar y elaborar su laboratorio de herramientas.

Saludos!

Descarga | TooLs en GitHub

No hay comentarios.:

Publicar un comentario

Entradas populares