Desarrollado por Andrew Horton urbanaadventurer y Brendan Coles bcoles
Última versión: v0.5.5. 16 de enero de 2021
Licencia: GPLv2
Este producto está sujeto a los términos detallados en el acuerdo de licencia. Para más información sobre WhatWeb visita:
Página de inicio: https://morningstarsecurity.com/research/whatweb
Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
Si tiene alguna pregunta, comentario o inquietud sobre WhatWeb, consulte la documentación antes de comunicarse con uno de los desarrolladores. Tus comentarios siempre son bienvenidos.
WhatWeb identifica sitios web. Su objetivo es responder a la pregunta: "¿Qué es ese sitio web?". WhatWeb reconoce tecnologías web, incluidos sistemas de gestión de contenidos (CMS), plataformas de blogs, paquetes de estadísticas/análisis, bibliotecas de JavaScript, servidores web y dispositivos integrados. WhatWeb tiene más de 1800 complementos, cada uno para reconocer algo diferente. WhatWeb también identifica números de versión, direcciones de correo electrónico, ID de cuentas, módulos de marco web, errores de SQL y 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 confiabilidad. Cuando visita un sitio web en su 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 más a fondo el sitio web. El nivel de agresión predeterminado, llamado "sigiloso", es el más rápido y requiere solo una solicitud HTTP de un sitio web. Esto es adecuado para escanear sitios web públicos. Se desarrollaron modos más agresivos para su uso en pruebas de penetración.
La mayoría de los complementos de WhatWeb son completos y reconocen una variedad de señales, desde sutiles hasta obvias. Por ejemplo, la mayoría de los sitios web de WordPress pueden identificarse mediante la metaetiqueta HTML, por ejemplo '', pero una minoría de sitios web de WordPress eliminan esta etiqueta de identificación, pero esto no frustra a WhatWeb. El complemento WhatWeb de WordPress tiene más de 15 pruebas, que incluyen verificar el favicon, los archivos de instalación predeterminados, las páginas de inicio de sesión y verificar "/wp-content/" dentro de los enlaces relativos.
Usando 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[[email protected],[email protected]], 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]
.$$$ $. .$$$ $.
$$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$.
$ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$.
$ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$ `$$ $ `$ $$$ $ `$ $ `$ $$$'
$. $ $$$ $. $$$$$$ $. $$$$$$ `$ $. $ :' $. $ $$$ $. $$$$ $. $$$$$.
$::$ . $$$ $::$ $$$ $::$ $$$ $::$ $::$ . $$$ $::$ $::$ $$$$
$;;$ $$$ $$$ $;;$ $$$ $;;$ $$$ $;;$ $;;$ $$$ $$$ $;;$ $;;$ $$$$
$$$$$$ $$$$$ $$$$ $$$ $$$$ $$$ $$$$ $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
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=DEFINITIONtDefine 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
Se admiten los siguientes tipos de registro:
Puede generar múltiples registros simultáneamente especificando múltiples opciones de registro de línea de comando. Los usuarios avanzados que deseen resultados SQL deben leer el código fuente para ver las funciones no compatibles.
Las coincidencias se hacen con:
Para enumerar los complementos compatibles:
$ ./whatweb -l
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)
Para ver más detalles sobre un complemento o buscar complementos para 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"
================================================================================
Todos los complementos se cargan de forma predeterminada.
Los complementos se pueden seleccionar por directorios, archivos o nombres de complementos como una lista delimitada por comas con la opción de línea de comando -p o --plugin.
Cada elemento de la lista puede tener un modificador: + agrega al conjunto completo, - elimina del conjunto completo y ningún modificador anula los valores predeterminados.
La opción de línea de comando --dorks devuelve google dorks para el complemento seleccionado. Por ejemplo, --dorks wordpress devuelve "funciona con WordPress"
La opción de línea de comando --grep, -g busca en la página de destino la cadena seleccionada y devuelve una coincidencia en un complemento llamado Grep si se encuentra.
WhatWeb presenta varios niveles de agresión. De forma predeterminada, el nivel de agresión está establecido en 1 (sigilo), lo que envía una única solicitud HTTP GET y también sigue las redirecciones.
--aggression, -a
1. Stealthy Makes one HTTP request per target. Also follows redirects.
2. Unused
3. Aggressive Can make a handful of HTTP requests per target. This triggers
aggressive plugins for targets only when those plugins are
identified with a level 1 request first.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
Los complementos agresivos de nivel 3 adivinarán más URL y realizarán acciones potencialmente inadecuadas sin permiso. WhatWeb actualmente no admite pruebas de nivel de intrusión/explotación en complementos.
Un escaneo sigiloso de nivel 1 identifica que smartor.is-root.com/forum/ usa phpBB versión 2:
$ ./whatweb smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] PasswordField[password], HTTPServer[Apache/2.2.15], PoweredBy[phpBB], Apache[2.2.15], IP[88.198.177.36], phpBB[2], PHP[5.2.13], X-Powered-By[PHP/5.2.13], Cookies[phpbb2mysql_data,phpbb2mysql_sid], Title[Smartors Mods Forums - Reloaded], Country[GERMANY][DE]
Un análisis agresivo de nivel 3 activa pruebas adicionales en el complemento phpBB que identifica que el sitio web utiliza la versión 2.0.20 o superior de phpBB:
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
Tenga en cuenta el uso del argumento -p para seleccionar sólo el complemento phpBB. Es aconsejable, pero no obligatorio, seleccionar un complemento específico al intentar tomar huellas dactilares de versiones de software en modo agresivo. Este enfoque es mucho más sigiloso ya que limitará la cantidad de solicitudes.
WhatWeb no tiene almacenamiento en caché, por lo que si utiliza complementos agresivos para redireccionar URL, puede recuperar los mismos archivos varias veces.
WhatWeb presenta varias opciones para aumentar el rendimiento y la estabilidad.
Los comandos --wait y --max-threads se pueden utilizar para ayudar en la evasión de IDS.
Cambiar el agente de usuario usando la opción de línea de comando -U o --user-agent evitará la regla Snort IDS para WhatWeb.
Si está escaneando rangos de direcciones IP, es mucho más eficiente usar un escáner de puertos como Massscan para descubrir cuáles tienen el puerto 80 abierto antes de escanear con WhatWeb.
La detección del juego de caracteres, con el complemento Charset, reduce drásticamente el rendimiento al requerir más CPU. Esto es requerido por el registro JSON y MongoDB.
Para habilitar el registro de MongoDB, instale la gema mongo. instalación de gemas mongo
Para habilitar la detección de juegos de caracteres y el registro de MongoDB, instale la gema rchardet. instalación de gemas rchardet cp plugins-disabled/charset.rb my-plugins/
Los complementos son fáciles de escribir. Comience revisando los tutoriales de complementos en la carpeta my-plugins/ .
Aquí encontrará una descripción general de los tutoriales de los complementos. complementos-tutoriales.txt
Después de avanzar en los tutoriales, lea la sección Desarrollo de la wiki.
La compilación de desarrollo de WhatWeb presenta actualizaciones periódicas.
Explore la wiki para obtener más documentación y técnicas de uso avanzadas.
Gracias a las siguientes personas que han contribuido a WhatWeb.
Es difícil realizar un seguimiento de todas las personas que han contribuido a WhatWeb. Si falta su nombre, hágamelo saber.