Conseguir acceso a router CISCO mediante fuerza bruta.
Pues husmeando con mi propio servicio me dio por probar que tan bien
configurada estaba la cosa del lado del ISP que me proporciona el
servicio, y la verdad me sorprendi mucho con la flojera que ciertos
administradores de red configuran los accesos, valiendose simplemente de
un password realmente debil y nada mas, por lo que me dejaron entrar
por Telnet de la forma mas sencilla FUERZA BRUTA!!. Posteriormente lo
reporte al departamento y me sorprendi de la amabilidad del tecnico que
me tomo el reporte, el mismo dia me di cuenta que lo habian solucionado y
como punto positivo me decidi a compartir como hacerlo y posteriormente
a como evitarlo, aunque esta vez lo hare de forma virtual ya que el
acceso real no existe mas (al menos para mi).
Primero la parte aburrida...
A
estas alturas la mayoria de nosotros domina los conceptos basicos, pero
por si las moscas aqui vamos a definir algunos conceptos valiendonos de
Wikipedia.
¿Que es Telnet?
Telnet
(Teletype Network1 ) es el nombre de un protocolo de red que nos
permite viajar a otra máquina para manejarla remotamente como si
estuviéramos sentados delante de ella.
¿Que es fuerza bruta?
Se
denomina ataque de fuerza bruta a la forma de recuperar una clave
probando todas las combinaciones posibles hasta encontrar aquella que
permite el acceso.
¿Que significa un acceso remoto?En
informática, se considera administración remota a la funcionalidad de
algunos programas que permiten realizar ciertos tipos de acciones desde
un equipo local y que las mismas se ejecuten en otro equipo remoto.
Definidos los conceptos anteriores creo que nos queda super claro lo que vamos a hacer, asi que manos a la obra.
Conociendo la red.
Primero vamos a dejar claro que estas pruebas fueron hechas totalmente de forma virtualizada con
GNS3 y una maquina virtual corriendo
Kali Linux, asi que asumiré que saben como configurar todo y me saltare el Setting de las mismas.
Normalmente
accedemos a internet a travez de un pequeño router instalado en
nuestras casas, pero ese router pequeñito no tiene la capacidad de
enrutar nuestros paquetes al gran Internet, asi que mas bien se los
manda a un Router mas grande que tienes mas capacidad de routing, y es
asi como nuestro Default Gateway tiene otro Default Gateway mayor que es
realmente quien nos conecta al mundo (es posible que este segundo se
los mande a otro aun mas mayor "Backbone Router"). Asi que nuestra red
exibe la siguiente topologia:
En
un entorno normal se habilitan los acceso remotos a los routers por
necesidad de administrarlos de forma remota, lo que significa que
cualquiera con un cliente que gestione las conexiones y sabiendo de
antemano el password podría entrar a la configuración de los mismos, y
una vez dentro todo es posible. En este caso vamos a realizar el post
atacando a un router CISCO que hace de Gateway para nuestro router
local, en la ilustración es el que llama ISP_Gateway.
EntornoHost: Kali Linux, dirección IP asignada por DHCP
Victima: ISP_Gateway (Router CISCO), dirección WAN 192.168.11.2
Herramientas: crunch, CAT (Cisco Auditing Tool) y un poco de tiempo.
Entorno
de pruebas: 100% Virtual, por lo cual tanto los diccionarios, como el
pass solo funcionan para este caso. (Ya que por cuestiones de tiempo
creare un diccionario corto para un password muy debil)
Pues ya
sentados y con las cabezas frías lo primero es probar la conectividad a
nuestro Default_Gateway y para ello bastaría con hacer ping a la
dirección del mismo:
ping 10.0.0.1
Con lo cual obtendríamos algo parecido a esto:
Luego a la interfaz WAN de nuestro Default_Gateway:
ping 192.168.1.1
así conseguiríamos esto:
Cabe
aclarar que para la prueba estoy utilizando bloques de direcciones
privadas, ya que por error no quisiera apuntar mis pruebas a ningún host
real en el espacio publico.
Bien, ahora vamos a confirmar la conectividad con la interfaz WAN del ISP_Gateway haciendo ping a la misma:
ping 192.168.11.2
Y se vería así:
Muy
bien realizado esto, ya estamos seguros de que la conectividad esta
funcionando al 100% asi que vamos a comprobar que si tiene telnet
habilitado:
telnet 192.168.11.2
Y si nos responde con un lindo mensaje de bienvenida como este:
Entonces esta habilitado. (Fijense en texto del warning...)
Comprobado todo entonces vamos, manos a la obra!!
Afinando nuestras hachas.
Cuando
se trata de hacer fuerza bruta muchas personas prefieren descargar
diccionarios muy pesados desde Internet, en mi caso particular me gusta
mas generar mis propios diccionarios de acuerdo al perfil del objetivo y
también por puras vainas mías, esto
es relativo a cada cual, asi que mi primer paso es generar el diccionario usando Crunch, lo hacemos con el siguiente comando:
crunch 5 5 123456789 -o brake_Cisco.txt
5 5 ----> Significa la longitud del password expresado de menor a mayor.
-o ----> Es el argumento para especificar que queremos guardar la salida en un archivo .txt
brake_Cisco.txt ----> Es el nombre del archivo, le pueden poner el nombre que mas les guste.
Lo cual nos deja algo como esto:
Talando el árbol.
Una
vez ya tenemos todo en su lugar solo nos queda atacar, y para esto
usaremos una herramienta incluida en Kali Linux que se llama CAT (Cisco
Auditing Tool), algo que hay que tener claro es que es posible usar
cualquier otra herramienta para fuerza bruta tales como hydra, medusa,
jhonn, etc... En esta ocasión utilice esta ya que ademas permite
averiguar cosas como la versión de IOS que corre, así como mas
información interesante, también es bueno saber que el comando se
escribe en mayúscula para que el sistema pueda diferenciar "CAT" de
"cat" ya que este ultimo es una herramienta nativa de sistemas GNU para
concatenar y comparar valores.
Así que en la consola escribimos el comando:
CAT -h 192.168.11.2 -a brake_Cisco.txt
-h ----> Especifica la dirección del host al que lanzamos el ataque
-a
----> Indica que tenemos un diccionario con el que queremos hacer
fuerza bruta. (si no especificamos un diccionario entonces CAT usara un
diccionario por defecto que trae de forma nativa)
Y si el password esta en nuestro diccionario, entonces VOILA!!!!
Y una vez sabemos el password valido solo nos queda entrar:
¿Pero como evitarlo?
Pues las medidas que se recomiendan para mitigar un poco los ataques de fuerza bruta son casi siempre los mismos:
<>
Limitar el numero de intentos de login, asi como el temporizador para
admitir nuevos intentos de login (para esto es necesario activar SSH en
las lineas telnet)
<> Crear ACL (Acces List) que eviten la
conexión de host no deseados, esto sumamente sencillo de hacer y el
beneficio es enorme.
<> Se podría configurar un servidor RADIUS para la autenticacion del acceso.
Y fin!!
Si
existen mas medidas de seguridad pueden hacer sugerencias, saludos y
abrazos a todos mis hermanos de underc0de y hasta la próxima.