Содержание статьи
- Охотимся на скрытые поддомены
- Ищем информацию о доменах
- Сканируем живые сервисы на обнаруженных поддоменах
- Собираем ответы сервера и скриншоты
- Проверяем возможность захвата домена
- Исследуем WordPress на уязвимости
- Ищем скрытые параметры HTTP-запросов
- Изучаем популярные пароли из сливов
- Собираем и эксплуатируем баги Drupal
- Выявляем уязвимости Magento
- Ищем уязвимые API-эндпойнты
В этом выпуске новая подборка софта для пентеста и анализа безопасности. Научимся с комфортом находить поддомены, потрясем баги WordPress, Drupal и Magento, поищем уязвимые эндпойнты в API, а на закуску пошаримся в чужих сливах. Вперед!
Охотимся на скрытые поддомены
- Автор: Michael Henriksen
- Ссылка: Github
Не надо рассказывать, зачем может понадобиться искать поддомены. Во время рекона могут обнаружиться dev-серверы, забытые инстансы, сервисы для внутреннего использования и многое другое. Важно, что, кроме технических способов поиска, есть и «архивные»: поддомены с легкостью могут засветиться в каких-нибудь базах, да и просто иметь благозвучные имена в духе billing.target.com
и help.target.com
. Этим и воспользуемся.
Aquatone — это удобный Ruby-гем для поиска поддоменов из открытых источников. Он содержит в себе целых четыре полезных утилиты:
aquatone-discover
;aquatone-scan
;aquatone-gather
;aquatone-takeover
.
Ищем информацию о доменах
Aquatone-discover проверяет базы Wayback Machine, Netcraft, HackerTarget и многих других на наличие записей о поддоменах нашей цели. Кроме открытых баз, она может обращаться к базам сервисов вроде Shodan, но нужно предварительно указать API-ключ. И вишенка на торте — те самые словарные домены.
Сканируем живые сервисы на обнаруженных поддоменах
Второй этап — проверить полученные живые домены на предмет открытых портов. В этом нам поможет aquatone-scan: считай его простой альтернативой Nmap. Он проверит собранные поддомены и выведет список обнаруженных открытых портов. Через ключи --ports
и --threads
ты сможешь указать порты для скана (или один из шаблонов) и количество потоков.
Собираем ответы сервера и скриншоты
На следующем шаге мы можем собрать дефолтные заголовки и содержимое ответов обнаруженных хостов, а также сделать скриншоты. В этом нам поможет утилита aquatone-gather. Обрати внимание, что она требует наличия «иксов» и Node.js, поэтому запускать стоит или на хосте с Linux, или в виртуалке.
Результат работы утилиты будет сохранен в четыре директории с говорящими названиями:
headers
;html
;screenshots
;report
.
Проверяем возможность захвата домена
Ну и в конце посмотрим на забытые домены, которые можно перехватить. Такая ситуация возможна, когда один из поддоменов указывает на хостинг, на котором когда-то располагался легитимный сервис компании, но затем был удален, а записи в DNS остались. В этом случае поможет aquatone-takeover.
Исследуем WordPress на уязвимости
Существует множество сканеров безопасности для WordPress. Интерес ресерчеров к этой платформе объясним: по разным оценкам, в мире до сих пор до четверти всех сайтов работают на WordPress. Из блог-платформы он давно превратился в полноценный (пусть и костыльный) фреймворк для создания полноценных сайтов. На WordPress делают порталы, магазины и даже социальные сети. И конечно же, было бы странно, если бы не существовало множество сканеров безопасности для WordPress. Самый известный из них — wpscan, написанный на Ruby. Однако есть и другие.
WPSeku — это удобный скрипт на Python 3, который позволяет тебе просканить основные дыры и утечки чувствительной информации в «Вордпрессе». Из особенностей выделю:
- анализ заголовков;
- дисклоз реальных путей на сервере;
- поиск уязвимых версий движка, плагинов и тем;
- сбор информации о версиях софта и обнаружение карт сайта (sitemap);
- перечисление пользователей (в том числе и админов, если они не скрыты).
Из дополнительных опций можно выделить брут логинов/паролей по словарю и анализ исходного кода WP-сайтов.
Работает и устанавливается просто:
## Окружение на третьем питоне
➜ virtualenv --no-site-packages ~/venv/wpseku
## Ставим зависимости
(wpseku) ➜ pip install -r requirements.txt
## Запускаем полный скан
(wpseku) ➜ python wpseku.py --url http://target.com:8080/ --verbose
----------------------------------------
[ + ] Target: http://target.com/
[ + ] Server: nginx (Debian)
[ + ] Uncommon header "X-Nginx-Cache" found, with contents: HIT
[ i ] Checking Full Path Disclosure...
[ + ] Full Path Disclosure: /var/www/html/wp-includes/rss-functions.php
[ i ] Checking wp-config backup file...
[ + ] wp-config.php available at: http://target.com/wp-config.php
[ i ] Checking common files...
[ + ] robots.txt file was found at: http://target.com/robots.txt
[ + ] sitemap.xml file was found at: http://target.com/sitemap.xml
[ + ] sitemap.xml.gz file was found at: http://target.com/sitemap.xml.gz
[ + ] readme.html file was found at: http://target.com/readme.html
[ i ] Checking directory listing...
[ i ] Checking wp-loging protection...
[ i ] Checking robots paths...
[ + ] Robots was found at: http://target.com/robots.txt
----------------------------------------
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: http://target.com/sitemap.xml
[ i ] Passive enumeration themes...
[ + ] Name: woohoo
[ i ] Enumerating users...
| ID | Username | Login |
|:---|:---------|:------|
| 0 | admin | admin |
| 1 | user | user |
...
Перебор учетных записей выполняется так же.
Если при пентесте тебе часто попадаются сайты на WordPress, попробуй WPSeku. Возможно, в твоем арсенале найдется место и для него.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»