19 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Содержание

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

Приветствую Вас, уважаемые читатели блога 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 в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда пошли альтернативные потоки данных?

Ключевым термином NTFS является MFT – Master File Table. Каждая запись MFT описывает конкретный файл и состоит из набора фиксированных атрибутов. Каждый атрибут содержит список полей, содержащих определённые значения.

Атрибуты бывают такими:

  • $10 – $STANDART_INFORMATION
  • $30 – $FILE_NAME
  • $80 – $DATA

Вообще их довольно таки много, но важно понимать, что каждая запись MFT представляет собой набор этих атрибутов.

Вот скриншот из программы DiskExplorer от Runtime’s (создатели GetDataBack). Я открыл произвольный файл (LOG.old) и слева отобразился перечень атрибутов. Здесь есть $10 – $STANDART_INFORMATION – стандартная информация. В этом атрибуте указываются временные метки файла и атрибуты DOS.

Атрибут $30 – $FILE_NAME – содержит имя файла. Если длина имени больше 8 символов (стандарт 8.3), то создаётся дополнительный атрибут $30 как для длинного имени, так и для короткого. Всё просто.

А вот другой скрин, на котором я отобразил атрибут $80 – $DATA, то есть содержимое файла:

Помните, я сказал, что если имя длинное, то у файла два атрибута $30, для каждого из имён? Это ключевой момент. Мы почти подошли к сути вопроса. Вообще у файла может быть несколько однотипных атрибутов, никто не запрещает. Так вот, а что будет, если у файла будет несколько атрибутов $DATA? То есть непосредственно содержимого. Да, такая ситуация возможна!…

Это и называется альтернативным потоком данных. Единственная особенность – должен быть атрибут $DATA по умолчанию (он задаётся без имени), остальные атрибуты $DATA должны быть поименованы, чтобы к ним можно было обратиться.

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

кто-нибудь объяснит, НАФИГА это нужно.

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

например антивирус касперского хранит в дополнительном потоке контрольную сумму файла, и если она совпадает с текущей, то файл не проверяется на вирусы (ведь вычисление контрольной суммы занимает меньше времени чем проверка на вирусы), а вся прелесть использования дополнительных потоков в том, что куда бы вы не перемещали файл, контрольная сумма всегда при нём.

можно к каждому файлу дописать свойства… например «категория» и потом в проводнике удобно выстраивать и сортировать файлы не просто по расширению, а по категорями, меткам.

> например антивирус касперского хранит в дополнительном потоке контрольную сумму файла, и если она совпадает с текущей, то файл не проверяется на вирусы

Что мешает вирусу заразить файл и подправить контрольную сумму на новую?

ну мы же не знаем полностью всех алгоритмов проверки у касперского.
уверен там реализована достаточна защита.

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

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

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

Так что о неуязвимости тут речь скорее всего не идет. Да и о прецедентах вроде пока не говорили.

Если сделано значит кому-то нужно, в коментах выше написано где это используется. Кроме этого винда хранит превьюхи к файлам в потоках файла thumbnails.db (вроде так файл называется). Касперский хранит метаданные о сканированных файлах так же в потоках.

Читать еще:  Превращение фотографии в рисунок: несколько способов для начинающих

Так же можно там хранить ЛЮБУЮ информацию потеря которой не критична (метаданные, кеш, или различные метки и тп), да даже теже конфигурационные файлы программы можно там хранить.

Phrozen ADS Revealer — это инструмент обнаружения альтернативных данных для Windows 2020

Table of Contents:

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

В последние годы вредоносное программное обеспечение или вредоносное ПО развились и стали более изощренными, поэтому есть программные и аппаратные технологии для защиты от вредоносных угроз и атак. Phrozen ADS Revealer — специальная программа для Windows, предназначенная для выявления возможных вредоносных ADS или альтернативных потоков данных файлов в вашей файловой системе .

Что представляют собой файлы альтернативного потока данных (ADS)

