Задание
Компьютер сестры вышел из строя. Нам очень повезло восстановить этот дамп памяти. Ваша задача — извлечь все ее важные файлы из системы. Из того, что мы помним, мы внезапно увидели всплывающее черное окно, в котором что-то выполнялось. Когда произошел сбой, она пыталась что-то нарисовать. Это все, что у нас есть со времени аварии.
Примечание: это испытание состоит из 3 флагов.
Выполнение
Первое, что нужно сделать с файлом дампа памяти — это идентифицировать операционную систему, для этого мы используем плагин imageinfo.
$ volatility -f MemoryDump_Lab1.raw imageinfo

Здесь есть 3 интересных процесса, давайте начнем с cmd.exe.
Мы можем использовать плагин consoles, чтобы увидеть выходные данные.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 consoles

Если вы внимательно посмотрите на выходные данные команды St4G3$1, вы можете заметить некоторый текст в формате Base64. Если мы его расшифруем, то получим флаг этапа 1.
Далее мы сосредоточимся на втором интересном процессе, который называется mspaint.exe. PID этого процесса равен 2424.
Если вы вернетесь к описанию задачи, мы увидим, что пользователь что-то рисовал (используя mspaint, конечно).
Немного погуглив, получим что мы можем сбросить память процесса mspaint, чтобы извлечь изображение обратно.
Итак, давайте воспользуемся плагином memdump для извлечения некоторых данных.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 memdump -p 2424 -D lab1_output/
Выходные данные записаны в файл 2424.dmp, нам нужно переименовать его в 2424.data, чтобы иметь возможность открыть его в Gimp.
Немного поиграв с шириной и смещением. Получаем изображение, которое несколько перевернуто. Повернув его на 180 градусов, затем перевернул по горизонтали и можно найти флаг.
Третий интересный процесс — WinRAR.exe с PID 1512 мы можем использовать плагин cmdline, чтобы увидеть соответствующую командную строку.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 cmdline | grep WinRAR
Volatility Foundation Volatility Framework 2.6.1
WinRAR.exe pid: 1512
Command line : "C:\Program Files\WinRAR\WinRAR.exe" "C:\Users\Alissa Simpson\Documents\Important.rar"
Отлично, мы получили имя файла rar, которое является Important.rar (выглядит важным).
Далее мы можем использовать плагин filescan, чтобы получить физическое смещение этого файла в памяти.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 filescan | grep Important.rar
Volatility Foundation Volatility Framework 2.6.1
0x000000003fa3ebc0 1 0 R--r-- \Device\HarddiskVolume2\Users\Alissa Simpson\Documents\Important.rar
0x000000003fac3bc0 1 0 R--r-- \Device\HarddiskVolume2\Users\Alissa Simpson\Documents\Important.rar
0x000000003fb48bc0 1 0 R--r-- \Device\HarddiskVolume2\Users\Alissa Simpson\Documents\Important.rar
Мы можем выбрать любое из этих смещений, для выгрузки файла мы можем использовать плагин dumpfiles.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 dumpfiles -Q 0x000000003fa3ebc0 -D lab1_output/
Volatility Foundation Volatility Framework 2.6.1
DataSectionObject 0x3fa3ebc0 None \Device\HarddiskVolume2\Users\Alissa Simpson\Documents\Important.rar
Файл выгружается под именем file.None.0xfffffa8001034450.dat, давайте переименуем и распакуем его.
$ mv file.None.0xfffffa8001034450.dat Important.rar
$ unrar e Important.rar
UNRAR 5.61 beta 1 freeware Copyright (c) 1993-2018 Alexander Roshal
Extracting from Important.rar
Password is NTLM hash(in uppercase) of Alissa's account passwd.
Enter password (will not be echoed) for flag3.png:
Файл защищен паролем, но мы видим комментарий, в котором говорится, что пароль — это NTLM-хэш учетной записи Alissa.
Чтобы получить хэш пароля, мы можем использовать плагин hashdump.
$ volatility -f MemoryDump_Lab1.raw --profile Win7SP1x64 hashdump
Volatility Foundation Volatility Framework 2.6.1
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SmartNet:1001:aad3b435b51404eeaad3b435b51404ee:4943abb39473a6f32c11301f4987e7e0:::
HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:f0fc3d257814e08fea06e63c5762ebd5:::
Alissa Simpson:1003:aad3b435b51404eeaad3b435b51404ee:f4ff64c8baac57d22f22edc681055ba6:::
О хешах Windows
Windows хранит два хэша для каждого пароля, разделенных двоеточиями. Первый — крайне небезопасный устаревший хэш, использующий алгоритм LANMAN. Операционные системы Windows, начиная с Vista, больше не используют хэши LANMAN, поэтому они заполняются фиктивным значением, начинающимся с “aad”.
Второй хэш — это более новый хэш NTLM, который намного лучше хэшей LANMAN, но все еще крайне небезопасен и его гораздо легче взломать, чем хэши Linux или Mac OS X.
Желаемый хэш NTLM поднимаем в верхний регистр и распаковываем файл.
После распаковки файла мы получаем изображение с третьим флагом.

