Как скрыть папку на windows server 2012

Перечисление файлов с коротким именем в IIS

21.9.2016

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

Рассматриваемая уязвимость не позволяет узнать имена всех файлов в заданной папке, а только тех, которые сохраняются вместе с их сокращенным именем, использовавшимся во времена DOS, т.е. в формате 8.3 (8 символов для имя файла и 3 символа для его суффикса). Хотя современные Windows позволяют сохранять имена файлов длиной до 255 символов, они по-прежнему имеют параметр по умолчанию для сохранения имен файлов в их короткой форме для обратной совместимости. Файлы, имена которых укладываются в этот размер, не имеют сохраненного короткого имени и не могут быть пронумерованы описанным способом. Однако, учитывая, что большинство файлов dotnet размещаются в IIS с расширением .aspx, состоящим из 4 символов, у нас есть неплохая надежда, что перечисление тильды даст нам более чем достаточно данных.

Как создавать короткие имена файлов

Windows генерирует короткие имена из длинных следующим образом:

  • Из имени файла удалены специальные символы и пробелы: . » / \ [ ] : ; = ,
  • Для суффикса учитывается только часть после последней точки. Очень длинное имя файла.123.456.789.txt => ЭТО

1.TXT Если последним символом в имени файла является точка, она игнорируется. Это очень длинное имя файла.123.456.789. => ТЕЗИС

1789 Windows сокращает имя файла без расширения до 6 символов, за которыми следует символ тильды (

1.» Если необходимо создать уже существующее имя, будут использоваться дополнительные наречия «

«

3,».

  • Windows сократит длинусуффиксы до 3 символов.
  • Все буквы в полученном имени преобразуются в верхний регистр.
  • Windows создает короткое имя файла, даже если исходное имя было короче 8 символов, но содержало пробелы. Файл .doc => АФАЙЛ
  • Читайте также:  Как установить pro100 на windows 10

    Как работает перечисление тильды в IIS

    Теперь вам может быть интересно, как на самом деле работает перечисление Tilde? Весь поток основан на возможности доступа к файлам через имена файлов, содержащие подстановочные знаки (символы * и ?) или обозначение звездочкой. Например: http://www.example.cz/soub*.* . Подобные подходы не будут работать для длинных имен файлов, тогда как при использовании коротких (8.3) имен, когда мы используем тильду, за которой следует умножение в нашем выражении, сервер будет возвращать разные результаты, если файл существует, а если нет.

    Мы знаем, что короткие имена файлов всегда содержат символ тильды

    с последующим inslicn, например. длинное имя default.aspx будет записано в сокращенной форме как DEFAUL

    1.АСП. В звездной нотации этот файл будет соответствовать записи: *

    1.* (т. е. все до тильды, затем тильда, единица, точка и все, что после точки). Если мы хотим узнать, соответствует ли какой-либо файл на сервере данной записи с подстановочными знаками, попробуем посетить адрес:

    Вам интересно, почему окончание .aspx добавлено в конец? Причина проста: запрос перенаправляется в сеть для обработки. Если веб-сервер уязвим, он вернет другой результат (код состояния 404), если файл существует, и другой результат (код состояния 400), если файл не существует. Поэтому, чтобы иметь возможность распознать, склонен ли сервер к перечислению тильды, нам все равно придется протестировать какое-то другое выражение, которому уж точно не будет соответствовать ни один файл на сервере, например. qwxqwx

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

    Так как же можно перечислить файлы, хранящиеся на сервере? Мы просто спросим, ​​есть ли файл, начинающийся с «a» . Если нет, мы спрашиваем, есть ли файл, начинающийся с «b» и т. д.

    Если такой файл существует, мы можем сразу же спросить, существует ли файл, первые два символа которого «ba» , затем «bb» , «bc» и так далее, пока не появится второй символ. Точно так же мы также найдем от третьего до последнего символа сокращенного имени всех файлов в данной папке.

    Читайте также:  Как создать приложение для windows на java

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

    Поэтому вам нужно найти соответствующее длинное имя файла. Его можно угадать, а можно получить с помощью перебора или словаря. Например, в этом могут помочь инструменты Burp Suite и DirBuster. Однако часто достаточно просто спросить у Google, который знает ответ на все вопросы, а значит, возможно, и какое длинное имя у искомой вами сокращенной версии.

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

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

    Уязвимость или особенность?

    Упомянутая уязвимость впервые была опубликована в 2012 году, хотя Microsoft была проинформирована о ней еще в 2010 году, и она функционировала на серверах с IIS версии 5.0 и 6.0. еслитак что теперь вы спрашиваете, был ли сегодня (в 2016 году), когда мы сталкиваемся с этими версиями лишь спорадически, какой-то смысл в исправлении этой уязвимости, то знайте, что это так. Эта уязвимость все еще существует, и даже в IIS 7.5 или IIS 8.5 ее можно использовать для сбора информации. Единственное, что изменилось с 2012 года, это то, что мы больше не можем использовать HTTP-метод GET для перечисления, а должны прибегать к какому-то другому методу, включенному на сервере, например. TRACE , OPTIONS , DEBUG и т.п.

    Автоматические инструменты

    Если описанная процедура кажется длительной, не отчаивайтесь. Уже создано несколько автоматических сканеров. Относительно быстрым инструментом является, например, сканер коротких имен IIS, созданный на Java, основным преимуществом которого является возможность перечисления с помощью ряда различных методов HTTP, и поэтому он успешно работает даже на серверах с более новыми версиями IIS 7.x или 8.x. Единственным небольшим недостатком является то, что после завершения перечисления инструмент перечисляет только короткие имена файлов, не предлагая возможности найти их аналог в исходной длинной версии.

    Читайте также:  Как самостоятельно установить обновления для windows 10

    Второй известный сканер — это инструмент перечисления Tilde, написанный на python, который может работать только с серверами версий 5.x и 6.x, но может проверять короткие имена файлов на их оригинальные длинные эквиваленты с помощью словаря. .

    Защита

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

    C:\>FSUTIL.EXE 8dot3name query D:
    Состояние тома для параметра Disable8dot3 равно 0 (создание имени в формате 8.3 включено).
    Статус реестра для параметра NtfsDisable8dot3NameCreation — 2,значение по умолчанию (установлено на уровне пакета).
    На основе двух упомянутых выше настроек имя создается в формате 8.3 на томе D: включено.

    C:\>FSUTIL.EXE 8dot3name set D: 1
    Поведение имени в формате 8.3 успешно установлено.

    C:\>FSUTIL.EXE 8dot3name query D:
    Состояние тома для параметра Disable8dot3 равно 1 (создание имен в формате 8.3 отключено).
    Состояние реестра для параметра NtfsDisable8dot3NameCreation — 2, значение по умолчанию (установлено на уровне громкости).
    На основе двух упомянутых выше настроек имя создается в формате 8.3 на томе D: отключено.

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

    Все неиспользуемые методы HTTP, такие как TRACE , OPTIONS , DEBUG и подобные, не должны быть отключены на сервере.

    Поделиться с друзьями
    ОС советы