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

Sparta 01

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:

Sparta 02

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

Sparta 03

Luego importamos el scaneo previamente guardado:

Sparta 04

Sparta 05

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

Sparta 06

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

Sparta 07

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

Sparta 08

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

Sparta 09

Y el resultado será:

Sparta 10

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.

Sparta 11

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

Sparta 12

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

Sparta 13

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

Sparta 14

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:

Sparta 15

Los cuales comprenden:

Sparta 16

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:

Sparta 17

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]

Sparta 18

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!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s