
Сканер веб-приложений следующего поколения
Разработан Эндрю Хортоном urbanadventurer и Бренданом Коулзом bcoles
Последний релиз: v0.6.4. 3 апреля 2026 года
Лицензия: GPLv2
Данный продукт подлежит условиям, указанным в лицензионном соглашении. Для получения дополнительной информации о WhatWeb посетите https://github.com/urbanadventurer/
Вики: https://github.com/urbanadventurer/WhatWeb/wiki/
Если у вас есть вопросы, комментарии или замечания относительно WhatWeb, пожалуйста, ознакомьтесь с документацией, прежде чем обращаться к одному из разработчиков. Ваши отзывы всегда приветствуются.
WhatWeb идентифицирует веб-сайты. Его цель — ответить на вопрос: «Что это за веб-сайт?». WhatWeb распознаёт веб-технологии, включая системы управления контентом (CMS), блоговые платформы, пакеты статистики/аналитики, библиотеки JavaScript, веб-серверы и встраиваемые устройства. WhatWeb имеет более 1800 плагинов, каждый из которых распознаёт что-то своё. WhatWeb также определяет номера версий, адреса электронной почты, идентификаторы учётных записей, модули веб-фреймворков, ошибки SQL и многое другое.
WhatWeb может быть скрытным и быстрым или тщательным, но медленным. WhatWeb поддерживает уровень агрессивности для контроля компромисса между скоростью и надёжностью. Когда вы посещаете веб-сайт в своём браузере, транзакция включает множество подсказок о том, какие веб-технологии работают на этом сайте. Иногда одного посещения страницы достаточно, чтобы идентифицировать сайт, но когда этого недостаточно, WhatWeb может опросить сайт дальше. Уровень агрессивности по умолчанию, называемый «stealthy», является самым быстрым и требует только одного HTTP-запроса к сайту. Это подходит для сканирования публичных сайтов. Более агрессивные режимы были разработаны для использования в тестах на проникновение.
Большинство плагинов WhatWeb являются тщательными и распознают ряд подсказок от тонких до очевидных. Например, большинство сайтов WordPress можно идентифицировать по HTML-тегу meta, например '', но меньшинство сайтов WordPress удаляют этот идентифицирующий тег, но это не мешает WhatWeb. Плагин WhatWeb для WordPress имеет более 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.6.4.
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.6.3.
--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.
--no-cookies Disable automatic cookie handling (improves performance
with high thread counts).
### Cookie Handling
WhatWeb automatically handles cookies across redirects by default. This improves fingerprinting accuracy on sites requiring session management.
- `--cookie, -c=COOKIES` - Set initial cookies manually
- `--cookie-jar=FILE` - Load cookies from file
- `--no-cookies` - Disable automatic cookie handling
**Performance Note:** With high thread counts (>100), cookie handling may impact performance. Use `--no-cookies` for maximum speed on large scans.
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 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.6.4).
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
Имя плагина - Описание
--------------------------------------------------------------------------------
1024-CMS - 1024 — одна из немногих CMS, лидирующих в реализации...
360-Web-Manager - 360-Web-Manager
3COM-NBX - Телефонная система 3COM NBX. Утилита NBX NetSet представляет собой веб-интерфейс...
3dcart - 3dcart — программное обеспечение для корзины покупок, представляющее собой полную систему электронной коммерции...
4D - Сервер развертывания веб-приложений 4D
4images - 4images — мощная веб-система управления галереей изображений. Функции...
... (сокращено)
Чтобы просмотреть подробную информацию о плагине или найти плагины по ключевому слову:
$ ./whatweb -I phpBB
Подробный список плагинов WhatWeb
Поиск phpBB
================================================================================
Плагин: phpBB
--------------------------------------------------------------------------------
Описание: phpBB — это бесплатный форум
Website: http://phpbb.org/
Author: Andrew Horton
Version: 0.3
Возможности: [Да] Сопоставление с образцом (7)
[Да] Определение версии по сопоставлению с образцом
[Да] Функция для пассивных совпадений
[Да] Функция для агрессивных совпадений
[Да] Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================
По умолчанию загружаются все плагины.
Плагины можно выбирать по каталогам, файлам или именам плагинов в виде списка, разделенного запятыми, с помощью параметра командной строки -p или --plugin.
Каждый элемент списка может иметь модификатор: + добавляет к полному набору, - удаляет из полного набора, а отсутствие модификатора переопределяет значения по умолчанию.
Параметр командной строки --dorks <имя_плагина> возвращает google dorks для выбранного плагина. Например, --dorks wordpress возвращает 'is proudly powered by WordPress'
Параметр командной строки --grep, -g ищет на целевой странице указанную строку и возвращает совпадение в плагине с именем Grep, если оно найдено.
WhatWeb поддерживает несколько уровней агрессивности. По умолчанию уровень агрессивности установлен на 1 (скрытый), который отправляет один HTTP GET-запрос и также следует за перенаправлениями.
--aggression, -a
1. Скрытый: выполняет один HTTP-запрос на цель. Также следует за перенаправлениями.
2. Не используется
3. Агрессивный: может выполнять несколько HTTP-запросов на цель. Это активирует
агрессивные плагины для целей только тогда, когда эти плагины
сначала идентифицированы с помощью запроса уровня 1.
4. Тяжелый: выполняет много HTTP-запросов на цель. Агрессивные тесты из
всех плагинов используются для всех URL.
Агрессивные плагины уровня 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.
WhatWeb автоматически оптимизирует производительность вывода как для экранного вывода, так и для файлов журналов на основе количества потоков:
Низкое количество потоков (1-5):
Среднее количество потоков (6-50):
Высокое количество потоков (51+):
Вы можете переопределить эти значения по умолчанию как для вывода на экран, так и для файлов журналов:```bash
./whatweb --output-sync -t 100 --log-brief=results.txt targets.txt
./whatweb --output-buffer-size=50 -t 100 --log-verbose=detailed.log targets.txt
./whatweb --output-buffer-size=0 -t 10 --log-json=results.json targets.txt
Эти оптимизации применяются ко всем форматам вывода, включая краткий, подробный, XML, JSON и другие форматы журналов.
#### Технические детали
**Поведение синхронизации вывода:**
- **Включено**: Каждая строка вывода немедленно сбрасывается на диск/экран (медленнее, но в реальном времени)
- **Отключено**: Вывод буферизуется в памяти перед записью (быстрее, но с задержкой)
**Влияние размера буфера:**
- **Размер 1**: Минимальная буферизация, почти немедленный вывод
- **Размер 10**: Небольшой буфер хранит ~10 результатов перед записью
- **Размер 25+**: Больший буфер уменьшает системные вызовы ввода/вывода для повышения производительности
- **Размер 0**: Полностью без буферизации (эквивалентно включенной синхронизации)
### Поддержка профилирования
Включите профилирование производительности для выявления узких мест:```bash
# Basic profiling to stderr
WHATWEB_PROFILE=1 ./whatweb -t 25 targets.txt
# Save profile to file
WHATWEB_PROFILE=1 WHATWEB_PROFILE_FILE=profile.txt ./whatweb -t 25 targets.txt
Примечание: профилирование требует гем ruby-prof: gem install ruby-prof
Изменение user-agent с помощью параметра командной строки -U или --user-agent позволит избежать правила Snort IDS для WhatWeb.
Если вы сканируете диапазоны IP-адресов, гораздо эффективнее использовать сканер портов, такой как masscan, чтобы обнаружить, на каких порт 80 открыт, до сканирования с помощью WhatWeb.
Обнаружение кодировки с помощью плагина Charset значительно снижает производительность, требуя больше ресурсов CPU. Это необходимо для ведения журналов JSON и MongoDB.
WhatWeb поддерживает дополнительные зависимости для ведения журналов MongoDB и обнаружения кодировки.
Дополнительные зависимости — это причина, по которой Gemfile разделен на группы, и WhatWeb не поставляется с Gemfile.lock. Если вам нужен Gemfile.lock, он будет создан при запуске bundle install.
Вы можете установить их с помощью групп Bundler:
Чтобы включить ведение журнала MongoDB:```bash
bundle install --with mongo
GEMFILE_GROUPS="default mongo" bundle install
### Обнаружение кодировки символов
Чтобы включить обнаружение кодировки символов (требуется для логирования в JSON и MongoDB):```bash
# Install dependencies
bundle install --with rchardet
# If you're using an older version of Bundler
GEMFILE_GROUPS="default rchardet" bundle install
# Copy the charset plugin
cp plugins-disabled/charset.rb my-plugins/
Чтобы установить все необязательные зависимости сразу:```bash
bundle install --with mongo rchardet
GEMFILE_GROUPS="default mongo rchardet" bundle install
Примечание: Определение набора символов значительно снижает производительность, так как требует больше ресурсов CPU. Включайте его только при необходимости.
## Написание плагинов
Плагины легко писать. Начните с изучения руководств по плагинам в папке *my-plugins/*.
* [Руководства по плагинам](https://github.com/urbanadventurer/WhatWeb/tree/master/my-plugins).
Обзор руководств по плагинам находится здесь: [plugin-tutorials.txt](https://github.com/urbanadventurer/WhatWeb/tree/master/plugin-development/plugin-tutorials.txt)
После прохождения руководств прочитайте раздел «Разработка» на [вики](https://github.com/urbanadventurer/WhatWeb/wiki/).
* [Источники для написания плагинов](https://github.com/urbanadventurer/WhatWeb/wiki/Sources-for-Plugin-Writing)
* [Как разрабатывать плагины WhatWeb (неактуально)](https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins)
## Обновления и дополнительная информация
Сборка WhatWeb для разработки содержит регулярные обновления.
* Проверяйте ветки разработки на предмет неопубликованных обновлений.
Просмотрите вики для получения дополнительной документации и продвинутых методов использования.
* Вики: https://github.com/urbanadventurer/WhatWeb/wiki/
## История версий
- Версия 0.6.4 Выпущена 3 апреля 2026 г.
- Версия 0.6.3 Выпущена 18 октября 2025 г.
- Версия 0.6.2 Выпущена 25 августа 2025 г.
- Версия 0.6.1 Выпущена 30 июля 2025 г.
- Версия 0.5.4 Выпущена 14 декабря 2020 г.
- Версия 0.5.3 Выпущена 1 октября 2020 г.
- Версия 0.5.2 Выпущена 9 июня 2020 г.
- Версия 0.5.1 Выпущена 25 февраля 2020 г.
- Версия 0.5.0 Выпущена 9 июня 2019 г.
- Версия 0.4.9 Выпущена 23 ноября 2017 г.
- Версия 0.4.8-dev (Непрерывные релизы с 2012 по 2017 г.)
- Версия 0.4.7 Выпущена 5 апреля 2011 г.
- Версия 0.4.6 Выпущена 25 марта 2011 г.
- Версия 0.4.5 Выпущена 17 августа 2010 г.
- Версия 0.4.4 Выпущена 29 июня 2010 г.
- Версия 0.4.3 Выпущена 24 мая 2010 г.
- Версия 0.4.2 Выпущена 30 апреля 2010 г.
- Версия 0.4.1 Выпущена 28 апреля 2010 г.
- Версия 0.4 Выпущена 14 марта 2010 г.
- Версия 0.3 Выпущена на Kiwicon III (kiwicon.org), 2 ноября 2009 г.
## Благодарности
### Разработчики
+ Andrew Horton (@urbanadventurer)
+ Brendan Coles (@bcoles)
### Авторы
Спасибо следующим людям, которые внесли вклад в WhatWeb.
+ Emilio Casbas
+ Louis Nyffenegger
+ Patrik Wallström (@pawal)
+ Caleb Anderson (@dirtyfilthy)
+ Tonmoy Saikia
+ Aung Khant (@yehgdotnet)
+ Erik Inge Bolsø
+ [email protected]
+ Steve Milner (@ashcrow)
+ Michal Ambroz
+ Gremwell
+ Sagar Prakash Junnarkar (@sagarjunnarkar)
+ GertBerger
+ Quintin Poirier
+ Eric Sesterhenn
+ dengjw (@jawa)
+ Pedro Worcel (@droop)
+ Matthieu Keller (@maggick)
+ Peter (2pvdl)
+ Napz (@RootCon)
+ @nilx042
+ Fabian Affolter (@fabaff)
+ Andrew Silvernail (@buff3r)
+ Andre Ricardo (@andrericardo)
+ nikosk
+ Patrick Thomas (@coffeetocode)
+ Guillaume Delcaour (@guikcd)
+ Sean (@wiifm69)
+ Matthieu Keller (@maggick)
+ Raul (@raurodse)
+ Andrew Petro (@apetro)
+ Artem Taranyuk (@610)
+ Matti Paksula (@matti)
+ Tim Smith (@tas50)
+ Sarthak Munshi (@saru95)
+ @rdubourguais
+ @SlivTaMere
+ @Code0x58
+ @iGeek098
+ @andreas-becker
+ @csalazar
+ Igor Rzegocki (@ajgon)
+ @juananpe
+ @lins05
+ @anozoozian
+ Bhavin Senjaliya (@bhavin1223)
+ Chad Brigance (@ChadBrigance)
+ Daniel Maldonado
+ Elias Dorneles (@eliasdorneles)
+ Eugene Amirov
+ Gregory Boddin (@gboddin)
+ Guillaume Delacour
+ Janosch Maier (@phylu)
+ Max Davitt (@themaxdavitt)
+ Naglis Jonaitis (@naglis)
+ Shuai Lin
+ Sigit Dewanto (@sigit)
+ @wh1tenoise
+ @golewski
+ @Allactaga
+ @elcodigok
+ @SlivTaMere
+ @rmaksimov
+ Melvil Guillaume (@mguillau42)
+ @LrsK
+ @abenson
+ @blshkv
+ Weidsom Nascimento (@weidsom)
+ Marcelo Gimenes (@cgimenes)
+ @xambroz
+ Baptiste Fontaine (@bfontaine)
+ @definity
+ @huntertl
+ Michael Ippolito (@spookycave)
+ @mkauschi
+ @frapava98
+ John de Kroon (@johndekroon)
+ @mtisec
+ Claude from Anthropic
Трудно отследить всех, кто внёс вклад в WhatWeb. Если вашего имени здесь нет, пожалуйста, дайте мне знать.