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

Альтернативные потоки ntfs. Альтернативные потоки данных NTFS, или почему не запустился скрипт PowerShell

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

Цель этой статьи – описание альтернативных потоков данных в Microsoft Windows, демонстрация того, как их можно создать, скомпрометировав машину, используя Metasploit Framework и как можно обнаружить с помощью свободно распространяемых утилит.

1. Введение

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

2. Что такое альтернативные потоки данных

На сегодняшний день не всем известно о существовании альтернативных потоков данных. Однако какое-то время они использовались некоторыми не лучшими представителями сообщества специалистов безопасности. Было отмечено увеличение использования этих потоков злонамеренными хакерами, желающими спрятать свои файлы сразу после компрометации компьютера. Кроме этого, было замечено, что некоторые вирусы и другие типы злонамеренного ПО также используют альтернативные потоки данных. Проблема в том, что эти потоки нельзя просмотреть, используя стандартные методы, через командную строку или с помощью Windows Explorer.

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

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, находящуюся не в потоке, а в самой директории.

Читать еще:  Meizu pro 7 защита от воды. Телефоны Meizu с NFC

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

4. Решение проблемы

Что делать с проблемой злонамеренного использования альтернативных потоков данных. Есть несколько неплохих утилит, написанных талантливыми разработчиками Frank Heyne и Arne Vidstrom, которые позволяют обнаруживать альтернативные потоки данных.

Чтобы показать, что из себя представляют эти потоки и как их можно обнаружить будет показан снимок системы до компрометации и после. Для обнаружения альтернативных потоков данных в Windows 2000 мы воспользуемся утилитами lads и lns. Ниже показан вывод каждой из этих утилит, запущенных на недавно установленной W2K. Как и ожидалось, ничего не найдено. Теперь посмотрите на вывод этих утилит, полученный после компрометации компьютера жертвы. Как мы видим, вышеупомянутые утилиты успешно обнаружили созданные нами альтернативные потоки данных. Таким образом, используя свободно распространяемые утилиты, вы можете легко найти альтернативные потоки данных на вашем компьютере. Настоятельно рекомендуется производить такой поиск регулярно. В то время как некоторые производители антивирусов только начинают обращать внимание на альтернативные потоки данных, вы можете свободно использовать утилиту, созданную специально для обнаружения этих потоков.

5. Заключение

Подписывайтесь на каналы “SecurityLab” в Telegram и Twitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

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

сегодня я видел эту странную магическую поддержку системы NTFS: каждый файл может иметь несколько потоков данных. В основном можно иметь файл a.txt размера 0b, но может быть любое количество байтов, скрытых в отдельном потоке данных для этого файла. Это строго связанная с NTFS магия, и я не вижу никакой благородной причины для наличия этих потоков. Вы можете искать потоки NTFS с помощью streams утилиты от Sysinternals. Это покажет вам, что в основном каждый из этих неприятных thumbs.db файлы поставляется с дополнительным потоком данных.

хорошо, теперь я видел эту магическую работу в системе Windows NT4, потоки, добавленные в файлы, скопированные, удаленные (с помощью вышеупомянутой утилиты), но теперь я пытаюсь это дома в моей системе Win XP, Но, хотя я могу обнаружить существующие потоки, я не могу отображать их содержимое, не могу создавать новые, или очень многое, когда я использую filename:streamname синтаксис.

я получаю эту ошибку:

в имя файла, имя каталога или синтаксис метки тома неверно.

пример: Вывод из утилиты streams:

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

просмотр документации Microsoft на “как использовать NTFS альтернативные потоки данных” я вижу, что это относится к моей операционной системы, хотя они упоминают, что эти потоки не будут поддерживаться в будущем. Кто-нибудь может пролить свет на это?

6 ответов

С макушки моей головы:NTFS потоки данных были введены в Windows NT 4.0 и были вокруг всех потомков (за исключением потомков win-95: 98, Me). В XP, Vista и Win 7 они все еще вокруг. Пока версии Windows поддерживают NTFS, они будут поддерживать потоки файлов. Они будут поддерживать NTFS в течение длительного времени.

ошибка, которую вы имеете, описана на странице, которую вы показываете в своем вопросе. The type команда не понимает потоки. Использовать:

Читать еще:  Как раскрутить фейк вконтакте. Как распознать фейк-страницы ВКонтакте и для чего они используются? Для чего нужны такие фейк-страницы

