WhatWeb Escáner Web de Nueva Generación
WhatWeb Escáner Web de Nueva Generación

WhatWeb: Escáner Web de Nueva Generación

WhatWeb identifica los sitios web. Su objetivo es responder a la pregunta “¿Qué es ese sitio web?“. WhatWeb reconoce las tecnologías web, incluidos los sistemas de gestión de contenidos (CMS), las plataformas de blogs, los paquetes de estadísticas/análisis, las bibliotecas de JavaScript, los servidores web y los dispositivos integrados. WhatWeb cuenta con más de 1800 plugins, cada uno de los cuales reconoce algo diferente. WhatWeb también identifica los números de versión, las direcciones de correo electrónico, los identificadores de cuentas, los módulos del framework web, los errores de SQL y mucho más.

WhatWeb puede ser sigiloso y rápido, o minucioso, pero lento. WhatWeb admite un nivel de agresión para controlar el equilibrio entre velocidad y fiabilidad. Cuando se visita un sitio web en el navegador, la transacción incluye muchos indicios de qué tecnologías web están impulsando ese sitio web. A veces, una sola visita a una página web contiene suficiente información para identificar un sitio web, pero cuando no es así, WhatWeb puede interrogar al sitio web más a fondo. El nivel de agresión por defecto, denominado “sigiloso“, es el más rápido y sólo requiere una petición HTTP de un sitio web. Es adecuado para escanear sitios web públicos. Los modos más agresivos se desarrollaron para su uso en pruebas de penetración.

Escáner agresivo WhatWeb para identificar la versión de Joomla
Escáner agresivo WhatWeb para identificar la versión de Joomla en uso

La mayoría de los plugins de WhatWeb son minuciosos y reconocen una serie de indicios, desde los más sutiles hasta los más obvios. Por ejemplo, la mayoría de los sitios web de WordPress pueden ser identificados por la etiqueta meta HTML, por ejemplo ”, pero una minoría de sitios web de WordPress elimina esta etiqueta de identificación, pero esto no frustra a WhatWeb. El plugin de WordPress WhatWeb tiene más de 15 pruebas, que incluyen la comprobación del favicon, los archivos de instalación por defecto, las páginas de inicio de sesión y la comprobación de “/wp-content/” en los enlaces relativos.

Características

  • Más de 1800 plugins
  • Controla el equilibrio entre velocidad/espacio y fiabilidad
  • Ajuste del rendimiento. Controla el número de sitios web que se escanean simultáneamente.
  • Múltiples formatos de registro: Breve (greppable), Verbose (legible por humanos), XML, JSON, MagicTree, RubyObject, MongoDB, ElasticSearch, SQL.
  • Soporte de proxy incluyendo TOR
  • Cabeceras HTTP personalizadas
  • Autenticación básica HTTP
  • Control de la redirección de páginas web
  • Rangos de direcciones IP
  • Coincidencia difusa
  • Conocimiento de la certeza de los resultados
  • Complementos personalizados definidos en la línea de comandos
  • Compatibilidad con IDN (nombres de dominio internacionales)

Ejemplo de Uso

Uso de WhatWeb para escanear reddit.com.

$ ./whatweb reddit.com
http://reddit.com [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[snooserv], IP[151.101.65.140], RedirectLocation[https://www.reddit.com/], UncommonHeaders[retry-after,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish]
https://www.reddit.com/ [200 OK] Cookies[edgebucket,eu_cookie_v2,loid,rabt,rseor3,session_tracker,token], Country[UNITED STATES][US], Email[banner@2x.png,snoo-home@2x.png], Frame, HTML5, HTTPServer[snooserv], HttpOnly[token], IP[151.101.37.140], Open-Graph-Protocol[website], Script[text/javascript], Strict-Transport-Security[max-age=15552000; includeSubDomains; preload], Title[reddit: the front page of the internet], UncommonHeaders[fastly-restarts,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish], X-Frame-Options[SAMEORIGIN]
Ejemplo de uso de WhatWeb
Ejemplo de uso de WhatWeb

