Работает Криминалист!
Снимаем и Анализируем дамп оперативной памяти
Снимаем и Анализируем дамп оперативной памяти
Авторство: defaultuser0
Источник: xss.pro
Приветствую форумчане! Продолжаю делится своими знаниями преобретенными работая специалистом по информационной безопасности. В этой статье я хочу вам поведовать о таком душном процессе как снятие и анализ оперативой памяти. У вас может появится резонный вопрос - зачем, для чего, почему. Попробую обрисовать вам картину как это происходит в боевых условиях. Я возьму боевой вирус и поражу свою Виртуалку им, после я покажу процесс анализа с изъятием образа вредоноса с дампа оперативной памяти! Как всегда теория + практика.
Основы и принципы снятия и анализа дампа оперативной памяти
Одним из важных аспектов компьютерной безопасности является анализ оперативной памяти (ОЗУ), который позволяет выявлять и предотвращать различные угрозы. Снятие дампа ОЗУ – это процесс создания копии данных, находящихся в оперативной памяти компьютера в определенный момент времени. Эта копия может затем быть проанализирована на предмет наличия вредоносных программ, следов несанкционированного доступа или других потенциальных угроз.
Говоря про снятие дампа мы должны понимать пару аспектов
Всегоу вас может возникнуть две ситуации: когда скомпрометированный компьютер включен и когда он выключен:
- Компьютер включен и пользователь залогенин
- Компьютер выключен
- Компьютер включен: Подключаем внешнее устройство запускаем специализированное ПО для снятие дампа
- Компьютер выключен: Подключаем аппаратный блокиратор записи и снимаем обрзо Жесткого Диска
Компьютер включен и пользователь залогенин: плюсы и минусы
- Возможность получить образ вредоносного ПО
- Возможность изучить текущее состояние системы
- Возможность получить доступ к данным (Пароли и тд)
- Злоумышленник может продолжить управлять систмой и подчистить следы
- Неправильное взаимодействие с компьютером жертвы может повредить важные данные и потереть текущее состояние оперативной памяти (важное для расследования инцидента)
Компьютер выключен: плюсы и минусы
- Нельза повредить данные (Возможность разом снять без проблем)
- Нету дампа Оперативной памяти
- Данные на жесткаче могут быть защифрованны
- Снятие данных с жесткого диска может быть слишком долгим
Именно такие чемоданчики есть у команды специалистов быстрого реагирования на компьютернные инциденты.
Мы теперь знаем все плюсы и минусы по снятию дампов при расследование инцедента, давайте теперь более специализрованно.
Нужно разобраться с софтом, Для снятия дампа оперативной памяти с Операционной системы Windows я буду использывать популярное ПО - FTK imager,
FTK Imager - Инструмент для создания образов дисков, который также может читать дампы памяти. FTK Imager позволяет пользователям просматривать и анализировать содержимое памяти в удобной форме.
Его непросто получить (актуальной версии), Я приложу файл под статью можете его скачать.
Для анализа дампа ОЗУ Я буду пользываться самым популярным ПО - Volatility
Volatility - Один из наиболее известных и широко используемых инструментов для анализа дампов памяти. Volatility поддерживает анализ дампов ОЗУ из разных операционных систем, включая Windows, Linux и Mac OS X. Он позволяет исследовать процессы, загруженные драйверы, сетевые соединения и многое другое.
Боевая практика - анализируем пораженный компьютер
Я поставил 2 виртуальные машины:
- Windows 10 (Жертва)
- Ubuntu OS (Криминалистическая тачка)
Для начала нам нужен образ вредонсоного ПО!
Мой дорогой друг Султан loadbaks предоставил мне доступ к своему стиллеру VIDAR и разрешил мне чутка помучить его стиллер своим эксперементом - Спасибо ему за предоставленную возможность!
Прочитать интервью с владельцом MaaS можете тут -> ТЫК
Кстати для всех кому интересны Стиллеры Султан дает скидочку для всех кто читает мои посты
loadbaks: Для всех кто прочитал статью, и напишет моему саппорту промокод Яшенька, получит +20% к первому пополнению баланса на нашем проекте.
Установим FTK Imager для снятие дампа ОЗУ
У меня есть боевая версия вируса, сделаю билд и заражу свою виртуалку под Windows 10 Видаром.
Поразив вирусом свою виртуалку запустим FTK Imager, перейдем в File -> Capture Memory и сделаем дамп
Кстати к этому моменту логи с моей виртуалки уже поступили в панель стиллера =)
Запустим процесс снятие дампа и дождемся окончания, (тут кстати есть возможность достать файл подкачки)
Мы получили два файла - Файл подкачки и сам дамп оперативной памяти
Теперь установим Volatility. Тут нужно понимать что классическая версия Volatility работает на питоне 2 версии и из-за того что питухон успел изменится 40 раз, легче всего взять Volatility3 (У него кстати есть свои приемущества в том смысле, что не нужно определять руками профиль ОС, в первой версии Volatility профиль - это точная версия операционной системы.)
Тут я думаю вы справитесь без меня.
Теперь по подробнее, Volatility это мощный инструмент который позволяет достать из целого дампа абсолютно все, начиная от Образа процесса, заканчивая скришотами, буффером, ключами реестра, выделенным местом в Оперативе и тд. Так же с использованием Volatility вы можете буквально детектировать инжект в легитимные процессы по типу explorer.exe или svchosts.exe (Имменно инжект)
Мы уже перетащили дамп на тачку, теперь давайте поймем что и как работает в Volatility.
У Volatility есть такая вещь как Plugins, Они позволяют определенным образом доставать все что нам нужно. Весь список описан в доккументации, я приложу ссылку внизу для вас. Так же можете посмотрть весь дефолтный список что и как используя флаг -h
Код:
python3 vol.py -h
Давайте изучим наш дамп. Флаг -f нужен для определения места дампа
Используя плагин $OS.pslist мы можем считать полностью весь список запущенных процессов на момент снятия дампа. Тут будет все что нам нужно PID - Process ID или же Offset
Offset в контексте оперативной памяти относится к смещению или позиции конкретного байта или группы байтов внутри блока памяти. Это числовое значение, которое указывает расстояние (обычно в байтах) от начала блока памяти до конкретного местоположения данных внутри этого блока.
Если мы хотим то можем получить дерево процессов используя плагин $OS.pstree
Мы можем получить СИДЫ $OS.getsid
Так же используя плагин $OS.netscan мы можем изучить текущее сетевые взаимодействие хоста с которого был снят дамп
Дальше отталкиваясь от Оффсета который мы сдампили, мы можем получить все что хотим начиная от скришотов, заканчивая списком устройств подключенных к хосту/данные с автозагрузки хоста на момент снятие дампа. Но я не хочу вдаваться в подробности вы можете изучить это подробнее используя документацию, что касается всей истории с форензикой, вам нужно четко понимать устройство Операционнки которую изучаете, что где лежит.
Пробежавщись по реестру мы видим доступные нам пути, используя ключ мы можем узнать все что хотим. Давайте попробуем узнать чуть больше о системе.
Используя оффсет и ключ Control\SystemInformation мы получаем на руки информацию что это дамп с вирутальной машины так как информация о БИОСе хранивщайся в оперативной памяти явно укзаывает на Виртуальную Машину VMware
Мы можем так же посмотерть весь список сервисов на нашем хосте, Это хороший шаг возможно в вашем случаии вредонос закрепился через сервис.
Используем комманду windows.registry.printkey --offset 0x* --key 'ControlSet001\Services'
Это все базовые примеры, найти можно все - Вопрос как!
Я не будем усложнять себе положение, посмотрев список запущенных процессов на момент снятие дампа мы можем достать образ любого процесса.
Перед тем как забрать образ подозреваемого вредоноса - давайте посмотрим откуда он был запущен и с каким параметрамми.
Для этого используем windows.cmdline --pid *
Заберем образ подозрительного процесса вместе со всеми DDL (Это возможно понадобиться при дальнешем анализе)
Используя команду windows.dumpfiles --pid * (пид процесса который мы хотим забрать)
Обязательно укажите путь куда вы хотите получить ваши образы. Мы получаем образ нашего файла на руки.
Теперь мы можем сделать с ним все что хотим. Самое лучшее в таком моменте сразу бежать на ВирусТотал или Онлайн Песочницы по типу Эниран, но я этого делать не буду так как Загажу Билд Султана детектами на ВТ. Кстати всем кто арендует такой софт на заметку, если кто-то сольет билд на песочницы или ВТ то его очень легко найдут по ХЭШу и забанят ему учетку за слив билда. У всех юзеров такого софта уникальные билды с уникальными ХЭШАМИ, само собой все билды регулярно чекаются по ХЭШУ. Это кстати хороший трюк для безопасников который я прочитал в Книге:
Анализ вредоносных программ. Там бывший специалист Cisco по Безопасности объяснял как злоумышленники определяют "Изучают ли их вирус или нет" Вообщем не стоит сразу лить на ВТ билды если перед вами редкий экземпляр какого нибудь вредоноса, лучше руками изучить так как залив на ВТ злоумышленники сразу поймут что их вредонос уже попался в руки аналитика, кстати книгу советую прочитать!
Используя дефолтный Strings.
Пройдясь чуть ниже сразу становиться понятно что перед нами стиллер, это легко определить по передоваймым данным.
Процессор, Времеая Зона, Клавиатура, Оператиная память, Чип Видеокарты, и тд.
После чего мы можем сделать предположение что все это записывается в файл "information.txt"
Продолжая изучать образ процесса, мы видим такую интересную вещь:
В действительности владелец VIDAR делился в интервью со мной что данные добытые его стиллером передаются 2 путями. Steam или Telegram.
Так что тут Султан не обманул и реально его стиллер передает информацию через эти маршруты =)
Так же добовляем в нашу таблицу IOC's сам стим профиль =0
Индикатор компрометации (Indicator of Compromise, IoC) — в сфере компьютерной безопасности наблюдаемый в сети или на конкретном устройстве объект (или активность), который с большой долей вероятности указывает на несанкционированный доступ к системе (то есть ее компрометацию). Такие индикаторы используются для обнаружения вредоносной активности на ранней стадии, а также для предотвращения известных угроз.
Вы должны записывать туда каждую подозрительную вещь, начиная от файлов, заканчивая айпи адрессами управляющих серверов, Необычные DNS-запросы, спикок узлов, профилей, сигнатуры, список Хэшей, подозрительных адерсов памяти и тд. Это нужно для подачи отчета с конкретными данными(пораженные хосты + IoC's)
Пробегаемся дальше по пути видя что собираются пароли с браузеров, замечаем запросы в БД =0
Я специально закрасил чувствительные данные стиллера (все таки мне его дали для теста)
В этих запросах видно буквально что куда помещается, и какие вообще есть в бд таблицы и столбцы.
Да возможно это выглядит глупо но я посторался показать базовое применение с анализом образа. Само собой я знал что на хосте был запущен стиллер, но при боевых задачах вы будете действовать примерно так. Увидели какой то процесс странный сдампили его образ с оперативы прошлись средствами детекта или же изучили вручной. При сложных атака вирусов с инжектом в легитимные процессы вам прийдется использвать apihooks и полноценно окунаться в реверс (тут кстати можете читать статьи yashechka, и особенно советую смотерть его прохождения crackme), так как вам прийдется смотреть на выделенное пространство и буквально доставать из процесса вредоносный код.
Конечно Если там условный РАТНИК или Ботнет то вам нужно смотрть на сетевые подключения хоста с момента снятие дампа и анализировать куда какой процесс пытается стучаться + Смотерть из списко автозагрузки + по реестру пытаться понять закрепился ли вирус имеено таким путем или же он буквально физическим файлом из автозагрузки запускается.
Это был всего лишь базовый пример как бывает в 99% Случаев и Я постарался показать как это выглядит почти всегда. Спасибо что прочитали до конца кстати проект с полигоном встал из-за последних новостей, я ищу активно пентестера который хочет попробывать свои силы vs SOC'a. Если интересно пиште в ПМ
Для тех кто хочет поддержать меня финансово:
BTC: bc1qxzw0u2hl40hxpw0zjz82zzkl5mgjtp9xwkex6f
Кстати весь этот проект я поднимаю в прямом эфире на твиче, подробнее тут:
ТГ: https://t.me/infosecetochto