Источник: https://github.com/AnaktaCTF/CTF/blob/main — Forensic/NTFS_features_to_hide_data.md

NTFS (New Technology File System) – это стандартная файловая система Windows, которая обладает множеством продвинутых функций, предназначенных для оптимизации работы системы и безопасности данных. Однако эти же функции можно использовать для сокрытия информации, что делает NTFS интересной мишенью в цифровой криминалистике (Forensics) и CTF-задачах.

image

В Forensics-челленджах злоумышленник может спрятать файлы так, что они не будут видны стандартными средствами. Для поиска таких данных участникам приходится разбираться в особенностях NTFS и применять специализированные инструменты.

В этой статье мы разберем несколько техник сокрытия данных:

• альтернативные потоки данных (ADS),

• манипуляции с метаданными файлов,

• использование скрытых NTFS-записей.


Альтернативные потоки данных (NTFS Alternate Data Streams, ADS)

Что такое ADS?

ADS – это особенность файловой системы NTFS, позволяющая хранить в одном файле несколько потоков данных. Основной поток данных хранится как обычно, а дополнительные — привязываются к файлу и не отображаются в стандартных командах и инструментах Windows.

Пример:
Создадим обычный текстовый файл и спрячем в нем дополнительную информацию:

image

Теперь, если посмотреть на secret.txt в Проводнике или командной строке (dir), его размер останется неизменным. Однако скрытый поток данных hidden никуда не пропал.

Тип потока по умолчанию — $DATA, который отвечает за хранение данных. Обычно его можно опустить.
NTFS позволяет файлам и каталогам иметь неограниченное количество потоков данных, но операционные системы Windows в стандартных утилитах (например, проводник или команда dir) показывают только основной поток.

Как обнаружить и извлечь ADS?

Чтобы проверить, есть ли у файла скрытые потоки, используем встроенную утилиту dir с ключом /r :

image
image

Dir - отображает список файлов и подкаталогов каталога. При использовании без параметров эта команда отображает метку тома диска и серийный номер, а затем список каталогов и файлов на диске (включая их имена и дату и время последнего изменения). Для файлов эта команда отображает расширение имени и размер в байтах. Эта команда также отображает общее количество файлов и каталогов, их совокупный размер и свободное пространство (в байтах), оставшееся на диске.

Ключ /r показывает альтернативные потоки данных (ADS) у файлов.

Для их извлечения можно использовать команду PowerShell:

image

Эта команда читает содержимое альтернативного потока данных (ADS) с именем hidden внутри файла secret.txt.

-Path secret.txt — указывает основной файл.

-Stream hidden — указывает имя ADS, который нужно открыть.

Get-Content — выводит данные из указанного потока на экран (в PowerShell).

Применение ADS в CTF-задачах

В CTF скрытые потоки часто используют для сокрытия флага. Например, организаторы могут спрятать flag.txt внутри README.md:

image

Чтобы найти флаг, участнику придется проверить ADS в файлах, которые кажутся бесполезными.


Манипуляции с метаданными и скрытые файлы

Атрибуты файлов (Hidden, System, Read-Only)

В Windows файлы можно скрыть простыми атрибутами:

• Hidden (H) — скрытый файл, не отображается в Проводнике по умолчанию.

• System (S) — системный файл, также скрыт.

• Read-Only (R) — файл доступен только для чтения, но не влияет на видимость.

image

Такой файл не отобразится в Проводнике, если не включена опция "Показывать скрытые файлы и системные файлы". Однако в CTF-задачах такие трюки легко обходятся через

attrib -s -h secret.txt.

Скрытие данных в Master File Table (MFT) – Resident Files

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

Resident и Non-Resident данные:

• Resident File — если файл очень маленький (обычно до ~700 байт), его содержимое может полностью храниться прямо в записи MFT.

• Non-Resident File — стандартное хранение: данные лежат в отдельных кластерах на диске, а MFT лишь ссылается на них.

Такие Resident файлы не обязательно "существуют" как отдельные видимые файлы на диске — их данные полностью прячутся внутри структуры MFT, что усложняет обнаружение стандартными методами (dir, Проводник и т.д.).

Как проверить?

Используем:

image

Если файл "невидим", его можно вытащить с помощью утилит вроде $MFT parser.


NTFS-записи и техники маскировки

Slack Space – остаточное пространство в кластерах

NTFS выделяет файлам кластеры фиксированного размера. Если файл занимает меньше места, чем кластер, в оставшемся пространстве могут оставаться данные от старых удаленных файлов. Это можно использовать для сокрытия данных.

Как найти Slack Space?

Используются криминалистические утилиты, такие как Autopsy или FTK Imager.

image
image

Autopsy — это бесплатная и мощная платформа для цифровой криминалистики (digital forensics). Она используется для анализа жестких дисков, образов дисков и других источников данных при расследованиях.

