разбор инструмента whatweb

Torba666

DarkWeb
SOC
Pentester
20.07.26
4
Penetration Tester, SOC Analyst, Dark Web Analyst
0
привет, чуваки, сегодня решил написать для вас статью про whatweb, один из самых популярных инструментов для разведки, статья получилась большой, если что то непонятно, перечитайте определенные разделы. начинаем


установка

если у тебя кали линукс - она уже стоит. если нет - вводишь в терминале:
sudo apt install whatweb

если вдруг не ставится - добавь репозитории или скачай с гитхаба, но в кали проблем не будет.

первый запуск

открываешь терминал, пишешь:
whatweb example.com

нажимаешь энтер. через пару секунд видишь строку типа:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки или изображения.
[200 OK] Apache[2.4.41], PHP[7.3.33], WordPress[5.4.2] и тд

это значит что сайт на апаче, версия 2.4.41, пхп 7.3.33, движок вордпресс 5.4.2. уже полезно.

режимы сканирования

тут есть три уровня агрессивности. они задаются параметром -a (от слова агрессив)

a 1 легкий. отправляет один запрос на главную страницу. быстро, но мало инфы. используй когда нужно проверить много сайтов за короткое время.

пример: whatweb -a 1 example.com

-a 2 - средний. добавляет проверку robots.txt, favicon, sitemap. чуть дольше, инфы больше.

a 3 агрессивный. вот это уже серьезно. отправляет кучу запросов на разные пути: /wp-admin/, /administrator/, /phpmyadmin/, /backup/, /tmp/ и еще много где. ищет скрытые файлы, проверяет хеши, определяет версии библиотек. для одного сайта всегда используй этот режим.

пример: whatweb -a 3 example.com

разница между режимами большая. на -a 1 ты увидишь только апач и пхп. на -a 3 увидишь еще jquery, bootstrap, конкретную тему вордпресса, иногда даже путь к админке и емейл разработчика.

сохранение результата

если хочешь сохранить вывод в файл, используй перенаправление:
whatweb -a 3 example.com > result.txt

теперь весь вывод лежит в текстовом файле. можно открыть его в любом редакторе.

еще есть красивый вывод в json:
whatweb -a 3 --log-json=result.json example.com

json удобно парсить скриптами. например чтобы вытащить только версию пхп из многих сайтов.

работа с прокси

если не хочешь светить свой айпи, используй прокси. параметр -p для порта и -U для адреса прокси.

пример для http прокси:
whatweb -a 3 -p 8080 -U "
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки или изображения.
" example.com

для сокс5:
whatweb -a 3 -p 1080 -U "socks5://127.0.0.1:1080" example.com

прокси может требовать логин и пароль:
whatweb -a 3 -U
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки или изображения.
example.com

подмена юзер-агента

некоторые сайты блокируют стандартные юзер-агенты сканеров. поэтому подменяй его на браузерный. параметр -U.

пример:
whatweb -a 3 -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" example.com

можно подставить любой юзер-агент. даже мобильный:
whatweb -a 3 -U "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)" example.com

иногда сайт отдает разный контент для мобилок, так что полезно.

отключение ошибок

по умолчанию whatweb показывает ошибки подключения, таймауты, 404. это засоряет вывод. параметр --no-errors убирает их.

пример:
whatweb -a 3 --no-errors example.com

теперь в выводе только найденные технологии, ничего лишнего.

сканирование списка сайтов

создай файл sites.txt. в каждой строке один урл:
example.com
test.com
site.org

потом запускаешь:
whatweb -a 1 -i sites.txt

он пройдется по всем и выдаст результат для каждого. если используешь -a 3, то жди долго, особенно если сайтов много.

отфильтровать только нужные технологии

допустим ты ищешь только вордпресс сайты. делаешь так:
whatweb -a 1 -i sites.txt | grep WordPress > wordpress_sites.txt

потом открываешь этот файл и видишь только те сайты где есть вордпресс.

еще можно искать по версии. например пхп 5.6:
whatweb -a 1 -i sites.txt | grep "PHP\[5.6"

это полезно тк старые версии часто имеют уязвимости.

посмотреть все доступные плагины

whatweb внутри имеет около 500 плагинов для разных технологий. чтобы увидеть их список:
whatweb -l

