Отчет. Проведение тестов на проникновение
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ.ПРОФ. БОНЧ-БРУЕВИЧА»
Отчет по
Самостоятельной работа №11
«Проведение тестов на проникновение»
Выполнил: Яковлев Илья Андреевич Студент I курса Факультет ИКСС Группа ИКБ-95
Подпись________
Проверил: Бабков Иван Николаевич
Подпись________
План выполнения теста на проникновение
Шаг 1. Поиск целей
Единственный этап, которого в проекте по тестированию защищенности может и не быть, в случае, если заказчик сразу передал нам список целей.
Если тестирование внешнее, и заказчик сообщил нам только название компании, то на этом этапе мы занимаемся полноценной интернет-разведкой, целями которой являются информационные ресурсы заказчика и его сотрудники (особенно если проект предусматривает применение методов социальной инженерии).
На данном шаге мы изучаем:
сайты, связанные с компанией заказчика, а именно: узнаем доменные имена, адреса электронной почты, структуру организации и т.п.;
сайты вакансий: внимательно читаем, кого ищет ИТ-директор заказчика (в описаниях вакансий зачастую подробно описаны используемые в компании технологии);
социальные сети: собираем данные на сотрудников-пользователей;
сайты поставщиков ИТ-решений/услуг, которые хвалятся, что, когда и как сделали для нашего заказчика;
делаем запросы к сервису whois и выясняем, какие сети зарегистрированы на заказчика или каких провайдеров IP-адресов он использует;
делаем запросы к DNS-серверам и выясняем, нет ли у заказчика ресурсов с доменами третьего уровня: vpn.ooo-romashka.ru, ftp.ooo-romashka.ru и т.п. Определяем, какие почтовые сервисы используются.
В итоге, мы формируем список IP-адресов информационных ресурсов, связанных с заказчиком, списки сотрудников и др.
В случае внутреннего тестирования защищенности этичный хакер получает физический доступ к розетке, прослушивает сетевой трафик и определяет диапазоны IP-сетей, с которых он может начать свою работу.
Шаг 2. Поиск уязвимостей
Зная цели, можно смело приступать к поиску уязвимостей. В основном, мы делаем это с помощью сканеров уязвимостей, но и не отказываемся от ручного поиска уязвимостей, особенно в случае Web-приложений.
В итоге мы получаем список потенциальных уязвимостей, который еще предстоит проверить.
Важное примечание: если мы с вами действуем на данном шаге без административного доступа к системам, то не ожидайте, что какой-либо сканер вам покажет все имеющиеся уязвимости на конкретном узле. Чтобы найти максимум уязвимостей, придется повторить это упражнение с уже добытыми потом и кровью административными учетными записями.
Шаг 3. Эксплуатация
После того как мы составили список потенциальных уязвимостей, неплохо бы их проверить на возможность эксплуатации и еще поискать дополнительные, которые невозможно найти с помощью сканеров и Google. Зачем это нужно делать? Этому есть несколько причин.
Во-первых, закрытие любой уязвимости — это настоящая головная боль для системных администраторов, у которых полно другой работы. Также всегда есть шанс, что что-нибудь «отвалится» после накатывания патча или изменения настроек. Поэтому целесообразнее грузить наших любимых системных администраторов только стоящими проблемами: теми уязвимостями, которые действительно опасны, а это можно установить только, проверив возможность эксплуатации.
Во-вторых, существует множество уязвимостей, которые могут быть проверены только в процессе эксплуатации: например, слабый пароль, возможность SQL-инъекции или XSS. На данном шаге мы с вами:
аккуратно запускаем эксплойты;
перехватываем трафик с помощью ARP-poisoning;
подбираем пароли;
«раскручиваем» добытые хеши паролей;
проверяем на возможность SQL-инъекции/XSS и других атак, специфичных для Web-приложений;
делаем многое другое в зависимости от конкретной ИТ-инфраструктуры заказчика.
В результате данного шага мы выясняем, какие из обнаруженных уязвимостей реальны, находим «боевым» тестированием новые уязвимости и смотрим, что можно получить если эксплуатировать их.
Если получим желанный административный доступ, то сможем вернуться к предыдущему шагу и найти еще больше уязвимостей.
Шаг 4. Расширение привилегий
Получив доступ к какой-либо системе, мы пытаемся понять, к чему получили доступ и можно ли его расширить в рамках одной системы (например, до уровня администратора) или в рамках всей ИТ-инфраструктуры.
Простой пример. Подобрав пароль пользователя к одной системе, проверяем, не подойдет ли данная пара логин/пароль для доступа к другим системам.
Таким образом, рассмотренный подход позволяет обнаруживать максимальное количество реальных уязвимостей с помощью доступных инструментов.