jueves, 28 de agosto de 2014

PASSWORD 101 PARTE IV - Creando diccionarios

Hola otra vez,

Siguiendo con nuestro PASSWORD 101, quiero mostrarles dos herramientas para la creación de diccionarios para fuerza bruta: IKnowU y Rsmangler.

IKNOWU

IKnowU es una herramienta desarrollada en Python por quien escribe este blog. Puede ser descargada de:

https://github.com/alearea51/IKn0wU



En entradas anteriores he mostrado algunas funcionalidades de esta herramienta como por ej. Obtención de datos de dominios y personas de Argentina. Pueden ver la entrada aquí:

http://mamaquieroserpentester.blogspot.com.ar/2014/06/welcome-to-ikn0wu.html

Esta vez, la utilizaremos para crear una lista de posibles passwords para testear con Brutus o Hydra por ejemplo.

Ejecutamos IKnowU y seleccionamos la opción 7:



Nos pedirá que ingresemos nombre, apellido, edad, gustos y organización asociadas a la persona poseedora de la cuenta a auditar.


 Y obtenemos la siguiente salida:


Nos generará un diccionario en la carpeta donde corre IKnowU:



 Como se puede observar a partir de la edad nos crea claves que poseen el año de nacimiento de la persona (algo que suele verse bastante en los passwords). También nos coloca en mayúscula la primera letra de algunas palabras. Ahora pasemos a la siguiente herramienta.

RSMANGLER

Esta herramienta (escrita en Ruby) es un Keyword Based Wordlist Generator y toma como entrada un archivo de texto y, realizando distintas operaciones sobre él, genera un listado de palabras para que guardemos en otro archivo.

Lo podemos descargar de:

https://www.randomstorm.com/resources/free-tools/rsmangler/

 Al correr rsmangler sin parámetros podemos ver sus opciones:


Como pueden ver, podemos específicar multiples opciones para generar archivos mas completos.

Generando un archivo wordlist

Creamos un archivo que contenga alguna o algunas palabras que creemos pueden formar parte de la contraseña.



Luego ejecutamos rsmangler con la opción -f (para especificar un archivo de entrada) y la ruta de nuestro archivo:


 Y ahí lo tenemos, el listado generado, listo para guardar en un archivo y probar con nuestra herramienta de fuerza bruta preferida.


Con esto damos por finalizado nuestro PASSWORD 101, espero que haya sido de utilidad.

Saludos

HAPPY HACKING!

martes, 26 de agosto de 2014

PASSWORD 101 - Parte III Conociendo a Hydra (Donde estás Hercules?)

Hola a todos!

Un poco de mitología griega...

Muchos se preguntarán por que estoy nombrando a Hércules en el título de esta entrada y por que esta imagen. Otros ya deben conocer la historia.

La Hidra de Lerna era un ser mitológico caracterizado por poseer múltiples cabezas y, cuando una de ellas era cortada, en su lugar crecían dos cabezas más. Este monstruo fué vencido por el semidios y famoso Hércules (de los 12 trabajos que tuvo que realizar para convertirse en dios este fué el segundo).

Quizás los passwords necesiten de la ayuda de Hécules porque Hydra acecha

Hydra, al igual que Brutus es una herramienta para crackear logins, como bien lo explican en su sitio web:


https://www.thc.org/thc-hydra/

"...[0x01] Introduction

Welcome to the mini website of the THC Hydra project.
Number one of the biggest security holes are passwords, as every password security study shows.
Hydra is a parallized login cracker which supports numerous protocols to attack. New modules
are easy to add, beside that, it is flexible and very fast.

Hydra was tested to compile on Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX,
QNX/Blackberry, and is made available under GPLv3 with a special OpenSSL license expansion.

Currently this tool supports:

Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST,
HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD,
HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle,
PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, S7-300, SAP/R3, SIP, SMB, SMTP, SMTP Enum,
SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.
For HTTP, POP3, IMAP and SMTP, several login mechanisms like plain and MD5 digest etc. are supported.
This tool is a proof of concept code, to give researchers and security consultants the
possiblity to show how easy it would be to gain unauthorized access from remote to a system.
The program was written van Hauser and is additiionally supported by David Maciejak..."

Como pueden ver, Hydra soporta muchos mas protocolos que la herramienta vista en la entrada anterior. Además corre en varios sistemas operativos :)


Hydra puede utilizarse por consola o a través de su versión gráfica Hydra-GTK

Mamá mirá, estoy usando Hydra

Vamos a mostrar el funcionamiento en Kali Linux  de esta herramienta. Para abrir Hydra en la consola vamos a Kali --> Top 10 Security Tools ---> hydra




Para abrir la interfaz gráfica vamos a Kali Linux ---> Ataques de contraseña ---> Ataques con conexión --> hydra-GTK



  Para la prueba vamos a utilizar la versión gráfica. Una vez seleccionada veremos lo siguiente:




Como podemos ver, tenemos varias solapas, cada una con varias opciones que a continuación analizaremos.

TARGET

En esta solapa, tenemos las siguientes opciones:


SINGLE TARGET: Para especificar un host objetivo.
TARGET LIST: Para seleccionar un archivo con una lista de hosts objetivos.
Prefer IPV6: Si queremos utilizar IPv6
Port: Puerto donde corre el servicio del cual vamos a tratar de conseguir la clave.
Protocol: Para seleccionar que protocolo deseamos "atacar".



