
Syscall Shellcode Loader (Trabalho em Andamento)
Shhhloader é um carregador de shellcode em desenvolvimento. Ele recebe shellcode bruto como entrada e compila um stub em C++ que realiza várias ações para tentar contornar AV/EDR. O construtor Python incluído funciona em qualquer sistema Linux com Mingw-w64 instalado.
Edição de 25/01/24: Shhhloader agora suporta a variante 7 do PoolParty! Foi adicionada também uma opção que combina PoolParty com Module Stomping para evitar que o shellcode executado resida em memória não backed. Veja abaixo um vídeo demonstrando este novo método de injeção contra o Defender ATP:
┳┻|
┻┳|
┳┻|
┻┳|
┳┻| _
┻┳| •.•) - Shhhhh, AV pode nos ouvir!
┳┻|⊂ノ
┻┳|
usage: Shhhloader.py [-h] [-p explorer.exe] [-m QueueUserAPC] [-u] [-w] [-nr] [-ns] [-l] [-v] [-sc GetSyscallStub] [-d] [-dp apphelp.dll] [-s domain]
[-sa testlab.local] [-o a.exe] [-pp explorer.exe] [-ppv] [-np] [-cp] [-td ntdll.dll] [-ef NtClose]
file
CARREGADOR DE SHELLCODE COM SYSCALL PERSONALIZADO DO ICYGUIDER
positional arguments:
file Arquivo contendo shellcode bruto
options:
-h, --help mostra esta mensagem de ajuda e sai
-p explorer.exe, --process explorer.exe
Processo para injetar (Padrão: explorer.exe)
-m QueueUserAPC, --method QueueUserAPC
Método para execução do shellcode (Opções: PoolPartyModuleStomping, PoolParty, ThreadlessInject, ModuleStomping, QueueUserAPC,
ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread) (Padrão: QueueUserAPC)
-u, --unhook Desenganchar NTDLL no processo atual
-w, --word-encode Salvar shellcode no stub como um array de palavras em inglês
-nr, --no-randomize Desabilitar aleatorização de nomes de syscall
-ns, --no-sandbox Desabilitar verificações de sandbox
-l, --llvm-obfuscator
Usar Obfuscator-LLVM para compilar o stub
-v, --verbose Habilitar mensagens de depuração durante a execução
-sc GetSyscallStub, --syscall GetSyscallStub
Método de execução de syscall (Opções: SysWhispers2, SysWhispers3, GetSyscallStub, None) (Padrão: GetSyscallStub)
-d, --dll Gerar uma DLL em vez de EXE
-dp apphelp.dll, --dll-proxy apphelp.dll
Criar DLL Proxy usando uma DLL legítima fornecida (O arquivo deve existir no diretório atual)
-s domain, --sandbox domain
Técnica de evasão de sandbox (Opções: sleep, domain, hostname, username, dll) (Padrão: sleep)
-sa testlab.local, --sandbox-arg testlab.local
Argumento para técnica de evasão de sandbox (Ex: WIN10CO-DESKTOP, testlab.local)
-o a.exe, --outfile a.exe
Nome do arquivo compilado
PPID Spoofing:
-pp explorer.exe, --ppid explorer.exe
Processo pai a ser usado para PPID Spoofing (Padrão: explorer.exe)
-ppv, --ppid-priv Habilitar falsificação para processo pai privilegiado (Desabilitado por padrão)
-np, --no-ppid-spoof Desabilitar falsificação de PPID
ThreadlessInject:
-cp, --create-process
Criar processo em vez de injetar em um existente
-td ntdll.dll, --target-dll ntdll.dll
DLL alvo contendo função de exportação a ser sobrescrita
-ef NtClose, --export-function NtClose
Função de exportação a ser sobrescrita
Funcionalidades:
Veja abaixo um vídeo PoC do método ThreadlessInject sendo usado para injetar um beacon Havoc no IE sem gerar alertas e com eventos mínimos no Microsoft Defender for Endpoint (MDE) EDR (Gravado em 03/04/2023):
Veja o vídeo abaixo demonstrando a técnica de injeção Module Stomping executada via DLL Proxying (Gravado em 09/08/2022):
O Shhhloader também foi integrado ao Havoc C2 Framework através de um módulo criado por @jakobfriedl. Veja abaixo um vídeo demonstrando o módulo:
Problemas Conhecidos/Notas:
-p para fornecer o nome de um processo que você sabe ou suspeita estar em execução no sistema alvo.Atualizações Planejadas: