• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Анализ дампа памяти с помощью Volatility Framework

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Анализ дампа памяти с помощью Volatility Framework
Решение задания Easy husky с ISITDTU CTF 2019 Quals


На прошлых выходных проходит ISITDTU CTF 2019 Quals. Задания были довольно сложные, выше среднего. Тем не менее что-то можно было решить. Разбор некоторых заданий выйдет на канале на текущей недели.

Задания всё ещё доступны - https://ctf.isitdtu.com/challenges

Ссылка на событие - https://ctftime.org/event/803


Задание.
4cdb28ab3117958c38d67.png

Задание представляло собой анализ дампа памяти, снятого с компьютера. Типичное задание категории "Forensics" или компьютерная криминалистка.

По описанию задания нам говорится, что компьютер был захвачен кем-то но пользователь вовремя успел записать действия. Скачиваем файл.

eafbf5d96eceaab75932c.png

Это rar-архив. Ожидаемо, учитывая, что дампы могут занимать очень много места. Разархивируем и посмотрим полученный файл.

c55222e2fef2fb9b206ad.png

Сигнатура не определилась, но по размеру это действительно дамп памяти. Используем volatility для определения с какой системы был снят дамп и для поиска необходимой информации.


Кратко о volatility.
По сути это целый фреймворк для проведения криминалистических экспертиз над образами памяти, снятыми с компьютеров. На канале уже были посты с использованием volatility, но давно, если вы полистаете то найдёте.

Подробнее можно почитать здесь - https://github.com/volatilityfoundation/volatility/wiki

Доступные команды указаны здесь - https://github.com/volatilityfoundation/volatility/wiki/Command-Reference


Обратно к заданию.
Попробуем определить операционную систему.



Обычно при решение подобного рода задач необходимо сразу смотреть список процессов, историю браузера и список файлов. Это первые вещи, на которые стоит обратить внимание. Для просмотра всего этого существуют специальные команды в volatility.
Код:
volatility imageinfo -f husky_memory.raw

f2f6614a97b4fe079c687.png

Отлично, volatility верно определил дамп и показал, что он был снят c WinXP.

Теперь посмотрим какие процессы есть. По сути это те процессы, которые были запущены в момент снятия дампа.
Код:
volatility pslits -f husky_memory.raw

ab1921f5c504a506a2f6c.png

Глаз цепляется только за "CocCocCrashHand". Но если погуглить, то можно понять, что это какой-то редко вызываемый процесс и в целом не малварь.

Посмотрим историю браузера.
Код:
volatility iehistory -f husky_memory.raw

26de12ebd2b89de9b96a1.png

История браузера довольно большая и в её начале мы видим обращение к некоторому файлу который называется "flag.txt.txt", однако, не стоит обольщаться, там находится фейковый флаг (не знаю зачем он был добавлен, это бессмысленно). Анализируем дальше.

abf139e2d38815ce7c781.png

Вот это уже интереснее, некоторый файл "s3cr3t.txt" и архив flag.rar. Скорее всего архив зашифрован, а в текстовом файле содержится пароль.

Попробуем просканировать все файлы и поискать в этом списке необходимые нам файлы.
Код:
volatility filescan -f husky_memory.raw > filescan.txt

Вывод команды в консоль будет пустым, т.к. мы перенаправили вывод в файл.

Открываем файл и ищем архив.

865d539518a959bb10fb4.png

Такой файл не находится, также как и "s3cr3t.txt". Здесь и заключается вся сложность задания. Необходимо найти папку с играми, в которой лежал наш архив.

b3b2e7931aa81266e7ad8.png

Мы видим некоторый файл со странным именем, которое больше похоже на адрес. При этом файл находится именно в той папке, где должен быть rar-архив. Попробуем сдампить этот файл по адресу слева.
Код:
volatility dumpfiles -Q 0x0000000002c5dd18 -D . -f husky_memory.raw

35995a8c5f0a9f32f0db3.png

Обращаем внимание на конец файла и видим, что это сигнатура архива, только задом на перёд. Разворачиваем файл и получаем готовый архив.

45d443d9d43fb0f4a4090.png

Но он требует пароль.

Вот здесь происходит магия
Файл s3cr3t.txt так и не удалось найти (если у вас получилось, то напишите в бота-ответчика, как вы это сделали). В качестве пароля было использовано название директории в которой лежал файл (да это не совсем очевидно и по сути угадывания, ну а что делать?). Паролем является строка "hu5ky_4nd_f0r3n51c". При её вводе архив расшифровывается и мы получаем флаг.

19b744abd6bf97815a7e7.png

Задание решено. Оно было довольно интересным до момента угадывания пароля, хотя возможно файл с паролем можно было как-то найти.

Автор: Telegram-канал "Убежище Хакера"
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх