🔎 Пробуем свои силы, используя Volatility, для прохождения CTF |

🔎 Пробуем свои силы, используя Volatility, для прохождения CTF

Мануал

Не так давно мы уже затрагивали тему начальных шагов а расследованиях компьютерных инцидентов с использованием образа диска и FTK imager. Теперь предлагаем использовать дамп памяти и инструмента volatility.

В этой статье я использую volatility для анализа дампа памяти с машины, зараженной вредоносной программой meterpreter. Файл принадлежит к ориентированному на blue team CTF на сайте CyberDefenders под названием “DumpMe”

 

 

Скачиваем архив и распаковываем с паролем, указанным на скриншоте

 

 

1. What is the SHA1 hash of Triage-Memory.mem (memory dump)?

Какое значение SHA1-хэш файла Triage-Memory.mem (дамп памяти)?

Я использовал следующую команду для получения SHA1-хэша дампа памяти “Triage-Memory.mem”, так как встроенные средства самые лучше средства. Поэтому используем старый и добрый (это не точно) certutil, по умолчанию с аргументом -hashfile он использует алгоритм SHA-1, что нам и подходит

certutil -hashfile D:\volatility\Triage-Memory.mem

 

Получили хеш c95e8cc8c946f95a109ea8e47a6800de10a27abd

 

2.What volatility profile is the most appropriate for this machine? (ex: Win10x86_14393)

Какой профиль volatility наиболее подходит для этой машины? (например: Win10x86_14393)

Используем команду следующего синтаксиса

volatility -f Triage-Memory.mem imageinfo

 

 

 

Предполагаемый профиль файла – Win7SP1x64, поэтому мы можем сказать, что ОС этого файла дампа – Windows.

 

3. What was the process ID of notepad.exe?

Каков был идентификатор процесса notepad.exe?

Мы можем использовать плагин pslist, предоставляемый volatility, чтобы перечислить все процессы в образе памяти.

volatility -f Triage-Memory.mem --profile=Win7SP1x64 pslist

Просматривая список процессов, я вижу PID “notepad.exe”

 

 

4. Name the child process of wscript.exe.

Назовите дочерний процесс wscript.exe.

Все еще глядя на вывод плагина pslist выше, я вижу процесс “wscript.exe”, который имеет PID 5116. Прямо под процессом “wscript.exe” я вижу процесс “UWkpjFjDzM.exe”, который имеет PPID 5116 (т.е. wscript.exe). Это делает “UWkpjFjDzM.exe” дочерним процессом “wscript.exe”.

Ответ: UWkpjFjDzM.exe

5. What was the IP address of the machine at the time the RAM dump was created?

Каков был IP-адрес машины в момент создания дампа ОЗУ

Я использовал плагин netscan в volatility для определения сетевых подключений. Посмотрев в столбце локального адреса, я увидел IP-адрес машины на момент создания дампа RAM.

volatility -f Triage-Memory.mem --profile=Win7SP1x64 netscan

 

 

Очевидно, ответ 10.0.0.101

6. Based on the answer regarding the infected PID, can you determine the IP of the attacker?

Основываясь на ответе относительно PID зараженного процесса, можете ли вы определить IP-адрес злоумышленника?

Ранее мы выявили подозрительный процесс под названием “UWkpjFjDzM.exe”, который был порожден процессом “wscript.exe”. Windows Script Host обычно используется для выполнения вредоносных сценариев. Глядя на результаты работы плагина netscan, я вижу, что подозрительный процесс установил сетевое соединение с зараженной машиной.

 

Ответ очевидно 10.0.0.106

7. How many processes are associated with VCRUNTIME140.dll?

Сколько процессов связано с VCRUNTIME140.dll?

Мы можем использовать плагин dlllist для просмотра всех DLL, загруженных в память, а затем отфильтровать вывод для “VCRUNTIME140.dll”. Я вижу, что пять процессов связаны с “VCRUNTIME140.dll”.

volatility -f Triage-Memory.mem --profile=Win7SP1x64 dlllist | | findstr "VCRUNTIME140.dlll

 

Получаем 1 процесс, но ответ не правильный

Теперь выполним всю команду без грепа, а результат сохраним в txt

D:\volatility_2.6_win64_standalone.exe -f “D:\volatility\Triage-Memory.mem” –profile=Win7SP1x64 dlllist >> D:volatility\list.txt

Здесь мы также терпим неудачу

 

 

Пробуем в powershell

PS C:\> D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 dlllist | Select-String "VCRUNTIME140.dll"

 

 

Опять мимо….