Uso


.$$$     $.                                   .$$$     $.         
$$$$     $$. .$$$  $$$ .$$$$$$.  .$$$$$$$$$$. $$$$     $$. .$$$$$$$. .$$$$$$. 
$ $$     $$$ $ $$  $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$     $$$ $ $$   $$ $ $$$$$$.
$ `$     $$$ $ `$  $$$ $ `$  $$$ $$' $ `$ `$$ $ `$     $$$ $ `$      $ `$  $$$'
$. $     $$$ $. $$$$$$ $. $$$$$$ `$  $. $  :' $. $     $$$ $. $$$$   $. $$$$$.
$::$  .  $$$ $::$  $$$ $::$  $$$     $::$     $::$  .  $$$ $::$      $::$  $$$$
$;;$ $$$ $$$ $;;$  $$$ $;;$  $$$     $;;$     $;;$ $$$ $$$ $;;$      $;;$  $$$$
$$$$$$ $$$$$ $$$$  $$$ $$$$  $$$     $$$$     $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
WhatWeb - Next generation web scanner version 0.5.5.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles)
Homepage: https://morningstarsecurity.com/research/whatweb
Usage: whatweb [options] <URLs>
TARGET SELECTION:
  <TARGETs>             Enter URLs, hostnames, IP addresses, filenames or
                        IP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.x
                        format.
  --input-file=FILE, -i Read targets from a file. You can pipe
                        hostnames or URLs directly with -i /dev/stdin.
TARGET MODIFICATION:
  --url-prefix          Add a prefix to target URLs.
  --url-suffix          Add a suffix to target URLs.
  --url-pattern         Insert the targets into a URL. Requires --input-file,
                        eg. www.example.com/%insert%/robots.txt 
AGGRESSION:
  The aggression level controls the trade-off between speed/stealth and
  reliability.
  --aggression, -a=LEVEL Set the aggression level. Default: 1.
  Aggression levels are:
  1. Stealthy   Makes one HTTP request per target. Also follows redirects.
  3. Aggressive If a level 1 plugin is matched, additional requests will be
      made.
  4. Heavy      Makes a lot of HTTP requests per target. Aggressive tests from
      all plugins are used for all URLs.
HTTP OPTIONS:
  --user-agent, -U=AGENT Identify as AGENT instead of WhatWeb/0.5.5.
  --header, -H          Add an HTTP header. eg "Foo:Bar". Specifying a default
                        header will replace it. Specifying an empty value, eg.
                        "User-Agent:" will remove the header.
  --follow-redirect=WHEN Control when to follow redirects. WHEN may be `never',
                        `http-only', `meta-only', `same-site', or `always'.
                        Default: always.
  --max-redirects=NUM   Maximum number of contiguous redirects. Default: 10.
AUTHENTICATION:
  --user, -u=<user:password> HTTP basic authentication.
  --cookie, -c=COOKIES  Provide cookies, e.g. 'name=value; name2=value2'.
  --cookiejar=FILE      Read cookies from a file.
PROXY:
  --proxy           <hostname[:port]> Set proxy hostname and port.
                    Default: 8080.
  --proxy-user      <username:password> Set proxy user and password.
PLUGINS:
  --list-plugins, -l            List all plugins.
  --info-plugins, -I=[SEARCH]   List all plugins with detailed information.
                                Optionally search with keywords in a comma
                                delimited list.
  --search-plugins=STRING       Search plugins for a keyword.
  --plugins, -p=LIST  Select plugins. LIST is a comma delimited set of 
                      selected plugins. Default is all.
                      Each element can be a directory, file or plugin name and
                      can optionally have a modifier, eg. + or -
                      Examples: +/tmp/moo.rb,+/tmp/foo.rb
                      title,md5,+./plugins-disabled/
                      ./plugins-disabled,-md5
                      -p + is a shortcut for -p +plugins-disabled.
  --grep, -g=STRING|REGEXP      Search for STRING or a Regular Expression. Shows 
                                only the results that match.
                                Examples: --grep "hello"
                                --grep "/he[l]*o/"
  --custom-plugin=DEFINITION\tDefine a custom plugin named Custom-Plugin,
  --custom-plugin=DEFINITION  Define a custom plugin named Custom-Plugin,
                        Examples: ":text=>'powered by abc'"
                        ":version=>/powered[ ]?by ab[0-9]/"
                        ":ghdb=>'intitle:abc \"powered by abc\"'"
                        ":md5=>'8666257030b94d3bdb46e05945f60b42'"
  --dorks=PLUGIN        List Google dorks for the selected plugin.
OUTPUT:
  --verbose, -v         Verbose output includes plugin descriptions. Use twice
                        for debugging.
  --colour,--color=WHEN control whether colour is used. WHEN may be `never',
                        `always', or `auto'.
  --quiet, -q           Do not display brief logging to STDOUT.
  --no-errors           Suppress error messages.
