Первый шаг, как правило, включает в себя получение информации о предполагаемой цели, в том числе идентификацию целевой машины, сбор важных деталей об IP-адресе, операционной системе, аппаратной части, сетевой конфигурации и инфраструктуре, DNS записях и так далее.
Эту задачу можно решить разными способами, но в основном при помощи автоматизированных инструментов, которые сканируют сервер на предмет присутствия известных уязвимостей. Информацию о физической аппаратной части целевой системы можно получить разными способами и часто при помощи внимательного изучения ответов различных программных подсистем, которые отправляются во время инициации или даже отказа от входящих подключений. Затем полученные сведения используются для сужения спектра возможных приложений, которые обычно запускаются в различных аппаратных конфигурациях.
Хакеры используют инструменты, позволяющие протестировать систему на наличие различных брешей в сфере безопасности, включая ошибки конфигурирования приложений, присутствующих на сервере, наличие неизмененных стандартных паролей, устаревшего программного обеспечение, которое нуждается в обновлении и другие схожие проблемы.
Утилиты для выполнения исследований
HTTrack: Веб-паук с открытым исходным кодом, позволяющий скачивать на локальную систему целые сайты для последующего криминалистического анализа.
Maltego: Анализатор ссылок и данных (тоже с открытым исходным кодом)
Nessus: Сканер уязвимостей, позволяющий проверить разные аспекты, включая нестыковки в конфигурации, устаревшее программное обеспечение, небезопасные или отсутствующие пароли, бреши для проведения DoS-атак, которые могут способствовать в получении доступа или полного контроля над системой.
Netsparker: Сканирует сайты, приложения и службы сервера на предмет уязвимостей вне зависимости от операционной системы.
Nikto: Сканер на предмет присутствия опасных файлов и CGI-сценариев, устаревшего программного обеспечения, ошибок в конфигурации приложений, эксплуатируемых злоумышленниками.
ScanMyServer: Бесплатная онлайн-утилита, позволяющая обойти все страницы определенного сайта или блога и найти различные проблемы безопасности.
Вышеуказанные утилиты позволяют собрать большой объем информации о целевой системе, включая имена сотрудников, адреса электронной почты, связанные с сервером, имена компьютеров, сведения о сетевой структуре и аккаунтах пользователей.
После получения предварительной детальной информации, можно переходить к следующей стадии, а конкретно – продумыванию методов получения доступа к целевой системе.
Получение доступа
На базе полученной информации далее можно продумать возможные сценарии для получения доступа к данным, хранимым на сервере, или полного контроля над системой. Эта задача решается разными способами, но в целом применяются проверенные техники, используемые при проникновениях.
OWASP (Open Web Application Security Project; Открытый проект для обеспечения безопасности веб-приложений) – организация, которая занимается отслеживанием уязвимостей и ведет рейтинг из десяти наиболее часто встречающихся и потенциально опасных брешей, используемых злоумышленниками для получения неправомерного доступа к веб-серверам.
Обычно наипростейший способ получить доступ и контроль над сервером – воспользоваться известными уязвимостями, к чему наиболее часто и прибегают злоумышленники. Хотя некоторые хакеры используют сценарии, отличающиеся от наиболее распространенных атак, в основном, если стандартные методы не срабатывают, злоумышленники начинают искать более доступную цель.
10 наиболее распространенных проблем по версии OWASP
Нижеуказанные уязвимости наиболее часто встречались во время проникновений в 2019 году.
1. Инъекция: внедрение кода в программу или запрос для выполнения удаленных команд (как в случае с SQL-инъекцией).
2. Неправомерная аутентификация: получения доступа к системе при помощи украденных, неправильно настроенных или полученных другим образом учетных записей.
3. Раскрытие конфиденциальных данных: реализуется, когда приложения ненадежно защищают пароли, токены сессий и другую конфиденциальную и ценную информацию.
4. Внешние XML-сущности (или XXE): сценарий, основанный на уязвимостях, связанных с парсингом XML-данных в приложениях.
5. Неправомерный доступ: реализуется вследствие некорректно настроенных прав пользователе или ролей.
6. Ошибки в конфигурациях, имеющих отношение к безопасности
7. Межсайтовый скриптинг (XSS): схож с инъекциями. Позволяет злоумышленнику внедрять клиентские скрипты в веб-приложения с целью обхода средств разграничения доступа.
8. Небезопасная десериализация: уязвимость, при помощи которой неправильно настроенные или неизвестные данные используются для запуска кода, обхода аутентификации, реализации DoS-атак и в других сценариях с целью обхода мер безопасности.
9. Использование компонентов сервера с известными уязвимостями.
10. Неудовлетворительное журналирование и мониторинг.
После получение доступа и закрепления в системе далее злоумышленник уделяет внимание поддержанию контроля над сервером с целью последующей эксплуатации. На этой стадии, как правило, злоумышленник получает информацию о других учетных записях или ролях. В случае если удалось получить доступ к привилегированному аккаунту или учетной записи, используемых различными пакетами приложений, далее осуществляет попытка либо получить административные привилегии, или создать новую учетную запись администратора в системе.
Бэкдоры и заметание следов
Обычно после первоначального вторжения система подготавливается для дальнейшего использования или эксплуатации. Хотя во время первоначального проникновения злоумышленники могут не совершать чего-либо, привлекающего внимание, многие продолжают мониторинг учетных записей, используемых при получении доступа с целью отслеживания, удалось ли обнаружить вторжение. Кроме того, эти учетные записи могут использовать для удаления или изменения логов и других системных сообщений. Однако многие хакеры предпочитают выждать время и не предпринимать никаких действий, привлекающих внимание.
С точки зрения тестирования уязвимостей, как только система скомпрометирована, этичный хакер захочет получить доступ и воспользоваться системой, как если бы действовал злоумышленник. Взломанный сервер используется для мониторинга аккаунтов пользователей, манипулирования логами и другими системными данными, удаления или сокрытия следов проникновения.
Хотя цель тестирования на проникновение – сделать сервер более безопасным и устойчивым к атакам разного рода, вышеуказанная активность выполняет очень важную роль. Начиная от изучения журналов безопасности и использования других методов для обнаружения проникновения и заканчивая защитой данных и ограничением доступа в случае, если атака реализована успешно. Также могут быть осуществлены альтернативные меры с целью детектирования взломов, во время которых реализуются нестандартные сценарии.