Если вы не знаете, ADS означает Альтернативный поток данных , характерная особенность Windows New Technology File System ( NTFS). Система содержит метаданные для поиска определенного файла по автору или названию. Врожденная опасность ADS заключается в том, что содержащаяся в нем информация не может быть изменена в какой-либо форме. Например, предоставление дополнительных данных «Название» в ADS файла не будет изменять размер файла или каким-либо образом изменить его функциональность. Это держит ADS скрытым и, следовательно, целевым местом для злоумышленников, в частности, создателей руткитов, чтобы скрыть свои инструменты. Phrozen ADS Revealer решает эту проблему для вас.

Инструмент обнаружения альтернативных данных

Замороженные ADS Revealer — бесплатная программа, разработанная специально для выявления возможных вредоносных файлов ADS в вашей файловой системе (Physical Hard Drive / Virtual Hard Drive / Physical Removable Device / Virtual Removable Device) и полностью удаляющих их.

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

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

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

Особенность Phrozen ADS Revealer — это позволяет пользователям полностью контролировать, как потенциальные угрозы должны быть обрабатываются. Например, пока выполняется сканирование и обнаружена угроза, могут быть выданы 2 типа команд,

  1. Резервное копирование выбранного документа ADS
  2. Удаление документа.

Программа не инициирует никаких действий со своей стороны автоматически .

Phrozen ADS Revealer загрузить

Разработка безопасных и интеллектуальных привычек просмотра может защитить вас от вредоносных программ и других угроз, таких как вирусы, но в тех случаях, когда возможность потери данных намного проще и восстановление данных после атаки вредоносного ПО затруднено, Phrozen ADS Revealer может оказать некоторую помощь в обеспечении защиты. Вы можете скачать его здесь .

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

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

Примечание. Альтернативные потоки данных в NTFS появились давным-давно, еще в Windows NT. Созданы они были для совместимости с файловой системой HFS, использующейся тогда на MacOS. HFS хранила данные о файле в специальном ресурсном потоке.

Файлы в NTFS поделены на атрибуты, одним из которых является $DATA, или атрибут данных. Потоки же являются дополнительными свойствами атрибута $DATA. По умолчанию существует один, основной поток $DATA:″″. Как видите, он не имеет названия, поэтому зовется неименованным. Также при желании можно создавать дополнительные, именованные потоки, напр. $DATA:″Stream1″. У каждого файла в NTFS может несколько потоков данных, содержащих различные, никак не связанные между собой данные.

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

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

echo This is main stream>streams.txt

А следующей командой запишем текст в альтернативный поток stream1:

echo This is alternate stream>streams.txt:stream1

Если теперь открыть файл streams.txt в любом текстовом редакторе, то мы увидим только первую запись, текст «This is alternate stream» останется скрытым. Прочитать скрытую в потоке stream1 информацию можно командой:

Альтернативные потоки можно добавлять не только к отдельным файлам, но и к директориям. Для примера добавим альтернативный поток stream2, содержащий текст «Hide stream in Streams», к текущей директории Streams:

echo Hide stream in Streams>:stream2

И выведем поток stream2 следующей командой:

Содержимое альтернативных потоков можно открывать не только в консоли. К примеру Блокнот (Notepad) тоже умеет обращаться к скрытым в потоках данным, если в имени файла через двоеточие указать имя альтернативного потока. Повторим предыдущий пример, немного изменив название потока на stream1.txt:

echo This is alternate stream>streams.txt:stream1.txt

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

Примечание. Стандартный Блокнот требует расширение txt в названии потока, иначе он не сможет его открыть. Более продвинутые редакторы, например тот же Notepad++, могут показывать содержимое альтернативного потока вне зависимости от его названия.

Наличие альтернативных потоков у файла никак не отображается в Проводнике и других файловых менеджерах. Для того, чтобы их найти, самый простой способ — это воспользоваться командой dir /R (начиная с Windows Vista), которая показывает все потоки данных, в том числе и альтернативные.

