Conoce WhatWeb!

Cuando hablamos de Ciberseguridad, tocamos muchos temas de referencia, uno de ellos es la importancia de conocer y proteger nuestra infraestructura, nuestros servicios que ofrecemos y para ello debemos conocer toda la información posible de nuestras tecnologías.

Sitio web: https://morningstarsecurity.com/research/whatweb

WhatWeb

Esta herramienta nos permite identificar un sitio web, ya que su objetivo es responder una pregunta en concreto “que es este sitio web”, esto significa que nos ayuda a reconocer que tecnologías esta utilizando un sitio web incluyendo diferentes tipos de CMS, bibliotecas de JavaScript, y en general tiene mas de 1800 plugins integrados para realizar todo este procedimiento de obtener información de un sitio web

SELECCIÓN DE OBJETIVOS

  <TARGETs>            Ingrese URLs, nombres de host, direcciones IP, nombres de archivo o
                       rangos de IP en formato CIDR, x.x.x-x, o x.x.x.x-x.x.x.x.
  --input-file=FILE, -i Leer objetivos de un archivo. Puedes pasar nombres de host o URLs
                       directamente con -i /dev/stdin.

MODIFICACIÓN DE OBJETIVOS

  --url-prefix         Agregar un prefijo a las URLs objetivo.
  --url-suffix         Agregar un sufijo a las URLs objetivo.
  --url-pattern        Insertar los objetivos en una URL.
                       e.g. example.com/%insert%/robots.txt

AGRESIÓN

El nivel de agresión controla el equilibrio entre velocidad/discreción y
fiabilidad.
  --aggression, -a=LEVEL Establecer el nivel de agresión. Predeterminado: 1.
  1. Stealthy          Hace una solicitud HTTP por objetivo y también
                       sigue redireccionamientos.
  3. Aggressive        Si un plugin de nivel 1 es detectado, se harán
                       solicitudes adicionales.
  4. Heavy             Hace muchas solicitudes HTTP por objetivo. Se intentan
                       URLs de todos los plugins.

OPCIONES HTTP

  --user-agent, -U=AGENT Identificarse como AGENT en lugar de WhatWeb/0.5.5.
  --header, -H         Agregar un encabezado HTTP. ej. "Foo:Bar". Especificar un
                       encabezado predeterminado lo reemplazará. Especificar un
                       valor vacío, ej. "User-Agent:" lo eliminará.
  --follow-redirect=WHEN Controlar cuándo seguir redireccionamientos. WHEN puede ser
                       `never', `http-only', `meta-only', `same-site', o `always'.
                       Predeterminado: always.
  --max-redirects=NUM  Número máximo de redireccionamientos. Predeterminado: 10.

AUTENTICACIÓN

  --user, -u=<user:password> Autenticación básica HTTP.
  --cookie, -c=COOKIES Usar cookies, ej. 'name=value; name2=value2'.
  --cookie-jar=FILE    Leer cookies de un archivo.

PROXY

  --proxy              <hostname[:port]> Establecer el nombre de host y puerto del proxy.
                       Predeterminado: 8080.
  --proxy-user         <username:password> Establecer el usuario y la contraseña del proxy.

PLUGINS

  --list-plugins, -l   Listar todos los plugins.
  --info-plugins, -I=[SEARCH] Listar todos los plugins con información detallada.
                       Opcionalmente buscar con palabras clave en una lista separada por comas.
  --search-plugins=STRING Buscar plugins por una palabra clave.
  --plugins, -p=LIST   Seleccionar plugins. LIST es un conjunto separado por comas
                       de plugins seleccionados. El predeterminado es todos.
                       Cada elemento puede ser un directorio, archivo o nombre de plugin
                       y puede tener opcionalmente un modificador, +/-.
                       Ejemplos: +/tmp/moo.rb,+/tmp/foo.rb
                       title,md5,+./plugins-disabled/
                       ./plugins-disabled,-md5
                       -p + es un atajo para -p +plugins-disabled.
  --grep, -g=STRING|REGEXP Buscar STRING o una Expresión Regular. Muestra
                       solo los resultados que coinciden.
                       Ejemplos: --grep "hello"
                       --grep "/he[l]*o/"
  --custom-plugin=DEFINITION Definir un plugin personalizado llamado Custom-Plugin,
                       Ejemplos: ":text=>'powered by abc'"
                       ":version=>/powered[ ]?by ab[0-9]/"
                       ":ghdb=>'intitle:abc \"powered by abc\"'"
                       ":md5=>'8666257030b94d3bdb46e05945f60b42'"
                       "{:text=>'powered by abc'}"
  --dorks=PLUGIN       Listar Google dorks para el plugin seleccionado.

