Перед тем как атаковать веб-приложение, нужно понять что именно перед тобой. WhatWeb отвечает на вопрос "что это такое?" — определяет CMS, фреймворки, JavaScript-библиотеки, веб-серверы, аналитические системы и многое другое. Часто одного запроса достаточно чтобы спланировать дальнейшие шаги.

Как работает WhatWeb

WhatWeb содержит более 1800 плагинов-определителей. Каждый плагин ищет конкретные сигнатуры: HTTP-заголовки, мета-теги, HTML-комментарии, JavaScript-переменные, структуру URL, cookies и многое другое. Некоторые плагины достаточно умны для определения конкретной версии ПО.

Базовое использование

whatweb http://target.com

Типичный вывод:

http://target.com [200 OK] Apache[2.4.41], WordPress[5.8], PHP[7.4.3], Country[RUSSIAN FEDERATION][RU], HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)]

За один запрос мы узнали: сервер (Apache 2.4.41), CMS (WordPress 5.8), язык (PHP 7.4.3) и ОС (Ubuntu). Теперь можно искать CVE под конкретные версии.

Уровни агрессивности

WhatWeb имеет шесть уровней агрессивности (-a):

  • 1 — пассивный (по умолчанию). Один запрос на URL.
  • 2 — без браузерных ошибок
  • 3 — агрессивный. Дополнительные запросы для уточнения версий
  • 4 — очень агрессивный
whatweb http://target.com -a 3

Массовое сканирование

Из файла со списком целей:

whatweb -i hosts.txt --log-verbose=results.txt

Указание диапазона IP:

whatweb 192.168.1.1/24

Управление потоками:

whatweb -i hosts.txt -t 20

Форматы вывода

whatweb http://target.com --log-json=results.json
whatweb http://target.com --log-xml=results.xml
whatweb http://target.com --log-csv=results.csv

Полезные опции

  • --no-errors — скрыть ошибки (удобно при массовом скане)
  • --colour=never — отключить цвет (для парсинга вывода)
  • -U "Mozilla/5.0" — пользовательский User-Agent
  • --proxy 127.0.0.1:8080 — через прокси (Burp Suite)

Место в reconnaissance

WhatWeb я запускаю в самом начале работы, сразу после Nmap. Nmap показывает порты и сервисы, WhatWeb — детали веб-стека. Зная что перед нами WordPress 5.8 на PHP 7.4, следующий шаг — WPScan для проверки плагинов и тем. Зная что это самописное приложение на Django — переходим к ручному тестированию. WhatWeb экономит время именно на этом первом решении.