Вам может показаться, что применение альтернативных потоков ограничено текстовыми данными. Это совсем не так, и в альтернативных потоках можно хранить абсолютно любую информацию. Для примера создадим файл picture.txt и добавим к нему поток pic1.jpg, в который поместим одноименное изображение:

echo Picture>picture.txt
type pic1.jpg>picture.jpg:pic1.jpg

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

Подобным образом можно добавлять к любым типам файлов любые данные — к текстовым файлам добавлять изображения, к медиафайлам добавлять текстовую информацию и т. п. Что интересно, альтернативное содержимое не увеличивает видимый размер файла, к примеру добавив к 1кБ текстовому файлу HD-видео на 30Гб, проводник все равно покажет размер файла 1кБ.

Еще в альтернативные потоки можно прятать исполняемые файлы. К примеру возьмем файл test.txt и добавим приложение Блокнот (notepad.exe) в альтернативный поток note.exe:

А для запуска скрытого блокнота воспользуемся командой:

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

Утилита Streams

Для работы с альтернативными потоками существует несколько сторонних утилит, например консольная утилита Streams от Sysinternals. Она может определять наличие альтернативных потоков и удалять их. Утилита не требует установки, достаточно распаковать ее и запустить. Для примера проверим наличие потоков в папке Streams командой:

Streams.exe -s C:Streams

И удалим альтернативные потоки из файла streams.txt:

Streams.exe -d C:Streamsstreams.txt

PowerShell

PowerShell также умеет работать с альтернативными потоками — создавать, обнаруживать, выводить их содержимое и даже удалять. Для примера создадим текстовй файл:

New-Item -Type file -Path C:Streamsstream.txt

Добавим запись в основной поток:

Set-Content -Path C:Streamsstream.txt -Value ″Main stream″

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

Set-Content -Path C:Streamsstream.txt -Value ″Second stream″ -Stream Second

Затем выведем содержимое основного

Get-Content -Path C:Streamsstream.txt

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

Get-Content -Path C:Streamsstream.txt -Stream Second

Для того, чтобы обнаружить наличие альтернативных потоков, можно воспользоваться командой:

Get-Item -Path C:Streamsstream.txt -Stream *

А удалить лишние потоки можно командой:

Remove-Item -Path C:Streamsstreams.txt -Stream *

Использование

Альтернативные потоки используется как самой Windows, так и некоторыми программами. К примеру, Internet Explorer делит сеть на 4 зоны безопасности и при загрузке файлов добавляет к ним метки, которые содержат информацию о зоне, из которой они были загружены.

Читать еще:  Как удалиться из Одноклассников навсегда

Метки эти хранятся в альтернативном потоке и представляют из себя число от 0 до 4:

• Интернет (3)
• Местная сеть (1)
• Надежные сайты (2)
• Опасные сайты (4)
• Локальный компьютер (0)

Чтобы убедится в этом, перейдем в папку загрузок, возьмем файл, загруженный из интернета и проверим его на наличие альтернативных потоков. Как видите, в нем присутствует поток с именем Zone.Identifier, в котором есть строка ZoneID=3.

Это значит, что файл относится к недоверенной зоне Интернет, и при его открытии надо быть осторожным. Некоторые программы, например Word, считывают эти данные при открытии файла и выдают соответствующее предупреждение.

Также инфраструктура классификации файлов (File Classification Infrastracture, FCI) основана на использовании альтернативных потоков. Из сторонних программ альтернативные потоки используют некоторые антивирусные программы, в частности антивирус Касперского хранит в них контрольную сумму, полученную в результате проверки.

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

И еще, при использовании альтернативных потоков надо помнить, что они жестко привязаны к файловой системе NTFS. Для того, чтобы использовать их, файлы должны располагаться на дисках с NTFS, соответственно работать с ними можно только из под Windows. Если же переместить файл на любую другую файловую систему, то все потоки кроме основного будут потеряны. Также альтернативные потоки обрезаются при передаче файлов по FTP или при пересылке в качестве почтового вложения.

