domingo, 1 de febrero de 2015

Ataques de Fuerte Bruta.


Bueno después de ya varios meses que estoy retornando a mi pequeño blog con el fin de poder dar a conocer las pequeñas cosas que puedo aprender en el mundo de la informática. Espero poder seguir escribiendo mas seguido durante el transcurso del presente mes y bueno espero que el tema que voy a relatar les sea de su agrado. Pues sin mas que decir comencemos.!!!


  la fuerza bruta es una técnica empleada para descubrir claves en sistemas donde el método sea posible. - See more at: http://www.alegsa.com.ar/Dic/fuerza%20bruta.php#sthash.oti61rBO.dpuf
  la fuerza bruta es una técnica empleada para descubrir claves en sistemas donde el método sea posible. - See more at: http://www.alegsa.com.ar/Dic/fuerza%20bruta.php#sthash.oti61rBO.dpufla fuerza bruta es una técnica empleada para descubrir claves en sistemas donde el método sea posible. - See more at: http://www.alegsa.com.ar/Dic/fuerza%20bruta.php#sthash.oti61rBO.dpuf
Un ataque de fuerza bruta es una técnica empleada con el fin de poder descubrir los accesos (password) en un determinado panel de usuario (login - administrator). Hay que tener presente que dicha técnica dispone de ciertas desventajas ya sea el tiempo de ejecucion o los distintos escenarios de ataque

Su implementación se puede llevar a cabo mediando un script o software que se encarga de probar las múltiples claves las cuales se encuentran alojadas en un archivo (worlist), esta función recursiva la cual va a recorrer desde la primera opción de nuestro archivo hasta encontrar la opción la cual sera la clave que estamos buscando.

A continuación vamos a mencionar algunas de las tantas herramientas que existen para poder realizar estos ataques. Hay que resaltar que dichos ataques son gracias a las falta de politicas de seguridad de una empresa determinada o de simplicidad de las accesos que son usados por los administradores.


Hydra 

Hydra es por excelencia la herramientas mas conocida y utilizada para realizar estos ataques. Esto se debe a sus múltiples opciones de ataque,  y su gran estabilidad de soporte.

Estos son los protocolos que soporta esta herramienta : 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.

Plataformas compatibles.

  1. Todas las plataformas UNIX (linux, *bsd, solaris, etc.)
  2. Mac OS/X
  3. Windows con Cygwin (IPv4 e IPv6)
  4. Los sistemas móviles basados en  Linux, Mac OS/X or QNX (e.g. Android, iPhone, Blackberry 10, Zaurus, iPaq)

Descarga e Instalación - Hydra v.8.1 - 2014/12/08https://github.com/vanhauser-thc/thc-hydra


En este ejemplo voy a utilizar Hydra en la plataforma Windows, esto va ser posible tras haber instalado la ultima version de Cygwin.




Opciones de Ataque.


  • -R  :  Con esto se restaura la sesión la cual se aborto anteriormente.
  • -S  :  Sirve para establecer conección por SSL [-S]
  • -s PORT :  Si el servicio es en un puerto predeterminado diferente, es necesario definirla.
  • -l  :  Antecede al nombre de usuario, si se usa en mayúscula (-L) se puede poner un diccionario (*.txt) con usuarios (muy práctico cuando no se sabe el usuario) [-l admin] [-L admin.txt].
  • -p  :  Antecede al password, si se usa en mayúscula (-P) se puede poner un diccionario de passwords (es lo más lógico usar esta opción) [-p password] [-P diccionario.txt].
  • -v  :  Es el verbose mode que imprime en pantalla los intentos de usarios-password, si se usa con mayúscula (-V) Hydra nos dará más detalles del proceso de crackeo [-v] [-vV]
  • -e nsr :  Comprobaciones adicionales, “n” para password vacíos, “s” intentar iniciar sesión como la contraseña, “r” iniciar sesión de forma invertidad.
  • -C  :  Esta sentencia se usa eliminando -l/-L y -p/-P ya que aquí se especifica un diccionario combo, osea que tenga tanto usuario como contraseña con el formato user:pass [-C diccionario-combo.txt].
  • -o  :   Esto es muy útil ya que nos ira dejando en un documento que nosotros especifiquemos todas las contraseñas y usuarios que vayamos descubriendo [-o output.txt].
  • -f  :  Sirve para detener el procesos tras haber podido encontrar el primer password [-f].
  • -w /W TIME  :  tiempo de espera para las respuestas (32s) /  tiempo entre resultados.

