RedPeanut é um pequeno RAT desenvolvido em .Net Core 2 e seu agente em .Net 3.5 / 4.0.
__________________________________________________________________________
ooooooo________________oo_ooooooo___________________________________oo____
oo____oo___ooooo___oooooo_oo____oo__ooooo___ooooo__oo_ooo__oo____o__oo____
oo____oo__oo____o_oo___oo_oo____oo_oo____o_oo___oo_ooo___o_oo____o_oooo___
ooooooo___ooooooo_oo___oo_oooooo___ooooooo_oo___oo_oo____o_oo____o__oo____
oo____oo__oo______oo___oo_oo_______oo______oo___oo_oo____o_ooo___o__oo__o_
oo_____oo__ooooo___oooooo_oo________ooooo___oooo_o_oo____o_oo_ooo____ooo__
__________________________________________________________________________
________________________________________________RedPeanut_v0.3.0___@b4rtik
__________________________________________________________________________
Atualmente em teste.
Problemas conhecidos dos módulos:
process -> spawnasagent
process -> spawnasshellcode
RedPeanut é um pequeno RAT desenvolvido em .Net Core 2 e seu agente em .Net 3.5 / 4.0. A execução de código do RedPeanut é baseada em shellcode gerado com DonutCS. É, portanto, um híbrido, embora desenvolvido em .Net, não depende exclusivamente do Assembly.Load. Isso aumenta a superfície de detecção, mas nos permite praticar e experimentar várias técnicas de evasão relacionadas ao ambiente dotnet, gerenciamento de processos e injeção. Esse comportamento pode ser alterado em tempo de execução com os comandos "managed" e "unmanaged". Se você está interessado em um Framework C2 .Net que seja consistente e possa ser usado em um engajamento, sugiro Covenant.
RedPeanut é equipado com:
O agente RedPeanut pode ser compilado em .Net 3.5 e 4.0 e possui capacidades de pivoting via NamedPipe. O agente, quando executado em modo não gerenciado (unmanaged), realiza suas próprias tarefas críticas em um processo separado para evitar que a resposta do AV à detecção ou erro durante a execução faça você perder o agente inteiro.
O fluxo de execução é o seguinte:
Atualmente, o agente suporta apenas o canal https.
O protocolo de check-in do agente é muito simples:
Alternativamente, o recurso de canal coberto pode ser ativado (no momento é apenas uma PoC). A ideia é imitar o tráfego web realizado por um usuário real. Geralmente, uma página web é composta pela página html e todos os objetos necessários para sua exibição, como css, imagens, etc. Na solicitação de uma nova tarefa, a resposta do servidor não será diretamente a tarefa criptografada, mas uma página html da qual extrair o link para a imagem que terá a tarefa criptografada embutida. A requisição http para a imagem conterá o cabeçalho Referer.
A entrega de conteúdo é organizada em 4 canais:
RedPeanut tem capacidade de personalização da pegada de rede tanto no lado do servidor quanto no lado do cliente. As propriedades que podem ser definidas são:
Geral
Http Get
Http Post
Domain Fronting
Para habilitar o suporte a domain fronting, é necessário valorizar o cabeçalho "Host" na seção client, tanto post quanto get (exemplificado no perfil padrão 2)
O módulo PowerShellExecuter permite executar comandos oneliner ou arquivos em um runspace com bypass de AMSI, bypass de Logging e PowerView já carregados.
A partir da versão 0.3.0, o RedPeanutAgent suporta o comando blockdlls. Com esta opção habilitada, os processos filhos que são criados para realizar tarefas no modo não gerenciado são criados com o atributo PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON. Este atributo impede que o processo carregue dlls que não são assinadas pela Microsoft, isso pode proteger nossas tarefas contra técnicas de hooking de AV e EDR.
O RedPeanutAgent usa carregamento dinâmico de DLL para evitar o uso de imports de DLL suspeitos. Os créditos pelo Dynamic Dll Loading vão para @TheRealWover, @cobbr_io e @FuzzySec pelo seu trabalho em SharpSploit.
Alguns fornecedores de AV e EDR usam a técnica de hooking para rastrear atividades. Para evitar o uso de syscall com hook, o RedPeanutAgent usa syscall direto, injetando automaticamente o código necessário. Os créditos pelo Direct Syscall vão para @Cneelis
Para executar o RedPeanut, você precisa ter o dotnet instalado. Para instalar o dotnet no Kali:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/9/prod.list
mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
chown root:root /etc/apt/sources.list.d/microsoft-prod.list