там будут названия типа wordpress, joomla, drupal, apache, nginx, php, jquery, bootstrap, и много редких.

настройка таймаута

если сайт медленно отвечает, whatweb может подвиснуть. параметр -t задает время ожидания в секундах. по умолчанию 10.

пример с таймаутом 30 секунд:
whatweb -a 3 -t 30 example.com

если сайт быстрый, можно уменьшить до 3 секунд.

скрытый режим тишины

если запускаешь в скрипте и не хочешь видеть баннер с версией программы, используй -q (quiet):
whatweb -q -a 3 example.com

режим verbose

наоборот, если хочешь видеть каждый запрос и ответ - используй -v (verbose):
whatweb -a 3 -v example.com

он выведет все заголовки которые отправляет и получает. полезно для отладки.

обработка редиректов

по умолчанию whatweb не переходит по редиректам. он показывает код 301 или 302 и локацию. если хочешь чтобы он пошел дальше и просканировал конечную страницу, используй --follow-redirect:
whatweb -a 3 --follow-redirect example.com

подмена заголовка host

бывает что сайт виртуальный и по ip не открывается. тогда используй -H чтобы подменить host заголовок:
whatweb -a 3 -H "example.com" 192.168.1.100

это отправит запрос на ip но с хостом example.com

практический пример для реальной работы

допустим у тебя есть список поддоменов из 500 штук. ты хочешь быстро найти живые сайты с вордпрессом и их версии.

делаешь так:

1. быстрый прогон:
whatweb -a 1 -i subdomains.txt --no-errors > scan1.txt
2. отбираешь вордпресс:
cat scan1.txt | grep WordPress > wp.txt
3. вытаскиваешь только урлы:
cat wp.txt | awk '{print $1}' > wp_urls.txt
4. теперь по этим урлам делаешь детальный скач:
whatweb -a 3 -i wp_urls.txt --log-json=wp_detailed.json
5. парсишь json чтобы получить версии:
jq '.[] | {url: .url, wp: .plugins.WordPress.version}' wp_detailed.json

все. теперь у тебя список вордпресс сайтов с точными версиями.

как понять что выдал whatweb

допустим вывод такой:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки или изображения.
[200 OK] Apache[2.4.41], PHP[7.3.33], WordPress[5.4.2][100%], jQuery[3.5.1], Bootstrap[4.3.1], Title[My Site], Cookies[wp-settings, wordpress_logged_in]

что это значит:

· апач версия 2.4.41
· пхп версия 7.3.33
· вордпресс версия 5.4.2 с уверенностью 100%
· jquery версия 3.5.1
· бутстрап версия 4.3.1
· заголовок страницы - My Site
· установлены куки wordpress

если видишь CloudFlare в выводе - значит сайт защищен. реальный сервер не виден.

если видишь что-то типа "Uninitialized value" - это не ошибка. иногда так бывает когда сервер криво обрабатывает запросы. это может указывать на потенциальные уязвимости, но надо проверять руками.

что можно сделать с этой инфой

если ты нашел старый вордпресс 4.9 - иди на exploit-db и ищи эксплоиты. если старый пхп 5.6 - там куча уязвимостей типа remote code execution. если джумла 3.4 - аналогично.

whatweb не взламывает, он только собирает инфу. но эта инфа дает направление для дальнейших действий.

ошибки и их причины

если whatweb ничего не нашел - возможно сайт закрыт за waf или использует нестандартные заголовки. попробуй подменить юзер-агент или использовать прокси.

если выдает таймаут - сайт медленный или недоступен. увеличь таймаут -t 30.

если выдает 403 - сайт блокирует запросы. попробуй другой юзер-агент или прокси.

если выдает 404 - путь не найден. но это не страшно, главное что корень доступен.

заключение

whatweb - базовая вещь для любого кто работает с веб-безопасностью. он простой, быстрый, дает много инфы. его нельзя заменить одним wpscan или nmap, тк он специализируется именно на определении технологий. используй его в начале каждого пентеста, чтобы понять с чем имеешь дело.
 

Правила

  1. Все сделки — только через Гарант 0nixSecure
  2. Спам и деанон — бан навсегда
  3. Соблюдайте OpSec
  4. Запрещены дубли аккаунтов (мульти-аккаунты)
  5. Контент только по тематике форума
Назад
Верх