Страницы

Alternate Data Streams в NTFS


ADS - встроенная фишка файловой системы NTFS, которую никак нельзя выключить.



ADS позволяет добавлять любые файлы к другим файлам и даже каталогам (!). Сама ОС этим периодически пользуется, добавляя к скаченным из интернетов файлам поток "Zone.Identifier"

Zone.Identifier можно, кстати, править, дабы избавиться от предупреждений "этот файл скачан из интернета. Открыть в безопасном режиме?".

Добавить поток к любому файлу можно так:
type file1 > file2:file3

прочитать
more < file2:file3

попытаться обнаружить
dir /r

запустить exe так:
start file2:file3

если на сработало, то так:
mklink file4 file2:file3
start file4

Вот это, к примеру, привяжет калькулятор к корневому диску С (!) и запустит его через ссылку

Как это можно использовать? Ну, во-первых, это уже используют малварщики для хранения исполняемых файлов и файлов конфигурации, поэтому нужно знать куда смотреть в случае чего. Во-вторых, автор этой статьи на Гиктаймс обошел механизмы контроля доступа DallasLock с помощью обращения к служебному потоку $DATA. Думаю, такой трюк может сработать и с многими другими средствами защиты и даже вебсерверами.

[UPDATE] ADS вещь достаточно популярная и у разработчиков. Антивирусы там часто хранят метаданные, Dropbox вот тоже создает поток com.dropbox.attributes с нечитаемым содержимым.

5 комментариев:

  1. Под манипуляции с $DATA даже отдельную CWE'ху выделили: https://cwe.mitre.org/data/definitions/69.html Из личного опыта: http://www.slideshare.net/kochetkov.vladimir/web-aspnet-55906343/5 - причем багу нашел вообще случайно, пока готовился к тому докладу :))

    ОтветитьУдалить
    Ответы
    1. Круто! Вообще сложно представить себе менее полезную "фичу" Windows.

      Удалить
  2. Я так ради смеха в общей файловой шаре мультик хранил. Года два пролежал, пока сервер не заменили.

    ОтветитьУдалить
    Ответы
    1. Вся прелесть ADS и шар еще в том, что они на лимитах не сказываются.

      Удалить
    2. Это ты про квоты?
      ....
      Побежал проверять :)
      P.S. Кстати, вредоносов хранить в потоках нет смысла, т.к. для АВ [большинства АВ, т.к. АВ Попова есть :-)] без разницы. А прятать данные да, прикольно :-)

      Удалить