Sparta, Network Pentesting Tool

Una de las primeras fases de cualquier auditoría es la realización de una fase de escaneo de red con el fin de localizar equipos activos y detectar puertos abiertos, versiones de software, sistemas operativos, etc. Para ello contamos con muchas herramientas, entre ellas de la que hablaré hoy, SPARTA

SPARTA es una aplicación escrita en Python mediante una interfaz gráfica que simplifica la tarea de la que hablábamos anteriormente, permitiendo al auditor ahorrar tiempo teniendo una única aplicación desde la cual poder visualizar los resultados y analizarlos a posteriori.

Entre sus características destacan:

  1. Ejecutar nmap o importar los resultados desde un fichero XML
  2. Plataforma única donde visualizar resultados
  3. Menús contextuales para cada servicio descubierto.
  4. Posibilidad de correr cualquier script o software contra un servicio sobre equipos objetivo.
  5. Definir tareas automatizadas para servicios.
  6. Capacidad para realizar intentos de logueo con credenciales definidas de forma personalizada o por defecto.
  7. Identificación de host sobre los cuales ya se han realizado algún tipo de acción.
  8. Otras muchas más…

Si bien la aplicación ya viene instalada en la distribución Kali Linux el procedimiento de instalación es la siguiente:

Descargar  la aplicación:

https://github.com/SECFORCE/sparta/archive/master.zip

O bien:

git clone https://github.com/secforce/sparta.git

Luego deberemos resolver algunas dependencias.

Para Kali:

apt-get install python-elixir

Para distribuciones basadas en Debian

apt-get install python-elixir python-qt4 xsltproc

SPARTA requiere de otras aplicaciones para tener completa funcionalidad como son:

– nmap (para añadir equipos)
– hydra (para logueo on-line por fuerza bruta)
– cutycapt (para capturas de pantalla)

Para Kali:

apt-get install nmap hydra cutycapt

Finalmente nos aseguraremos tener instaladas otras herramientas que la configuración por defecto que utiliza Sparta:

apt-get install ldap-utils rwho rsh-client x11-apps finger

Sparta cuenta con un fichero de configuración situado sparta.conf. La aplicación verificará la existencia del mismo y si no lo encuentra lo generará de forma automática. En Kali lo tendremos en /etc/sparta.conf

Allí podemos encontrar las lo que se denominan las “Actions”, esto es aquellos que se ejecutará sobre :

  • Host Actions: Será la que se ejecutará cuando hagamos “botón derecho” sobre un equipo concreto y cuyo resultado será almacenado y visualizado en la interfaz de Sparta.
  •  Port Actions: Idem pero con un puerto.
  • Terminal Actions: Lo mismo pero en este caso el resultado será exportado en un terminal ajeno a Sparta.

Si quisiéramos definir una nueva «Action» deberemos seguir la siguiente fórmula, o bien tomamos como ejemplo las ya creadas por defecto.

tool=label, command, services

Donde:

Tool, identificador único, normalmente el nombre de la aplicación.

Label, texto que aparecerá en el menú contextual.

Command, comando que se introduciría en una Terminal si quisiéramos utilizar la herramienta concreta. Los valores como IP, Puerto y Resultado vendrán por los campos [IP], [PORT] y [OUTPUT], respectivamente.

Services, lista de servicios de nmap sobre los cuales Sparta va a realizar una acción concreta.  Si hacemos “botón derecho” sobre un servicio concreto la herramienta sólo mostrará aquellos que esté definidos allí.

Por ejemplo si quisiésemos configurar la herramienta Nikto para ejejcutar una acción sobre un puerto concreto deberíamos añadir lo siguiente:

nikto=Run nikto, nikto -o [OUTPUT].txt -p [PORT] -h [IP], “http,https”

Importante tener en cuenta reiniciar la aplicación una vez realizados cambios en el fichero de configuración.

Por otra parte es posible configurar ataques automatizados ejecutando cualquier herramienta que previamente hayamos configurado en el apartado [PortActions]. Estos ataques automatizados están habilitados por defecto aunque podremos deshabilitarlos  editando la opción “enable-scheduler” en [GeneralSettings]. Bajo esta última opción también podremos añadir otros siguiendo el siguiente formato:

tool=services, protocol

Tool, identificador único el cual hemos utilizado para definir la herramienta en el apartado [PortActions].

Services, listado de servicios sobre los cuales actuará la herramienta.

Protocol, protocolo del servicio en cuestión, esto es, TCP o UDP. 

Pero como todas cosas mejor verlo con un ejemplo. 

En mi caso en lugar de llevar un escaneo desde la propia aplicación lo que haré será realizar uno con nmap mediante su interfaz gráfica Zenmap, exportar los resultado en un fichero .xml y luego importarlo a Sparta. 

Con el scan hecho:

 Abrimos “Aplicaciones – Recopilación de Información – Sparta”

Luego importamos el scaneo previamente guardado:

Pinchando en la pestaña “Host” veremos los equipos y los “Servicios” localizados en él.

Mientras que el pestaña “Services” veremos todos los servicios detectados en el escaneo.

A partir de aquí,  clickando con el botón derecho del ratón sobre el servicio podremos ejecutar otras aplicaciones.

Las mismas se verán en la ventana “logs”:

Y el resultado será:

Ahora bien si lo hacemos sobre un dispositivo “Cisco”, en este caso un router, veremos que las pruebas nos revelan resultados distintos entre ellos el requisito de contraseña de nivel 15.

Otra de las posibilidades de la herramienta es lanzar intentos de logueo online con “THC- Hydra”. Haremos la prueba sobre el equipo router Cisco.

Elegiremos dos ficheros donde tendremos almacenadas nuestros diccionarios y no los que trae por defecto Sparta:

Si quisiéramos guardar nuestros proyectos podremos hacerlo en un fichero identificado como:

Como podemos comprobar Sparta es una herramienta donde podremos aglutinar aquellas herramientas que sean de nuestra utilidad cara a una auditoría o pentest. Como todo deberemos de ajustarla según necesidades o circunstancias ya que las configuraciones por defecto pueden no arrojar los resultados que esperamos. Vamos a verlo.

Según el archivo de configuración dispondremos de los siguientes diccionarios para la prueba con THC-Hydra:

Los cuales comprenden:

Este tipo de listados contendrán palabras generalmente en inglés por lo que resulta vital emplear otros con palabras en nuestro propio idioma. De nada nos sirve emplear el usuario «Administrator» cuando lo más probable es que sea «Administrador».

Otro caso es el escaneo con herramientas desde la propia Sparta como es nmap. Los puertos por defecto son:

Nuevamente volvemos a la misma pregunta, y si los puertos que nos interesan no están en la lista? Nuevamente tenemos que editar…

También deberemos comprobar las acciones bajo [PortActions]

Con la entrada de hoy hemos visto una herramienta que bien nos puede ayudar y facilitar mucho el trabajo, en nuestras auditorias. Además podremos ajustarla a nuestras necesidades concretas mediante la edición de su archivo de configuración, todo desde una única interfaz.

Espero que haya sido de vuestro interés y os invito a que dejéis vuestros comentarios.

Un saludo nos vemos en la próxima!