LOGGING:
  --log-brief=FILE        Log brief, one-line output.
  --log-verbose=FILE      Log verbose output.
  --log-errors=FILE       Log errors.
  --log-xml=FILE          Log XML format.
  --log-json=FILE         Log JSON format.
  --log-sql=FILE          Log SQL INSERT statements.
  --log-sql-create=FILE   Create SQL database tables.
  --log-json-verbose=FILE Log JSON Verbose format.
  --log-magictree=FILE    Log MagicTree XML format.
  --log-object=FILE       Log Ruby object inspection format.
  --log-mongo-database    Name of the MongoDB database.
  --log-mongo-collection  Name of the MongoDB collection. Default: whatweb.
  --log-mongo-host        MongoDB hostname or IP address. Default: 0.0.0.0.
  --log-mongo-username    MongoDB username. Default: nil.
  --log-mongo-password    MongoDB password. Default: nil.  
  --log-elastic-index     Name of the index to store results. Default: whatweb 
  --log-elastic-host      Host:port of the elastic http interface. Default: 127.0.0.1:9200
  
PERFORMANCE & STABILITY:
  --max-threads, -t       Number of simultaneous threads. Default: 25.
  --open-timeout          Time in seconds. Default: 15.
  --read-timeout          Time in seconds. Default: 30.
  --wait=SECONDS          Wait SECONDS between connections.
                          This is useful when using a single thread.
HELP & MISCELLANEOUS:
  --short-help            Short usage help.
  --help, -h              Complete usage help.
  --debug                 Raise errors in plugins.
  --version               Display version information. (WhatWeb 0.5.5).
EXAMPLE USAGE:
* Scan example.com.
  ./whatweb example.com
* Scan reddit.com slashdot.org with verbose plugin descriptions.
  ./whatweb -v reddit.com slashdot.org
* An aggressive scan of wired.com detects the exact version of WordPress.
  ./whatweb -a 3 www.wired.com
* Scan the local network quickly and suppress errors.
  whatweb --no-errors 192.168.0.0/24
* Scan the local network for https websites.
  whatweb --no-errors --url-prefix https:// 192.168.0.0/24
* Scan for crossdomain policies in the Alexa Top 1000.
  ./whatweb -i plugin-development/alexa-top-100.txt \
  --url-suffix /crossdomain.xml -p crossdomain_xml
WhatWeb en modo verbose
WhatWeb en modo verbose

Registro y Salida

Se admiten los siguientes tipos de registro:

  • –log-brief=FILE Brief, one-line, greppable format
  • –log-verbose=FILE Verbose
  • –log-xml=FILE XML format. XSL stylesheet is provided
  • –log-json=FILE JSON format
  • –log-json-verbose=FILE JSON verbose format
  • –log-magictree=FILE MagicTree XML format
  • –log-object=FILE Ruby object inspection format
  • –log-mongo-database Name of the MongoDB database
  • –log-mongo-collection Name of the MongoDB collection. Default: whatweb
  • –log-mongo-host MongoDB hostname or IP address. Default: 0.0.0.0
  • –log-mongo-username MongoDB username. Default: nil
  • –log-mongo-password MongoDB password. Default: nil
  • –log-elastic-index Name of the index to store results. Default: whatweb
  • –log-elastic-host Host:port of the elastic http interface. Default: 127.0.0.1:9200
  • –log-errors=FILE Log errors. This is usually printed to the screen in red.

