Как с помощью WhatWeb узнать версию движка сайта
Информация о движке и его версии очень важна при тестировании веб-приложений на проникновение. В первую очередь, эта информация будет использована для поиска эксплойтов и известных уязвимостей именно для этого движка этой версии. Это на порядок облегчает взломщику задачу. Именно поэтому многие популярные движки перестали публиковать свою версию рядом с надписью Powered by. Тем не менее, скрыть используемый движок и его версию очень непросто. Есть сканеры, которые делают это автоматически и в пакетном режиме.
Чтобы узнать движок сайта и его версию используется программа WhatWeb.
Например, есть некий форум, на нём даже нет надписи Powered by (скорее всего, это запрещено лицензией, но некоторые веб-мастера готовы идти и на нарушение лицензии — лишь бы скрыть движок и его версию). Чтобы узнать информацию о нём я набираю:
whatweb http://www1.hut.ru/forum/
Где whatweb — имя программы,
а http://www1.hut.ru/forum/ — адрес интересующего нас сайта.
Информации много, в том числе и требуемая нам:
PoweredBy[phpBB] phpBB[2]
Т.е. форум работает на движке phpBB второй версии.
Кроме этого, мы узнаём версию PHP, веб-сервера, IP адрес и страну расположения, используемые веб-технологии и даже информацию о логине в Google AdSense. Согласитесь, начало хорошее.
Возьмём другой пример:
whatweb codeby.net
Опять, информации много и она достоверна.
В справке программы WhatWeb упоминается про агрессивный режим — для определения точной версии WordPress, запускается он так:
whatweb -a 3 codeby.net
Можно проверять по нескольку сайтов за один раз:
whatweb codeby.net zalinux.ru mi-al.ru
Не смотря на свою кажущуюся простоту, справка WhatWeb довольно обширна.
Программу можно запускать не только в отношении сайта, но и в отношении подсетей (синтаксис указания диапазонов сетей такой же как и у Nmap):
whatweb 185.26.122.0/24
Опции программы WhatWeb
Рассмотрим самые интересные опции.
—input-file=ФАЙЛ, -i Идентифицировать URL, которые найдены в ФАЙЛе, например -i /dev/stdin
Думаю, вы уже догадались что эта опция в таком виде позволяет передавать в WhatWeb адреса сайтов по трубе:
echo 'codeby.net' | whatweb -i /dev/stdin
Это мегополезно при написании скриптов.
—aggression, -a=УРОВЕНЬ
УРОВЕНЬ задаётся числами 1, 3 или 4.
1 — сканировать незаметно, 3 — сканировать агрессивно, 4 — сканировать тяжело, будут отправлены запросы от всех плагинов.
—user-agent, -U=АГЕНТ По умолчанию пользовательский агент — WhatWeb/0.4.8-dev. Этой опцией его можно заменить
—header, -H Добавить заголовок HTTP. например "Foo:Bar". Если задан здесь, то заголовок по умолчанию будет заменён. Если задать пустую величину, например, "User-Agent:", то заголовок будет удалён.
—follow-redirect=КОГДА Контролирует когда следовать редиректом. КОГДА может иметь значения `never', `http-only', `meta-only', `same-site', `same-domain' или `always'. По умолчанию: always
—max-redirects=ЧИСЛО Максимальное ЧИСЛО редиректов. По умолчанию: 10
В WhatWeb поддерживается базовая авторизация:
—user, -u=<user:password>
Добавьте сессионные кукиз —header, например, —header "Cookie: SESSID=1a2b3c;"
Можно использовать прокси с WhatWeb:
—proxy <hostname[:port]> Задать хост и порт прокси. Порт по умолчанию: 8080
—proxy-user <username:password> Задать пользователя и пароль прокси
WhatWeb поддерживает разнообразные способы сохранения полученных данных, а также позволяет менять настройки производительности/стабильности: число одновременных потоков, таймауты, время перерывов и т. д.
Как узнать точную версию движка
Узнав используемый тип движка, можно скачать его исходные коды (доступны для всех бесплатных) и поискать там разнообразные файлы README.TXT, чейнджлоги и т. п. Практически никто не беспокоится о том, чтобы удалить эти файлы. Поэтому теперь, когда вы знаете, что нужно искать, можно попробовать их найти на целевом сайте.
Как скрыть движок сайта и его версию
Скрыть вид используемого движка очень непросто. Зачастую не нужно быть специалистом и не нужно иметь никаких программ, чтобы по первому взгляду на сайт предположить используемый движок, иногда достаточно увидеть адрес одной страницы, чтобы предположить, какой движок сайт использует. Вот типичный пример: на "морде" сайта вырезаны все упоминания об используемом движке, но взглянув на исходный код HTML-страницы, догадайтесь с трёх раз, какой движок используется:
Даже если полностью изменено оформление, убраны копирайты и прочее, то по структуре файлов сайта и по некоторым другим признакам довольно легко определить популярные движки.
Продуктивнее не пытаться спрятать эту информацию, а вовремя обновлять программное обеспечение и плагины.
Что касается точной версии, то её можно скрыть. Удаляйте не используемые файлы (README.TXT, чейнджлоги и т. п.). Например, для WordPress удаляйте эти файлы не только из корневой директории, но и из директорий плагинов, тем и т.д.
Хорошие статьи. Очень доступно и интересно.
Спасибо за проделанную работу.
Прокси у него не работает, сканит от моего реального ip.
В последнем билде кали выдает ошибки, автор обещает пофиксить
На Cyborg Hawk при применении выдаёт сначала RedirectLocation[URL сайта], после чего выдаёт ошибку ERROR: undefined method ‘verify_mode’ for nil:NilClass. Кто-нибудь знает, как исправить данную ошибку?