Descubriendo usuarios a través de SMTP con smtpguess

Esta semana descubrí el pentest lab de heorot.net (en los foros tenéis las descargas y algo de documentación y pistas) y decidí probarlo. Dedicaremos otro post más adelante a ver la solución que hallé al nivel 1 del reto cuando lo complete definitivamente. No es que haga falta comerse mucho el coco para superar este primer nivel -no me gusta la forma que he hallado de superar algunas partes, pero ya lo comentaremos despacio en un post futuro-, pero su desarrollo ha dado lugar a una pequeña herramienta que pongo a vuestra disposición.

Llegado un punto del reto, resulta útil e interesante tratar de obtener los usuarios existentes en el sistema objetivo a través de SMTP. Partimos de una lista de usuarios que hemos recopilado -cada uno como ha podido/querido-. El proceso de enumeración a través de SMTP es sencillo, pero tedioso, por lo que decidí que podía automatizarlo de manera sencilla en python, y así nació smtpguess. De momento smtpguess funciona en python 2.6 -debería funcionar igual en 2.5 pero no en 3.x-, requiere que el servicio SMTP esté escuchando y que el puerto en el que lo haga no esté cerrado. Lo he liberado bajo GPLv2 y está disponible para su descarga desde aquí: https://sites.google.com/site/securityetalii/

La versión actual es la 0.1 y su funcionalidad aún no es completa -falta completar el soporte SSL por ejemplo-. Por ahora permite los métodos VRFY y RCPT TO para enumerar usuarios y funciona en un sólo thread. Aquí os dejo un ejemplo de uso:


adrian@Andromeda:~$ ./smtpguess.py
Missing Parameter!
smtpguess v0.1 by Adrián Bravo
Usage: ./smtpguess.py -h  [-p ] -m  -u  [-s] [-v]
where:
-h   -- Targets hostname
-p   -- SMTP server port
-m   -- Supported enumerating modes are verify and rcpt
-u   -- Path to the file containing user names to be tested
-v   -- Verbose: Shows the server responses
-s   -- Use SSL. NOT FULLY IMPLEMENTED IN THIS VERSION

Vamos a pedirle que se conecte a localhost, dejaremos el puerto sin especificar (por defecto es el 25) y le indicaremos que utilice el método RCPT TO, ya que normalmente el método VRFY está deshabilitado por los administradores.


adrian@Andromeda:~$ ./smtpguess.py -h localhost -m rcpt -u users.txt
Trying to connect to SMTP server...
Conection established successfully
Enumerating Users...
--------------------
--> root exists!
--> lp exists!
manolito doesnt exist : (
--> syslog exists!
antoñito doesnt exist : (
--> adrian exists!

Como podéis ver, ha encontrado varios nombres de usuario 🙂 Ahora ya tenemos parte del trabajo, encontrar credenciales para alguno y a jugar. Y ya sabéis, si tenéis cualquier duda o sugerencia, poned un comentario.

Anuncios
Tagged with: , , ,
Publicado en hacking, herramientas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Archive
A %d blogueros les gusta esto: