Главная / Блог / Форензика файловых систем в CTF: Autopsy и TestDisk

13 мин.00

Форензика файловых систем в CTF: Autopsy и TestDisk

Форензика файловых систем в CTF: Autopsy и TestDisk

Первый дисковый образ на CTF я открыл в hex-редакторе — и три часа вручную искал магические байты 89 50 4E 47 среди гигабайта нулей и мусора. Флаг нашёл случайно, команда финишировала предпоследней в Forensics. После того турнира я методично разобрался с Autopsy и TestDisk, и на следующем CTF аналогичное задание ушло за 12 минут. Разница между «ковырять гексы вслепую» и «знать методологию» — три часа против четверти часа. Ниже — полный пошаговый разбор форензики файловых систем в CTF: от получения образа диска до извлечения флага, с конкретными командами и типичными ловушками.

Что внутри образа диска и зачем он нужен в CTF

Образ диска — побитовая (bit-by-bit) копия физического или виртуального накопителя. На CTF вы получаете файл-реплику жёсткого диска, USB-флешки или раздела. Внутри — файловая система со всеми данными, включая удалённые файлы, метаданные и свободное пространство (unallocated space). Подробнее — в нашем обзоре расследование кибератаки.

CTF Field Guide от Trail of Bits определяет форензику в CTF как «извлечение скрытой информации из статических файлов данных». Образы дисков — один из самых частых форматов в заданиях средней и высокой сложности. Новички обычно начинают с pcap-файлов и стеганографии, но на серьёзных соревнованиях ждут полноценный анализ файловых систем, triage и восстановление данных с диска.

Форматы образов, которые встречаются на соревнованиях

На CTF-площадках стабильно попадаются три формата:

Формат Расширение Особенности
Raw (dd) .raw, .dd, .img Побитовая копия без сжатия и метаданных. Самый распространённый в CTF
EnCase .e01, .E01 Формат AccessData/EnCase. Содержит контрольные суммы и метаинформацию об источнике
AFF .aff Advanced Forensic Format. Поддерживает сжатие и шифрование

Для CTF чаще всего используют raw — его проще создать, и он открывается чем угодно. Определить тип файла: file evidence.dd — она распознаёт сигнатуру файловой системы внутри образа.

Контрольные суммы и write-блокировка

Перед началом работы с образом фиксируем хеш. Это не формальность: на некоторых CTF проверяют целостность образа, а в реальной цифровой криминалистике повреждённый образ — недопустимое доказательство. md5sum image.dd или sha256sum image.dd — секундное дело. По ctf101.org, «валидация файлов — один из важнейших аспектов дисковой форензики: хеш изменится при любой модификации файла».

Самая частая ошибка новичков — монтирование образа в read-write. ОС обновляет access time файлов, журнал файловой системы меняется, метаданные искажаются. Часть артефактов теряется безвозвратно. Kali Linux имеет встроенный «forensics mode» с активированным write-блокером. Если работаете не в Kali — монтируйте образ явно с флагами защиты:

# Создаём forensic-копию (работаем с копией, не с оригиналом)
dd if=evidence.dd of=working_copy.dd bs=4M status=progress
# Монтируем копию в режиме только для чтения
mkdir /mnt/evidence
mount -o ro,loop,noexec working_copy.dd /mnt/evidence

Флаги ro (read-only), loop (работа с файлом как с блочным устройством) и noexec (запрет выполнения бинарников из образа) — минимальный набор для безопасного анализа.

Восстановление удалённых файлов в Autopsy: инструкция для начинающих

Autopsy — графический фронтенд к The Sleuth Kit (TSK), набору утилит для анализа файловых систем. Для компьютерной форензики в CTF Autopsy удобен тем, что парсит файловую систему, ищет удалённые файлы и строит таймлайны прямо из коробки — без единой команды в терминале.

Открытие образа и навигация по файловой системе