По сути — это графический интерфейс (GUI) над популярным forensic-фреймворком Sleuth Kit (TSK), который упрощает работу с данными.

Что умеет Autopsy?

Анализ MFT и NTFS:

• Autopsy может читать и интерпретировать Master File Table ($MFT).

• Показывает resident/non-resident данные, скрытые файлы, удалённые файлы и их фрагменты.

Работа с удалёнными файлами:

• Восстанавливает удалённые файлы из дисков или образов дисков (даже если их нет в файловой системе).

Поиск артефактов:

• Парсит лог-файлы Windows, браузерные данные, историю скачиваний, кэш браузеров и куки.

• Находит email, изображения, документы, следы мессенджеров и другие цифровые "следы".

Keyword Search:

• Можно задать поисковые слова (например, flag{, CTF{, password= и т.д.), и Autopsy будет искать их по всей файловой системе и нераспределённым секторам.

Carving:

• Инструмент может делать data carving — извлекать файлы из "сырых" байтов без опоры на файловую систему (например, вытянуть JPG или ZIP прямо из незанятых секторов).

Поддержка образов:

• Работает с образами дисков: .E01, .dd, .img, .raw, а также с физическими накопителями.

Плагины:

• Поддерживает сторонние модули для работы с сетевыми логами, артефактами мобильных устройств и др.

Autopsy часто применяют на forensic-задачах, чтобы искать флаги в скрытых файлах, извлекать данные из MFT, находить улики в slack space, делать carving "невидимых" картинок, архивов или текста.

FTK Imager — это бесплатный инструмент для быстрого создания и анализа судебных копий (образов) носителей информации. Он разработан компанией AccessData и часто используется в цифровой криминалистике и пентестах для получения данных с жёстких дисков, флешек, образов дисков и даже с оперативной памяти.

Основные возможности FTK Imager:

• Создание судебных образов (forensic image):

• Поддерживает форматы .E01, .AFF, .RAW (dd).

• Можно создать точную копию диска с сохранением всех данных и метаданных.

Просмотр дисков и образов:

• Позволяет открыть и исследовать как физические диски, так и уже существующие образы.

• Можно просматривать структуру файловой системы (NTFS, FAT, exFAT и другие).

Доступ к системным и скрытым файлам:

• Видит скрытые файлы, удалённые файлы, MFT, $LogFile, $Recycle.Bin, Volume Shadow Copy, ADS и т.п.

Поиск удалённых данных:

• Находит файлы, которые были удалены, но ещё остались в таблицах файловой системы.

• Показывает данные в unallocated space (нераспределённых секторах).

Просмотр и экспорт данных:

• Есть встроенный hex viewer.

• Можно извлечь любой файл или фрагмент данных без создания образа.

Снимок RAM:

• FTK Imager умеет создавать дампы оперативной памяти для анализа (memory acquisition).

Autopsy — мощный комбайн для комплексного анализа образов с автоматизацией (поиск удалённых файлов, артефактов ОС, веб-историй и т.д.).

FTK Imager — лёгкий и быстрый инструмент для съёма образов и ручного исследования данных (особенно полезен для "быстрого вскрытия" диска и поиска скрытых данных вроде ADS).

Жёсткая ссылка — это механизм файловой системы NTFS, позволяющий создать несколько ссылок (имён) на один и тот же физический файл.

Особенности:

• Ссылки указывают на одни и те же данные (один и тот же MFT-запись).

• Удаление одной ссылки не удаляет содержимое файла, пока существует хотя бы одна ссылка.

• Все жёсткие ссылки равнозначны — нет "основного" или "вторичного" файла.

В Windows можно создать жесткую ссылку, чтобы файл существовал в нескольких местах одновременно:

image

Файл new_file.txt и secret.txt указывают на одно и то же содержимое. Удаление одного файла не затронет второй. Это часто применяется для маскировки файлов.

Junction Point (точка соединения) — это разновидность symbolic link в NTFS, но только для директорий.

Особенности:

• Перенаправляет доступ с одного каталога на другой.

• Работает только для папок.

• Видится системой как "обычная" папка, но на самом деле это ссылка на другой путь.

Например, можно сделать скрытую ссылку на папку с важными файлами:

image

Обычные проверки dir или Проводник могут не показывать такие ссылки.

Важно:

Жёсткие ссылки работают только в пределах одного тома.

Junction Points можно создавать как внутри одного диска, так и к другим разделам.

Обычный Проводник или базовые команды часто не различают настоящую папку и junction.


NTFS предоставляет мощные инструменты для хранения и организации данных, но они же могут быть использованы для скрытия информации.
Альтернативные потоки, скрытые файлы, манипуляции с MFT и Hard Links – важные техники, которые часто встречаются в CTF-задачах.
В реальной цифровой криминалистике их знание помогает расследовать инциденты, находить скрытые данные и бороться с киберпреступностью.