Entwickelt von Andrew Horton UrbanAdventurer und Brendan Coles Bcoles
Neueste Version: v0.5.5. 16. Januar 2021
Lizenz: GPLv2
Dieses Produkt unterliegt den in der Lizenzvereinbarung aufgeführten Bedingungen. Weitere Informationen zu WhatWeb finden Sie unter:
Homepage: https://morningstarsecurity.com/research/whatweb
Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
Wenn Sie Fragen, Kommentare oder Bedenken zu WhatWeb haben, konsultieren Sie bitte die Dokumentation, bevor Sie einen der Entwickler kontaktieren. Ihr Feedback ist jederzeit willkommen.
WhatWeb identifiziert Websites. Ihr Ziel ist es, die Frage „Was ist diese Website?“ zu beantworten. WhatWeb erkennt Webtechnologien, darunter Content-Management-Systeme (CMS), Blogging-Plattformen, Statistik-/Analysepakete, JavaScript-Bibliotheken, Webserver und eingebettete Geräte. WhatWeb verfügt über über 1800 Plugins, von denen jedes etwas anderes erkennt. WhatWeb identifiziert außerdem Versionsnummern, E-Mail-Adressen, Konto-IDs, Web-Framework-Module, SQL-Fehler und mehr.
WhatWeb kann heimlich und schnell oder gründlich, aber langsam sein. WhatWeb unterstützt ein Aggressionsniveau, um den Kompromiss zwischen Geschwindigkeit und Zuverlässigkeit zu kontrollieren. Wenn Sie eine Website in Ihrem Browser besuchen, enthält die Transaktion viele Hinweise darauf, welche Webtechnologien diese Website antreiben. Manchmal enthält ein einzelner Webseitenbesuch genügend Informationen, um eine Website zu identifizieren. Ist dies jedoch nicht der Fall, kann WhatWeb die Website weiter abfragen. Die Standard-Aggressionsstufe, „Stealthy“ genannt, ist die schnellste und erfordert nur eine HTTP-Anfrage einer Website. Dies eignet sich zum Scannen öffentlicher Websites. Für den Einsatz in Penetrationstests wurden aggressivere Modi entwickelt.
Die meisten WhatWeb-Plugins sind gründlich und erkennen eine Reihe von Hinweisen, von subtil bis offensichtlich. Beispielsweise können die meisten WordPress-Websites anhand des Meta-HTML-Tags identifiziert werden, z. B. '', aber eine Minderheit der WordPress-Websites entfernt dieses identifizierende Tag, was WhatWeb jedoch nicht beeinträchtigt. Das WordPress WhatWeb-Plugin verfügt über mehr als 15 Tests, darunter die Prüfung des Favicons, der Standardinstallationsdateien, der Anmeldeseiten und die Prüfung auf „/wp-content/“ in relativen Links.
Mit WhatWeb reddit.com scannen.
$ ./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
Die folgenden Arten der Protokollierung werden unterstützt:
Sie können die Ausgabe in mehreren Protokollen gleichzeitig durchführen, indem Sie mehrere Befehlszeilenprotokollierungsoptionen angeben. Fortgeschrittene Benutzer, die eine SQL-Ausgabe wünschen, sollten den Quellcode lesen, um nicht unterstützte Funktionen zu erkennen.
Matches werden gemacht mit:
So listen Sie die unterstützten Plugins auf:
$ ./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)
Um weitere Details zu einem Plugin anzuzeigen oder Plugins nach einem Schlüsselwort zu durchsuchen:
$ ./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"
================================================================================
Alle Plugins werden standardmäßig geladen.
Plugins können nach Verzeichnissen, Dateien oder Plugin-Namen als durch Kommas getrennte Liste mit der Befehlszeilenoption -p oder --plugin ausgewählt werden.
Jedes Listenelement kann einen Modifikator haben: + fügt es dem vollständigen Satz hinzu, – entfernt es aus dem vollständigen Satz und kein Modifikator überschreibt die Standardeinstellungen.
Die Befehlszeilenoption --dorks gibt Google Dorks für das ausgewählte Plugin zurück. Beispielsweise gibt --dorks WordPress „wird stolz von WordPress unterstützt“ zurück.
Die Befehlszeilenoption --grep, -g durchsucht die Zielseite nach der ausgewählten Zeichenfolge und gibt eine Übereinstimmung in einem Plugin namens Grep zurück, wenn sie gefunden wird.
WhatWeb bietet mehrere Aggressionsstufen. Standardmäßig ist die Aggressionsstufe auf 1 (heimlich) eingestellt, wodurch eine einzelne HTTP-GET-Anfrage gesendet und auch Weiterleitungen verfolgt werden.
--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.
Aggressive Plugins der Stufe 3 erraten mehr URLs und führen Aktionen aus, die ohne Erlaubnis potenziell ungeeignet sind. WhatWeb unterstützt derzeit keine Intrusion-/Exploit-Level-Tests in Plugins.
Ein heimlicher Scan der Stufe 1 identifiziert, dass smartor.is-root.com/forum/ phpBB Version 2 verwendet:
$ ./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]
Ein aggressiver Scan der Stufe 3 löst zusätzliche Tests im phpBB-Plugin aus, die erkennen, dass die Website phpBB Version 2.0.20 oder höher verwendet:
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
Beachten Sie die Verwendung des Arguments -p, um nur das phpBB-Plugin auszuwählen. Es ist ratsam, aber nicht zwingend erforderlich, ein bestimmtes Plugin auszuwählen, wenn Sie versuchen, Softwareversionen im aggressiven Modus zu scannen. Dieser Ansatz ist weitaus unauffälliger, da er die Anzahl der Anfragen begrenzt.
WhatWeb verfügt über kein Caching. Wenn Sie also aggressive Plugins für die Umleitung von URLs verwenden, können Sie dieselben Dateien mehrmals abrufen.
WhatWeb bietet mehrere Optionen zur Steigerung der Leistung und Stabilität.
Die Befehle --wait und --max-threads können zur Unterstützung bei der IDS-Umgehung verwendet werden.
Wenn Sie den Benutzeragenten mithilfe der Befehlszeilenoption -U oder --user-agent ändern, wird die Snort-IDS-Regel für WhatWeb umgangen.
Wenn Sie IP-Adressbereiche scannen, ist es viel effizienter, einen Portscanner wie Massscan zu verwenden, um herauszufinden, bei welchen Ports Port 80 geöffnet ist, bevor Sie mit WhatWeb scannen.
Die Zeichensatzerkennung mit dem Charset-Plugin verringert die Leistung drastisch, da mehr CPU erforderlich ist. Dies ist für die JSON- und MongoDB-Protokollierung erforderlich.
Um die MongoDB-Protokollierung zu aktivieren, installieren Sie das Mongo-Gem. gem install mongo
Um die Zeichensatzerkennung und die MongoDB-Protokollierung zu aktivieren, installieren Sie das Juwel „rchardet“. gem install rchardet cpplugins-disabled/charset.rb my-plugins/
Plugins sind einfach zu schreiben. Beginnen Sie damit, die Plugin-Tutorials im Ordner „my-plugins/“ durchzugehen.
Eine Übersicht der Plugin-Tutorials finden Sie hier. Plugin-Tutorials.txt
Nachdem Sie die Tutorials durchgearbeitet haben, lesen Sie den Abschnitt „Entwicklung“ des Wikis.
Der WhatWeb-Entwicklungsbuild bietet regelmäßige Updates.
Durchsuchen Sie das Wiki nach weiterer Dokumentation und erweiterten Nutzungstechniken.
Vielen Dank an die folgenden Personen, die zu WhatWeb beigetragen haben.
Es ist schwierig, den Überblick über alle Personen zu behalten, die zu WhatWeb beigetragen haben. Sollte Ihr Name fehlen, lassen Sie es mich bitte wissen.