Главная » Безопасность » Как спрятать файлы в NTFS?
Как спрятать файлы в NTFS

Как спрятать файлы в NTFS?

Мы уже рассказывали как с помощью стеганографии спрятать файл в картинку,  музыку или видео файл. Сегодня я покажу как с помощью всеми забытого способа, спрятать файлы в NTFS.

Кстати, вас также может заинтересовать статья «Как скрыть файл в другом файле в командной строке».

Как спрятать файлы в NTFS?

Простейший способ спрятать какую-то информацию в NTFS — положить ее в альтернативный поток (Alternative Data Stream, далее ADS). Трюк стар как сам мир: ему уже более 15 лет.

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

  1. Во-первых, когда создается файл в системе, данные записываются в стандартный поток $DATA. Любой, даже «бесправный», пользователь может создавать дополнительные потоки к файлам, причем даже к тем, к которым у него прав, по сути, нет.
  2. Во-вторых, информацию в потоках можно не только хранить, но и запускать. Далее, потоки можно создавать как к файлам, так и к каталогам (хотя из последних запустить файл не получится).
  3. В-четвертых, размер настоящего файла не меняется, а проводник не отображает дополнительных потоков.
  4. В-пятых, при пересылке файлов, например, по почте или на флешку, копируется только стандартный поток. То есть мы имеем достаточно лайтовый способ для сокрытия инфы, например, на работе.

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

Записываем текст в дополнительный поток — secrets.txt
echo "some secrets" > test.txt:secrets.txt

Кликаем сюда, если не удается скопировать.

Читаем текст из потока secrets.txt
more < test.txt:secrets.txt
notepad.exe test.txt:secrets.txt

Записываем исполняемый файл в поток
type C:\windows\system32\calc.exe > test.txt:calc.exe

Запускаем файл из потока (нужно указывать полный путь)
start c:\test.txt:calc.exe
wmic process call create \\.\c:\test.txt:calc.exe

Так как не все программы поддерживают дополнительные потоки, может возникнуть проблема с их открытием. Но она решается за счет создания символических линков с помощью mklink.
mklink link_fi le.txt test.txt:secrets.txt

Раньше встроенных способов для просмотра потоков в винде не было — теперь же для этого можно воспользоваться стандартной командой для листинга директорий с аргументом /R:

Кстати, еще одна интересная фича для обычной жизни. Всем известно, что в *nix’ах (UFS) есть жесткие ссылки (hardlink) на файлы, то есть файл у нас фактически один, а ссылок на него — много. Причем раскиданы они могут быть по всей системе.

Так вот в NTFS такая возможность тоже есть, но почему-то она «забылась» и особо не используется. Единственное ограничение для NTFS — жесткие ссылки могут быть только на одном логическом диске.

В XP это делается так:
fsutil hardlink create новая_ссылка исходный_файл

Начиная с Vista, это делается утилитой mklink c аргументом ‘/h’:
mklink /h новая_ссылка исходный_файл

Вас еще может заинтересовать статья «Создание невидимой папки в Windows». А на сегодня все. Теперь вы знаете как спрятать файлы в NTFS. Всем удачи и информационной безопасности!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *