Анализ дампа памяти с помощью Volatility Framework
Решение задания Easy husky с ISITDTU CTF 2019 Quals
На прошлых выходных проходит ISITDTU CTF 2019 Quals. Задания были довольно сложные, выше среднего. Тем не менее что-то можно было решить. Разбор некоторых заданий выйдет на канале на текущей недели.
Задания всё ещё доступны - https://ctf.isitdtu.com/challenges
Ссылка на событие - https://ctftime.org/event/803
Задание.
Задание представляло собой анализ дампа памяти, снятого с компьютера. Типичное задание категории "Forensics" или компьютерная криминалистка.
По описанию задания нам говорится, что компьютер был захвачен кем-то но пользователь вовремя успел записать действия. Скачиваем файл.
Это rar-архив. Ожидаемо, учитывая, что дампы могут занимать очень много места. Разархивируем и посмотрим полученный файл.
Сигнатура не определилась, но по размеру это действительно дамп памяти. Используем volatility для определения с какой системы был снят дамп и для поиска необходимой информации.
Кратко о volatility.
По сути это целый фреймворк для проведения криминалистических экспертиз над образами памяти, снятыми с компьютеров. На канале уже были посты с использованием volatility, но давно, если вы полистаете то найдёте.
Подробнее можно почитать здесь - https://github.com/volatilityfoundation/volatility/wiki
Доступные команды указаны здесь - https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
Обратно к заданию.
Попробуем определить операционную систему.
Обычно при решение подобного рода задач необходимо сразу смотреть список процессов, историю браузера и список файлов. Это первые вещи, на которые стоит обратить внимание. Для просмотра всего этого существуют специальные команды в volatility.
Отлично, volatility верно определил дамп и показал, что он был снят c WinXP.
Теперь посмотрим какие процессы есть. По сути это те процессы, которые были запущены в момент снятия дампа.
Глаз цепляется только за "CocCocCrashHand". Но если погуглить, то можно понять, что это какой-то редко вызываемый процесс и в целом не малварь.
Посмотрим историю браузера.
История браузера довольно большая и в её начале мы видим обращение к некоторому файлу который называется "flag.txt.txt", однако, не стоит обольщаться, там находится фейковый флаг (не знаю зачем он был добавлен, это бессмысленно). Анализируем дальше.
Вот это уже интереснее, некоторый файл "s3cr3t.txt" и архив flag.rar. Скорее всего архив зашифрован, а в текстовом файле содержится пароль.
Попробуем просканировать все файлы и поискать в этом списке необходимые нам файлы.
Вывод команды в консоль будет пустым, т.к. мы перенаправили вывод в файл.
Открываем файл и ищем архив.
Такой файл не находится, также как и "s3cr3t.txt". Здесь и заключается вся сложность задания. Необходимо найти папку с играми, в которой лежал наш архив.
Мы видим некоторый файл со странным именем, которое больше похоже на адрес. При этом файл находится именно в той папке, где должен быть rar-архив. Попробуем сдампить этот файл по адресу слева.
Обращаем внимание на конец файла и видим, что это сигнатура архива, только задом на перёд. Разворачиваем файл и получаем готовый архив.
Но он требует пароль.
Вот здесь происходит магия
Файл s3cr3t.txt так и не удалось найти (если у вас получилось, то напишите в бота-ответчика, как вы это сделали). В качестве пароля было использовано название директории в которой лежал файл (да это не совсем очевидно и по сути угадывания, ну а что делать?). Паролем является строка "hu5ky_4nd_f0r3n51c". При её вводе архив расшифровывается и мы получаем флаг.
Задание решено. Оно было довольно интересным до момента угадывания пароля, хотя возможно файл с паролем можно было как-то найти.
Автор: Telegram-канал "Убежище Хакера"
Решение задания Easy husky с ISITDTU CTF 2019 Quals
На прошлых выходных проходит ISITDTU CTF 2019 Quals. Задания были довольно сложные, выше среднего. Тем не менее что-то можно было решить. Разбор некоторых заданий выйдет на канале на текущей недели.
Задания всё ещё доступны - https://ctf.isitdtu.com/challenges
Ссылка на событие - https://ctftime.org/event/803
Задание.
Задание представляло собой анализ дампа памяти, снятого с компьютера. Типичное задание категории "Forensics" или компьютерная криминалистка.
По описанию задания нам говорится, что компьютер был захвачен кем-то но пользователь вовремя успел записать действия. Скачиваем файл.
Это rar-архив. Ожидаемо, учитывая, что дампы могут занимать очень много места. Разархивируем и посмотрим полученный файл.
Сигнатура не определилась, но по размеру это действительно дамп памяти. Используем volatility для определения с какой системы был снят дамп и для поиска необходимой информации.
Кратко о volatility.
По сути это целый фреймворк для проведения криминалистических экспертиз над образами памяти, снятыми с компьютеров. На канале уже были посты с использованием volatility, но давно, если вы полистаете то найдёте.
Подробнее можно почитать здесь - https://github.com/volatilityfoundation/volatility/wiki
Доступные команды указаны здесь - https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
Обратно к заданию.
Попробуем определить операционную систему.
Обычно при решение подобного рода задач необходимо сразу смотреть список процессов, историю браузера и список файлов. Это первые вещи, на которые стоит обратить внимание. Для просмотра всего этого существуют специальные команды в volatility.
Код:
volatility imageinfo -f husky_memory.raw
Отлично, volatility верно определил дамп и показал, что он был снят c WinXP.
Теперь посмотрим какие процессы есть. По сути это те процессы, которые были запущены в момент снятия дампа.
Код:
volatility pslits -f husky_memory.raw
Глаз цепляется только за "CocCocCrashHand". Но если погуглить, то можно понять, что это какой-то редко вызываемый процесс и в целом не малварь.
Посмотрим историю браузера.
Код:
volatility iehistory -f husky_memory.raw
История браузера довольно большая и в её начале мы видим обращение к некоторому файлу который называется "flag.txt.txt", однако, не стоит обольщаться, там находится фейковый флаг (не знаю зачем он был добавлен, это бессмысленно). Анализируем дальше.
Вот это уже интереснее, некоторый файл "s3cr3t.txt" и архив flag.rar. Скорее всего архив зашифрован, а в текстовом файле содержится пароль.
Попробуем просканировать все файлы и поискать в этом списке необходимые нам файлы.
Код:
volatility filescan -f husky_memory.raw > filescan.txt
Вывод команды в консоль будет пустым, т.к. мы перенаправили вывод в файл.
Открываем файл и ищем архив.
Такой файл не находится, также как и "s3cr3t.txt". Здесь и заключается вся сложность задания. Необходимо найти папку с играми, в которой лежал наш архив.
Мы видим некоторый файл со странным именем, которое больше похоже на адрес. При этом файл находится именно в той папке, где должен быть rar-архив. Попробуем сдампить этот файл по адресу слева.
Код:
volatility dumpfiles -Q 0x0000000002c5dd18 -D . -f husky_memory.raw
Обращаем внимание на конец файла и видим, что это сигнатура архива, только задом на перёд. Разворачиваем файл и получаем готовый архив.
Но он требует пароль.
Вот здесь происходит магия
Файл s3cr3t.txt так и не удалось найти (если у вас получилось, то напишите в бота-ответчика, как вы это сделали). В качестве пароля было использовано название директории в которой лежал файл (да это не совсем очевидно и по сути угадывания, ну а что делать?). Паролем является строка "hu5ky_4nd_f0r3n51c". При её вводе архив расшифровывается и мы получаем флаг.
Задание решено. Оно было довольно интересным до момента угадывания пароля, хотя возможно файл с паролем можно было как-то найти.
Автор: Telegram-канал "Убежище Хакера"