Программист
0,0
рейтинг
14 декабря 2008 в 19:35

Альтернативные потоки данных в NTFS или как спрятать блокнот

Введение


Поддержка альтернативных потоков данных (AltDS) была добавлена в NTFS для совместимости с файловой системой HFS от Macintosh, которая использовала поток ресурсов для хранения иконок и другой информации о файле. Использование AltDS скрыто от пользователя и не доступно обычными средствами. Проводник и другие приложения работают со стандартным потоком и не могут читать данные из альтернативных. С помощью AltDS можно легко скрывать данные, которые не могут быть обнаружены стандартными проверками системы. Эта статья даст основную информацию о работе и определении AltDS.

Создание AltDS


Создать AltDS очень легко. Для этого воспользуемся командной строкой. Для начала создадим базовый файл, к которому будем прикреплять наши потоки.
C:\>echo Just a plan text file>sample.txt

C:\>type sample.txt
Just a plan text file

C:\\>

Далее мы воспользуемся двоеточием в качестве оператора, чтоб указать на то что будем использовать AltDS:
C:\\>echo You can't see me>sample.txt:secret.txt

Для просмотра содержимого можно использовать следующие команды:
C:\ more < sample.txt:secret.txt

или
C:\ notepad sample.txt:secret.txt

Если все работает хорошо то увидите текст: You can't see me, а при открытии из проводника данный текст виден не будет.Также AltDS можно прикрепить не только к файлу, но и к папке. Для этого создадим папку и прицепим к ней какой-нибудь текст:
C:\>md stuff
C:\>cd stuff
C:\stuff>echo Hide stuff in stuff>:hide.txt
C:\stuff>dir
Volume in drive C has no label.
Volume Serial Number is 40CC-B506Directory of C:\stuff
09/28/2004 10:19 AM <dir>.
09/28/2004 10:19 AM </dir><dir>…
0 File(s) 0 bytes2 Dir(s) 12,253,208,576 bytes free
C:\stuff>notepad :hide.txt

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

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


Скрыть приложения используя AltDS так же легко, как и тестовые файлы. Для начала снова создадим базовый файл:
C:\WINDOWS>echo Test>test.txt

Далее поместим наше приложение в поток, для примера я использовал notepad.exe:
C:\WINDOWS>type notepad.exe>test.txt:note.exe

Теперь убедимся что в нашем файле все также текст:
C:\WINDOWS>type test.txt
Test

А теперь самое интересное, запустим наше спрятанное приложение:
C:\WINDOWS>start .\test.txt:note.exe
C:\WINDOWS>

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

UPD:
Утилиты по работе с AltDS (список взят из статьи по ссылке выше):


LADS — List Alternate Data Streams by Frank Heyne
www.heysoft.de/Frames/f_sw_la_en.htm

Streams.exe from SysInternals:
www.sysinternals.com/ntw2k/source/misc.shtml#streams

ScanADS command line tool:
www.kodeit.org/products/scanads/default.htm

ADS Spy GUI Scanner:
www.spywareinfo.com/~merijn/downloads.html

Crucial ADS GUI Scanner:
www.crucialsecurity.com/downloads.html

ADS Detector for Explorer:
www.codeproject.com/csharp/CsADSDetectorArticle.asp

Windows ports of Unix tools like CAT:
unxutils.sourceforge.net

