Automatización de las tareas de seguridad

16 de marzo de 2023

 

En esta segunda parte (primera parte), ...mostraremos paso a paso un análisis de seguridad teniendo en cuenta una metodología básica:
- Realizar un reconocimiento pasivo del objetivo
- Pasar por un reconocimiento activo
- Identificar vulnerabilidades procedentes de un escaneado automático
- Explotar estas vulnerabilidades
- Conclusión con un informe ejecutivo

En cada uno de estos casos, trabajaremos en la automatización, ya que representan tareas repetitivas. Al automatizar, ganamos un tiempo valioso y nos centramos en lo importante.

Cuando se trabaja en un proyecto de consultoría ofensiva, existen tres enfoques diferentes con los que se puede trabajar:

BlackBox
El equipo dispone de información limitada sobre el objetivo. Por ejemplo, sólo cuentan con el dominio o el nombre de la empresa que están auditando.

GreyBox

En este caso, el equipo dispone de información parcial sobre el objetivo. Por ejemplo, pueden tener una lista de subdominios, información sobre la arquitectura o credenciales para auditar aplicaciones.

WhiteBox

Por último, en el tercer enfoque, el equipo tiene toda la información que necesita para empezar a auditar el objetivo, como rangos completos de infraestructura, acceso al código fuente de la aplicación, credenciales de la aplicación, etc.

Para este post nos centraremos en el primer enfoque, el de BlackBox. Y aplicaremos la metodología anteriormente mencionada. Repasaremos cada paso y veremos cómo puedes resolverlos utilizando Faraday.

Reconocimiento pasivo

En esta fase concreta, imaginaremos un escenario en el que sólo disponemos del dominio para empezar a trabajar: https://vulnweb.comMuchas herramientas permiten empezar a identificar los subdominios y ampliar la superficie de ataque con sólo proporcionar la información del dominio. Como por ejemplo:- Sudomía- Aquatone- Subbuscador- DNSGen- Sublista3rEn esta fase preliminar, elegiremos sudomy, una herramienta útil y sencilla. Si queremos automatizar esta herramienta, primero debemos entender lo que la herramienta tiene que ofrecer y la salida que proporciona. Con toda esta información podremos empezar a trabajar. Si no has oído hablar de esta herramienta, puedes ir a su GitHub y comprobar el proceso de instalación, independiente del SO, y utilizarla a través de Docker.

➜ ./sudomy -d vulnweb.com -rS -pS -takeover -gW

txtgaby

Sudomy creará los resultados en los subdominios identificados dentro del directorio de salida. Incluso si utiliza otros parámetros, como httprobe o nmap, la información estará disponible de todos modos.

En esta fase, sólo tenemos que recopilar subdominios y centrarnos en el nuevo archivo subdominio.txt.

antivirus1.vulnweb.com

autoconfig.demo.vulnweb.com

blogger.com.vulnweb.com

httptestaspnet.vulnweb.com

live2.vulnweb.com

mailer2.vulnweb.com

odincovo.vulnweb.com

impresora2.vulnweb.com

remus.vulnweb.com

resto.vulnweb.com

restasp.vulnweb.com

tera.vulnweb.com

prueba.php.vulnweb.com

test.vulnweb.com

testap.vulnweb.com

testaps.vulnweb.com

testapsnet.vulnweb.com

testasp.vulnweb.com

testaspnet.vulnweb.com

testaspx.vulnweb.com

testhtml5.vulnweb.com

testphp.vulnweb.com

tetphp.vulnweb.com

virus.vulnweb.com

viruswall.vulnweb.com

vulnweb.com

web5340.vulnweb.com

www.dealer.vulnweb.com

www.test.php.vulnweb.com

www.testasp.vulnweb.com

www.testphp.vulnweb.com

www.virus.vulnweb.com

www.vulnweb.com

 

Con este primer resultado, ya nos damos cuenta de que la superficie de ataque es mayor de lo que pensábamos, ¿verdad? Ahora que tenemos este tipo de información, podemos empezar a trabajar con Faraday en las siguientes tareas:

- Organizar los resultados de múltiples herramientas