SALIDA (OUTPUT)

  --verbose, -v        La salida detallada incluye descripciones de plugins.
                       Usar dos veces para depuración.
  --colour,--color=WHEN Controlar si se usa color. WHEN puede ser
                       `never', `always', o `auto'.
  --quiet, -q          No mostrar el registro breve en STDOUT.
  --no-errors          Suprimir mensajes de error.

LOG (REGISTRO)

  --log-brief=FILE     Registrar salida breve, de una línea.
  --log-verbose=FILE   Registrar salida detallada.
  --log-errors=FILE    Registrar errores.
  --log-xml=FILE       Registrar en formato XML.
  --log-json=FILE      Registrar en formato JSON.
  --log-sql=FILE       Registrar sentencias SQL INSERT.
  --log-sql-create=FILE Crear tablas de base de datos SQL.
  --log-json-verbose=FILE Registrar en formato JSON Detallado.
  --log-magictree=FILE Registrar en formato XML de MagicTree.
  --log-object=FILE    Registrar inspección de objetos Ruby.
  --log-mongo-database Nombre de la base de datos MongoDB.
  --log-mongo-collection Nombre de la colección MongoDB.
                       Predeterminado: whatweb.
  --log-mongo-host     Nombre de host o dirección IP de MongoDB.
                       Predeterminado: 0.0.0.0.
  --log-mongo-username Nombre de usuario de MongoDB. Predeterminado: nil.
  --log-mongo-password Contraseña de MongoDB. Predeterminado: nil.
  --log-elastic-index  Nombre del índice para almacenar resultados. Predeterminado: whatweb
  --log-elastic-host   Host:puerto de la interfaz http de Elasticsearch. Predeterminado: 127.0.0.1:9200

RENDIMIENTO Y ESTABILIDAD

  --max-threads, -t    Número de hilos simultáneos. Predeterminado: 25.
  --open-timeout       Tiempo en segundos. Predeterminado: 15.
  --read-timeout       Tiempo en segundos. Predeterminado: 30.
  --wait=SECONDS       Esperar SECONDS entre conexiones.
                       Esto es útil cuando se usa un solo hilo.

AYUDA Y VARIOS

  --short-help         Ayuda de uso breve.
  --help, -h           Ayuda de uso completa.
  --debug              Elevar errores en plugins.
  --version            Mostrar información de la versión.

Ejemplos prácticos

Los siguientes ejemplos que se muestran algunos ejemplos con fines educativos:

Escaneo simple

Un escaneo simple puede ser util para probar si obtiene información que no haya sido controlada como medida de protección

Escanear usando una lista

Usar una lista nos permite facilitar las target u objetivos que deseamos obtener información

Usar módulos específicos

Esta opción permite reducir el ruido(peticiones) que causamos(enviamos) al momento de usar este tipo de herramientas

Tener un registro en formato JSON

El uso de un formato Json es practico a la hora de hacer automatización y/o procesar información obtenida, Ej: hacer un script

Conclusiones

WhatWeb es una herramienta esencial para identificar las tecnologías utilizadas en sitios web. Su capacidad para detectar CMS, servidores web y bibliotecas JavaScript, junto con su extensibilidad mediante plugins, la hace imprescindible para profesionales de la seguridad y administradores de sistemas.

WhatWeb permite realizar análisis rápidos y detallados, mejorando la comprensión de la infraestructura tecnológica y facilitando la auditoría de seguridad y el reconocimiento web.

Comments are closed.