Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #69, СЕНТЯБРЬ 2004 г.

Деструктивные потоки

A.M.D.F. (amdf@mera.net.ru)

Xakep, номер #069, стр. 069-076-1


Работа с файловыми потоками в NTFS

Взламывая очередную NT-систему и устанавливая самодельный шпионский софт, остерегайся: на сервере могут стоять специальные утилиты, контролирующие целостность системных файлов, и злобный админ с красными глазами почти сразу запалит твой мегабайтный лог с паролями, который ты по дурости положил в system32. Чтобы избежать этого, многие начинают изобретать велосипед, в то время как сами программисты Microsoft все уже придумали до нас :). Точи коньки, сегодня ты научишься вытворять с NTFS настоящие пируэты!

Возможности NTFS

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

А как насчет того, чтобы сохранять инфу в такое место, которое не будет видно ни из проводника, ни из командной строки, ни из любого файлового менеджера? Такую возможность нам предоставляет файловая система NTFS. На обычной домашней персоналке ее редко встретишь, так как большинство пользователей по-прежнему предпочитают FAT32, даже те, кто сидит под XP. Но зато в локальной сети какой-нибудь крутой организации, работающей под Win2k/XP, почти наверняка используется NTFS: эта файловая система предоставляет широкие по меркам Windows возможности квотирования дискового пространства, разграничения прав доступа, шифрования и компрессии файлов. Кроме того, NTFS в силу своей организации гораздо более надежна, чем FAT32. Так что метод сокрытия данных, который я опишу, идеально подходит для промышленного шпионажа. С появлением же Longhorn NTFS имеет шанс обосноваться и на дисках домашних компов, т.к. грядущая файловая система WinFS, основанная на NTFS, обещает дополнительные возможности по упорядочиванию и поиску информации, которые должны привлечь домашних пользователей.

Крепим данные к файлам

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

Альтернативные файловые потоки NTFS – это одна из возможностей NTFS, присутствующая в ней еще с самых ранних версий Windows NT. Она заключается в том, что у одного файла может быть несколько потоков, содержащих данные, причем пользователю доступен лишь главный поток, в котором хранится содержимое файла, остальные же потоки через обычный файловый менеджер юзеру разглядеть не удастся. Нечто похожее реализовано в файловой системе HFS на макинтошах. Там потоки (streams) называются разветвлениями (forks). До недавнего времени они использовались для хранения некоторых ресурсов файла либо информации о типе. С появлением Mac OS X Apple рекомендовала помещать ресурсы в отдельные файлы, а типы файлов определять по расширениям, таким образом, отпала сама необходимость в поддержке этих самых разветвлений. Однако разработчики системы не отказались от потоков, т.е. они поддерживаются системой, но никак не используются. Вернее, используются – людьми, ломающими Mac OS :).

Содержание  Вперед на стр. 069-076-2