- Disponer de una visualización mejor y más directa de la información

- Comprender todos los activos que vamos a auditar

Faraday se encargará de todo lo que necesito. Puedo cargar todos estos subdominios de sudomy y también otras entradas de múltiples herramientas y tenerlo todo organizado en un solo lugar.

Faraday le permite cargar los resultados de diferentes herramientas. Puedes subir informes, archivos XML o cualquier otro formato que prefieras. Pero en lugar de hacerlo manualmente vamos a automatizarlo con faraday-cli, facilitando todo el proceso.

faraday-cli es el cliente oficial de Faraday para automatizar tareas de reconocimiento, análisis de vulneraciones, flujos de trabajo, etc. En este caso, ya tenemos la herramienta que queremos automatizar, lo que pretendemos hacer y la salida. Así que lo que tenemos que hacer es 

- Leer los subdominios de la salida de sudomy.

- Repasar la lista

- Cargar los activos en Faraday

Instalación de Faraday-cli en su terminal

En primer lugar, debemos instalar faraday-cli en el ordenador y autenticarnos con la plataforma de Faraday. https://github.com/infobyte/faraday-cli- Instalación desde pip:- pip install faraday-cli- Instalación desde la fuente:- git clone https://github.com/infobyte/faraday-cli.git

  • cd faraday-cli
  • pip install .
➜ faraday-cli auth

