WinRM
O WinRM é a implementação do WS-Management da Microsoft no Windows, que permite aos sistemas acessar ou trocar informações de gerenciamento em uma rede comum. O acesso é feito via terminal, de forma semelhante ao SSH.
Configurando o Server
Modo GUI - Modo Manual
Iniciar
>Executar
>services.msc
Ative o serviço
Windows Remote Management (WS-Management)
Iniciar
>Executar
>gpedit.msc
Computer Configuration
>Administrative Templates
>Windows Components
>Windows Remote Management (WinRM)
>WinRM Service
Dê 2 cliques em
Allow remote server management through WinRM
Ao abrir o popup, marque a opção
Enabled
No campo
IP Filter
, coloque os IP's que podem se conectar no host, ou se preferir, adicione um*
para liberar acesso a todos os hosts
Em alguns casos, será preciso adicionar uma regra de excessão no firewall, então siga os passos a seguir, caso seja necessário:
Iniciar
>Executar
>wf.msc
No menu esquerdo, clique em
Inbound Rules
Clique com o botão direito em
Windows Remote Management (HTTP-In)
e depois selecioneEnable Rule
Feito isso, basta adicionar (ou criar caso não exista) o usuário que deseja utilizar para acessar via WinRM e adicioná-lo no grupo Remote Management Users
.
Modo GUI - Modo Prático
Semelhante a forma apresentada acima, incluindo as regras de firewall, porém de uma forma mais rápida.
Modo CLI (Powershell)
Iniciando o serviço
Adicionando o usuário que irá acessar via WinRM
Verificando a Configuração
Configurações completa
Retornando apenas a configuração do serviço
Configurando o Client
Modo GUI
Primeiro vá em Iniciar
> Executar
> gpedit.msc
, depois em Computer Configuration
> Administrative Templates
> Windows Components
> Windows Remote Management (WinRM)
> WinRM Client
. Dê 2 cliques em Trusted Hosts
e ao abrir o popup, marque a opção Enabled
e em TrustedHostsList
, coloque os IP's dos hosts que você irá se conectar, ou se preferir, adicione um *
para liberar acesso a todos os hosts.
Modo CLI (Powershell)
Para verificar quais hosts estão na lista de hosts confiáveis, utilize o comando:
Acessando WinRM
Inserindo comando no SO via WinRM sem deixar o shell interativo. Por padrão irá utilizar a porta 5985, então utilize o parâmetro -Port <port>
para utilizar outra porta.
Powershell
Em alguns momentos esse acesso precisa ser realizado em uma movimentação lateral, pois alguns módulos de execução de comando irão falhar (ex Metasploit), isso devido a acessos administrativos ou a necessidade de uma autenticação Kerberos. Então a partir de um host Windows, utilize os comandos abaixo para realizar um RCE:
ou
winrs.exe
winrm (Linux)
DICA: Sempre que puder chamar um comando sem deixar a shell interativa, chame o powershell.exe
ou cmd.exe
, assim irá ficar interativo.
Evil-WinRm (Linux)
Conectando com usuário e senha
Conectando com hash NTLM (Pass the Hash)
Verificando a versão do SO
Realizando download e upload de arquivos
Pegando todos os hashes NTLM com Evil-WinRM e Mimikatz.
Pegando todos os hashes com Evil-WinRM, SMBServer e Mimikatz.
Executando o Seatbelt.exe
DICA: Caso o antivírus barre algum tipo de execução, como por exemplo no caso do SeatBelt, utilize o comando Bypass-4MSI no Evil-WinRM para fazer bypass no AV.
PWSH (Linux)
Executando Comandos em Host Remoto
Sites
Last updated