Для чего можно использовать скрытые потоки?

По секрету скажу, что в вашей системе скорее всего используется огромное количество файлов со скрытыми потоками. Наиболее популярные варианты использования – это пометки файлов, скачанных с недоверенных источников, пометки файлов, проверенных антивирусами, иные метки, позволяющие каким-то способом “подписать” файл. Замечали, что иногда, при открытии файла, скачанного с Интернета, появляется окно с предупреждением, что файл получен из Интернета и относиться к нему нужно осторожно? Как думаете, каким способом помечен файл?

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

Приветствую Вас, уважаемые читатели блога 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 в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Пример использования альтернативных потоков данных

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

В данном примере мы проникнем в компьютер, используя Metasploit Framework. Эксплойт, который я буду использовать основан на уязвимости MS04-011, также известной в Metasploit как “lsass overflow”. Для загрузки набора файлов, который мы хотим спрятать, будем использовать протокол TFTP. Затем эти файлы будут помещены в альтернативные потоки данных существующих файлов, найденных на уязвимом компьютере, что ясно продемонстрирует возможность их злонамеренного использования.

Как только эти действия будут завершены, сканер, загруженный на компьютер, будет удаленно запущен и начнется поиск других уязвимых машин во внутренней сети. H. D. Moore, один из соавторов Metasploit Framework, внедрил в эксплойт ASCII строку “METASPLOIT”. Можно предположить, что это было сделано для того, чтобы производители IDS смогли создать сигнатуру для его утилиты. Взгляните на пакет, отправленный с атакующего компьютера, показанный ниже, в котором можно заметить эту строку.

Обратите внимание, 192.168.1.102 – атакующий компьютер, использующий Metasploit Framework, а 192.168.1.101 – компьютер жертвы, на котором установлена ОС Windows 2000 Professional. Инсталляция W2K свежая, без каких-либо исправлений или пакетов обновлений, используется только для демонстрационных целей. Имейте в виду, что для злонамеренного использования альтернативных потоков данных, в первую очередь нужно найти машину с уязвимостью, годной к использованию. Не обновленная Windows 2000 в данном случае используется только для демонстрации, в реальной жизни для реализации атаки на обновленную систему потребовался бы другой эксплойт.

Ниже мы можем увидеть, что атака прошла успешно. Наша атакующая машина получила доступ к командной строке на компьютере жертвы. Порт 4321 – порт, используемый по умолчанию для lsass эксплойта в Metasploit. При желании он может быть изменен.

Теперь по протоколу TFTP начинается передача файлов от атакующего на скомпрометированный компьютер. Обратите внимание на команду, которая была передана командному интерпретатору, приказывающую жертве загрузить файл ipeye.exe. Загрузка файлов будет продолжаться до тех пор, пока мы не получим 4 файла: ipeye.exe, psexec.exe, pslist.exe, и klogger.exe. Для краткости я не стал приводить последовательную передачу пакетов. Ниже показано содержимое директории, содержащей загруженные файлы, на компьютере жертвы после завершения передачи. Имя этой директории — c:compaq. Ниже мы видим, как атакующий удаляет файл “tftp780” из этой директории. Это доказывает возможность удаления файлов. Теперь атакующий помещает исполняемый файл ipeye.exe в альтернативный поток данных, ассоциированный с существующим файлом test_file. Команда, осуществляющая эти действия, имеет следующий синтаксис: Процесс скрытия оставшихся трех файлов, загруженных на скомпрометированный хост, закончен. Они скопированы в альтернативные потоки данных существующего файла на компьютере жертвы. Точно также вы можете скопировать файл в поток каталога, например C:.

Читать еще:  Отказано в доступе к диску

Затем мы запустим psexec.exe на компьютере жертвы, который в свою очередь запустит сканер ipeye.exe, находящийся в альтернативном потоке данных c:Compaqtest_file:ipeye.exe. Заметьте, я использую копию psexec.exe, находящуюся не в потоке, а в самой директории.