Последовательность действий:

  1. Запускаем Autopsy, создаём новый Case (имя кейса, директория для результатов).
  2. Add Data Source → тип Disk Image or VM File.
  3. Указываем путь к файлу образа (.dd, .raw, .e01).
  4. Autopsy предлагает запустить Ingest Modules — для CTF включаем как минимум Keyword Search, File Type Identification, Hash Lookup, Deleted Files Recovery.
  5. Ждём завершения индексации. Для образа 1–2 ГБ — обычно 3–7 минут.

После индексации в левой панели (Evidence Tree) — полная структура файловой системы. В разделе File Views → Deleted Files собраны все файлы, помеченные как удалённые. Именно они чаще всего содержат флаг.

Методология поиска артефактов

Методология из разбора hard disk analysis Zach Wong (и подтверждённая практикой многих CTF) — проверка пользовательских директорий в определённом порядке.

Для Windows-образов:

Desktop — часто содержит файлы, созданные или загруженные пользователем. На CTF флаг буквально может лежать в flag.txt на рабочем столе. Documents — рабочие документы; в продвинутых заданиях .docx-файлы могут содержать макросы. Downloads — загрузки из интернета; подозрительные файлы с двойным расширением (например, report.docx.exe) — классический индикатор компрометации. $Recycle.Bin — удалённые файлы, разделённые по SID пользователей (формат $I + $R + случайный идентификатор, но оригинальное имя и дата удаления сохраняются). C:\Windows\Temp и C:\Windows\Tasks — world-writable директории, куда атакующие любят складывать свои инструменты.

Для Linux-образов:

/home/user/ — домашняя директория, включая скрытые файлы (начинающиеся с точки). /tmp и /var/tmp — временные файлы. /var/log/ — журналы: auth.log, syslog. И отдельно — .bash_history. История команд — один из самых ценных артефактов, не забывайте про неё.

Стоит также проверить историю браузера. Chrome и Firefox хранят её в SQLite-базах. В Chrome — файл History по пути AppData/Local/Google/Chrome/User Data/Default/, в Firefox — places.sqlite в профиле пользователя. Autopsy парсит их автоматически в модуле Web Artifacts, но если нужен ручной анализ — экспортируйте файл и откройте в DB Browser for SQLite, таблица urls.

Таймлайн — ключевой инструмент для CTF-заданий, где нужно восстановить последовательность событий. В Autopsy: Tools → Timeline. На выходе — хронологическая шкала всех операций с файлами: создание, модификация, доступ, удаление.

На что смотреть в таймлайне:

Кластеры активности — группы файлов, созданных или модифицированных в узком временном окне (минуты). Обычно это следы действий атакующего. Разрыв между ctime и mtime — если ctime (время изменения метаданных) не совпадает с mtime (время модификации содержимого), это признак timestomping — подделки временных меток, техника T1070.006 (Defense Evasion) по MITRE ATT&CK. Файлы после последнего легитимного входа — пользователь залогинился в 10:00, а через 5 минут появились десятки новых файлов? Почти наверняка это то, что вы ищете.

