2016-09-27 15 views
1

Для проверки безопасности, связанной с серверами Windows, я хотел бы попытаться загрузить ссылку Symbolic в веб-приложение Windows. Однако на основе официально доступной информации неясно, существуют ли жесткие ссылки Windows (которые, как я полагаю, совпадают с соединениями NTFS), как файл, который можно скопировать с жесткого диска так же, как в Linux. Это расплывчато, но я понимаю, что переходы NTFS - это некоторые другие артефакты файловой системы, которые отличаются от обычных файлов. Я не могу найти документацию, подтверждающую или отрицающую это. I.E NTFS. Я хочу знать, поддерживает ли NTFS прямую манипуляцию записью symlink, чтобы я мог перемещать символическую ссылку на другой компьютер.В Windows/NTFS можно перемещать символическую ссылку на другой компьютер?

Я знаю, что файлы софтлинк Windows (.lnk) не ограничены таким образом, но они не подходят для целей теста.

My Aim должен скопировать символическую ссылку с виртуальной машины, а затем загрузить ее на сервер, который я тестирую.

Возможно ли это? (У меня такое впечатление, что это не так.) Из того, что я видел абсолютно, каждая программа в Windows рассматривала бы hardlink как файл назначения. Есть ли способ обойти это, возможно, используя специальный редактор, чтобы временно повредить файл? Если символическая ссылка существует как обычный файл в файловой системе, можно ли изменить символическую ссылку, чтобы она могла перемещаться в не-ОС Windows для дальнейшего использования?

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

ответ

1

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

С другой стороны, жесткие ссылки реализуются как прямые ссылки на базовую запись MFT целевого файла и сохраняются как обычные записи внутри дерева каталогов. Фактически вы не можете отличить жесткую ссылку от «оригинального» файла (каждый файл и каталог на самом деле имеют хотя бы одну жесткую ссылку, поскольку она содержится где-то в дереве каталогов).

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

Фактический вопрос: используется ли интерфейс, который вы используете для выполнения операции копирования, позволяет создавать символические ссылки на цель.

+0

Я пытаюсь выполнить это, загрузив ссылку на веб-сервер через приложение. Цель состоит в том, чтобы обмануть IIS, следуя ссылке, чтобы я мог захватить файлы, которые не разрешены для моего пользователя. Замена файлов символическими ссылками - обычная атака на Unix-системы. – baordog

3

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

жесткие ссылки

Принято считать, что жесткие ссылки не могут быть отделены друг от друга, тем не менее, существует тонкое различие между связанными файлами и их «оригинальный» файл. Это отличие в том, что запросы к $MFT (используя аргументы, связанные с USN для функции winapi DeviceIOControl) возвращают только один из файлов. Это можно считать файлом . Затем вы можете вызвать функцию winapi NtQueryInformationFile, чтобы перечислить жесткие ссылки.

Symlinks и примыкания различных животных ...

Вы можете знать, что папка является узлом или символическая, получая атрибуты от него. В атрибутах есть флаг ReparsePoint, если это соединение или символическая ссылка. BTW - разница между соединениями и символическими ссылками заключается в том, что соединение является перенаправлением в другое место на том же томе, в то время как символическая ссылка является перенаправлением на неточное местоположение. Цель перенаправления - это всегда другая папка в любом случае.

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

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

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

С жесткими ссылками есть один интересный перекос в изображении безопасности NTFS. Если у пользователя есть доступ к файлу, и вы создаете жесткую ссылку на этот файл в папке, к которой у пользователя нет доступа, пользователь все равно может открыть этот файл, используя путь к жесткой ссылке. Это связано с тем, что ссылка и исходный файл указывают на один и тот же файл (и информацию о безопасности) на диске. Разрешения, измененные по любой из ссылок, влияют на все ссылки. Не зная этого, вы можете непреднамеренно нанести ущерб файловой системе :-)

Я знаю, что это немного врассыпную, поэтому позвольте мне подвести итог следующим образом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^