jueves, 6 de julio de 2017

Proyectando un framework de seguridad para dispositivos de red


Se utilizó Scrum para llevar a cabo el proyecto. Según el diagrama UML del framework se tendría algo así:


Figura 2: Esquema del framework de ataques de red

Existen dos componentes diferenciados, el núcleo que se encargará de procesar comandos y datos que el usuario proporciona y una componente secundaria que son los módulos que implementan las diferentes pruebas. La interacción por parte del usuario con la herramienta se realiza a través de una terminal o consola escrita en Python.

En la siguiente imagen donde se ejecuta el framework sobre un máquina Kali Linux se puede ver los comandos que admite la herramienta. Como se puede ver no hay un gran número de comandos, pero la flexibilidad que aporta es grande para en un futuro poder ir metiendo nuevos ataques a redes IPv4 & IPv6.

Figura 3: Comandos en el framework de ataques de redes

La herramienta debería tener:
• Capacidades de Spoofing.
• Capacidades de recopilar información con técnicas como el Banner Grabbing.
• Capacidad para realizar fuerza bruta.
• Capacidad para realizar escaneos de puertos y servicios por sí sola.
• Capacidad de lanzar un exploit conocido contra un dispositivo de red. Por ejemplo, aprovecharse de un CSRF en el panel de gestión de un router. • Capacidad de poder crear módulos propios y extender la herramienta.
En la siguiente imagen, se pueden ver el número de módulos que se implementan...

Figura 4: Lista de módulos implementados en la versión actual


PoC: Probando el framework

En esta primera prueba de concepto del uso de esta herramienta se cargará un módulo llamado sshbruteforce. Con este módulo se puede realizar fuerza bruta mediante un diccionario a un servicio SSH. En el caso de que se consiguiera acceso al servicio de SSH a través del diccionario, se consigue una sesión la cual se puede utilizar para interactuar con el dispositivo que tiene el servicio.  Para evitar estos ataques, se debe fortificar un servicio SSH con técnicas de port-knocking, Latch, TOTP y cerfificados digitales evitando ataques de enumeración de usuarios.

En el siguiente video se puede ver una demostración de la carga del módulo, la configuración de éste, la ejecución y el uso de las sesiones en la herramienta. Nos recuerda al más puro Metasploit, aunque, he de decir que el objetivo ha sido crear una herramienta ampliable por cualquiera que permita implementar de pruebas de auditoría a routers y switches.

Figura 5: Ataque de diccionario a un servidor SSH

Ahora, se va a mostrar un video de cómo se disponen de módulos que implementan exploits contra dispositivos de red con vulnerabilidades conocidas. Esto es algo interesante, y disponer de una gran base de datos sobre ellos sería importante. En este caso, la prueba se realiza contra un dispositivo de red de CISCO. La vulnerabilidad explotada es un CSRF y el módulo lo que hace es comprobar si la vulnerabilidad existe o no existe en dicho dispositivo.

Figura 6: Explotación de una vulnerabilidad conocida en dispositivo CISCO

Por último, y ya que no puede faltar, un módulo que nos permita escanear puertos abiertos de los dispositivos a través del flag SYN de TCP. En el video se puede visualizar como se carga el módulo, se configura un listado de puertos que se quieren comprobar y el módulo comienza la creación de peticiones TCP contra la máquina destino.

Figura 7: Escaneo de puertos con el framework