Проделал это в кали мне выдало 5 процессов, ответ 5

8. After dumping the infected process, what is its md5 hash?

После дампа зараженного процесса, каков его md5-хэш?

Ранее мы видели, что зараженный процесс имеет PID 3496 (т.е. “UWkpjFjDzM.exe”). Мы можем использовать плагин procdump для дампа исполняемого файла зараженного процесса, а затем получить его MD5-хэш.

D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 procdump --dump-dir D:\ -p 3496 

 

Выгрузив файл считаем хэш

 Certutil -hashfile D:\executable.3496.exe MD5

Упппс, даже стандартные средства защиты не дают проверить хэш и затирают файл executable.3496.exe

Тогда отключаем защитник windows, следующей командой и повторяем:

powershell Set-MpPreference -DisableRealtimeMonitoring $true

Получили заветный хэш 690ea20bc3bdfb328e23005d9a80c290

 

Загрузив исполняемый файл на VirusTotal, я вижу, что он был отмечен как вредоносный 58 поставщиками систем безопасности.

 

9. What is the LM hash of Bob’s account?

Каков LM-хэш учетной записи Боба?

Чтобы получить любые хэши в образе памяти, я использовал плагин hashdump в Volatility.

D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 hashdump

 

Искомое значение : aad3b435b51404eeaad3b435b51404ee

10. What memory protection constants does the VAD node at 0xfffffa800577ba10 have?

Какие константы защиты памяти имеет блок VAD по адресу 0xfffffa800577ba10?

Чтобы определить, какие константы защиты имеет блок VAD по адресу 0xfffffa800577ba10, мы можем использовать плагин vadinfo в Volatility выгрузим все в текстовый файл и найдем поиском нужное значение

 

D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 vadinfo >> vadinfo.txt

11. What memory protection did the VAD starting at 0x00000000033c0000 and ending at 0x00000000033dffff have?

Какую защиту памяти имеет блок VAD, начинающийся по адресу 0x00000000033c0000 и заканчивающийся по адресу 0x00000000033dffff?

Опять же найдем нужное значение в уже созданном файле vadinfo.txt,  использую поиск по значению

Start 0x00000000033c0000 End 0x00000000033dffff 

 

12. There was a VBS script that ran on the machine. What is the name of the script? (submit without file extension)

На машине был запущен VBS скрипт. Как называется этот скрипт? (предоставить без расширения файла)

Чтобы узнать имя VBS-скрипта, я могу использовать плагин cmdline в Volatility, чтобы определить, выполнялись ли какие-либо VBS-файлы из командной строки

 

 D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 cmdline

 

Значений не много, в файл выгружать не будем и выводе команды видим нужный нам VBS-скрипт

 

 

Исходя из вывода команды, я также вижу, что wscript.exe был использован для выполнения файла VBS.

13. An application was run at 2019–03–07 23:06:58 UTC. What is the name of the program? (Include extension)

Приложение было запущено в 2019-03-07 23:06:58 UTC. Как называется программа? (Укажите расширение).

Здесь используем плагин под названием shimcache, который анализирует ключ реестра Application Compatibility Shim Cache и сохранил результат вывода в текстовый файл для дальнейшего анализа.

D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 shimcache >> shimcache.txt

Теперь поиском ищем по дате:

 

 

14. What was written in notepad.exe at the time when the memory dump was captured?

Что было написано в файле notepad.exe в то время, когда был получен дамп памяти?

Сперва я сделал дамп памяти процесса notepad.exe с помощью volatility.

 D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 memdump --dump-dir D:\ -p 3032

 

С помощью утилиты strings.exe выгрузим все содержимое файла в 3032.txt

 

 

Далее с помощью комбинаций поиска Notepad – Goto Line и параметра flag находим запись

 

 

 

15. What is the short name of the file at file record 59045?

Какое имя файла по адресу файловой записи 59045?

Чтобы узнать имя файла в файловой записи 59045, мы можем использовать плагин volatility под названием mftparser и сохраним в txt (grep в винде такое по конец оправдываюсь)

D:\volatility_2.6_win64_standalone.exe -f "D:\volatility\Triage-Memory.mem" --profile=Win7SP1x64 mftparser >> D:\MFT.txt

 

Далее, как уже делал ранее ищу по поиску 59045

 

 

16. This box was exploited and is running meterpreter. What was the infected PID?

Эта машина была заражена и на ней запущен meterpreter. Каков был PID зараженного процесса?

Глядя на решение вопроса 8 выше, мы видим, что PID зараженного процесса был 3496.

Всем ИБ и подписывайтесь на канал itsecforu

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий