Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
async-pico-hub — Async PICO Hub is a work-in-progress framework to extend Cobalt Strike with custom event monitoring and in-process Asynchronous BOFs | Kitploit
Ferramentas/GitHubGitHub/nccgroup/async-pico-hub
Penetration Testing FrameworksPost-ExploitationCommand and ControlRed TeamingPayload Development
GitHubnccgroup/async-pico-hub

async-pico-hub

Async PICO Hub is a work-in-progress framework to extend Cobalt Strike with custom event monitoring and in-process Asynchronous BOFs

Ver Repositório
263há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Async PICO HUB

Async PICOs é um framework para executar Beacon Object Files de longa duração e orientados a eventos dentro de um processo Beacon do Cobalt Strike. Ele fornece execução assíncrona, rastreamento de tarefas, encerramento gracioso e saída assíncrona segura ao combinar os PICOs do Crystal Palace com um modelo de execução no lado do Beacon.

Ao contrário dos BOFs assíncronos nativos do Cobalt Strike, os Async PICOs executam no processo do Beacon e podem acordar o Beacon para exibir a saída quando eventos ocorrem.

Por que Async PICOs?

Os BOFs assíncronos nativos do Cobalt Strike resolvem um problema diferente. Os Async PICOs são destinados a tarefas de longa duração e orientadas a eventos que executam dentro do Beacon e podem comunicar resultados com segurança imediatamente de volta ao operador.

Para detalhes de implementação e justificativa do design, consulte a postagem do blog associada:

https://www.nccgroup.com/research/async-picos-and-custom-beacon-wakeups-in-cobalt-strike/

Compilação

Requisitos

Antes de compilar, os seguintes componentes são necessários:

  • Um checkout local deste repositório

  • Uma versão compilada do Crystal Palace

  • Visual Studio com suporte a MSVC e CMake

  • Tradecraft Garden

  • Clone o repositório

Clone ou copie o repositório localmente:

root@kitploit:~
git clone <repo-url>
cd async-pico-hub

Instalar o Crystal Palace

Os Async PICOs dependem do Crystal Palace para a geração de PICOs.

Baixe a versão compactada mais recente do Crystal Palace e compile-a de acordo com suas instruções. Depois de compilado, coloque os binários do Crystal Palace dentro de:

root@kitploit:~
pico-tools/crystal-palace/

O layout esperado deve ser semelhante a:

root@kitploit:~
pico-tools/
└── crystal-palace/
    ├── src/
    ├── lib/
    └── ...

Baixe a versão mais recente do Tradecraft Garden e coloque-a em

root@kitploit:~
pico-tools/tradecraftgarden

O layout esperado deve ser semelhante a:

root@kitploit:~
pico-tools/
└── tradecraftgarden/
    ├── libtcg/
    ├── simple_pic/
    └── ...

Certifique-se de compilar libtcg e o exemplo simple_pic para conseguir compilar os Async PICOs.

Abrir o projeto no Visual Studio

O projeto usa CMake para simplificar a compilação com MSVC.

Na raiz do repositório, clique com o botão direito na pasta e selecione:

root@kitploit:~
Open with Visual Studio

Isso carrega o projeto CMake e expõe as configurações de compilação disponíveis.

Configurações de compilação

As seguintes configurações de compilação estão disponíveis:

x64 Debug

Compila versões executáveis locais dos PICOs e BOFs para depuração.

Use esta configuração ao depurar o comportamento localmente ou ao percorrer o código no Visual Studio.

x64 Release

Compila versões executáveis locais otimizadas dos PICOs e BOFs.

Use esta configuração para testar o comportamento de release fora do Beacon.

x64 Release Objects

Compila artefatos de implantação:

  • PICOs independentes de posição usando Crystal Palace
  • BOFs padrão, como AsyncPICOMgr

Esta é a configuração usada para produzir objetos para o Cobalt Strike.

Saída da compilação

Quando a compilação for concluída, os artefatos gerados podem ser encontrados em:

build/x64-ReleaseObject/obj/

Este diretório contém os PICOs e BOFs compilados, prontos para uso.

Início rápido

Configurar um sleepmask personalizado

Os Async PICOs exigem que o Beacon use um sleepmask personalizado.

No seu perfil maleável, habilite o suporte a um sleepmask personalizado antes de tentar usar os Async PICOs.

O script picos-cna/sleepmask.cna carrega o async-sleepmask, uma implementação de referência mínima usada para suportar saída assíncrona e a coordenação de despertar do Beacon.

