9 Октября, 2012

Обход ограничений безопасности в Windows

Dmitriy Evteev
На днях в rss-ленте проскочил вектор обхода Software Restriction Policies (SRP), датированный аж 2008 годом. Судя по проявленному интересу в твиттере , даже уже ставшие известными методы обхода ограничений безопасности в интернет-киосках и терминалках (включая Citrix ) по-прежнему вызывают интерес у аудитории. Это и побудило меня к написанию данной заметки. Речь пойдет о практических методах обхода излишней безопасности винды, воздвигнутой параноидальными силами администратора системы.

Для начала рассмотрим то, с чем приходиться бороться.

Политики ограниченного использования программ являются функциональной возможностью операционных систем Microsoft® Windows®. Эта важная функция предоставляет администраторам основанный на управлении групповыми политиками механизм идентификации программ, выполняющихся на компьютере, и контролирует возможность их выполнения. Политики ограниченного использования программ могут существенно повысить целостность и управляемость системы, что в конечном счете снижает стоимость владения компьютером. Подробнее: http://technet.microsoft.com/ru-RU/library/hh831534  AppLocker – продолжение развития SPR, подробнее: http://technet.microsoft.com/ru-ru/library/dd548340(v=ws.10).aspx

name='more'>
Будь то интернет-киоск или терминальный сервер, политика ограниченного использования программ, как правило, используется совместно с сокрытием всего и вся в графическом интерфейсе пользователя. Например, сокрытие формы запуска программ через контекстное меню пуск.


Если же защита ограничена лишь принципом "спрятать все", без использования политики ограниченного использования программ, то подобная "защита" легко обходиться стопятсот способами. Хорошая подборка методов по данному направлению содержится тут:  http://synjunkie.blogspot.com/search/label/Citrix  

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

Теперь вернемся к "хаку" 2008 года и предположим, что у нас задействована политика ограниченного использования программ близкая к настройкам по умолчанию т.е. возможен неограниченный запуск исполняемых файлов, расположенных в системных каталогах, в частности, выполнение исполняемых файлов, расположенных в корневом каталоге %SystemRoot%. Тогда магическая строка: "runas /trustlevel:Unrestricted <исполняемый файл>" позволяет без каких-либо дополнительных усилий и с правами непривилегированного пользователя обойти ограничения безопасности SRP. В случае если возникают затруднения с запуском "runas" по причине отсутствия соответствующих интерфейсов, достаточно выйти на диалог проводника, используя уже озвученные техники.

Приведенный пример с "runas" работает увы только в базовой сборке Windows XP (но зато до сих пор работает)). К слову, портированный "runas" с XP, отлично подходит и для обхода SRP на всех старших поколениях винды (в частности проверено на Windows 2003 и Windows 7). Разумеется, при этом должны быть соблюдены условия, позволяющие задействовать портированную сборку. Но, если ситуация удовлетворяет подобным условиям, можно смело ей пользоваться, не боясь алярмов аверов (ведь родная бинарь винды никогда не будет воспринята в качестве малвари).

Но это все были прелюдии. Теперь рассмотрим, что-же пользуют парни на настоящих пентестах.
Interactive Kiosk Attack Tool (iKAT) был разработан, чтобы помочь консультантам по безопасности при проведении работ по аудиту справиться с задачей выхода за пределы контролируемых сред, таких как Киоски, Citrix Terminals и WebTV's. iKAT предназначен для обеспечения доступа к функциям операционной системе из любого браузера. Подробнее: http://ikat.ha.cked.net/
Какие возможности предоставляет iKAT в части обхода ограничений безопасности в Windows?

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

Во-вторых, iKAT содержит целую пачку заранее собранных инструментов и эксплоитов, позволяющих обойти используемые ограничения безопасности (включая SRP/AppLocker/UAC) и повысить свои привилегии в системе.


И, наконец, в третьих, в составе iKAT доступны "заряженные" документы офисных форматов, которые в перспективе способствуют обходу политики ограниченного использования программ (разумеется, и тут не обошлось без эксплоитов). 

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



Как защититься на примере терминального сервера:

- При настройке SPR/AppLocker придерживайтесь стратегии минимизации разрешенных приложений для пользователей (используйте правило запрета по умолчанию для всех приложений)
- Своевременно обновляйте компоненты операционной системы и всех имеющихся приложений
- Используйте превентивные защитные механизмы (например, антивирусные средства, EMET и пр.; хотя умные люди грят , что и это не спасет)
- Откажитесь в принудительном порядке от использования макросов без наличия цифровой подписи (если это возможно)