Active Information Gathering

HTTP Headers

Mediante los headers de las respuestas HTTP podemos obtener información de la infraestructura del sistema.

Mediante el siguiente comando, podemos obtener los headers:

export TARGET="target.com"
curl -I "http://${TARGET}"

Con esta consulta podríamos obtener los siguientes headers:

  • X-Powered-By es un header HTTP opcional y no oficial, que se utiliza para indicar la pila de tecnología utilizada en el lado del servidor

  • Server contiene la información acerca del software usado por el servidor original encargado de la solicitud

Junto con esto, nos pueden enviar el header Set-Cookie, el cual, se usa para enviar cookies desde el servidor al agente de usuario, así el agente de usuario puede enviarlos de vuelta al servidor.

En este caso, los nombres de las cookies nos pueden indicar la tecnología usada:

  • ASPSESSIONID<random>=<cookie_value> especifica .NET

  • PHPSESSID=<cookie_value> usado por PHP

  • JSESSION=<cookie_value> implementado por Java

WhatWeb

Podemos automatizar esta tarea con la herramienta WhatWeb:

export TARGET="target.com"
whatweb -a3 "http://${TARGET}" -v
  • -a3 nivel de aggression, donde, 1 es por defecto (Stealthy), 3 es para realizar requests adicionales (Aggressive), y 4 es para realizar muchos más requests (Heavy)

  • -v verbose

Wappalyzer

Wappalyzer es un plugin de navegador que permite obtener información del sitio web (similar a WhatWeb):

Wappalyzer

WafW00f

WafW00f permite detectar la utilización de WAF. Para poder instalar esta herramienta en Kali, podemos usar el siguiente comando:

Para ejecutarlo, podemos usar los siguientes comandos:

  • -v verbose

  • -p indicamos un proxy para redireccionar el tráfico

  • -i archivo con dominios a validar

Aquatone

Aquaton es una herramienta que permite tomar screenshots de sitios web para poder realizar una inspección visual.

Para instalar aquatone, usamos los siguientes comandos:

La versión del binario puede cambiar.

Para usar aquatone, podemos ejecutar lo siguiente:

  • -ports especificamos los puertos a revisar de las URL

  • -out directorio donde guardará los archivos a crear (por defecto, es el directorio local)

  • -screenshot-timeout timeout en milisegundos (por defecto es 30000)

Enumeración activa de subdominios

Transferencia de zona

Para validar si se puede realizar una transferencia de zona, se puede hacer mediante el sitio web Hacker Target, o mediante CLI.

Con el sitio web, podemos obtener un resultado como el siguiente:

Zone Transfer Online

Y mediante CLI, podemos usar los siguientes comandos:

  • Linux:

  • Windows:

DNSEnum

Gobuster

Gobuster permite enumerar subdominios mediante la opción dns:

  • dns ejecutamos el módulo DNS

  • -q no imprime el banner del programa

  • -r especificamos el servidor NS a quien consultar

  • -d dominio a revisar

  • -p archivo con patrones

  • -w diccionario a usar para la enumeración

  • -o archivo de salida

Ejemplo de archivo de patrones:

Virtual Hosts

vHost es una característica que permite alojar múltiples sitios en un único servidor.

Existen dos modos de configurar vHost:

  • Basado en IP: en este caso, un servidor puede obtener múltiples interfaces de red o múltiples direcciones IP. Diferentes sitios pueden estar asociados a diferentes direcciones IP.

  • Basado en nombre: para este caso, múltiples dominios se encuentran asociados a la misma dirección IP.

Mediante cURL podemos enumerar vHosts:

Si vemos un Content-Length distinto, podemos asumir que tenemos un vHost.

Crawling

Realizar crawling a un sitio es un proceso que permite listar los recursos de este.

Para poder usar crawling en Burp Suite en las últimas versiones de este, se debe tener la versión Professional.

Cuando vemos en Target > Site map el sitio al cual le queremos hacer el crawling, le damos click derecho a este, y seleccionamos Scan:

Burp Suite Scan

Luego, seleccionamos Crawl y le damos click en OK:

Burp Suite Crawl

Fuzzing de parámetros

Con ffuf es posible enumerar parámetros GET usando el siguiente comando:

Con ffuf es posible enumerar valores usando el siguiente comando:

Podemos crear valores con el siguiente comando: for i in $(seq 1 1000); do echo $i >> ids.txt; done Para comprobar el contenido, podemos usar el siguiente comando: curl http://target.com/admin.php -X POST -d 'id=73' -H 'Content-Type: application/x-www-form-urlencoded'

Last updated