Este sleepmask é intencionalmente simples e apresenta as limitações descritas na seção Limitações. Ele é fornecido para demonstrar o framework e simplificar os testes, não como um componente finalizado e pronto para produção.

Se você já tem um sleepmask personalizado com técnicas de OPSEC, como manipulação de pilha ou outras, consulte Modificando seu sleepmask existente para ser um Async sleepmask para integrar o suporte a Async PICO em sua implementação existente.

Carregar o script Aggressor

Depois de compilar o projeto com a configuração x64 Release Objects, carregue os scripts Aggressor picos.cna e sleepmask.cna no Cobalt Strike:

root@kitploit:~
Script Manager → Load → picos-cna/picos.cna
Script Manager → Load → picos-cna/sleepmask.cna

Depois de carregados, os Async PICOs podem ser gerenciados por meio do comando picos.

Iniciar um Async PICO

Para iniciar um PICO:

root@kitploit:~
picos start [path to pico] [arguments]

Por exemplo:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico

Ou com argumentos:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico DOMAIN\serviceaccount

Listar PICOs em execução

Para visualizar os Async PICOs em execução:

root@kitploit:~
picos

Isso exibe as tarefas atualmente em execução e seus identificadores.

Parar um PICO em execução

Para parar um Async PICO:

root@kitploit:~
picos stop [pico id]

Por exemplo:

root@kitploit:~
picos stop 3

O PICO recebe um sinal de parada e encerra graciosamente após realizar a limpeza.

Ajuda

Informações adicionais de uso estão disponíveis diretamente dentro do Cobalt Strike por meio dos menus de ajuda integrados para os comandos picos.

Escrevendo um Async PICO personalizado

Consulte docs/writing_custom_async_pico.md para obter detalhes.

Modificando seu sleepmask existente para ser um Async Sleepmask

Consulte docs/modifying_existing_sleepmask.md para obter detalhes.

Exemplos incluídos

  • tgt-monitor-pico: pico assíncrono que escuta logins e imprime tickets Kerberos. Baseado em https://github.com/jakobfriedl/tgt-monitor-bof
  • example-pico: um PICO realmente simples que demonstra capacidades assíncronas, como abrir uma janela sem travar a thread principal do Beacon e enviar saída.

Considerações de OPSEC

A implementação pública é mantida intencionalmente simples, sem técnicas evasivas avançadas. Ela é destinada a ser uma base para adaptação, e não algo a ser implantado sem alterações.

Criação de threads

Os Async PICOs são iniciados usando CreateThread. Isso mantém o modelo de execução simples e fácil de entender, mas também introduz uma superfície de detecção. Na implementação pública, a thread começa a execução a partir de memória que não é respaldada por uma imagem de módulo, o que pode ser detectado por produtos ou heurísticas que inspecionam endereços de início de thread.

Os usuários devem avaliar se estratégias alternativas de criação de threads ou de execução são mais apropriadas para seu ambiente.

Integração do sleepmask

O framework depende de um sleepmask modificado para retransmitir a saída assíncrona de volta para o Beacon e coordenar eventos de despertar. A implementação incluída aqui é intencionalmente mínima e deve ser revisada antes do uso operacional.

O sleepmask faz parte do modelo de execução, não é apenas uma camada de conveniência. Qualquer alteração em como a saída é enfileirada, drenada ou sinalizada deve ser avaliada cuidadosamente para evitar introduzir problemas de concorrência ou interações não suportadas com as partes internas do Beacon.

Limitações

A implementação pública traz várias limitações práticas que devem ser compreendidas antes de seu uso.

Armazenamento compartilhado de variáveis globais

O Crystal Palace torna possível que os PICOs usem variáveis globais, mas a implementação pública usa um modelo simples de armazenamento compartilhado para guardar o estado global. Como resultado, as variáveis globais não são isoladas por thread.

Na prática, isso significa que executar vários Async PICOs simultaneamente pode exigir cuidado adicional quando eles dependem de globais.

Dependência do sleepmask

Os Async PICOs dependem de um sleepmask modificado para saída assíncrona e coordenação de despertar do Beacon. Portanto, o framework não é totalmente autossuficiente e não pode ser tratado como um BOF drop-in.

Não se destina a ser um artefato de implantação totalmente finalizado

O repositório foi projetado para demonstrar um framework e uma abordagem de implementação, em vez de fornecer um componente finalizado e pronto para produção. Os exemplos incluídos são destinados a serem estendidos, modificados e adaptados a casos de uso individuais.

Baixar ferramenta