Альтернативные потоки данных в NTFS или создание секретных файлов

Рубрика: Windows
14 января 2016

Приветствую Вас, уважаемые читатели блога webcodius.ru. Файловая система NTFS обладает интересной возможностью поддержки альтернативных потоков данных (Alternate Data Stream, ADS). Технология подразумевает под собой, то, что каждый файл в файловой системе NTFS может иметь несколько потоков, в которых могут храниться данные. Проводник и большинство других приложений работают только со стандартным потоком и не могут получить данные их альтернативных. Таким образом с помощью технологии ADS можно скрывать данные, которые не удастся обнаружить стандартными способами.

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

Немного теории

В файловой системе NTFS файлы имеют атрибуты. Один из атрибутов $DATA является атрибутом данных. В свою очередь атрибут $DATA может иметь несколько потоков. По умолчанию существует один основной поток $DATA:"", который называют неименованным. С этим потоком как раз и работает проводник windows. При желании к файлу можно добавить несколько именованных потоков (например $DATA:"potok1"), которые будут содержать различные не связанные между собой данные.

По умолчанию все данные, записываемые в файл, попадают в основной неименованный поток данных. И при открытии файла мы видим только основной поток. Альтернативные потоки NTFS, которые есть у файла, скрыты от пользователя и штатными средствами их не увидеть. Поэтому удалив файл с потоками, содержащими объемные данные, можно заметить, что места на устройстве хранения данных освободилось значительно больше, чем занимал файл по мнению того же Проводника. Альтернативными потоками часто пользуются вирусы, которые могут прописать себя в именованый поток какого-нибудь безобидного файла.

Для работы с альтернативными потоками можно использовать специальные программы, либо командную строку.

Как создать альтернативный поток NTFS

Создать альтернативный поток можно с помощью консольной команды echo.

Для начала откроем командную строку cmd.exe и с помощью команды echoсоздадим текстовый файл example.txt и запишем в него текст:

echo Главный поток>example.txt

Следующей командой запишем данные в альтернативный поток. Для этого после названия файла ставите двоеточие (:) и даете название потоку:

echo Альтернативный поток>example.txt:test

Теперь если открыть файл example.txt в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

альтернативный поток NTFS

Получить информацию содержащуюся в потоке можно с помощью команды more:

more <example.txt:test

альтернативный поток в командной строке

Увидеть содержимое потока можно не только в командной строке. Например, открыть альтернативный поток в популярном текстовом редакторе Notepad++ можно с помощью следующей команды:

«C:\Program Files (x86)\Notepad++\notepad++.exe» example.txt:test

альтернативный поток в notepead++

Обычный Блокнот может открывать только те потоки, название которых заканчивается на «.txt». Для примера, добавим к нашему файлу поток test.txt:

echo Альтернативный поток для блокнота>example.txt:test.txt

И откроем его в блокноте:

notepad.exe example.txt:test.txt

альтернативный поток в блокноте

В альтернативные потоки, можно помещать не только текстовые данные, а абсолютно любые типы данных. Кроме того к любым типам файлов можно добавлять любые данные — к текстовым файлам добавлять видео, а к изображениям текстовую информацию.

Для примера добавим к нашему файлу поток с изображением img.jpg. Для этого воспользуемся командой type:

type img.jpg>example.txt:img.jpg

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

альтернативный поток NTFS

Чтобы открыть содержащееся в альтернативном потоке изображение, например в Paint-е, достаточно воспользоваться командой:

mspaint example.txt:img.jpg

картинка в альтернативном потоке

Что самое интересное альтернативные потоки не увеличивают видимый объем файла. Так если к текстовому файлу размером 1 Кб добавить видео размером 30 Гб, то проводник все равно покажет размер файла 1 Кб.

Также потоки можно добавлять для папок и даже для разделов жесткого диска. Делается все также как и для файлов:

echo Текст в папке>c:\test:hide.txt

И открываем в блокноте:

notepad c:\test:hide.txt

Так как наличие альтернативных потоков никак не отображается в проводнике и других файловых менеджерах, самый простой способ их обнаружить это воспользоваться командой dir /R:

просмотр потоков

Скрытие приложений в альтернативных потоках и их запуск

Поместить исполняемые файлы в альтернативные потоки также легко как и обычные файлы. Для примера возьмем наш файл example.txt и поместим приложение Блокнот (notepead.exe) в поток hideapp.exe:

type C:\Windows\system32\notepad.exe>example.txt:hideapp.exe

Чтобы запустить скрытый Блокнот используется следующая команда:

start .\example.txt:hideapp.exe

С помощью описанных приемов можно легко спрятать информацию от неподготовленных пользователей. Вообще применение альтернативных потоков данных ADS ограничено только вашей фантазией.

На этом все, до новых встреч!

(5 оценок, среднее: 4,20 из 5)
Loading...

Получай статьи почтой:


Комментарии
  1. Наталья

    Спасибочки за подробную инструкцию по созданию альтернативных потоков)) Будем пробовать) =)

    15 сентября 2016 21:30
  2. Hdpape

    В 1993 году Microsoft выпустила первую версию операционной системы Windows NT , в которой была реализована файловая система NTFS. Эта файловая система может работать с несколькими именованными потоками, получившими название «Альтернативные потоки данных». Поддержка ADS была реализована для совместимости с уже существующими операционными системами, позволяющими хранить метаданные для файлов (например, файловая система HFS ).

    В операционной системе Windowsальтернативные потоки данных используются для хранения таких атрибутов, как сведения об авторе, название и иконка файла. Начиная с Service Pack 2 для Windows XP , Microsoft представила службу Attachment Execution Service , которая сохраняет в альтернативных потоках данных подробную информацию о происхождении загруженных файлов в целях повышения безопасности.

    29 сентября 2018 04:49
  3. Человек

    У меня разрыв шаблона, какой-то трешак! В каждом файле можно спрятать что угодно. Сразу возникают вопросы:

    1) Видят ли антивирусы и онлайн-сканеры (VirusTotal например) альтернативные потоки в файлах? Сдаётся мне что ничерта они не видят, так же как и всякие сравнивалки файлов через подсчёт контрольных сумм.

    2) Какие системы программирования поддерживают работу с альтернативными потоками?

    3) Вопрос риторический, к «микрософту»: «это сделано для безопасности»? Ох, рилли? Лукаво скрывать полную информацию, хранимую в файле? Неосведомлённость обычного юзера — самая первая огромная дырень в безопасности!!! Вообще, любые усложнения редко приводят к повышению безопасности. Безопасная система => простая система. Вот один из постулатов настоящей безопасности. А глядя на винду, возникает чувство что она специально задумывалась как рассадник червей, троянов, уязвимостей и прочего дерьма!

    1 марта 2019 15:13
  4. Человек

    Поискал — большинство вменяемых антивирусов — их видят и сканируют тоже. А вот до VirusTotal они не доходят!

    5 марта 2019 11:58
  5. Некто

    Вопром к автору, а на Windows XP как узнать список потоков? Ключа R там нет...

    10 апреля 2019 00:32

Оставить комментарий




Subscribe without commenting