работа с потоками

Microsoft имеет только несколько команд, которые работают с потоками, на самом деле, только , > работа с потоками, и поэтому могут использоваться только команды, которые могут работать с этими операторами перенаправления. Я написал пара сообщений в блоге на альтернативных потоках данных о том, как вы все еще можете управлять потоками только с помощью этих команд.

Streams будет работать только с программами, которые предназначены для работы с ними просто потому, что их нужно лечить специально (сравните точки соединения, также особенность NTFS, но драйвер скрывает детали, и программам не нужно делать ничего особенного: они просто считают точку соединения реальным файлом).

при попытке открыть поток файлов с помощью start filename:streamname и программа говорит что-то вроде “незаконное имя файла” или “файл не найден”, и вы уверены, что имя потока правильное, то, скорее всего, программа не поддерживает потоки. Я заметил, что Блокнот, Wordpad и Word/Excel правильно работают с потоками, хотя Word и Excel считают файлы опасными. Вот эксперименты вы можете попробовать.

Примечание: Вы, кажется, считаете альтернативные потоки данных нечетными. Они странные, потому что они настолько скрыты, но многие основные файловые системы (HFS, NSS) имеют его, и концепция восходит к началу 80-х. Фактически, первоначально потоки были добавлены в NTFS для взаимодействия с другими файловая система.

Альтернативные потоки NTFS, или как Widows определяет, что файл был загружен из Интернет.

&nbsp &nbsp Большинство пользователей современных операционных систем семейства Windows сталкивались с ситуацией, когда файл справки в формате CHM (Compiled Help Module) открывается лишь частично – можно просматривать только оглавление без содержимого его пунктов:

При выборе ссылки не открывается соответствующий раздел в правой части окна. Обычно, это происходит с файлами, которые были загружены из Интернет (не в составе архива, например).

Кроме этого, при попытке открыть файл CHM, содержащийся в общей сетевой папке, используя путь в формате UNC (Universal Naming Convention), например \serverhhelp.chm его разделы не отображаются. Другими словами, нормально просматривать файлы .chm можно только в тех случаях, если они не были получены по сети.

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

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

Механизм определения сетевого происхождения файлов.

В файловой системе NTFS каждый файл (или каталог) представлен как набор отдельных элементов, называемых атрибутами. Такие элементы, как имя файла, параметры безопасности и даже данные – все это атрибуты файла. Каждый атрибут идентифицирован кодом типа атрибута и, необязательно, именем атрибута. Так, например, имя файла содержится в атрибуте Filename, содержимое – в атрибуте DATA, сведения о владельце и правах доступа – в атрибуте Security Descriptor и т.д. Содержимое каждого файла (атрибут $DATA) представляет собой набор потоков, в которых хранятся данные. Для каждого файла или каталога в NTFS существует, как минимум один, основной поток, в котором, собственно и хранятся данные. Однако, кроме основного потока, с файлом или каталогом могут быть связаны и альтернативные (Alternate Data Stream – ADS), которые также могут содержать некоторые данные, никак не связанные с данными основного потока. Основной поток файла не имеет имени и обозначается как $DATA:””. Альтернативные же потоки обязательно имеют имя, например – $DATA:”StreamData” – альтернативный поток с именем StreamData

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

Например, запись в файл test.txt текста командой echo:

echo Main stream Data > test.txt – записать текст ” Main stream Data” в файл test.txt,что означает запись в основной неименованный поток.

Но можно изменить команду:

echo Alternate stream Data > test.txt:stream1 – записать текст ” Alternate stream Data” в альтернативный поток с именем stream1 файла test.txt

Читать еще:  Ретро-музыка. старинный романс "не пробуждай воспоминаний"

Теперь можно открыть, например, блокнотом каждый из потоков:

notepad test.txt – откроется содержимое основного потока с текстом ” Main stream Data”

notepad test.txt:stream1 – откроется содержимое альтернативного потока с текстом ”Alternate stream Data”

Альтернативные потоки, будучи невидимыми для стандартных средств работы с объектами файловой системы, тем не менее, очень часто используются для хранения дополнительных сведений о файлах и другой служебной информации. Так, например, при скачивании файлов из Интернет, браузеры добавляют к ним альтернативный поток с именем Zone.Identifier, который можно открыть блокнотом, как и в примере выше

