LEGION Herramienta de Enumeración Automática
LEGION Herramienta de Enumeración Automática

LEGION: Herramienta de Enumeración Automática

Legion se basa en la Metodología de Pentesting que puedes encontrar en book.hacktricks.xyz.

Legion es una herramienta que utiliza varias herramientas open-source muy conocidas para enumerar de forma automática, semiautomática o manual los servicios más frecuentes que se ejecutan en las máquinas que podrías necesitar para hacer pentesting.

Básicamente, el objetivo de Legion es extraer toda la información que pueda de cada servicio de red abierto, para que no tengas que escribir y ejecutar los mismos comandos en un terminal cada vez que encuentres ese servicio. Algunas acciones son repetidas por más de una herramienta, esto se hace para estar seguros de que toda la información posible es extraída correctamente.

Demostración de LEGION
Demostración de LEGION

Instalación

Instalación de Legion

git clone https://github.com/carlospolop/legion.git /opt/legion
cd /opt/legion/git
./install.sh
ln -s /opt/legion/legion.py /usr/bin/legion

Para los servicios de pentesting de Oracle debes instalar manualmente algunas dependencias: Ver aquí.

Docker

Para tener una buena experiencia con Legion también puedes construir una imagen de contenedor usando  docker o podman, , simplemente escribiendo los siguientes comandos:

docker build -t legion .

Y arrancar el contenedor:

docker run -it legion bash

Tendrás una imagen de contenedor de legion lista para usar (Para ejecutar legion dentro del contenedor ejecuta ./legion.py).

Uso de Legion

Protocolos admitidos

Puedes obtener una lista utilizando el comando  protos

Protocolos soportados

Fuerza bruta

Todos los protocolos incluidos en Legion que pueden ser forzados, pueden ser forzados usando Legion. Para ver si un servicio puede ser forzado (fuerza bruta) y qué línea de comandos se utilizará para hacerlo (por defecto se implementa “hydra”, si hydra no está disponible se utilizará metasploit o nmap) establece el protocolo y la intensidad a “3”.

Ejemplo de fuerza bruta ssh:

Fuerza bruta en Legion
Fuerza bruta en Legion

Comandos internos

Utiliza el comando interno help para obtener información sobre lo que hace cada comando.

Comandos Internos en Legion
Comandos Internos

Escaneo automático

Simplemente lanza el comando interno startGeneral y el ‘General‘ comenzará a escanear puertos y servicios automáticamente.

Escaneo semiautomático

Puedes configurar todas las opciones correctamente y lanzar varios comandos para escanear un servicio. Puedes hacer esto usando el comando run.

Escaneo manual

Puedes ejecutar sólo un comando utilizando exec <nombre>. Por ejemplo:

exec http_slqmap

Algunos servicios tienen comandos bajo demanda, estos comandos sólo pueden ser ejecutados usando este comando interno  (exec).

Opciones (comando Options)

Opciones de comandos en Legion
Opciones de comandos en Legion

Dominio (domain)

Establece el dominio del DNS o del usuario que desea utilizar

Extensiones (extensions)

Lista separada por comas de posibles extensiones (para forzar archivos en un servidor web)

Host

Es el host que se quiere atacar (IP y dominios válidos)

Ejemplo:

set host 127.0.0.1
set host some.domain.com

Intensidad (intensity)

Hay 3 intensidades:

  1. Comprobaciones básicas ejecutadas
  2. Ejecución de todas las comprobaciones (por defecto)
  3. Fuerza bruta (comprobación de disponibilidad)

IPv6

Dirección ipv6 de la víctima, podría ser útil para algunos comandos

notuse

Puedes establecer una lista (separada por comandos) de comandos que no deseas utilizar. Por ejemplo, si no quieres que se ejecuten módulos de metasploit:

set notuse msf

Contraseña (password)

Establece aquí (password) la contraseña del nombre de usuario que deseas utilizar.

ruta (path)

Ruta del archivo del servidor web

plist

Establece aquí la ruta a una lista de contraseñas (por defecto LEGION tiene su propia lista)

Puerto (port)

El puerto donde se ejecuta el servicio. Si es “0”, se utilizará el puerto por defecto del servicio (puede ver esta información utilizando  info)

proto

Es el protocolo que se quiere atacar

Ejemplo:

set proto http

reexec

Establece True si deseas que los comandos ya ejecutados se vuelvan a ejecutar (por defecto está establecido en False).

ulist

Establece un valor aquí si quieres forzar una lista de nombres de usuario (por defecto LEGION tiene su propia lista de nombres de usuario)

nombre de usuario (username)

Establece el nombre de usuario que desea utilizar/forzar bruta (por defecto para forzar bruta se utiliza una lista de usuarios).

verbose

Si es  True la salida del comando se mostrará tan pronto como termine. Si es False no se mostrará.

Si es True la salida de info mostrará donde se usa cada parámetro, por ejemplo:

Información detallada

Directorio de trabajo (workdir)

Es el directorio donde se almacena la información de la víctima. Por defecto es  $HOME/.legion

Más artículos
Scrummage El Definitivo Framework OSINT
Scrummage: El Definitivo Framework OSINT