
Kit de Pós-Exploração do Runspace PowerShell
Kit de Pós-Exploração do Runspace PowerShell
Versão: 2.6 Licença: BSD 3-Cláusulas
p0wnedShell é uma aplicação ofensiva de host PowerShell escrita em C# que não depende do powershell.exe, mas executa comandos e funções do PowerShell dentro de um ambiente runspace do PowerShell (.NET). Ela inclui muitos módulos e binários ofensivos do PowerShell para facilitar o processo de Pós-Exploração. O que tentamos foi construir uma ferramenta de Pós-Exploração "tudo em um" que pudéssemos usar para contornar todas as soluções de mitigação (ou pelo menos algumas delas), e que tenha todas as ferramentas relevantes incluídas. Você pode usá-la para realizar ataques modernos em ambientes Active Directory e criar conscientização dentro da sua equipe Azul para que possam construir as estratégias de defesa adequadas.
Para compilar o p0wnedShell, você precisa abrir este projeto no Microsoft Visual Studio e compilá-lo para a plataforma x64/x86. Você pode alterar as seguintes opções do AutoMasq antes de compilar:
public static bool AutoMasq = true;
public static string masqBinary = @"C:\Windows\Notepad.exe";
Com o AutoMasq definido como false, basta executar o executável para que ele funcione normalmente. Com o AutoMasq ativado, você pode renomear o executável do p0wnedShell para o nome do processo que vai mascarar (masqBinary), de forma que ele tenha a aparência desse processo (por exemplo, notepad.exe).
Usando o argumento opcional "-parent" na linha de comando, você pode iniciar o p0wnedShell usando outro ID de Processo Pai. Ao combinar a opção de Mascaramento PEB com um ID de processo pai diferente (por exemplo, svchost), você pode dar ao p0wnedShell a aparência de um serviço legítimo ;)
Nota: Executar o p0wnedShell usando outro ID de Processo Pai não funciona a partir de uma sessão/shell do Meterpreter... ainda!
Changing the Parent Process ID can also be used to spawn a p0wnedShell process with system privileges,
for example using lsass as the the parent process.
For this you need to have UAC elevated administrator permissions.
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] Please enter a valid Parent Process name.
[+] For Example: C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass
Para executar como binário x86 e contornar o Applocker (créditos para este grande bypass vão para Casey Smith, aka subTee):
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (Ou pasta de versão mais recente do .NET)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
Para executar como binário x64 e contornar o Applocker:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (Ou pasta de versão mais recente do .NET)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
As funções do PowerShell dentro do Runspace são carregadas na memória a partir de cadeias codificadas em Base64 e comprimidas.
Os binários são carregados na memória usando ReflectivePEInjection (os arrays de bytes são comprimidos usando Gzip e salvos dentro do p0wnedShell como cadeias codificadas em Base64).
O p0wnedshell é fortemente baseado em ferramentas e conhecimentos de pessoas como harmj0y, os caras do Powersploit, Sean Metcalf, SubTee, Nikhil Mittal, Besimorhino, Benjamin Delpy, Breenmachine, FoxGlove Security, Kevin Robertson, FuzzySecurity, James Forshaw e qualquer outro que eu tenha esquecido. Portanto, os agradecimentos vão para eles e, claro, para nossos amigos em Redmond por nos darem acesso a uma linguagem de hacking muito poderosa.
Para relatar um problema ou solicitar uma funcionalidade, sinta-se à vontade para me contatar em:
Cornelis at dePlaa.com ou @Cn33lis