Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этой статье я покажу ход расследования киберинцидента на примере лабораторной работы Hacked с ресурса CyberDefenders. Мы научимся извлекать артефакты из образа диска системы Linux, анализировать их и по этим данным выясним, как злоумышленник скомпрометировал систему.
По сценарию злоумышленники взломали веб‑сервер и завладели полным контролем над ним. Специалисты по реагированию на инциденты получили побитовую копию системного диска скомпрометированной машины на базе операционной системы Linux. Загрузим файл образа и начнем его исследовать.
Разделим наше расследование на три этапа:
Используемые утилиты:
Прежде чем начать извлекать данные из образа диска, давай разберемся, с каким образом мы имеем дело и как его правильно анализировать. Для этого воспользуемся утилитой file
, входящей в Linux.
file Webserver.E01
Формат образа диска
Файл образа диска 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$salt$hashed
Идентификатор алгоритма 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
. Анализ этих файлов и сопоставление со временем начала инцидента позволит нам восстановить полную картину событий.
Источник: xakep.ru