# HumanAI Мир захлестнул ИИ‑контент: генерации, копии, шум. Но где‑то в памяти системы есть то, что создано человеком. Найди это https://git.caplag.ru/kernel/HumanAI ## Решение Всего есть два варианта решения: 1. Плановое решение: восстановление контейнера VeraCrypt + извлечение криптоключей из RAM. 2. Незапланированное решение: извлечение флага через кэш миниатюр Windows. Сразу же загружаем дамп памяти в **Volatility**, выполняем базовые команды (`pslist`, `filescan` и т. д.). Что интересного узнаём: - VeraCrypt был запущен; - контейнер `human.vc` был смонтирован. ### Потихоньку-помаленьку Проверяем следы присутствия **VeraCrypt**: ```powershell vol -q -f .\memdump.mem windows.modules | Select-String -Pattern "veracrypt|truecrypt" -CaseSensitive:$false vol -q -f .\memdump.mem windows.pslist | Select-String -Pattern "veracrypt" -CaseSensitive:$false vol -q -f .\memdump.mem windows.symlinkscan | Select-String -Pattern "VeraCrypt|Volume" -CaseSensitive:$false ``` Из этого мы сможем вытянуть достаточно важную информацию. Как минимум мы получим *модуль драйвера* VeraCrypt, его *процесс* и *букву смонтированного тома* вида `K:` -> `\Device\VeraCryptVolume...`. ### Плановый вариант решения Начнем с того, что восстановим `human.vc` из памяти. Ищем файловый объект: ```powershell vol -q -f .\memdump.mem -r csv windows.filescan | Select-String -Pattern "human\\.vc|\\.vc$" -CaseSensitive:$false ``` Дальше выгружаем файл через `dumpfiles`: ```powershell mkdir out\dumpfiles -Force | Out-Null vol -q -f .\memdump.mem -o out\dumpfiles windows.dumpfiles --filter "human\\.vc$|human\\.vc" --ignore-case ``` Обычно нужный файл находится среди объектов `SharedCacheMap` (часто с расширением `.vacb`). П Пароль может не сохраниться в памяти, поэтому надёжнее идти через мастер-ключи. Одна из рабочих точек входа - *Big Pool*: ```powershell vol -q -f .\memdump.mem -r csv windows.bigpools | Select-String -Pattern "VCMM|TC|VC" -CaseSensitive:$false ``` Дальше нужно производим выгрузку памяти по подходящим `pool tag` и осуществляема поиск пар ключей AES-256 для XTS (`key_a`, `key_b`). Основными признаками, что мы вышли на верные ключи: - находятся две разные 32-байтовые последовательности; - они стабильно повторяются в связанных дампах. Проверяем, что ключи действительно дешифруют начало файловой системы. Для VeraCrypt данные начнутся после оффсета на `0x20000`. После AES-XTS-дешифровки сектора структура должна быть похожа на boot sector файловой системы и сигнатуры и поля должны выглядеть осмысленно, а не как случайный шум. После подтверждения ключей и оффсета: - расшифровываем контейнер; - парсим файловую систему (в этом таске была FAT32); - извлекаем файлы и находим флаг. ### Неожиданный вариант решения Эта ветка сработала без полного дешифрования контейнера. В дампе можно искать строки, связанные с путём к файлу флага: ```powershell strings -n 6 .\memdump.mem | Select-String -Pattern "flag|thumbcache|\\\.png|\\\.jpg|K:\\" -CaseSensitive:$false ``` Таким образом в памяти встретится путь к `flag.png` на смонтированном томе VeraCrypt. Теперь проверим, есть ли исходный файл в файловых объектах: ```powershell vol -q -f .\memdump.mem windows.filescan | Select-String -Pattern "flag\\.png|flag" -CaseSensitive:$false ``` Напрямую файл `flag.png` найти не получится, но это не тупик. Приступаем к изучению следующего потенциального кандидата - кэш миниатюр Windows: ```powershell vol -q -f .\memdump.mem windows.filescan | Select-String -Pattern "thumbcache_.*\\.db|thumbcache" -CaseSensitive:$false ``` Выгрузим найденные объекты: ```powershell mkdir out\thumbs -Force | Out-Null vol -q -f .\memdump.mem -o out\thumbs windows.dumpfiles --filter "thumbcache_.*\\.db|thumbcache" --ignore-case ``` И теперь, наконец, извлечем изображения из дампа кэша. Как вариант, можно воспользоваться `carving`: ```powershell cd .\out\thumbs Get-ChildItem -File | ForEach-Object { binwalk -e -M $_.FullName } ``` После этого просматриваем извлечённые изображения. Флаг окажется в одной из миниатюр.