Существует много способов запуска программы на Win32 компьютере. Один из вариантов создания процесса – использование команды “start”, что является простым решением, не оставляющим следов на машине жертвы. Некоторые хакеры вместо этого для запуска программы могут использовать bat-файл или другие средства. Фактически алгоритм работы хакеры не всегда может быть известен, и мы должны помнить – не все хакеры одинаковы. Подозрительные действия многих хакеров можно изучить, используя honeynet. Причина, по которой psexec.exe был выбран для этой статьи, очень проста – набор свободно распространяемых утилит, предоставляемых Sysinternals, часто используется хакерами. Поэтому для придания реализма статье я решил использовать именно их. Итак, продвинемся дальше и рассмотрим нижеприведенный пакет. Этот пакет является результатом исполнения следующей команды: Утилита для сканирования, ipeye.exe, часто используется хакерами для дальнейшего проникновения в сеть. Обратите внимание, для тестирования я использовал еще один компьютер, имеющий IP адрес 192.168.1.100 и слушающий 139 порт. Однако, как хакер, пришедший из внешней сети, для того чтобы найти это компьютер, я должен был бы произвести сканирование внутренней сети, используя один из зарезервированных диапазонов IP адресов. Анализируя приведенные пакеты, мы можем сделать вывод, что сканер портов отработал успешно. Мы получили информацию, что порт 139 на сканируемой машине действительно открыт. Так как этот компьютер находится в моей лаборатории, у меня есть возможности проверить и подтвердить результаты. Этот пример демонстрирует возможность злонамеренного использования потоков хакерами. Но нужно иметь в виду, что служащие компании потенциально могли скрыть такой нежелательный контент как порнография, юридически законный или незаконный в зависимости от конкретного места.

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

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

Примечание. Альтернативные потоки данных в NTFS появились давным-давно, еще в Windows NT. Созданы они были для совместимости с файловой системой HFS, использующейся тогда на MacOS. HFS хранила данные о файле в специальном ресурсном потоке.

Файлы в NTFS поделены на атрибуты, одним из которых является $DATA, или атрибут данных. Потоки же являются дополнительными свойствами атрибута $DATA. По умолчанию существует один, основной поток $DATA:″″. Как видите, он не имеет названия, поэтому зовется неименованным. Также при желании можно создавать дополнительные, именованные потоки, напр. $DATA:″Stream1″. У каждого файла в NTFS может несколько потоков данных, содержащих различные, никак не связанные между собой данные.

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

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

echo This is main stream>streams.txt

А следующей командой запишем текст в альтернативный поток stream1:

echo This is alternate stream>streams.txt:stream1

Если теперь открыть файл streams.txt в любом текстовом редакторе, то мы увидим только первую запись, текст «This is alternate stream» останется скрытым. Прочитать скрытую в потоке stream1 информацию можно командой:

Альтернативные потоки можно добавлять не только к отдельным файлам, но и к директориям. Для примера добавим альтернативный поток stream2, содержащий текст «Hide stream in Streams», к текущей директории Streams:

echo Hide stream in Streams>:stream2

И выведем поток stream2 следующей командой:

Содержимое альтернативных потоков можно открывать не только в консоли. К примеру Блокнот (Notepad) тоже умеет обращаться к скрытым в потоках данным, если в имени файла через двоеточие указать имя альтернативного потока. Повторим предыдущий пример, немного изменив название потока на stream1.txt:

echo This is alternate stream>streams.txt:stream1.txt

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

Примечание. Стандартный Блокнот требует расширение txt в названии потока, иначе он не сможет его открыть. Более продвинутые редакторы, например тот же Notepad++, могут показывать содержимое альтернативного потока вне зависимости от его названия.

Наличие альтернативных потоков у файла никак не отображается в Проводнике и других файловых менеджерах. Для того, чтобы их найти, самый простой способ — это воспользоваться командой dir /R (начиная с Windows Vista), которая показывает все потоки данных, в том числе и альтернативные.

