CTF. Курс молодого бойца. Начальные задания категории Forensic.

CTF. Курс молодого бойца. Начальные задания категории Forensic.

https://t.me/hacker_sanctuary

Данный пост будет носить практический характер. В нём мы рассмотрим задание начального уровня в категории Forensic. Рассматриваемое задание встречается на CTF'ах среднего и высокого уровня.

Задания будут взяты с известного сайта с различными задачами (CTF и не только) - https://www.root-me.org/

Будем решать задачи из категории: Forensic

Прямая ссылка: https://www.root-me.org/en/Challenges/Forensic/

Пример.

Разберём первое задание из данной категории. Его название "Command & Control - level 2". Прямая ссылка на задание: https://www.root-me.org/en/Challenges/Forensic/Command-Control-level-2

Как видно из условия, нам необходимо проанализировать дамп памяти и найти hostname машины, с которой был снят дамп.

Скачиваем дамп с помощью нажатия на кнопку "Start the challenge" или копируем ссылка, чтобы скачать сразу на Linux с помощью команды wget. Для анализа дампа нам понадобится Kali Linux, так как на нём уже установлен необходимый нам инструмент - volatility. Вы можете использовать любую ОС для решения, но вам понадобится volatility framework.

Пара слов про volatility.

Volatility - открытый фреймворк для анализа дампов памяти. Активно используется для расследования кибрепреступлений и обнаружения малвари. На CTF'ах часто бывают задания по форензике, связанные с использованием volatility.

Начинаем анализ.

Анализ начинается с определения ОС, с которой был снят дамп. Используем команду imageinfo.

Команда: volatility -f ch2.dmp imageinfo

Теперь в каждой последующей команде необходимо будет указывать параметр --profile, который определяет тип ОС, с которой был снят дамп.

Для того, чтобы найти имя компьютера нужно понять, где оно хранится. Для этого используем гугл.

На 3 ссылке мы можем найти следующий ответ.

Теперь нам нужно достать значение из этого раздела реестра.

Для работы с реестром Windows в volatility предусмотрен ряд команд.

Используем команду hivelist, чтобы получить список всех веток реестра.

Команда: volatility -f ch2.dmp --profile=Win7SP0x86 hivelist

Нас интересует ветка "\REGISTRY\MACHINE\SYSTEM", сдампим её и поместим в отдельный текстовый файл.

Команда: volatility -f ch2.dmp --profile=Win7SP0x86 hivedump -o 0x8b21c008 > hi_dump.txt

Теперь с помощью утилиты grep попробуем найти строку "ComputerName" в сдампленной ветке.

Команда: grep "ComputerName" hi_dump.txt 

Мы получили полный путь до места где хранится имя компьютера, теперь с помощью keyprint мы можем посмотреть ключ, который хранится по данному пути.

Команда: volatility -f ch2.dmp --profile=Win7SP0x86 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"

Значение: WIN-ETSA91RKCFP и будет нашим верным паролем для задания.

Заключение.

Мы разобрались в том, как использовать volatility для поиска информации в дампах памяти, а также для как извлекать с помощью него значения из реестра.

В следующих постах будет ещё больше разборов базовых заданий на CTF'ах, следите за обновлениями.

Report Page