
Исследователь в области кибербезопасности Мэтт Гребер нашел интересный метод обхода белых списков приложений в Windows. Помимо этого, эксперт описал технику выполнения произвольного неподписанного кода в winrm.vbs.
winrm.vbs (подписанный Windows скрипт в System32) способен выполнять контролируемый злоумышленником XSL, который не попадет под ограничения «enlightened script host», в результате это приведет к выполнению произвольного неподписанного кода.
«Если вы добавляете “-format:pretty” или “ -format:text” в winrm.vbs, он вытащит WsmPty.xsl или WsmTxt.xsl из каталога, в котором находится cscript.exe. Это значит, что атакующий может скопировать cscript.exe в нужное ему место, где находится вредоносный XSL», — пишет специалист.
«Благодаря этому киберпреступник может добиться выполнения произвольного неподписанного кода. Эта техника практически идентична описанному Кейси Смитом методу с использованием wmic.exe».
Что касается Proof-of-Concept, эксперт опубликовал следующие шаги:
- Поместить вредоносный файл WsmPty.xsl или WsmTxt.xsl в контролируемую атакующим директорию.
- Скопировать файл cscript.exe или wscript.exe в ту же самую директорию.
- Выполнить winrm.vbs с «-format», указав «pretty» (если был помещен файл WsmPty.xsl) или «text» (если был помещен файл WsmTxt.xsl).
Исследователь привел пример вредоносного XSL, который можно поместить в контролируемый злоумышленником каталог. В качестве примера эксперт помещает файл по этому пути — C:\BypassDir\WsmPty.xsl.
<?xml version='1.0'?>
<stylesheet
xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:user="placeholder"
version="1.0">
<output method="text"/>
<ms:script implements-prefix="user" language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd.exe");
]]> </ms:script>
</stylesheet>
Грамотное оформление вредоносного файла WsmPty.xsl должно включать использование встроенного пейлоада DotNetToJScript, приводящего к выполнению произвольного кода.
«В процессе помещения файла WsmPty.xsl можно использовать следующий пакетный файл для запуска пейлоада», — объясняет эксперт:
mkdir %SystemDrive%\BypassDir
copy %windir%\System32\cscript.exe %SystemDrive%\BypassDir
%SystemDrive%\BypassDir\cscript //nologo %windir%\System32\winrm.vbs get wmicimv2/Win32_Process?Handle=4 -format:pretty