Вам может показаться, что применение альтернативных потоков ограничено текстовыми данными. Это совсем не так, и в альтернативных потоках можно хранить абсолютно любую информацию. Для примера создадим файл picture.txt и добавим к нему поток pic1.jpg, в который поместим одноименное изображение:

echo Picture>picture.txt
type pic1.jpg>picture.jpg:pic1.jpg

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

Подобным образом можно добавлять к любым типам файлов любые данные — к текстовым файлам добавлять изображения, к медиафайлам добавлять текстовую информацию и т. п. Что интересно, альтернативное содержимое не увеличивает видимый размер файла, к примеру добавив к 1кБ текстовому файлу HD-видео на 30Гб, проводник все равно покажет размер файла 1кБ.

Еще в альтернативные потоки можно прятать исполняемые файлы. К примеру возьмем файл test.txt и добавим приложение Блокнот (notepad.exe) в альтернативный поток note.exe:

А для запуска скрытого блокнота воспользуемся командой:

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

Утилита Streams

Для работы с альтернативными потоками существует несколько сторонних утилит, например консольная утилита Streams от Sysinternals. Она может определять наличие альтернативных потоков и удалять их. Утилита не требует установки, достаточно распаковать ее и запустить. Для примера проверим наличие потоков в папке Streams командой:

Streams.exe -s C:Streams

И удалим альтернативные потоки из файла streams.txt:

Streams.exe -d C:Streamsstreams.txt

PowerShell

PowerShell также умеет работать с альтернативными потоками — создавать, обнаруживать, выводить их содержимое и даже удалять. Для примера создадим текстовй файл:

New-Item -Type file -Path C:Streamsstream.txt

Добавим запись в основной поток:

Set-Content -Path C:Streamsstream.txt -Value ″Main stream″

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

Set-Content -Path C:Streamsstream.txt -Value ″Second stream″ -Stream Second

Затем выведем содержимое основного

Get-Content -Path C:Streamsstream.txt

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

Get-Content -Path C:Streamsstream.txt -Stream Second

Для того, чтобы обнаружить наличие альтернативных потоков, можно воспользоваться командой:

Get-Item -Path C:Streamsstream.txt -Stream *

А удалить лишние потоки можно командой:

Remove-Item -Path C:Streamsstreams.txt -Stream *

Использование

Альтернативные потоки используется как самой Windows, так и некоторыми программами. К примеру, Internet Explorer делит сеть на 4 зоны безопасности и при загрузке файлов добавляет к ним метки, которые содержат информацию о зоне, из которой они были загружены.

Метки эти хранятся в альтернативном потоке и представляют из себя число от 0 до 4:

• Интернет (3)
• Местная сеть (1)
• Надежные сайты (2)
• Опасные сайты (4)
• Локальный компьютер (0)

Чтобы убедится в этом, перейдем в папку загрузок, возьмем файл, загруженный из интернета и проверим его на наличие альтернативных потоков. Как видите, в нем присутствует поток с именем Zone.Identifier, в котором есть строка ZoneID=3.

Это значит, что файл относится к недоверенной зоне Интернет, и при его открытии надо быть осторожным. Некоторые программы, например Word, считывают эти данные при открытии файла и выдают соответствующее предупреждение.

Также инфраструктура классификации файлов (File Classification Infrastracture, FCI) основана на использовании альтернативных потоков. Из сторонних программ альтернативные потоки используют некоторые антивирусные программы, в частности антивирус Касперского хранит в них контрольную сумму, полученную в результате проверки.

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

И еще, при использовании альтернативных потоков надо помнить, что они жестко привязаны к файловой системе NTFS. Для того, чтобы использовать их, файлы должны располагаться на дисках с NTFS, соответственно работать с ними можно только из под Windows. Если же переместить файл на любую другую файловую систему, то все потоки кроме основного будут потеряны. Также альтернативные потоки обрезаются при передаче файлов по FTP или при пересылке в качестве почтового вложения.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector