Пентест на стероидах. Автоматизируем процесс

в 17:59, , рубрики: CodeFest, maxpatrol, nessus, nmap, pentest, skipfish, информационная безопасность, метки: , , , , ,

С данной темой доклада я выступал на CodeFest. А здесь я перескажу словами, что, как и зачем.

Доклад довольно поверхностный и не требует практически никакой квалификации в области ИБ. Был рассчитан на целевую аудиторию (веб-разработчики, тестировщики (не на проникновение), сисадмины и т.д.). Все довольно просто: несколько утилит, запустили, подождали, разбираем отчет.

Видеоприглашение на конференцию:

Пентест

«Пентест» (тестирование на проникновение) — оценка безопасности конечного узла или ресурса средствами и методами «злоумышленников» © Wiki. Отличия от хакинга в том, что у него (хакинга) задача найти любую уязвимость для требуемых целей, раскрутить и проэксплуатировать. Здесь же — комплексный анализ цели.

Чем занимаемся?

Цель — автоматизировать тестирование на проникновение сетевого ресурса по стратегии «черного ящика», получив объективные результаты, не потратив ни цента на ПО.

Этапы тестирования

Разобьем проверку на 2 этапа:

  1. Тестирование сетевых сервисов
  2. Тестирование web-приложения (приложений)

Будем искать уязвимости, проверять вышедшие эксплойты, искать «слабые» аккаунты, ошибки конфигурации, а так же просто человеческую халатность.

Let's go!

image

Часть 1. Сетевые сервисы — Armitage (nmap + msf)

Armitage — это GUI к Metasploit Framework и Nmap. Визуализирует цели, собирает данные, позволяет в целом упростить процесс взлома пентеста.

image

Чтобы себе более четко представили, о чем идет речь, вот скрин:
image

Modules (синим) — выбор эксплойтов и пост-эксплойтов (применяются уже после того, как удалось установить сессию. К примеру — получить дамп конфигов).

Targets (оранжевым) — собственно, цели. В зависимости от статуса цели, меняется её иконка. Если вы только добавили нужный хост и о нем ничего не известно — будет просто «черный» монитор или иконка оборудования. Если удалось установить ОС — появится иконка ОС. И «последнее» состояние — иконка в красной рамочке с молниями — один из эксплойтов сработал, удалось установить shell-сессию.

Tabs (зеленым) — консоль текущей активности задач

Перейдем к процесссу.

  • Добавляем хост (Hosts -> Add Hosts)
  • Щелкаем на него правой, Scan. На этом этапе запускается не указанный выше Nmap, а встроенный в metasploit модуль сканирования портов. Но вы так же для этой задачи можете использовать и Nmap.
  • Attacks -> Find Attacks. На этом шаге происходит поиск доступных эксплойтов под найденные сервисы (совпадение происходит по открытым портам).
  • Attacks -> Hail Mary. Это модуль поочередного запуска эксплойтов из шага выше. Запускает эксплойт и ждет reverse коннекта. Учтите, что для этого ваш IP должен быть «белым».
  • Дожидаемся завершения операции. Процесс проходит вот так

После завершения работы модуля Hail Mary нас ожидает два результата. Или эксплойт(ы) сработал(и) и сессия(и) создана(ы)
image

Или нет
image

После проверки запущенных сетевых сервисов, проверку на устойчивость к паблик-эксплойтам можно так же проверить дефолтовые/распространные аккаунты. Для этого выберите в меню цели Login -> класс сервиса -> галку «Check all credentials» -> Launch.

Armitage, Metasploit Framework входит в состав Metasploit, который можно скачать тут. Момент: после установки просто 1 раз запустите консоль фреимворка и закройте ее (инициализация начальных данных). После этого стартуйте Armitage и разрешите ему стартануть RPC-сервер metasploit'a.

Часть 2. Web

  • Nikto
  • Skipfish
  • Havij
  • 1337day.com, exploit-db.com

Момент. о Nikto и Skipfish я рассказывал в статье Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2

Nikto — perl'овая утилита, для поиска брешей типа неудаленных файлов (/1.php /info.php), наличия скриптов управления БД (phpmyadmin, phppgadmin и т.п.), да и просто уязвимых скриптов. Вот с последним у нее довольно туго, так как проверка идет просто отправкой нужного HTTP запроса и смотрится на код ответа (404/200), а не то, что действительно ли подвержен скрипт какому-то уже вышедшему эксплойту.
P.S. На самом деле, давно не обновляется, нужно искать замену (или дорабатывать)… Пока в курсе только платных аналогов.

Пентест на стероидах. Автоматизируем процесс

Страница продукта — www.cirt.net/nikto2

skipfish
Сканер веб-скриптов на предмет уязвимостей от Google (теперь над ним трудится не только Michal Zalewski). Ищет все что можно, сколько можно (было дело почти 5 суток), жрет трафик и как итог генерирует отчет в html5. Учтите, я пару раз им положил сервера, вызвав отказ в обслуживании, переполнив /tmp (при каждом обращении php создавал сессии).

Исходники качаем тут, а собранный под win можно скачать здесь (упоминал в этой статье).
image