Para nuestro ejemplo vamos a intentar averiguar la contraseña de una botnet que se encuentra en alojado como huésped en un sitio web.



Para poder realizar el ataque voy a utilizar hydra en windows, posteriormente veremos otras alternativas en Linux (Kali). Bueno lo primero que vamos hacer es ejecutar hydra e ingresar los datos correctamente para iniciar el ataque.


Target : http://www.site.com/skins/tango/_labe/cp.php?m=login


Para poder obtener dichos datos voy a utilizar la herramienta burp suite, esto con el fin de poder averiguar el método que están utilizando las variables.

Nota : Otra alternativa es usar el plugin de mozilla conocido como Live HTTP Header. Si no tienes experiencia en el manejo de burp suite, recomienda usar el plugin ya mencionado.


A continuación vamos a realizar una pequeña prueba e ingresamos en la cual vamos a ingresar en los formularios admin y password correspondientemente, esto con el fin de analizar el comportamiento de las mismas.



Tras realizar la prueba podemos deducir que se utiliza el método POST y también podemos observar las variables que capturan los datos que ingresamos. Hasta el momento hemos podido observar como enviamos los datos al servidor, pero también es necesario saber como responde el servidor a las mimas. Para poder observar dicha respuesta vamos a la pestaña Response.




En la imagen podemos observar claramente la respuesta del servidor, en la cual nos dice que los datos ingresados han sido incorrectos.

Nota : Para un ataque con hydra mediante el método POST es importante conocer la respuesta del servidor. En nuestro caso "Bad user name or password."

Bueno una vez hecha la prueba vamos a ejecutar hydra .



Sería innecesario mencionar la función de " -l , -P , -s , -w , -f -V ", lo que si sería necesario mencionar es la estructura que se tiene que utilizar al utilizar el protocolo - método (http-post-form).


http-post- form "Ruta y nombre de archivo:parámetros(POST - GET):Respuesta del servidor."

Parámetros(POST) =>    user=admin&pass=^PASS^


Nota : ^PASS^ va ser reemplazado por cada alternativa de todas las opciones del archivo pass.txt de un modo recursivo.


Después de haber ingresado todos los datos vamos a iniciar el ataques.



Podemos observar que después de una serie de pruebas hechas por hydra , hemos podido obtener satisfactoriamente el password, el cual a continuación lo usaremos para poder tener acceso a la botnet.





Patator 

Patator es un multi-propuestas para ataques de fuerza bruta, posee un diseño modular y su uso es muy flexible. La herramienta se encuentra escrita en lenguaje python y es una gran alternativa de hydra.


Patator  - Descargar :  https://code.google.com/p/patator/source/browse/patator.py


Nota : Si se desea ejecutar patator en Windows es necesario antes instalar python y pycurl.


Características.



  • No hay falsos negativos, ya que es el usuario el que decide lo que da como resultado de ignorar la base de:
  1. Código de estado de respuesta
  2. Tamaño de la respuesta
  3. Tanga o expresiones regulares en los datos de respuesta
  • Diseño modular
  1. No limitado a los módulos de red (por ejemplo. El módulo unzip_pass)
  2. No se limita a fuerza bruta (por ejemplo. Prueba Exploit Remoto o vulnera versiones de prueba.)
  • Tiempo de ejecución interactivo.
  1. Mostrar el progreso durante la ejecución (presione Enter)
  2. Pausa / Reanudar la ejecución (presione p)
  3. Aumento / disminución de verbosidad
  4. Agregar nuevas acciones y condiciones en tiempo de ejecución (por ejemplo. Para excluir más tipos de respuesta de muestra)
  5. Digite --help para ver todos los comandos interactivos disponibles por cada módulo.
  • Conexiones persistentes (es decir. Pondrá a prueba varias contraseñas hasta que se desconecte del servidor)
  • Multi-threaded


Para realizar la respectiva prueba de la herramienta patator voy a utilizar una distribución de Linux llamado Kalil Linux. El cual es un sistema operativo diseñado para hacer pruebas de penetración y testing a sistemas informáticos.



En la imagen podemos observar los módulos que nos ofrece patator para poder realizar un ataque especifico. Para nuestro ejemplo vamos a usar el objetivo anterior, como sabemos el protocolo que se uso fue HTTP y el método POST, esto nos conlleva a elegir la opcion http_fuzz : Brute-force HTTP.