Keyword Search в Autopsy ищет строки по всему образу, включая unallocated space. Для CTF задаём паттерны флагов: flag{, CTF{, picoCTF{, codeby{ и другие форматы конкретного соревнования. Autopsy просматривает не только существующие файлы, но и свободное пространство, где остаются фрагменты удалённых данных.

Анализ образов дисков с TestDisk: восстановление разделов и файлов

TestDisk и его компаньон PhotoRec покрывают задачи, которые Autopsy не тянет: восстановление повреждённых или стёртых таблиц разделов и carving файлов из неразмеченного пространства.

TestDisk: восстановление таблицы разделов

На CTF нередко попадается образ с повреждённой таблицей разделов — MBR затёрт нулями или GPT-заголовок повреждён. Autopsy в такой ситуации просто не увидит файловую систему. Это имитация техники Disk Structure Wipe (T1561.002, Impact) по MITRE ATT&CK.

Порядок работы с TestDisk:

  1. Запускаем testdisk working_copy.dd.
  2. Выбираем тип таблицы разделов: Intel для MBR, EFI GPT для GPT. Не уверены — TestDisk попытается определить сам.
  3. Analyse → Quick Search. TestDisk сканирует образ и ищет сигнатуры файловых систем: суперблоки ext4, NTFS boot sector, BPB для FAT.
  4. Quick Search не дал результатов — Deep Search. Дольше, но находит разделы даже при серьёзных повреждениях.
  5. Найденные разделы можно записать обратно в таблицу (Write) или перейти к просмотру файлов (клавиша P).
  6. Далее восстановленный образ открываем в Autopsy для детального анализа.

TestDisk восстанавливает MBR и таблицы разделов даже при полном затирании — он ищет резервные копии суперблоков и характерные паттерны файловых систем. Для CTF это значит: даже если образ выглядит «пустым» — рано сдаваться.

PhotoRec: carving файлов по сигнатурам

PhotoRec (входит в пакет TestDisk) игнорирует файловую систему и ищет файлы по магическим байтам — сигнатурам заголовков. Этот процесс называется file carving.

Где PhotoRec незаменим: файловая система полностью разрушена и TestDisk не восстановил разделы; нужно извлечь файлы из unallocated space; файлы были удалены и частично перезаписаны — PhotoRec вытащит то, что осталось.

PhotoRec распознаёт более 480 форматов файлов. Для CTF-заданий по форензике дисков критичны: PNG, JPEG, PDF, ZIP, DOCX, SQLite (базы данных браузеров).

Альтернативы — foremost и его более быстрый форк scalpel (оба делают carving по сигнатурам) и binwalk. По Trail of Bits CTF Field Guide, binwalk — «один из лучших инструментов для file carving». Особенно хорош для ситуаций «файл-в-файле»:

# binwalk: поиск встроенных файлов внутри образа
binwalk -e suspicious_image.dd
# foremost: carving файлов по сигнатурам из raw-образа
foremost -t png,jpg,pdf,zip -i working_copy.dd -o recovered/

Параметр -t задаёт типы файлов для извлечения, -o — директорию для результатов. После carving обязательно проверяйте извлечённые файлы командой file — расширение может не соответствовать реальному содержимому (и на CTF это случается постоянно).

Когда что использовать: Autopsy vs TestDisk vs командная строка

Ситуация Инструмент Почему
Образ с целой файловой системой Autopsy Полный GUI-анализ, таймлайн, keyword search, парсинг артефактов
Повреждённая таблица разделов TestDisk → Autopsy Сначала восстановить разделы, потом анализировать
Полностью затёртая ФС PhotoRec / foremost Carving по сигнатурам — единственный вариант
Файл-в-файле binwalk Рекурсивное извлечение вложенных данных
Быстрый первичный осмотр file, strings, hexdump Определить тип и искать plain-text подсказки
Точечное извлечение файла по inode fls + icat (Sleuth Kit) Когда знаешь, что ищешь, и нужна скорость

Анализ файловой системы NTFS и FAT: что остаётся после удаления

Понимание внутреннего устройства файловых систем отделяет CTF-игрока, который решает задания за минуты, от того, кто тыкается наугад. Форензика файловых систем в CTF требует знания — где именно остаются следы после удаления.

NTFS: MFT, $Recycle.Bin и alternate data streams

MFT (Master File Table) — ядро NTFS. Каждый файл и директория описаны записью в MFT. При удалении файла запись не стирается — лишь помечается как свободная. Данные файла остаются на диске, пока не будут перезаписаны новыми.

Что это даёт на CTF: утилита fls из Sleuth Kit показывает записи MFT, включая удалённые (помечены символом *), а icat извлекает содержимое файла по номеру MFT-записи.

# Просмотр файлов (включая удалённые) через Sleuth Kit
# Для образов с таблицей разделов сначала: mmls image.dd, затем укажите смещение через -o
fls -o <offset> -r -d image.dd
# -o: смещение раздела (из mmls), -r: рекурсивно, -d: только удалённые
# Извлечение файла по inode
icat -o <offset> image.dd 62 > recovered_file.txt

В NTFS есть ещё одна хитрость — Alternate Data Streams (ADS). Дополнительные потоки данных, привязанные к файлу. Файл readme.txt выглядит обычным текстовым, но readme.txt:hidden может содержать флаг. Техника связана с T1564.001 (Hidden Files and Directories, Defense Evasion) по MITRE ATT&CK. Autopsy и fls отображают ADS, в Windows их можно обнаружить через dir /r.

FAT32 и ext4: slack space и journal

FAT32 — файловая система без журналирования. При удалении файла первый символ имени в директории заменяется на 0xE5, а кластеры помечаются свободными в таблице FAT. Данные остаются нетронутыми. PhotoRec отлично работает с FAT32 — перезапись происходит последовательно и предсказуемо.

Slack space — пространство между концом данных файла и концом кластера. Файл занимает 500 байт, кластер — 4096 байт. Оставшиеся 3596 байт содержат данные от предыдущего файла, который сидел в этом кластере. На CTF флаги прячут именно в slack space — стандартный просмотр файла ничего не покажет, а hex-анализ в Autopsy обнаружит.

ext4 — стандартная ФС Linux. Использует inodes для описания файлов и journal для защиты от повреждений. При удалении ext4 обнуляет указатели на блоки в inode — это усложняет восстановление данных с диска по сравнению с NTFS. Но journal может содержать копии метаданных удалённого файла. extundelete и PhotoRec справляются с восстановлением в большинстве случаев.

Антифорензика в CTF-заданиях: техники по MITRE ATT&CK

На продвинутых CTF авторы заданий имитируют реального атакующего, который заметает следы. Знание техник антифорензики по MITRE ATT&CK помогает понять, что искать и где.

File Deletion (T1070.004, Defense Evasion) — удаление файлов для уничтожения улик. На CTF: ключевой файл удалён, и его нужно вытащить из unallocated space через Autopsy, fls/icat или PhotoRec.

Timestomp (T1070.006, Defense Evasion) — подделка временных меток. Файл с флагом может иметь дату создания 2005 года на образе системы, установленной в 2024. Как обнаружить: в NTFS каждая MFT-запись хранит два набора временных меток — $STANDARD_INFORMATION и $FILE_NAME. Первый легко подделать через стандартные API (SetFileTime), второй обновляется файловой системой автоматически при создании, переименовании, перемещении — и не может быть изменён через эти API напрямую. Расхождение между ними — надёжный индикатор timestomping. Autopsy показывает оба набора.

Hidden Files and Directories (T1564.001, Defense Evasion) — скрытие через атрибуты ОС: hidden/system в Windows, точка в начале имени в Linux, ADS в NTFS. На CTF всегда проверяйте все файлы без фильтрации — fls по умолчанию показывает всё.

Disk Content Wipe (T1561.001) и Disk Structure Wipe (T1561.002, Impact) — затирание содержимого диска или структуры разделов. На CTF это выглядит как повреждённый образ, где TestDisk и PhotoRec — единственные инструменты восстановления.

Direct Volume Access (T1006, Defense Evasion) — прямой доступ к тому в обход файловой системы (техника преимущественно для Windows). Данные записываются напрямую в unallocated space, минуя ФС. На CTF их обнаружат strings и binwalk, но не стандартный просмотр дерева директорий.

Практический чек-лист: CTF-задание с образом диска

Этот чек-лист покрывает подавляющее большинство задач Forensics, связанных с дисковыми образами.

Шаг 1. Идентификация и защита образа - Определить формат: file evidence.dd - Посчитать хеш: sha256sum evidence.dd - Создать рабочую копию: dd if=evidence.dd of=work.dd bs=4M - Всё дальнейшее — только с копией в режиме read-only

Шаг 2. Быстрый первичный осмотр - strings work.dd | grep -i "flag\|ctf{" — поиск флагов в открытом тексте (решает простые задания за 30 секунд). Флаг -o покажет смещение найденной строки для последующего carving через dd - binwalk work.dd — проверка на вложенные файлы и архивы - mmls work.dd (Sleuth Kit) — просмотр таблицы разделов и смещений

Шаг 3. Глубокий анализ в Autopsy - Открыть образ, запустить Ingest Modules - Проверить раздел Deleted Files - Пройти пользовательские директории: Desktop → Documents → Downloads → $Recycle.Bin (Windows) или /home → /tmp → /var/log (Linux) - Построить таймлайн и выделить кластеры подозрительной активности - Keyword search по паттернам флагов

Шаг 4. Если файловая система повреждена - TestDisk → Quick Search → Deep Search → восстановить разделы - PhotoRec → carving из unallocated space - foremost -t all -i work.dd -o output/

Шаг 5. Проверка скрытых данных - ADS в NTFS: fls -r image.dd | grep ":" — поиск альтернативных потоков данных - Slack space: Autopsy → выбрать файл → вкладка Hex, смотреть байты после конца данных - Скрытые файлы: fls -a -r image.dd — показать всё, включая скрытые

Шаг 6. Верификация - Сверить хеш рабочей копии с оригиналом — убедиться, что ничего не повредили - Каждый извлечённый файл проверить командой file — тип часто не соответствует расширению

Большинство CTF-заданий по форензике файловых систем решаются на шагах 2–3. Шаги 4–5 — для продвинутых задач, где авторы намеренно ломают структуру образа.

За четыре года участия в CTF и работы с инцидентами в лаборатории я вижу одну устойчивую проблему: формат CTF-задач по дисковой форензике застрял где-то в середине 2010-х. Большинство заданий сводится к «найди удалённый файл» или «восстанови картинку из unallocated space». Для тренировки базовых навыков — нормально, но реальную работу форензика это не отражает. В настоящем расследовании проблема не в том, чтобы найти файл, а в том, чтобы доказать — кто именно, когда и зачем его создал. Таймлайновый анализ, корреляция артефактов из разных источников (диск + память + трафик), работа с антифорензикой — эти навыки на типовых CTF прокачиваются слабо. Совет: если стандартные задачи уже не вызывают затруднений — переходите к составным кейсам, где образ диска дополняется дампом памяти и pcap-файлом. На стыке источников начинается настоящая цифровая криминалистика.

И ещё наблюдение, которое стоит зафиксировать: Autopsy и TestDisk покрывают процентов восемьдесят CTF-задач. Но оставшиеся двадцать требуют командной строки Sleuth Kit (fls, icat, mmls) и навыка писать скрипты на Python для работы с бинарными данными. GUI-инструменты скрывают детали — вы нажимаете «Recover» и не понимаете, что происходит на уровне MFT-записей или inode. Когда задание нестандартное, это понимание становится решающим. Попробуйте решить следующее задание по форензике без Autopsy — только fls, icat и hex-редактор. Разница в понимании будет ощутимой. На HackerLab есть лабы с дисковыми образами, где GUI не спасёт — именно для отработки этого навыка.

🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «pentest-machines».

Поделиться

0 комментариев

Пожалуйста, войдите, чтобы оставить комментарий.

Загрузка комментариев...

Читайте также

Pwntools для начинающих: от нуля до флага

11 мин.

4

Pwntools для начинающих: от нуля до флага

Практический гайд по pwntools: tubes, packing, cyclic, ELF, ROP. Три рабочих шаблона эксплойтов для CTF-задач на Python с разбором типичных ошибок новичков.

7 СЕНТЯБРЬ, 2026

Домашняя лаборатория для пентеста: от нуля до взлома

15 мин.

13

Домашняя лаборатория для пентеста: от нуля до взлома

Пошаговый гайд: Kali Linux в VirtualBox, изоляция сети, импорт VulnHub-машин и первый взлом Metasploitable 2. Проверено на десятках студенческих стендов.

6 СЕНТЯБРЬ, 2026

Стеганография CTF: ищем скрытые данные в файлах

13 мин.

9

Стеганография CTF: ищем скрытые данные в файлах

Пошаговый чек-лист для стего-тасков CTF: exiftool, binwalk, steghide, zsteg с рабочими командами. Ищем флаги в PNG, JPEG, WAV и архивах — от LSB до спектрограмм.

6 СЕНТЯБРЬ, 2026