7 новых утилит для пентестера. Перебираем поддомены, пентестим WordPress и Drupal, фаззим API и кое-что еще

0
20

Содержание статьи

В этом выпуске новая подборка софта для пентеста и анализа безопасности. Научимся с комфортом находить поддомены, потрясем баги WordPress, Drupal и Magento, поищем уязвимые эндпойнты в API, а на закуску пошаримся в чужих сливах. Вперед!

Охотимся на скрытые поддомены

Не надо рассказывать, зачем может понадобиться искать поддомены. Во время рекона могут обнаружиться 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-scan на исследуемых поддоменахСписок открытых портов, обнаруженных aquatone-scan на исследуемых поддоменах

Собираем ответы сервера и скриншоты

На следующем шаге мы можем собрать дефолтные заголовки и содержимое ответов обнаруженных хостов, а также сделать скриншоты. В этом нам поможет утилита aquatone-gather. Обрати внимание, что она требует наличия «иксов» и Node.js, поэтому запускать стоит или на хосте с Linux, или в виртуалке.

Результат работы утилиты будет сохранен в четыре директории с говорящими названиями:

  • headers;
  • html;
  • screenshots;
  • report.

Проверяем возможность захвата домена

Ну и в конце посмотрим на забытые домены, которые можно перехватить. Такая ситуация возможна, когда один из поддоменов указывает на хостинг, на котором когда-то располагался легитимный сервис компании, но затем был удален, а записи в DNS остались. В этом случае поможет aquatone-takeover.

Отчет о работе aquatone-takeoverОтчет о работе 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 |
...

Перебор учетных записей выполняется так же.

Брутфорс логина и пароля через WPSecuБрутфорс логина и пароля через WPSecu

Если при пентесте тебе часто попадаются сайты на WordPress, попробуй WPSecu. Возможно, в твоем арсенале найдется место и для него.

Продолжение доступно только подписчикам

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here