A continuación vamos a cambiar los ciertos parámetros y eliminar algunos ya que son innecesarios para nuestro objetivo.


Target : http://www.site.com/skins/tango/_labe/cp.php?m=login

body = 'Nos hace referencia a las parámetros (POST-GET).'

En nuestro caso :

body='user=admin&pass=FILE0

FILE0 es  en patator como ^PASS^ es en hydra.

0 = Nombre de nuestro archivo que contiene los posibles password.

En nuestro caso :

0 = pass.txt

Pass.txt es mi archivo en donde se encuentran mis opciones de password.

ignore : fgrep = 'Respuesta del servidor'.

En nuestro caso :

ignore:fgrep='Bad user name or password.'




Después de haber hecho un adecuado modelamiento a nuestro objetivo, solo quedaría poder ejecutar el script y esperar unos segundos, el tiempo es una variable que va a depender de nuestro archivo de password.




Bueno podemos observar que patator nos ha respondido correctamente y ha podido encontrar satisfactoriamente el password que buscábamos.


Nmap 


Hasta el momento hemos tratado con formularios de clases generales y sencillos. En esta pequeña sección vamos a abordar el tema de Nmap y sus scripts, los cuales van a ser útil para poder realizar ataques de fuerza, ya sea a las plataforma Joomla  o a Wordpress.

Una pregunta que algunos seguro han pensado, es porque no se podría utlizar hydra ni patator en estos casos. Pues la respuesta es sencilla.




Podemos observar que el último campo, el cual tiene un valor de 1, está formado por una cadena 32 dígitos en hexadecimal, la cual se se generan cada vez que hacemos un intento de logeo. Esto sería un grave problema para Hydra, ya que el token cambiaría en cada intento de prueba que se realiza. Por lo tanto podemos deducir que Hydra no captura la el token y no lo envía, lo cual si lo hace con las demás variable mediante el método POST.


Nmap - Descargar : https://nmap.org/download.html


A continuación voy a relizar una pequeña prueba de concepto utilizando el script para realizar brute forcing en la plataforma Joomla . En la siguiente prueba voy a utilizar Nmap en el OS Windows.


Nmap - Documentación Brute forcing Joomla : http://nmap.org/nsedoc/scripts/http-joomla-brute.html


Estructura de ataques :   nmap -sV --script http-joomla-brute <target>

Nota : La estructura de ataque que voy a utilizar, tiene por defecto el uso de dos archivos. El primero llamado username y el segundo llamado password, los cuales van a a recolectar todas las posibilidades para sus respectivos formularios. Si usted va a utilizar un archivo que no se encuentre en la carpeta nmap, se recomienda utilzar la siguiente estructura de ataque.


--script-args 'userdb=/ruta_de_directorios/users.txt,passdb=/ruta_de_directorios/passwds.txt,http-joomla-brute.hostname=domain.com,http-joomla-brute.threads=3,brute.firstonly=true' <target>




Podemos observar que el ataque ha tenido éxito. Ahora vamos a proceder a utilizar la credencial para acceder como administrador al sitio web.


 El mismo método que hemos aplicado para realizar brute forcing a joomla funciona de manera similar para poder realizar ataques a Wordpress.


WPScan.



WPScan es un completo escaner de vulnerabilidades para la plataforma Wordpress. Su código se encuentra escrito en lenguaje ruby. Cabe resaltar que no vamos a analizar exhaustivamente a WPScan , si no solamente vamos a centrarnos en su ataque de fuerza bruta.

WPScan viene pre-instalado en las siguientes distribuciones Linux:


  • Backbox Linux
  • Kali Linux
  • Pentoo
  • SamuraiWTF
  • ArchAssault


Descargar WPScan : http://wpscan.org/



Para este caso también voy a utilizar Kali Linux ya que como sabemos viene pre-instalada. 








A continuación ingresamos la siguiente los comandos para comenzar el ataque.



Nota : En mi caso voy utilizar el archivo rockyou.txt como wordlista , el cual se va a encontrar en la carpeta wpscan.



/wpscan$ ruby wpscan --url www.site.com.br --wordlist rockyou.txt --username admin





Procedemos a ejcutar y a esperar que la herramienta realice las pruebas necesarios para llegar al acceso que estamos buscando.