notepad %USERPROFILE% Downloads ChromeSetup.exe:Zone.Identifier – открыть в блокноте альтернативный поток с именем Zone.Identifier для инсталляционного файла браузера Google Chrome с именем ChromeSetup.exe Путь к файлу можно не задавать, предварительно выполнив команду перехода в каталог загружаемых файлов текущего пользователя ( при стандартном расположении служебных пользовательских папок):

cd %USERPROFILE%Downloads – перейти в каталог загружаемых файлов.

notepad ChromeSetup.exe:Zone.Identifier – открыть альтернативный поток с именем Zone.Identifier для инсталляционного файла браузера Google Chrome с именем ChromeSetup.exe в текущем каталоге.

Как видим, содержимое альтернативного потока содержит строки:

[ZoneTransfer] – признак секции с описанием зоны передачи данных
ZoneId=3 – идентификатор зоны.

Эта информация дает возможность определить происхождение файла по номеру идентификатора ZoneId:

– локальный компьютер (Local).
1 – местная локальная сеть (Intranet)
2 – надежные сайты Интернет (Trusted Sites)
3 – Интернет (Internet)
4 – опасные сайты (Restricted Sites)

Такое определение зон, например, соответствует настройкам безопасности обозревателя Internet Explorer:

В данном случае, можно определить, что файл ChromeSetup.exe был получен из Интернет (идентификатор зоны = 3). При запуске такого файла, будет выдано предупреждение системы безопасности о ненадежном источнике. Аналогичным образом работают средства безопасности приложений Microsoft Office, когда предупреждают об опасности открытия файлов, которые были загружены из Интернет. По этой же причине не открывается содержимое файлов справок в формате CHM – содержимое альтернативного потока позволяет классифицировать их как опасные, независимо от реально существующей или несуществующей опасности.

Попробуйте изменить тем же блокнотом, значение ZoneId на , что будет соответствовать локальному происхождению файла, и предупреждение системы безопасности исчезнет, как и проблемы с открытием офисных документов или разделов справок в .chm-файлах.

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

Начиная с Windows 7 для получения перечня альтернативных потоков файлов можно использовать команду DIR с параметром /R:

dir /r %UserpRofile%Downloads – отобразить список файлов и альтернативных потоков в каталоге Downloads текущего пользователя.

Для работы с альтернативными потоками в любой версии ОС Windows можно использовать утилиту streams.exe из состава программного пакета Microsoft Sysinternals Suite. Пакет содержит множество небольших программ для диагностики, оптимизации и администрирования, в том числе, и утилиту, позволяющую восполнить недостатки в работе с альтернативными потоками.

Формат командной строки:

streams.exe [-s] [-d]file or directory

Параметры командной строки:

-s – обрабатывать подкаталоги.
-d – удалять альтернативные потоки.
-nobanner – не отображать стартовый баннер и сведения об авторских правах.

streams.exe /? – отобразить справку по использованию программы.

streams myfile.txt – отобразить сведения о потоках файла myfile.txt

streams –d myfile.txt – удалить альтернативные потоки файла myfile.txt

streams -d -s D:Downloads*.* – удалить альтернативные потоки всех файлов и подкаталогов в каталоге D:Downloads

В операционных системах Windows 8 и более поздних, командная оболочка PowerShell также позволяет работать с альтернативными потоками:

Get-Item -Path -Path C:FirefoxSetup.exe -Stream * – отобразить сведения о потоках файла C:FirefoxSetup.exe.

Get-Content -Path C:FirefoxSetup.exe -Stream Zone.Identifier – отобразить содержимое альтернативного потока Zone.Identifier файла C:FirefoxSetup.exe

Remove-Item -Path C:FirefoxSetup.exe -Stream * – удалить все альтернативные потоки, связанные с файлом C:FirefoxSetup.exe

Remove-Item -Path C:FirefoxSetup.exe -Stream Zone.Identifier – удалить альтернативный поток Stream Zone.Identifier, связанный с файлом C:FirefoxSetup.exe.

Информация о зонах безопасности широко используется в групповых политиках, и в частности, Диспетчером вложений Windows, выполняющим функции защиты от вредоносного ПО, которое может содержаться в почтовых вложениях или файлах, загруженных из Интернет. На сайте Microsoft размещена подробная статья о способах настройки диспетчера вложений и решения проблем, связанных с ним:
Описание работы диспетчера вложений, который входит в систему Microsoft Windows.

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

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