January 7

Пост-эксплуатация Linux. Поднимаемся от юзера до бога в несколько кликов

В этом материале тебя ждет обзор и примеры применения наиболее известных и, самое главное, рабочих утилит постэксплуатации серверов с Linux. Как манипулировать системой, стать рутом или бескомпромиссно слить все данные после того, как ты уже проник внутрь защищенного корпоративного периметра, обошел десятки фаеров и хонипотов, а может, даже получил физический доступ к жертве… Расширь влияние и почувствуй себя богом!

Концепция Kill Chain в практике пентеста

Если рассматривать практику пентеста, вся цепочка событий, приводящих к какой-либо успешной атаке на целевую ИТ-инфраструктуру, условно разбивается на сменяющие друг друга последовательные этапы. Эта цепочка действий получила название Kill Chain, или, как это звучит в русской нотации, убийственная цепочка (не исключено, что данный творческий перевод сделал сам Капитан Очевидность. — Прим. ред.).

Термин сейчас очень часто используется в мире ИБ, а широкое распространение он получил после публикации доклада Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains компании Lockheed Martin, специализирующейся в области авиастроения и авиакосмической техники, в котором среди прочего описывается последовательность шагов злоумышленника, осуществляющего незаконное проникновение (взлом) в информационную систему.

Спросишь меня, как связаны Lockheed Martin и информационная безопасность? Все довольно просто: эта компания имеет прямое отношение к ВПК Соединенных Штатов. Используя опыт Минобороны и других силовых ведомств, компания еще в 2011 году сформулировала план, состоящий из семи последовательных стадий, которые выполняются одна за другой и приводят к взлому целевой системы.

Если кратко, то вот эти семь этапов ниже и есть Kill Chain.

  1. Разведка. Исследование, идентификация и выбор целевой системы для взлома.
  2. Вооружение. Оснащение хакерскими тулзами и malware для совершения нападения.
  3. Доставка. Донесение вредоносного контента (тулз) до целевой системы.
  4. Заражение. Запуск вредоносного кода или эксплуатация уязвимостей системы.
  5. Инсталляция. Открытие удаленного доступа и другие действия с зараженной системой.
  6. Получение управления. Управление зараженной системой.
  7. Выполнение действий. Сбор, кража, отправка данных, шифрование файлов, подмена и удаление данных, затирание следов и так далее.
Цепочка Kill Chain

А вот небольшой пример, иллюстрирующий ее применение (проведение атаки step-by-step).

Сценарий атаки step-by-step

Постэксплуатация, если накладывать ее на эту таблицу, реализуется на 5-й и 6-й фазах, то есть когда хакер уже проник внутрь корпоративного периметра, обойдя периметровые и некоторые end-point средства защиты, с помощью малвари или эксплоита получил доступ к системе и готов действовать дальше. Постэксплуатация предшествует 7-й фазе «Выполнение действий», когда хакер достигает, если так можно сказать, бизнес-цели своей атаки, однако прежде, чем это произойдет, необходимо закрепиться внутри сети, дособрать нужную информацию о сети и серверах, скорректировать цели, подготовить каналы связи для передачи данных и прочее. Связано это с тем, что, как правило, конфиденциальные данные не лежат на каком-то одном серваке или крутятся в одном приложении, поэтому и необходимо дальше изучать сеть, хранилища данных, искать артефакты — в этом как раз отчасти и помогают инструменты постэксплуатации.

INFO

Постэксплуатация (англ. post-exploitation) — это один из этапов взлома компьютерных систем, позволяющий собирать дальнейшую информацию о целевой системе, получить дальнейший доступ к сети и хранящимся данным. Фаза постэксплуатации позволяет идентифицировать такие вещи, как дополнительные подсети, маршрутизаторы, названия серверов, сетевых служб и установленных приложений.

Основные паттерны, по которым работают злоумышленники, предполагают:

  • получение доступа на выполнение произвольного кода или команд;
  • изучение данных, хранящихся на сервере;
  • перехват данных, которых нет на системе сейчас, но которые могут появиться в будущем;
  • организация перманентного доступа к целевой системе (RAT);
  • эскалация привилегий до уровня системы для непривилегированной учетной записи.

Дополнительно хакер может получать информацию о скомпрометированной системе, анализируя:

  • конфигурацию системы (логин и пароль к БД в исходных кодах);
  • конфигурацию веб-сервера (например, httpd.conf, .htaccess);
  • исходные коды приложения (поиск уязвимостей через анализ логики приложения);
  • доступ к окружению (изнутри сети может быть проще попасть на соседние серверы и изолированные сегменты подсети);
  • базы данных (аутентификационная информация к другим системам, хранящаяся в них).

Для Windows типичные примеры постэксплуатации — такие атаки, как Pass-in-the-Hash, реализуемые известной тулзой mimikatz, о которых мы писали в нескольких прошлых материалах тут и тут, запуск бинарного кода с помощью PsExec, проброс VPN и/или DNS-туннеля, о которых более подробно рассказывали здесь и здесь. И еще известные паки для нашумевших недавно уязвимостей типа EternalBlue с помощью FuzzBunch и PowerShell Empire.

Мы же в разделе, который пойдет ниже, сделаем акцент на рассмотрение аналогичных инструментов постэксплуатации, но исключительно под Linux-системы. Ведь все знают, что back-end крупных, особенно DevOps’вских компаний обычно вращаются именно на пингвине.

Обзор основных инструментов постэксплуатации

Общие векторы атак на целевой машине после получения доступа:

  • эскалация привилегий в системе (Vectors of Privilege Escalation);
  • получение информации о дистрибутиве и ядре (OS Detail & Kernel Version);
  • поиск уязвимого ПО (Any Vulnerable package installed or running);
  • избыточные права доступа (Files and Folders with Full Control or Modify Access);
  • файлы с разрешениями SUID (File with SUID Permissions);
  • примонтированные тома (Mapped Drives (NFS));
  • чувствительные файлы и директории (Potentially Interesting Files);
  • изменение среды окружения (Environment Variable Path);
  • модификация сетевого интерфейса и трафика (Network Information — interfaces, arp, netstat);
  • модификация запущенных процессов в оперативной памяти (Running Processes);
  • задачи, запускаемые по расписанию (Cronjobs);
  • использование утилиты sudo для пользователя (User’s Sudo Right);
  • различные манипуляции с исходным и бинарным кодом (Wildcard Injection).

PXEnum (Post eXploitation Enumeration script for Linux)

Основная задача данного скрипта — функция перечисления (англ. Enumeration). Он вытаскивает всю доступную информацию о системе. Скрипт создан для настоящих лентяев. Окей, если высказаться более политкорректно, то «для тех, кто ценит свое время». 🙂 Встроенные команды позволяют также угонять хеши паролей, содержание директорий, все сведения о системе, наличие application-серверов, приложений, соединений, юзеров.