Hacked с ресурса CyberDefenders. Мы научимся извлекать артефакты из образа диска системы Linux, анализировать их и по этим данным выясним, как злоумышленник скомпрометировал систему.
По сценарию злоумышленники взломали веб‑сервер и завладели полным контролем над ним. Специалисты по реагированию на инциденты получили побитовую копию системного диска скомпрометированной машины на базе операционной системы Linux. Загрузим файл образа и начнем его исследовать.
Разделим наше расследование на три этапа:
- Анализ конфигурационных файлов операционной системы Linux.
- Поиск точки входа злоумышленников в систему.
- Поиск методов постэксплуатации в системе.
Используемые утилиты:
FTK Imager — инструмент для анализа и получения образов диска.
R-Studio — утилита для восстановления данных с диска.
Plaso — утилита на Python, предназначенная для генерации времени событий операционной системы. Подробнее о ней читай в статье «Таймлайн всего. Используем Plaso для сбора системных событий».
Монтируем образ диска
Прежде чем начать извлекать данные из образа диска, давай разберемся, с каким образом мы имеем дело и как его правильно анализировать. Для этого воспользуемся утилитой file , входящей в Linux.
Формат образа дискаФайл образа диска Webserver.E01 записан в формате Expert Witness Format (EWF) и содержит побитовую копию данных. Сконвертировать его в цифровую копию диска можно с помощью утилиты EnCase.
Полученный образ диска можешь примонтировать в Linux — для этого ставь утилиты lvm2 , ewf-tools , sleuthkit , kpartx и воспользуйся мануалом. Но я покажу другой вариант. Примонтируем исследуемый диск в Windows и извлечем из него необходимые артефакты для расследования инцидента.
Откроем утилиту FTK Imager и примонтируем образ диска. Для этого переходим на вкладку File → Image Mounting. В поле Image File выбираем образ Webserver.e01 и вводим настройки, указанные ниже. Настройки для монтирования образаНажимаем Mount, и исследуемый образ должен примонтироваться. Мы увидим следующую информацию. Вывод результатов монтирования образаТеперь открываем R-Studio и видим примонтированные виртуальные диски. Список примонтированных виртуальных дисковНас интересует диск Virtual Storage 1.00 → F, так как его ФС — ext4 . Далее выбираем диск F и нажимаем «Сканировать». Утилита R-Studio начнет сканировать адресное пространство диска и искать в нем все файлы, в том числе удаленные. После завершения сканирования переходим в диск F в интерфейсе R-Studio и получим все каталоги и файлы файловой системы. Завершение сканирования дискаСтруктура файловой системы виртуального диска F Изучаем конфиги ОС
Получим информацию о системе, чтобы понимать, какие сервисы установлены, с какой операционной системой работаем и какие пользователи существуют. Эта информация расположена в каталоге /etc файловой системы Linux. Информацию об имени компьютера ты найдешь в файле /etc/hostname (в нашем случае это VulnOSv2 ). В файле /etc/os-release содержится информация об операционной системе (Ubuntu версии 14.04.4 LTS ). Информация о скомпрометированной операционной системеВ файле /etc/networks/interfaces хранится сетевой адрес, но в нашем случае для получения IP-адреса в сети организации используется протокол DHCP. В каталоге /etc я обнаружил следующее установленное ПО: Drupal 7, веб‑сервер Apache 2, СУБД MySQL и PostgreSQL, а также почтовый сервис Postfix.
Проанализируем информацию о пользователях. Нас интересуют файлы /etc/passwd и /etc/shadow . Содержимое файла /etc/passwd/etc/passwd содержит информацию о пользователях системы: имя пользователя, идентификаторы пользователя и группы, комментарий, описывающий аккаунт, путь к домашнему каталогу и программа, которая каждый раз запускается при входе пользователя в систему. Нас интересуют пользователи, которые могут запускать командную оболочку /bin/bash при входе в систему. Таких пользователей пять: root , mail , php , vulnosadmin и postgres .
В файле /etc/shadow хранятся хешированные пароли пользователей. Доступ к этому файлу имеет только привилегированный аккаунт. Содержимое файла /etc/shadowФормат хеша пользовательского пароля:
Идентификатор алгоритма id=6 соответствует алгоритму хеширования SHA-512. Попробуй сам скопировать выделенную на рисунке строку хеша пароля пользователя mail и пробрутить его утилитой John the Ripper со словарем rockyou.txt:
john hash.txt --wordlist=rockyou.txt
Вывод утилиты JohnПроанализируем файл /etc/group , чтобы понимать, какие пользователи состоят в группе sudo . Часть содержимого файла /etc/groupВ этом файле содержится 58 групп, а в группу sudo входят пользователи php и mail . Значит, они могут выполнять команды от имени суперпользователя root. Найдем правила о предоставлении доступа для группы sudo . Они описываются в файле /etc/sudoers . Содержимое файла /etc/sudoersЭто правило означает, что все пользователи группы sudo могут выполнять любые действия в системе от имени администратора.
Определим версию и конфигурацию сайта на Drupal. Для этого переходим в каталог /var/www/html/jabc , в файле /var/www/html/jabc/includes/bootstrap.inc содержится версия CMS системы. Это Drupal 7.26 — она уязвима, и для нее есть эксплоиты, дающие удаленное выполнение кода. В качестве веб‑сервера установлен Apache 2. Файл его конфигурации расположен в /etc/drupal/7/htaccess .
Итак, на этом этапе мы с тобой выяснили, с какой операционной системой мы имеем дело, какое ПО на ней установлено и какие настройки заданы. Ищем точку входа
Теперь нам нужно понять, как злоумышленник впервые получил доступ к скомпрометированной системе. Для этого проанализируем логи ОС. Все журналы событий Linux хранятся в каталоге /var/log . Анализ этих файлов и сопоставление со временем начала инцидента позволит нам восстановить полную картину событий.
Перейти обратно к новости
|