
O que é isso
Pyramid é um conjunto de scripts Python e dependências de módulos que podem ser usados para evitar EDRs. O principal objetivo da ferramenta é executar tarefas ofensivas, aproveitando algumas propriedades de evasão do Python e procurando um uso legítimo do aplicativo Python. Isso pode ser alcançado porque:
- o pacote Python Embeddable fornece um interpretador Python assinado com boa reputação ;
- O Python tem muitos aplicativos legítimos, portanto, há muitas telemetrias diferentes provenientes do binário python.exe, pois o interpretador executa as APIs nativamente. Isso pode ser abusado operando dentro do processo Python.exe e tentando misturar a enorme “impressão digital de telemetria” do binário python.exe.
- Há uma falta de auditoria para a execução do código Python – o PEP-578 tentou resolver isso, mas o binário python.exe padrão não possui recursos de auditoria ativados por padrão.
- As operações podem ser feitas nativamente de dentro do python.exe usando nativamente a linguagem Python para executar tarefas pós-exploração, como importar módulos Python dinamicamente para executar ferramentas ofensivas e executar arquivos de objeto Beacon (após algumas modificações do BOF) diretamente no python.exe.
Para obter mais informações, consulte o deck de slides DEFCON30 – Adversary village talk “Python vs Modern Defenses” e esta postagem no meu blog .

Recursos atuais
Os recursos da pirâmide são executados diretamente do processo python.exe e atualmente são:
- Carregamento dinâmico de BloodHound Python, empacket secretsdump e paramiko.
- Execução de BOFs usando injeção de shellcode em processo.
- Injeção em processo de um agente C2 e tunelamento de seu tráfego com encaminhamento de porta SSH local.
Descrição da ferramenta
O Pyramid deve ser usado para descompactar um pacote Python incorporável oficial e, em seguida, executar python.exe para executar uma base de download do Python. Essa é uma maneira simples de evitar a criação de um padrão de árvore de processo incomum e a aparência de um uso normal de aplicativo Python.
No Pyramid, a base de download é usada para acessar um Pyramid Server (servidor HTTPS simples com autenticação) para buscar scripts e dependências de base.
Os scripts base são específicos para o recurso que você deseja usar e contêm:
- Classe Custom Finder para dependências necessárias de importação na memória (arquivos zip).
- Código para baixar as dependências necessárias.
- Lógica principal para o módulo que você deseja executar (bloodhound, secretsdump, paramiko etc.).
BOFs são executados por meio de um script base contendo o shellcode resultante de bof2shellcode e o código de injeção em processo relacionado.
As dependências do Python já foram corrigidas e modificadas para serem importadas na memória sem conflitos.
Existem atualmente 4 scripts de base principais disponíveis:
- O script base-bh.py importará na memória e executará python-BloodHound.
- O script base-secretsdump.py importará na memória e executará o Impacket secretsdump.
- O script base-BOF-lsass.py está usando uma versão simplificada do nanodump para despejar lsass de python.exe. Isso é obtido com a saída de shellcode de injeção na memória obtida de bof2shellcode e COFFloader. Para fazer BOFs complexos funcionarem com essa técnica, eles devem primeiro ser adaptados para execução em Python.
- importação de script base-tunnel-inj.py e executa paramiko em um novo Thread para criar uma porta local SSH para um servidor SSH remoto. Posteriormente, um shellcode pode ser injetado localmente em python.exe.
+Mais
17 cursos gratuitos sobre CyberSecurity da AWS que você pode fazer agora mesmo
Nova falha de análise de URL do Python pode permitir ataques de execução de comando
evilginx2 v3.1: estrutura de ataque MITM que permite ignorar a autenticação de 2 fatores