También podemos elegir si queremos utilizar SSL para cifrar el ataque y Be Verbose y Show Attempts para verificar el estado del ataque.

PASSWORD


 Aquí tenemos:

USERNAME: Para definir un único usuario

USERNAME LIST: Para utilizar una lista de usuarios como veiamos con Brutus

PASSWORD: Para especificar un password

PASSWORD LIST: Para utilizar un archivo que contenga una lista de claves

USE COLON SEPARATE FILE: Quizás tenemos un archivo que contiene el siguiente formato ---> usuario:password, al seleccionar esta opción podremos utilizarlo.


TUNING



NUMBER OF TASKS: Para definir la cantidad de tareas paralelas (hilos).
TIMEOUT: El tiempo que debe pasar sin que Hydra reciba una respuesta del objetivo para abandonar la tarea.

Luego podemos configurar un proxy y especificar mas en la siguiente solapa.



Comenzando con el ataque

Vamos a definir un objetivo específico (una IP), el protocolo POP3 y las opciones Be Verbose y Show Attempts para ir viendo que sucede. En la parte inferior de la interfaz veremos que hydra va mostrando cuales serían los comandos que deberiamos ejecutar en caso de utilizar la consola.



 Ingresamos un usuario y una lista de passwords (la lista que utilicé viene por defecto en Kali y se encuentra en usr/share/wordlists/rockyou.txt)




Vamos a la solapa START y clickeamos en start (donde mas podía ser no?) para comenzar

Podemos ir viendo como Hydra va probando con las distintas claves del archivo y el correspondiente usuario hasta dar con la clave. Podemos ver el resultado con exito resaltado en negrita.




Sencillo no?

Con esto podemos ver lo fácil que puede ser lanzar un ataque de fuerza bruta. Si la clave es débil en poco tiempo el atacante puede consiguir su cometido.

Cabe destacar que esta herramienta, al igual que Brutus hacen mucho ruido en el host objetivo y siempre conviene utilizarlas como último recurso y siempre utilizando proxies para mantener el anonimato.

Nuevamente quiero resaltar lo importante que es crear un clave fuerte y que no sea la misma para todos los servicios.

Hasta acá llego esta entrada, la próxima vamos a ver herramientas para crear diccionarios a partir de alguna o algunas palabras.

Saludos y...

HAPPY HACKING! (and Login Cracking..)

viernes, 8 de agosto de 2014

PASSWORD 101 - PARTE II ("Et tu, Brute?")

Hola otra vez, como mencioné anteriormente, en esta nueva entrada veremos la fortaleza de los passwords desde la perspectiva del Pentester (o el atacante)

Para eso veremos una herramienta viejita pero que nos permite realizar ataques de fuerza bruta y por diccionario bastante bien.

Como veiamos en la entrada anterior:

"..La fuerza bruta, informáticamente hablando, consiste en probar claves al azar mediante software. Al realizar fuerza bruta hay programas que nos dejan elegir a partir de que longitud de clave queremos comenzar..."

Cabe destacar, que también se denomina fuerza bruta al hecho de probar claves de forma "manual" (método un poco cansador y poco efectivo si no tenemos mucha info del usuario).

La herramienta se llama Brutus y corre en Windows

Pasemos directo a la acción...

Ejecutamos Brutus y veremos la siguiente pantalla:


Entre las primeras opciones tenemos:


Como se puede ver podemos elegir el objetivo y tipo de protocolo. En base al tipo de protocolo nos aparecerán diferentes opciones relacionadas al mismo.


Luego tenemos el recuadro para jugar con el user y pass:


Si tildamos "Use Username" nos permitirá cargar un archivo con listas (diccionario) de usuarios. Si tildamos "Single User", Brutus nos permitirá ingresar un nombre de usuario; como se puede ver a continuación:


En "Pass Mode" podemos elegir:


Donde "Word List" nos permitirá cargar un diccionario con las claves

Un diccionario es un archivo que contiene una cierta cantidad de palabras para ser utilizadas a la hora de probar claves.

Seleccionamos la mencionada opción y ya tenemos todo listo. Le damos a start y comienza el trabajo...

Como podemos ver, Brutus en el recuadro inferior nos informa la cantidad de claves que va a testear y que ha conectado con el objetivo. Luego nos devuelve con "Positive Authentication" que ha logrado encontrar el password. En este caso lo encontró rápidamente por tratarse de una clave sencilla (la que no debemos tener jeje). 

ALERTA! Como deben estar pensando, el método (tanto por wordlist o por fuerza bruta) hace mucho ruido así que no siempre es recomendable.

Ahora, si elegimos el modo "Brute Force" y hacemos click en range podemos elegir la longitud del password y los tipos de caracteres.

Una vez que iniciamos el ataque, Brutus irá generando palabras y las probará como posibles claves hasta dar con la correcta. La parte negativa de este método es que muchas de las palabras que probará tienen muy poca probabilidad de ser elegidas por un usuario con lo cual se puede demorar bastante en obtener algun resultado.

Enlace de descarga:

http://www.hoobie.net/brutus/brutus-download.html

En la próxima entrada veremos otra herramienta que nos permite realizar acciones similares a las de brutus: Hydra. 
También veremos como generar nuestros propios diccionarios con palabras relacionadas al usuario que posee la cuenta que queremos atacar.

Saludos, que la FUERZA (BRUTA) los acompañe y...

HAPPY HACKING!