Esse shell é o último shell do WinRM para hackers / pentesting.WinRM (Windows Remote Management) é a implementação da Microsoft do WS-Management Protocol. Um protocolo padrão baseado em SOAP que permite que hardware e sistemas operacionais de diferentes fornecedores interoperem. A Microsoft o incluiu em seus sistemas operacionais para facilitar a vida dos administradores de sistema.Este programa pode ser usado em qualquer Microsoft Windows Servers com esse recurso ativado (geralmente na porta 5985), é claro, apenas se você tiver credenciais e permissões para usá-lo. Portanto, podemos dizer que poderia ser usado em uma fase de hackers / pentesting pós-exploração . O objetivo deste programa é fornecer recursos agradáveis ​​e fáceis de usar para hackers. Ele também pode ser usado com propósitos legítimos pelos administradores de sistema, mas a maioria de seus recursos está focada em hackers / pentesting.
Recursos

  • Carregar na memória scripts do Powershell
  • Carregar em arquivos DLL de memória ignorando alguns AVs
  • Carregar na memória C # (C Sharp) assemblies ignorando alguns AVs
  • Carregar cargas úteis x64 geradas com a incrível técnica de rosquinha
  • Bypass AMSI
  • Suporte Pass-the-Hash
  • Suporte de autenticação Kerberos
  • Suporte a SSL e certificados
  • Carregar e baixar arquivos
  • Listar serviços de máquina remota sem privilégios
  • Histórico de comandos
  • Conclusão do comando WinRM
  • Conclusão de arquivos locais
  • Colorização nas mensagens de saída (pode ser desativado opcionalmente)

Socorro

Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM]
    -S, --ssl                        Enable ssl
    -c, --pub-key PUBLIC_KEY_PATH    Local path to public key certificate
    -k, --priv-key PRIVATE_KEY_PATH  Local path to private key certificate
    -r, --realm DOMAIN               Kerberos auth, it has to be set also in /etc/krb5.conf file using this format -> CONTOSO.COM = { kdc = fooserver.contoso.com }
    -s, --scripts PS_SCRIPTS_PATH    Powershell scripts local path
    -e, --executables EXES_PATH      C# executables local path
    -i, --ip IP                      Remote host IP or hostname (required)
    -U, --url URL                    Remote url endpoint (default wsman)
    -u, --user USER                  Username    (required if not using kerberos)
    -p, --password PASS              Password
    -H, --hash NTHash                NTHash 
    -P, --port PORT                  Remote host port (default 5985)
    -V, --version                    Show version
    -h, --help                       Display this help message

Requisitos
Ruby 2.3 ou superior é necessário. Algumas gemas de rubi são necessários, bem como:winrm >=2.3.2,winrm-fs >=1.3.2,stringio >=0.0.2ecolorize >=0.8.1. Dependendo do seu método de instalação (3 disponíveis), pode ser necessário que a instalação deles seja feita manualmente. 

Instalação e início rápido (3 métodos)

Método 1. Instalação diretamente como ruby ​​gem (as dependências serão instaladas automaticamente no seu sistema)

  • Etapa 1. Instale-o (ele instalará automaticamente dependências): gem install evil-winrm
  • Etapa 2. Pronta. Basta iniciá-lo!~$ evil-winrm -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

Método 2. Git clone e instale dependências no seu sistema manualmente

  • Etapa 1. Instale as dependências manualmente: ~$ sudo gem install winrm winrm-fs colorize stringio
  • Etapa 2. Clone o repositório: git clone https://github.com/Hackplayers/evil-winrm.git
  • Etapa 3. Pronta. Basta iniciá-lo!~$ cd evil-winrm && ruby evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

Método 3. Usando o bundler (as dependências não serão instaladas no seu sistema, apenas para usar o evil-winrm)

  • Etapa 1. Instale o bundler: gem install bundler:2.0.2
  • Etapa 2. Instale dependências com o bundler: cd evil-winrm && bundle install --path vendor/bundle
  • Etapa 3. Inicie-o com o empacotador: bundle exec evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

Documentação

