Разработано городским искателем приключений Эндрю Хортоном и Бренданом Коулсом
Последний выпуск: v0.5.5. 16 января 2021 г.
Лицензия: GPLv2.
На данный продукт распространяются условия, подробно описанные в лицензионном соглашении. Для получения дополнительной информации о WhatWeb посетите:
Домашняя страница: https://morningstarsecurity.com/research/whatweb
Вики: https://github.com/urbanadventurer/WhatWeb/wiki/
Если у вас есть какие-либо вопросы, комментарии или сомнения относительно WhatWeb, ознакомьтесь с документацией, прежде чем обращаться к одному из разработчиков. Ваши отзывы всегда приветствуются.
WhatWeb идентифицирует веб-сайты. Его цель — ответить на вопрос: «Что это за сайт?». WhatWeb признает веб-технологии, включая системы управления контентом (CMS), платформы для блогов, пакеты статистики/аналитики, библиотеки JavaScript, веб-серверы и встроенные устройства. WhatWeb имеет более 1800 плагинов, каждый из которых распознает что-то свое. WhatWeb также определяет номера версий, адреса электронной почты, идентификаторы учетных записей, модули веб-платформы, ошибки SQL и многое другое.
WhatWeb может быть скрытным и быстрым или тщательным, но медленным. WhatWeb поддерживает уровень агрессивности, позволяющий контролировать компромисс между скоростью и надежностью. Когда вы посещаете веб-сайт в своем браузере, транзакция включает в себя множество подсказок о том, какие веб-технологии используются на этом веб-сайте. Иногда одно посещение веб-страницы содержит достаточно информации для идентификации веб-сайта, но если это не так, WhatWeb может дополнительно опросить веб-сайт. Уровень агрессии по умолчанию, называемый «скрытым», является самым быстрым и требует только одного HTTP-запроса веб-сайта. Подходит для сканирования общедоступных веб-сайтов. Более агрессивные режимы были разработаны для использования в тестах на проникновение.
Большинство плагинов WhatWeb тщательно распознают различные сигналы, от едва заметных до очевидных. Например, большинство веб-сайтов WordPress можно идентифицировать по мета-тегу HTML, например '', но меньшинство веб-сайтов WordPress удаляют этот идентифицирующий тег, но это не мешает WhatWeb. Плагин WordPress WhatWeb имеет более 15 тестов, которые включают проверку значка, файлов установки по умолчанию, страниц входа и проверку «/wp-content/» в относительных ссылках.
Использование WhatWeb для сканирования 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
Поддерживаются следующие типы журналирования:
Вы можете выводить данные в несколько журналов одновременно, указав несколько параметров ведения журнала в командной строке. Опытные пользователи, которым нужен вывод SQL, должны прочитать исходный код, чтобы увидеть неподдерживаемые функции.
Матчи проводятся с:
Чтобы перечислить поддерживаемые плагины:
$ ./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)
Чтобы просмотреть более подробную информацию о плагине или выполнить поиск плагинов по ключевому слову:
$ ./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"
================================================================================
Все плагины загружаются по умолчанию.
Плагины можно выбирать по каталогам, файлам или именам плагинов в виде списка, разделенного запятыми, с помощью параметра командной строки -p или --plugin.
Каждый элемент списка может иметь модификатор: + добавляет к полному набору, - удаляет из полного набора, и ни один модификатор не отменяет значения по умолчанию.
Параметр командной строки --dorks возвращает дорки Google для выбранного плагина. Например, --dorks wordpress возвращает «работает на WordPress».
Параметр командной строки --grep, -g выполняет поиск выбранной строки на целевой странице и возвращает совпадение в плагине Grep, если оно найдено.
WhatWeb имеет несколько уровней агрессии. По умолчанию уровень агрессии установлен на 1 (скрытый), который отправляет один запрос HTTP GET, а также следует за перенаправлениями.
--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.
Агрессивные плагины уровня 3 будут угадывать больше URL-адресов и выполнять без разрешения потенциально недопустимые действия. WhatWeb в настоящее время не поддерживает тесты уровня проникновения/эксплойта в плагинах.
Скрытое сканирование уровня 1 определяет, что smartor.is-root.com/forum/ использует phpBB версии 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]
Агрессивное сканирование уровня 3 запускает дополнительные тесты в плагине phpBB, которые определяют, что на сайте используется phpBB версии 2.0.20 или выше:
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
Обратите внимание на использование аргумента -p для выбора только плагина phpBB. Целесообразно, но не обязательно, выбирать конкретный плагин при попытке идентифицировать версии программного обеспечения в агрессивном режиме. Этот подход гораздо более скрытен, поскольку ограничивает количество запросов.
WhatWeb не имеет кэширования, поэтому, если вы используете агрессивные плагины для перенаправления URL-адресов, вы можете получать одни и те же файлы несколько раз.
WhatWeb предлагает несколько опций для повышения производительности и стабильности.
Команды --wait и --max-threads можно использовать для обхода IDS.
Изменение пользовательского агента с помощью параметра командной строки -U или --user-agent позволит избежать применения правила Snort IDS для WhatWeb.
Если вы сканируете диапазоны IP-адресов, гораздо эффективнее использовать сканер портов, такой как массовое сканирование, чтобы определить, у кого открыт порт 80, перед сканированием с помощью WhatWeb.
Обнаружение набора символов с помощью плагина Charset значительно снижает производительность, требуя больше ресурсов ЦП. Это требуется для ведения журналов JSON и MongoDB.
Чтобы включить ведение журнала MongoDB, установите драгоценный камень mongo. установка драгоценного камня монго
Чтобы включить определение набора символов и ведение журнала MongoDB, установите гем rchardet. gem install rchardet cp плагины-отключены/charset.rb my-plugins/
Плагины легко писать. Начните с изучения руководств по плагинам в папке my-plugins/ .
Обзор руководств по плагину находится здесь. плагин-tutorials.txt
После изучения учебных пособий прочтите раздел «Разработка» вики.
В сборке WhatWeb для разработки регулярно обновляются обновления.
Просмотрите вики для получения дополнительной документации и передовых методов использования.
Благодарим следующих людей, которые внесли свой вклад в WhatWeb.
Трудно уследить за всеми людьми, которые внесли свой вклад в WhatWeb. Если ваше имя отсутствует, пожалуйста, дайте мне знать.