URL de Faraday [https://myworkspace.faraday.com]: https://myworkspace.faraday.com

Validar certificado SSL para [https://myworkspace.faraday.com] (Y, N) [Y]:

Usuario: faraday

Contraseña: *******

Guardar configuración

✔ Autentificado con Faraday: https://myworkspace.faraday.com

 

Cargar los primeros resultados

Como hemos mencionado antes, primero debemos identificar los resultados, organizar esa información y cargarla en Faraday.

➜  cat subdominio.txt

antivirus1.vulnweb.com

autoconfig.demo.vulnweb.com

blogger.com.vulnweb.com

httptestaspnet.vulnweb.com

live2.vulnweb.com

[...]

 

En segundo lugar, tenemos que leer ese archivo automáticamente y, para cada uno, cargar el host identificado en Faraday:

➜  for host in $(cat subdominio.txt); echo ‘[{“ip”: “‘$host'”, “descripción”: “‘$host'”}]’ | faraday-cli host create -stdin -w demo_faraday -resolve

Host creado

{

    “description”: “antivirus1.vulnweb.com”,

    “vulns”: 0,

    “tipo”: “Host”,

    “propietario”: “faraday”,

    “versiones”: [],

    “ip”: “antivirus1.vulnweb.com”,

    “default_gateway”: “”,

    “credenciales”: 0,

    “importancia”: 0,

    “propiedad”: falso,

    “name”: “antivirus1.vulnweb.com”,

    “severity_counts”: {

        “crítico”: null,

        “host_id”: 74100,

[...]

 

Lo que queremos conseguir con el para una es iterar sobre la lista de subdominios y luego ejecutar faraday-cli para cargar cada uno de ellos. El resultado final debería parecerse bastante a esta imagen:gaby2

Reconocimiento activo

El objetivo principal de estas tareas es ampliar la superficie de ataque que estamos analizando. Nuestro punto de partida era un dominio concreto; ahora trabajamos con una lista más amplia de la infraestructura. En esta fase, pretendemos identificar qué puertos y servicios de las aplicaciones identificadas están expuestos. Para ello, utilizaremos nmap. Puede descargarlo aquí

Para automatizar esta segunda fase, tenemos que:

- Descarga las listas de IPs/dominios que cargamos en Faraday.

- Cárguelos como argumentos en nmap y escanee sus puertos/servicios.

- Vuelve a cargar los resultados en Faraday.

Esto también se puede automatizar desde nuestro terminal así:

➜ faraday-cli host list -ip -w demo_faraday | nmap -iL - -oX /tmp/nmap_results.xml && faraday-cli tool report /tmp/nmap_results.xml

Iniciando Nmap ( https://nmap.org ) 

Estadísticas: 0:00:36 transcurridas; 0 hosts completados (31 levantados), 31 en proceso de escaneo de conexión.

Tiempo de escaneo de conexión: Alrededor de 0.18% hecho

Descubierto puerto abierto 80/tcp en 44.238.29.244

Descubierto puerto abierto 80/tcp en 44.228.249.3

[...]

Procesamiento del informe Nmap

⬆ Envío de datos al espacio de trabajo: demo_faraday

✔ Hecho

Nmap identificará las IPs de cada subdominio que analicemos. Así que ahora tendremos esa información disponible para cualquier prueba:gaby3

Análisis de vulnerabilidad

Para concluir esta primera fase de automatización, escanearemos un subdominio que nos parezca interesante:

- http://testphp.vulnweb.com/ 

Para ello, registraremos un agente en la instancia de Faraday. Un agente es un conector que nos permite añadir una o varias herramientas a la plataforma Faraday y poder interactuar con ella dentro de nuestro terminal.UntitledFaraday proporciona soporte nativo para una amplia gama de herramientas. Ahora centraremos nuestra atención en BurpSuite y utilizaremos su plugin (para esta acción, necesitamos utilizar la Licencia Profesional de BurpSuite, ya que expone la API necesaria para el plugin).gany4La rueda pequeña nos permitirá configurar parámetros para la API Burp:

- BURP HOST: Nuestro servidor Burpsuite.

- BURP API KEY: la APIKEY para consumir el Burpsuite.

- INTERVALO PULL: el intervalo que aplicaremos para refrescar la información.

Todas estas configuraciones se incluyen en la sección de configuración de Burpsuite: Configuración -> Suite -> API RESTgaby6Una vez registrado el agente, debemos instalar faraday-dispatcher en nuestro PC para poder interactuar con él:

$ pip3 install faraday_agent_dispatcher

Por último, tenemos que conectar el agente desde nuestra consola

faraday-dispatcher run -token=360503

Con toda nuestra configuración lista, deberíamos poder activar nuestro agente desde la línea de comandos:

$ faraday-cli agent run -a 1 -e burp -p ”{“NAMED_CONFIGURATION”: ”Rastreo y Auditoría - Rápido”, ”TARGET_URL”: ”http://testphp.vulnweb.com”}” -w demo_faraday

 

A continuación encontrará la explicación de cada parámetro para que pueda entender cada parte del comando:

- agente en ejecución: desde faraday-cli para activar el agente.

- -a: el ID del agente. Para reconocer todos los agentes implantados puede aplicar lista de agentes faraday-cli.

- -e: Nombre del ejecutor

- -pen formato JSON, el parámetro de configuración de los agentes

- NAMED_CONFIGURATION: la configuración de la política Burpsuite. En este enlace encontrará información sobre cada uno de ellos.

- TARGET_URL: la URL a auditar.

- -w: el nombre del espacio de trabajo.

➜  faraday-cli agent run -a 1 -e burp -p ”{“NAMED_CONFIGURATION”: ”Rastreo y auditoría - Rápido”, ”TARGET_URL”: ”http://testphp.vulnweb.com”}” -w demo_faraday

Ejecutor en ejecución: burpsuite/burp

Parámetros: {“NAMED_CONFIGURATION”: ”Rastreo y auditoría - Rápido”, ”TARGET_URL”: ”http://testphp.vulnweb.com”}

Comando generado: [2613]

Esto ejecutará automáticamente el agente Burpsuite: 

- faraday_agent_dispatcher - INFO {Hilo principal} [dispatcher.py:264 - run_once()] Analizando datos: {“execution_ids”: [26], “agent_id”: 1, “workspaces”: [“demo_faraday”], “action”: “RUN”, “executor”: “burp”, “args”: {“NAMED_CONFIGURATION”: “Rastreo y auditoría - Rápido”, “TARGET_URL”: “http://testphp.vulnweb.com“}

[...]

[dispatcher.py:416 - run_once()]  Ejecutar el eructo

gaby7Una vez que el agente finalice, los resultados se cargarán en Faraday automáticamente.gaby8Dado que estamos ejecutando un agente a través de un dominio, el proceso es relativamente sencillo. ¿Pero qué pasa si queremos hacer este mismo proceso contra múltiples dominios con, por ejemplo, el puerto 80 abierto? Faraday-cli no nos permite buscar subdominios, pero se nos ocurrió un one-liner que es super fácil de entender, incluso cuando parece complejo.

$ faraday-cli host list -port 80 -w demo_faraday -j | jq ‘.[2].value.hostnames’ | sed ‘s/[“,]//g’ | sed ‘1d;$d’ | tr -d ‘

 

Esta es la explicación de cada comando:

- En primer lugar, pide a faraday-cli la lista de hosts con el puerto 80 abierto, y la salida en formato JSON (-j)

- Con jq obtendremos los valores de los nombres de host asociados a esas IPs, en formato de lista.

- La primera sed borrará las comillas y las comas de la lista.

- El segundo sed borrará la primera y la última línea (los valores entre [ y ])

- La tr borrará los espacios en blanco.

testapsnet.vulnweb.com

tetphp.vulnweb.com

ec2-44-228-249-3.us-west-2.compute.amazonaws.com

tera.vulnweb.com

www.test.php.vulnweb.com

remus.vulnweb.com

restasp.vulnweb.com

testap.vulnweb.com

blogger.com.vulnweb.com

testaspx.vulnweb.com

autoconfig.demo.vulnweb.com

odincovo.vulnweb.com

[...]

Sólo queda una cosa por hacer, ejecutar el agente para cada dominio y esperar los resultados en la plataforma Faraday. Podemos vincular esto al comando anterior para que se ejecute al mismo tiempo, así:

faraday-cli host list -port 80 -w demo_faraday -j | jq ‘.[2].value.hostnames’ | sed ‘s/[“,]//g’ | sed ‘1d;$d’ | tr -d ‘ ‘ > /tmp/analyze.txt && for subdominio in $(cat /tmp/analyze.txt); echo ‘{“NAMED_CONFIGURATION”: “Crawl and Audit - Fast”, “TARGET_URL”: “‘$subdominio'”}’ | faraday-cli agent run -a 7 -e burp -stdin -w demo_faraday

Ejecutor en ejecución: burpsuite/burp

Parámetros: {“NAMED_CONFIGURATION”: “Crawl and Audit - Fast”, “TARGET_URL”: “testapsnet.vulnweb.com”}

Comando generado: [2616]

Ejecutor en ejecución: burpsuite/burp

Parámetros: {“NAMED_CONFIGURATION”: “Crawl and Audit - Fast”, “TARGET_URL”: “tetphp.vulnweb.com”}

Comando generado: [2617]

Esto puede parecer complicado pero espera a la tercera parte. Lo llevaremos al siguiente nivel con un lenguaje superior (¡Python! por supuesto) y cómo añadir una fase de explotación e informe.

 

Otros enlaces de interés:

Seguir leyendo

Los últimos artículos del blog

Esta versión responde a las antiguas peticiones de los clientes y refuerza nuestra misión de hacer que la gestión de vulnerabilidades sea más sencilla, transparente y práctica.

19 de febrero de 2026

Nuestro equipo de investigación de seguridad investiga activamente vulnerabilidades en tecnologías de uso generalizado, con especial atención a la infraestructura de redes y los sistemas integrados. A lo largo de 2024, nuestros investigadores informaron de múltiples problemas de seguridad que afectaban a

8 de enero de 2026

Cada año, la Ekoparty nos recuerda por qué amamos lo que hacemos.Nos preparamos con la misma energía de siempre: para reencontrarnos con la comunidad, compartir lo que investigamos, aprender de otros y..,

6 de enero de 2026

Manténgase informado, suscríbase a nuestro boletín

Introduzca su correo electrónico y no se pierda nunca las alertas y consejos de seguridad de los expertos de Faraday.

Faraday ayuda a grandes empresas, MSSPs y equipos de seguridad de aplicaciones a aprovechar mejor su ecosistema de seguridad, optimizando lo que ya utilizan.

Sede central

Laboratorio de investigación y desarrollo

Soluciones

Código abierto

2025 Faraday Security. Todos los derechos reservados.
Términos y condiciones | Política de privacidad