Senha de texto
não criptografado Se você não quiser colocar a senha em texto não criptografado, é possível evitar o-pargumento deconfiguraçãoe a senha será solicitada, impedindo que seja exibida. 

Ipv6
Para usar o IPv6, o endereço deve ser adicionado ao / etc / hosts. Basta colocar o nome já definido do host após o-iargumento, em vez de um endereço IP. 

Comandos básicos

  • upload : os arquivos locais podem ser preenchidos automaticamente usando a tecla Tab.
    • uso: upload local_filenameouupload local_filename destination_filename
  • download :
    • uso: download remote_filenameoudownload remote_filename destination_filename

Nota sobre caminhos (upload / download) : Não é permitido o uso de caminhos relativos no download / upload. Use nomes de arquivos no diretório atual ou no caminho absoluto.

  • serviços : lista todos os serviços. Não são necessárias permissões de administrador.
  • Menu : carregar os Invoke-Binaryl04d3r-LoadDllDonut-LoaderBypass-4MSIfunções que vamos explicar abaixo. Quando um ps1 é carregado, todas as suas funções serão mostradas.

Carregar scripts do PowerShell

  •  Para carregar um arquivo ps1, basta digitar o nome (guia usnig de preenchimento automático permitida). Os scripts devem estar no caminho definido no -sargumento. Digite menu novamente e veja as funções carregadas. Arquivos muito grandes podem levar muito tempo para serem carregados.

Comandos avançados

  •  Invoke-Binary: permite que exes compilados de c # sejam executados na memória. O nome pode ser preenchido automaticamente usando a tecla Tab e permite até 3 parâmetros. Os executáveis ​​devem estar no caminho definido no -eargumento.
  •  l04d3r-LoadDll: permite carregar bibliotecas dll na memória, é equivalente a: [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))
    O arquivo dll pode ser hospedado por smb, http ou localmente. Depois de carregado menu, é possível completar automaticamente todas as funções.
  •  Donut-Loader: permite injetar cargas úteis x64 geradas com a incrível técnica de rosquinha . Não há necessidade de codificar o payload.bin, basta gerar e injetar!
  • Você pode usar esse fabricante de rosquinhas para gerar o payload.bin se não usar o Windows. Este script usa um módulo python escrito por Marcello Salvati ( byt3bl33d3r ). Pode ser instalado usando pip:
  •  pip3 install donut-shellcode
  •  Bypass-4MSI: corrige a proteção AMSI.

Kerberos

  •  Primeiro você precisa sincronizar a data com o DC: rdate -n <dc_ip>
  •  Para gerar ticket, existem várias maneiras:
    •  Usando ticketer.py do impacket:
      ticketer.py -dc-ip <dc_ip> -nthash <krbtgt_nthash> -domain-sid <domain_sid> -domain <domain_name> <user>
    •  Se você receber um ticket kirbi usando o Rubeus ou o Mimikatz, precisará converter para o ccache usando o ticket_converter.py :
      python ticket_converter.py ticket.kirbi ticket.ccache
  •  Adicionar ticket ccache. Existem 2 maneiras:
    export KRB5CCNAME=/foo/var/ticket.ccache
    cp ticket.ccache /tmp/krb5cc_0
  •  Adicione domínio a /etc/krb5.conf(para linux). O uso deste formato é importante:
    CONTOSO.COM = { kdc = fooserver.contoso.con }
  •  Verifique os bilhetes Kerberos com klist
  •  Para remover o ticket, use: kdestroy
  •  Para mais informações sobre o Kerberos, verifique esta folha de dicas

Recursos extras

  • Para desativar as cores, modifique no código essa variável $colors_enabled. Defina-o como false:$colors_enabled = false

Créditos:
Autor principal:

Colaboradores, desenvolvedores, documentadores, testadores e apoiadores:

Dica do chapéu para:

  • Alamot pelo seu código original.
  • 3v4Si0N por seu impressionante dll loader.
  • WinRb Todos os colaboradores da biblioteca ruby.
  • TheWover por sua incrível ferramenta de rosquinha.
  • byt3bl33d3r para sua biblioteca python para criar cargas úteis de rosquinha.
  • Sh11td0wn para obter inspiração sobre novos recursos.

Baixar Evil-Winrm