imageHavij — находит и раскручивает SQL-инъекции. Вообще, штука must have, работает четко, быстро, обходит некоторые фильтры (хотя было дело, один банальный WAF не обошел, проверялся на CTF в этой задаче). Существует две версии — платная и бесплатная. Отличаются по функционалу. И одна из самых нужных фич — это поиск инъекции в параметре с ЧПУ, типа
site.com/users/sql_inj/topics
которой нет в бесплатной версии. Больше особо рассказывать нечего, у программы есть GUI, все предельно понятно и удобно :)

Скачать можно тут

1337day.com / exploit-db.com
В основном предназначены при ситуации, когда на целевом ресурсе найдены распространяемые скрипты. Заходим на сайты выше и ищем под них эксплойты, и поочередно запускаем (эдакий Hail Mary из Armitage). Стоит учесть момент, что чаще уязвимы плагины к скриптам, нежели сами скрипты.

Еще, при анализе веба может случиться так, что есть «соседнее» уязвимое приложение, и через него можно получить доступ к анализируему и слить ту же базу, заразить вирусом или провести дефейс.

Чем еще?

Тулз немеренно, перечислять топ-сек-лист смысла нет, но некоторые «комбайны» нельзя не назвать. Правда, они уже косвенно относятся к нашей теме (помните про 0 центов за ПО?), но можно попробовать получить Shareware версию.

MaxPatrol / XSpider — отечественный продукт от компании Positive Technologies, чьи сотрудники тоже пишут на Хабрахабре. XSpider (7.8) это урезанная версия MaxPatrol. Практически ничего общего не имеет с предыдущими версиям в 7ой ветке (странно, что не сменили major версию, ведь есть все основания для этого). Вебинар про XSpider 7.8 (от Олега Матыкова, руководителя отдела проектных решений Positive Technologies) можно поглядеть тут (pdf).
Вообще хотелось бы сказать пару слов про новый XSpider. Как минус бы я вынес интерфейс, уж больно он перегружен и непродуман (имхо). Но, понятное дело, что от продукта нам нужно другое, вот как раз сканирование включает в себя практически всю статью выше, исключая некоторые моменты (к примеру — skipfish самообучаем, и чем чаще вы его запускаете, тем больше его словарь), правда это компенсируется просто с головой постоянными новыми билдами продукта. Сам он напичкан-перепичкан ну просто всем, чем можно. Словари для брутфорса тоже порадовали. Вообще, мне как-то недавно удалось им найти уязвимость на ресурсе (один из самых популярных в рунете), о которой я слышал я только мельком и ни один другой сканер ее не находил. Shareware версию с ограничениями на количество хостов можно получить, обратившись в отдел продаж PT, и уже опробовать на своих ресурсах.

Acuentix
Веб-сканер, удобен для начинающих, очень понятный интерфейс. Полную версию так же можно попросить у отдела продаж, они очень отзывчивые. Только учтите, что потом просто завалят вам почту — «как вам наш продукт?», «не хотите купить?» и т.п.

Nessus (OpenVAS)
Nessus и его бесплатный аналог OpenVAS. Назвал бы их эксплойт-машины :) Nessus home-версия — бесплатна, а OpenVAS сам по себе бесплатен.

А чем еще?

image

Конечно же руками, ручной анализ никто не отменял. Он напрямую зависит от рук и знаний проверяющего, немного от удачи, а так же немного от «энергетического взлома», о котором нигде не найдешь статей. Но это уже не тема нашей статьи (доклада).

Идеальный случай
image

Это, конечно же, статистический анализ кода. Обычно я делаю это регулярками (хотя делал то 2 раза в жизни, больно трудоемкий процесс и не всегда возможный), типа grep -nr «exec» ./ и анализа полученного результата. Хотя и для этого есть тоже скрипты, но обычно они не применимы, так как они в большинстве своем устарели и предназначены для проектов не на фреимворках (прошли те времена, когда писали без них).

Примеры

Наверное даже больше опыт использования утилит выше.

1. Blackbox, проверен весь сайт, найдены такие вещи как CSRF/XSS, но ничего такого, чем бы можно было «сковырнуть» ресурс полностью.
Armitage->Host->Login->ftp->check all credentials
И находится anonymous:anonymous, смотрящий по ошибке в /var/www

2. Вроде, 5 суток я убил тогда, покидая ПК только на сон и еду. CSRF/XSS/phpmyadmin, установленный скорее всего пакетным менеджером, так как был в нижнем регистре и прописанный в алиасах апача (соответственно администратор не видел этого скрипта в public html). PMA неуязвимый (версия была уязвима, но были не те условия). И ничего… уже расстроился :) Skipfish отвалился (как раз случай с DOS ресурса из-за сканирования). Ресурс подняли, skipfish сканит снова и находит брутом…
site/scripts/config.ini
Бинго! .ini файл, который отдается апачем как plain text с конфигами подключения к базе! Как узналось позднее, использовался для какого-то cron-скрипта. Используем в по ошибке поставленным PMA.

На этом у меня все, а как бонус — демо использования Havij и Armitage.

Автор: BeLove

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js