UPD2: Программная работа с потоками
Алексей @fuCtor
карма
76,7
рейтинг 0,0
Программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (53)

  • +2
    А нельзя ли как-нибудь вывести список скрытых таким образом файлов? а то было дело ко мне один вирус прицепился, его как раз не было видно под виндой. Под досом было видно, и только загрузившись с диска я его смог удалить
    • +1
      Добавил список, взял из оригинальной статьи. Часть из них преимущественно консольные.
    • 0
      dir /r
      • 0
        C:\WINDOWS>dir /r
        Недопустимый ключ: «r».
        • +1
          Видимо, оттого, что не виста.
    • 0
      В полном варианте статьи, ссылка на который приведена автором в самом конце, объясняется команда lads, которая как раз и знимается поиском альтернативных потоков в заданом месте. Это то, что вам нужно, сходите по ссылке.
      • 0
        Извиняюсь, конечно не команда, а программа.
    • +1
      Можете использовать например RootkitRevealer от sysinternals, многие вирусы отлично этим пользуються как вы уже заметили.
  • 0
    Спасибо, про существование потоков был в курсе, но как с ними работать не знал.
  • +4
    ещё один вариант порнуху прятать
    • –1
      остаются следы — суммарный объём файлов будет много меньше объёма диска. лучше создать отдельный диск и отмонтировать его.
      • 0
        А в диск менеджере, конечно, его никто не догадается поискать :)
        • +2
          есть специально искать — найти можно всё, что угодно %-)
      • +1
        И, уходя, вытащить из компьютера, чтобы не запалили :)
  • +2
    Старо как мир.
    Спасибо за список утилит.
  • +1
    Спасибо, не знал такого. Очень интересно, это сколько же гадостей можно наделать =)
    • –3
      Ни одной.
      Ну, спрячете что-нибудь, ну и какая в этом гадость? С таким же успехом можно запихнуть куда-нибудь поглубже в обычную папку и тоже никто не найдет, если специально искать не будет.
      От некоторых вообще достаточно скрыть простой установкой атрибута «hidden» :)
  • 0
    спасибо
  • –2
    Зачем делать «type файл > файл»? Есть команда «copy».
    • +1
      Не «файл > файл», а «файл > поток». Команда copy не умеет работать с потоками (не понимает соответствующего аргумента).
      • 0
        У меня осталось в памяти, что я как-то копировал с её помощью, может через указание имени устройства.
      • 0
        У меня осталось в памяти, что я как-то копировал с её помощью, может через указание имени устройства.
  • +4
    Всё же проводник немного работает с потоками… поместить произвольную информацию в дополнительные потоки конечно он не позволит, но вот всякие комментарии, теги, метки и тп, он как раз сохраняет в дополнительный поток. Так же, проводник предупреждает о потери этих самых потоков, при копировании информации на файловую систему которая не поддерживает потоки (например FAT32, CDFS… )
    • +3
      Еще с ними работают браузеры (например, IE) — пишет туда поток Zone.Information, из какой зоны был скачан этот файл.
      Если из достаточно небезопасной (интернет), то будет переспрашивать при попытке запуска и в окошке свойств будет соответствующий текст и кнопка «разблокировать».
      • +1
        А я-то всё думал, что это в авире-антивире последний проверенный файл часто остаётся… твоё-моё...:Zone.Identifier. А это вот что! Спасибо.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      вы антисемит?
      • –1
        хотите поговорить об этом?)
      • НЛО прилетело и опубликовало эту надпись здесь
    • +3
      это слепок, если статью скопипастят без указания линка на автора :)
      • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    А можно обыкновенным WinRAR'ом заархивировать в альтернативный поток все что угодно… просто пишешь имя архива, например, такое note.txt:secret — и вуаля… он все запакует в этот поток
    • 0
      в папку не пишет, только в файлы
  • 0
    Если кому интересно — Крис Касперски писал статью, где давал скелет вируса, работающего с файловыми потоками.
  • –1
    Отличная вещь если хочешь что-то спрятать от чужих глаз! Применяю данный фокус в купе с truecrypt на своей флешке в качестве passkeeper'a.
  • +1
    Правильная ссылка на тулзу от Sysinternals: technet.microsoft.com/en-us/sysinternals/bb897440.aspx
  • 0
    Интерестно, не знал)
    Кстати, сразу вопрос — а как удалить то что записал туда? И, если закинул туда файл, как его скопировать обратно?
    Пытался выполнить это с PNG картинкой через команду more (more<sample.txt:1.PNG>2.PNG), но картинка становиться на 1 кб больше и больше не открываеться)
    • 0
      Попробуйте написать так:
      more<sample.txt:1.PNG>2.PNG:mystream
  • 0
    Cсылка на Streams битая.Вот правильная
  • –1
    кто-нибудь объяснит, НАФИГА это нужно???

    топик-постер дал примеры утилит с помощью которых всё скрытое можно видеть, так что для стеганографии не годится. Кто-нибудь даст хоть какой-нибудь правдоподобный сценарий где эта «фича» может пригодится кому-нибудь кроме писателей троянов и вирусов?
    • +2
      например антивирус касперского хранит в дополнительном потоке контрольную сумму файла, и если она совпадает с текущей, то файл не проверяется на вирусы (ведь вычисление контрольной суммы занимает меньше времени чем проверка на вирусы), а вся прелесть использования дополнительных потоков в том, что куда бы вы не перемещали файл, контрольная сумма всегда при нём.

      можно к каждому файлу дописать свойства… например «категория» и потом в проводнике удобно выстраивать и сортировать файлы не просто по расширению, а по категорями, меткам.
      • –1
        хмм… значит это кусок infamous WINFS. В Linux похожий функционал обещали в reiser4, но гуру вроде решили что это нагромождение мета-данных не нужно.
      • 0
        > например антивирус касперского хранит в дополнительном потоке контрольную сумму файла, и если она совпадает с текущей, то файл не проверяется на вирусы

        Что мешает вирусу заразить файл и подправить контрольную сумму на новую?
        • 0
          ну понятно же, что она там не в открытом виде лежит… да и вариантов рыба+md5 никто не отменял :-)
          • 0
            Что мешает вирусу использовать те же алгоритмы и ту же рыбу+md5 для новой контрольной суммы? Даже если там все шифруется каким-то внутренним паролем или ключем, то весь вопрос в том, когда вирус научится этот ключ находить (он на том же компе!). Первый вирус, который это сделает, станет неуязвимым для касперского… Сдается мне, что-то здесь перепутано.
            • 0
              ну мы же не знаем полностью всех алгоритмов проверки у касперского.
              уверен там реализована достаточна защита.

              к тому же фича включается выключается по желанию в настройках, да и в последних версиях появилась такая вещь как «собственная защита» вполне себе препятствие на пути «узнавания» ключа.
            • 0
              Мешает то, что всего не предусмотришь. Даже зная о такой «фишке» добавлять спец-функционал для работы с потоками файловой системы — достаточно «накладно».

              1) Работь это будет только, если стоит касперский.
              2) Эффект заключается лишь в том, что файл не всегда будет проверятся повторно. После обновления баз проверка должна быть выполнена в любом случает.
              3) Если вирус неизвестный, то лишь есть вероятность, что его поймает эвристика. И тут париться с суммами какого-то касперского смысла почти нет. Ну, проверят файл еще раз — и ладно. Если известный, то скорее он будет пойман раньше, чем у него появится возможность написать что-нибудь в потом.

              Так что о неуязвимости тут речь скорее всего не идет. Да и о прецедентах вроде пока не говорили.
              • 0
                Спасибо за разьяснения. Теперь все стало на свои места :) Опциональная фича, которая не гарантирует «непроверяемость», думаю, действительно того не стоит.
    • +2
      Если сделано значит кому-то нужно, в коментах выше написано где это используется. Кроме этого винда хранит превьюхи к файлам в потоках файла thumbnails.db (вроде так файл называется). Касперский хранит метаданные о сканированных файлах так же в потоках.

      Так же можно там хранить ЛЮБУЮ информацию потеря которой не критична (метаданные, кеш, или различные метки и тп), да даже теже конфигурационные файлы программы можно там хранить.
    • 0
      сейчас вирусы/трояны друг друга прячут/достают туда/оттуда
  • 0
    Забавные фокусы. Вот еще rarjpeg: lurkmore.ru/Rarjpeg
  • 0
    Использование AltDS скрыто от пользователя и не доступно обычными средствами.
    Как по мне, оказывает всё очень открыто.
  • +1
    Касперский антивирус таким способом хэши файлов хранит.
    В связи с этим, по моим наблюдениями в 2003-й винде и в ХР невозможно копирование таких файлов по сети (через сетевое окружение), файл сперва копируется до 100%, а потом выдает ошибку и не сохраняется. Вот так… Как только NTFS-поток у файла удаляется — все сразу работает без проблем.

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