Patator - Ataques de fuerza bruta

Iniciado por ANTRAX, Agosto 30, 2017, 02:06:39 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Buenos a todos. Hoy os quería enseñar esta gran alternativa a Medusa o Hydra, que, para mí, en ciertos aspectos me parece mejor que estas últimas. Recientemente, en una prueba de un laboratorio de hacking, una de las pruebas era usar la fuerza bruta a un servicio, y obviamente tiré de mano de Hydra, pero cuál fue mi sorpresa que se paraba al primer intento o a veces se quedaba esperando más de lo debido.

El siguiente paso lógico fue usar Medussa, pero el resultado fue similar,  solo arrojó algo de luz un módulo del Metasploit, pero se eternizaba la prueba, asique toco tirar de alternativa viable y por lo tanto surgió la opción de Patator.

Patator es un script en Python para ataques de fuerza bruta, y tal cual nos dice su creador, es para aquellos que se frustraron de las más que conocidas Hydra o Medusa (o en mi caso que no llegan a buen término...), el cual dada su flexibilidad incorpora una gran cantidad de módulos para diferentes tipos de ataques de fuerza bruta.

Actualmente dispone de 30 módulos (veintinueve de servicios varios y uno de test) los cuales serían:

    + ftp_login: Fuerza bruta a FTP
    + ssh_login: Fuerza bruta a SSH
    + telnet_login: Fuerza bruta a Telnet
    + smtp_login: Fuerza bruta a SMTP
    + smtp_vrfy: Enumerar usuarios usando SMTP VRFY
    + smtp_rcpt: Enumerar usuarios usando SMTP RCPT TO
    + finger_lookup: Enumerar usuarios usando Finger
    + http_fuzz: Fuerza bruta a HTTP
    + pop_login: Fuerza bruta a POP3
    + pop_passd: Fuerza bruta a poppassd (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
    + imap_login: Fuerza bruta a IMAP4
    + ldap_login: Fuerza bruta a LDAP
    + smb_login: Fuerza bruta a SMB
    + smb_lookupsid: Fuerza bruta a SMB SID-lookup
    + rlogin_login: Fuerza bruta a rlogin
    + vmauthd_login: Fuerza bruta a VMware Authentication Daemon
    + mssql_login: Fuerza bruta a MSSQL
    + oracle_login: Fuerza bruta a Oracle
    + mysql_login: Fuerza bruta a MySQL
    + mysql_query: Fuerza bruta a MySQL mediante consultas
    + pgsql_login: Fuerza bruta a PostgreSQL
    + vnc_login: Fuerza bruta a VNC
    + dns_forward: Forward lookup names
    + dns_reverse: Reverse lookup subnets
    + snmp_login: Fuerza bruta a SNMP v1/2/3
    + unzip_pass: Crackear archivos Zip con contraseña
    + keystore_pass: Fuerza bruta a al password de Java los archivos keystore
    + umbraco_crack: Crackear los hashes Umbraco HMAC-SHA1
    + tcp_fuzz: Fuzzear los servicios TCP
    + dummy_test: Modulo de test

Como se puede ver abarca una gran cantidad de protocolos, y cabe decir que con muy buenos resultados.

Instalación

Actualmente, está disponible en github, en el repositorio de lanjelot, con lo que clonamos el repo:

Código: python
git clone https://github.com/lanjelot/patator
cd patator
# Con el siguiente comando se ejecuta
python patator.py



Si todo salió bien nos mostrara los módulos de los ataques a diferentes protocolos. Para ver las opciones de configuración de cada modulo, como nos indica la ventana de bienvenida, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta <modulo> –help


Ya en vista preliminar, nos fijamos en la multitud de opciones del script y la potencia que nos ofrece con la cantidad de filtros y condiciones para realizar el ataque de fuerza bruta.

Time to Play

Como demostración del uso de la herramienta, usaremos un par de módulos para ver su funcionamiento. Usaremos el módulo de ssh y el de ftp, para probar y ver su sintaxis. Como se muestra en la captura de la ayuda de los módulos, la sintaxis de uso del Patator es un poco diferente a los otros programas de brute force, pero viendo los ejemplos nos daremos cuenta que es muy intuitiva. Si usamos el parámetro –help sobre un módulo veremos las opciones y un ejemplo:


Fuerza bruta a SSH

Para nuestro caso, tenemos un servidor de pruebas el cual conocemos el usuario 'root' pero no sabemos nada respecto a la clave. Como vemos en la salida, tenemos como parámetros de entrada:

Código: text
host=<ip_victima>
user=root #usuario a testar
password=File0 #variable que contendrá la ruta al wordlist
0=/root/wordlists/jonh.txt #ruta de la wordlist
-x ignore:mesg='Authentication failed.'


El mensaje que nos arrojará el servicio cuando una clave es incorrecta. Si no indicamos este último parámetro, se nos mostrara por pantalla todas las pruebas con su resultado. Es interesante ponerlo para que no se nos apile una cantidad ingente de datos en el terminal.


En caso que desconozcamos el usuario y queremos usar una wordlist, añadiriamos otra variable quedando asi:

Código: text
user=File1
1=/root/wordlists/users.txt



Si todo va bien, en la columna de candidates nos mostrara las contraseñas que dieron resultado positivo.


Como añadido, si quitamos el filtro de -x ignore:mesg='Authentication failed.' nos mostrara el usuario y la contraseña probada con el resultado en la última columna:

Fuerza bruta a FTP

Seguimos con nuestro server de prueba, y para ftp usaremos el módulo ftp_login del patator. Como parámetros definiremos los siguientes:

Código: text
host=<ip_victima>
user=root #usuario a testar
password=File0 #variable que contendrá la ruta al wordlist
0=/root/wordlists/jonh.txt #ruta de la wordlist
-x ignore:mesg='Authentication failed.


El mensaje que nos arrojará el servicio cuando una clave es incorrecta. Si no indicamos este último parámetro, se nos mostrara por pantalla todas las pruebas con su resultado. Es interesante ponerlo para que no se nos apile una cantidad ingente de datos en el terminal.

Código: text
-x ignore,reset,retry:code=500 #


Esta es otra condición, en patator se pueden encadenar varios filtros, o con esta condición hacer un retry si el código devuelto es 500


Si queremos añadir una wordlist en el parámetro usuarios añadiremos lo siguiente:

Código: text
user=File1
1=/root/wordlists/users



Consideraciones finales

Es interesante saber que Patator nos ofrece la opción de continuar el ataque en caso que lo tengamos que interrumpir, el parámetro se nos mostrara en la parte inferior del ataque, con la opción de –resume la que nos mostrara los valores que le tenemos que pasar para que continúe:


Los parámetros a pasar serían los siguientes para que continúe:


Otra consideración importante es los hilos o threads, por defecto usa 10 hilos, pero por circunstancias del servicio a atacar o el ancho de banda, nos vemos obligados a reducir este número de hilos para evitar errores o baneo. Para ello tenemos los parámetros (en verde):

Código: text
-t <numero_de hilos>
--threads <numero_de hilos>



Es interesante, como recomendación propia, limitarlos a 4 en caso de que de errores en la salida o reintentos.

La otra opción que destaco (en naranja), es para evitar que se haga un DOS y bloqueemos el servicio, evitar ciertos IDS o firewall, o restricciones de espera entre peticiones, ya que esta opción añade un delay de los segundos que pongamos entre los intentos. El parámetro sería:

Código: text
--rate-limit <segundos_entre_intentos>


Por último, es recomendable usar las wordlists del repo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que se basan el reordenar en las wordlists los password por frecuencia que aparecen en los leaks de las bases de datos lekeadas en internet, u otras fuentes, con lo que es interesante tenerla a mano.


Autor: Miguel Cobas Barcala


Muchas gracias Crack!! dejame veo y te digo que tal.

¿Cual era el problema con hydra/medusa? Me refiero, todas las opciones que pones las incorpora ya el Medusa (número de threads, timeout, etc...) así que entiendo que lo que incorpora es que para el caso de uso Medusa fallaba. Me suena que medusa en las pruebas utiliza un banner ¿Puede ser culpa del banner lo que hacia que no tirase? ¿Llegaste a identificar el problema por el que medusa no llegaba a funcionar?

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

El autor original no es ANTRAX, abajo del todo pone: "Autor: Miguel Cobas Barcala"

También puedes ver la ruta de las imágenes y ver en que web está el post original xD.

ouuu, no se si CEDRO estará al tanto de que aquí se plagian textos sin darles dinero. ¡¡¡¡MALDITOS HACKERS!!!! :P

Anyway, ¿Alguien lo ha probado? ¿Que mejoras reales veis que tiene respecto a Hydra/Medusa?

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

Hola,

Vi interesante el post y por eso lo traje al foro.
En lo personal he probado hydra, medusa y me quedo con NCrack que es de los mismos creadores de los que hicieron NMAP y funciona excelente.
si tenes posibilidad, probalo.. va muy bien.

Saludos,
ANTRAX


Yo es que el único problema que he tenido con Hydra ha sido que he tenido que decrementar el numero de hilos porque el servidor no atendía a todas las peticiones y te saltaba contraseñas buenas por erróneas. Pero supongo que ese problema lo tendrán los demás también.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.