Альтернативные потоки данных в 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: Программная работа с потоками
    Метки:
    Поделиться публикацией
    Комментарии 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-поток у файла удаляется — все сразу работает без проблем.

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