El tiempo de espera va a depender del archivo worslist que usted elija.


Otras alternativas - Brutus AET-2  - Darkcode brute v.1.9


Brutus es un herramienta antigua, su primera version fue lanzada en 1998 y desde entonces se han producido al menos 70.000 descargas y más de 175.000 visitantes de esta página. El desarrollo continúa así nuevas versiones estarán disponibles en un futuro próximo. Brutus fue escrito originalmente para ayudar a registrarme routers etc. para defecto y contraseñas comunes.


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




Posee una interfaz básica con la cual su uso es relativamente sencillo.


Darkcode brute es una herramienta que se encontraba disponible en los mercados negros por una cantidad de Bitcoin. Es una herramienta que nos permite realizar ataques de fuerza bruta con una simplicidad de uso. Su interfaz es básica y nos proporciona diversas herramientas y protocolos para efectuar los ataques.




Como mencione anteriormente es una herramienta de fácil uso y solo sería cuestión que el usuario marque las opciones de ataque que desea realizar.


Conclusiones :


Podemos concluir que los ataques de fuerza bruta poseen un alto grado de índice de éxito, esto se debe al uso de contraseñas de pocos caracteres y de palabras clásicas, incluso en algunos sistemas se conserva aún los accesos por defecto, lo considera un grave error.


También hay que recordar que existen métodos para poder bloquear los ataques de fuerza bruta ,ya sea contabilizando los número de intentos de conexión de una misma IP ó también hace uso correcto del capcha.


Bueno hemos llegado al final de post, espero que haya sido de su gusto y pedir disculpas por la extensa ausencia de nuevos post. Espero poder seguir escribiendo mas seguido y poder brindar mas información interesante. Bueno sin mas que decir me despido y será hasta una nueva próxima oportunidad.








PD : Si alguna persona tiene alguna duda sobre el uso de las herramientas mencionadas, con mucho gusto puede agregarme a mi fb personal : http://goo.gl/u38xTf . No quiero despedirme sin antes deseas un Feliz Cumpleaños a mi gran amiga Zoe Gavidia, espero que la pases lo mejor posible y que sigas cumpliendo tus metas .. Cuídate y nos vemos ...  :)








-l Es el nombre de usuario, si se usa en mayúscula (-L) se puede poner un diccionario (*.txt) con usuarios (muy práctico cuando no se sabe el usuario) [-l admin] [-L admin.txt].
-p Se pone el password, si se usa en mayúscula (-P) se puede poner un diccionario de passwords (es lo más lógico usar esta opción) [-p password] [-P diccionario.txt].
-v Es el verbose mode que imprime en pantalla los intentos de usarios-password, si se usa con mayúscula (-V) Hydra nos dará más detalles del proceso de crackeo [-v] [-vV].
-R esto restaura la sesión anterior que se nos haya caído (muy normal cuando nuestro pc no es muy bueno) o que hayamos abortado [-R].
-S se conecta por SSL [-S].
-s Se especifica un puerto por si no es el por defecto en el protocolo (ejemplo: telnet (23), ftp (21), smtp (25), etc…) [-s 4450].
-C Esta sentencia se usa eliminando -l/-L y -p/-P ya que aquí se especifica un diccionario combo, osea que tenga tanto usuario como contraseña con el formato user:pass [-C diccionario-combo.txt].
-o Esto es muy útil ya que nos ira dejando en un documento que nosotros especifiquemos todas las contraseñas y usuarios que vaya sacando [-o output.txt].
-f Se cierra Hydra después de encontrar el primer password [-f].
-w Con este se puede especificar el tiempo máximo (en segundos) que queramos que este crackeando passwords [-w 9999999].
-t Este es uno de los más útiles si es que cuentas con un computador con buenas características y buena banda ancha, ya que permite cambiar la cantidad de contraseñas/passwords que se crackean en paralelo que son 16 por defecto [-t 32]. - See more at: http://www.websec.es/2013/05/13/brute-force-hydra-smtp-ssh/#sthash.iWXw7xOW.dpuf

4 comentarios:

  1. no entiendo una mierda de informática XD

    ResponderEliminar
  2. Have you ever tried automating your free satoshi collections with a BITCOIN FAUCET ROTATOR?

    ResponderEliminar
  3. From my experience the most recommended Bitcoin exchange company is YoBit.

    ResponderEliminar