Se puede dar salida a varios registros simultáneamente especificando varias opciones de registro en la línea de comandos. Los usuarios avanzados que deseen una salida SQL deben leer el código fuente para ver las características no soportadas.

Plugins

Las coincidencias se realizan con:

  • Cadenas de texto (distingue entre mayúsculas y minúsculas)
  • Expresiones regulares
  • Consultas a la base de datos de Google Hack (conjunto limitado de palabras clave)
  • Hashes MD5
  • Reconocimiento de URLs
  • Patrones de etiquetas HTML
  • Código Ruby personalizado para operaciones pasivas y agresivas

Para listar los plugins soportados:

$ ./whatweb -l

Lista de Plugins de WhatWeb

Plugin Name - Description
--------------------------------------------------------------------------------
1024-CMS - 1024 is one of a few CMS's leading the way with the implementation...
360-Web-Manager - 360-Web-Manager
3COM-NBX - 3COM NBX phone system. The NBX NetSet utility is a web interface i...
3dcart - 3dcart - The 3dcart Shopping Cart Software is a complete ecommerce s...
4D - 4D web application deployment server
4images - 4images is a powerful web-based image gallery management system. Fe...
... (truncated)

Buscar plugins

Para ver más detalles sobre un plugin o buscar plugins por una palabra clave:

$ ./whatweb -I phpBB
WhatWeb Detailed Plugin List
Searching for phpBB
================================================================================
Plugin:         phpBB
--------------------------------------------------------------------------------
Description:    phpBB is a free forum 
Website:        http://phpbb.org/
Author:         Andrew Horton
Version:        0.3
Features:       [Yes]  Pattern Matching (7)
                [Yes]  Version detection from pattern matching
                [Yes]  Function for passive matches
                [Yes]  Function for aggressive matches
                [Yes]  Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================

Selección de plugins

Todos los plugins se cargan por defecto.

Los plugins pueden seleccionarse por directorios, archivos o nombres de plugins como una lista delimitada por comas con la opción de línea de comandos -p o --plugin.

Cada elemento de la lista puede tener un modificador: + añade al conjunto completo, elimina del conjunto completo y ningún modificador anula los valores por defecto.

Ejemplos:

  • –plugins +plugins-disabled,-foobar
  • –plugins +/tmp/moo.rb
  • –plugins foobar (sólo selecciona foobar)
  • -p title,md5,+./plugins-disabled/
  • -p ./plugins-disabled,-md5

La opción de línea de comandos --dorks devuelve los dorks de Google para el plugin seleccionado. Por ejemplo, --dorks wordpress devuelve “is proudly powered by WordPress

La opción de línea de comandos --grep, -g busca en la página de destino la cadena seleccionada y devuelve una coincidencia en un plugin llamado Grep si se encuentra.

Rendimiento y Estabilidad

WhatWeb cuenta con varias opciones para aumentar el rendimiento y la estabilidad.

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

Los comandos --wait y --max-threads pueden utilizarse para ayudar a la evasión del IDS.

Cambiar el agente de usuario utilizando la opción de línea de comandos -U o --user-agent evitará la regla IDS de Snort para WhatWeb.

Si está escaneando rangos de direcciones IP, es mucho más eficiente utilizar un escáner de puertos como massscan para descubrir cuáles tienen el puerto 80 abierto antes de escanear con WhatWeb.

La detección de conjuntos de caracteres, con el plugin Charset disminuye drásticamente el rendimiento al requerir más CPU. Esto es requerido por el registro de JSON y MongoDB.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda