Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
async-pico-hub — Async PICO Hub es un framework en desarrollo para extender Cobalt Strike con monitoreo de eventos personalizado y BOFs asíncronos en proceso | Kitploit
Herramientas/GitHubGitHub/nccgroup/async-pico-hub
Frameworks de Pruebas de PenetraciónPost-ExplotaciónComando y ControlRed TeamingDesarrollo de Payloads
GitHubnccgroup/async-pico-hub

async-pico-hub

Async PICO Hub es un framework en desarrollo para extender Cobalt Strike con monitoreo de eventos personalizado y BOFs asíncronos en proceso

Ver Repositorio
2637hace 3 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Async PICO HUB

Async PICOs es un framework para ejecutar archivos Beacon Object File de larga duración y controlados por eventos dentro de un proceso de Beacon de Cobalt Strike. Proporciona ejecución asíncrona, seguimiento de tareas, apagado ordenado y salida asíncrona segura combinando los PICOs de Crystal Palace con un modelo de ejecución en el lado de Beacon.

A diferencia de los BOF asíncronos nativos de Cobalt Strike, los Async PICOs se ejecutan en el proceso de Beacon y pueden activar Beacon para mostrar resultados cuando ocurren eventos.

¿Por qué Async PICOs?

Los BOF asíncronos nativos de Cobalt Strike resuelven un problema diferente. Los Async PICOs están pensados para tareas de larga duración y controladas por eventos que se ejecutan dentro de Beacon y pueden comunicar resultados de forma segura e inmediata al operador.

Para obtener detalles de implementación y la justificación del diseño, consulte la publicación del blog adjunta:

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

Compilación

Requisitos

Antes de compilar, se requieren los siguientes componentes:

  • Una copia local de este repositorio

  • Una versión compilada de Crystal Palace

  • Visual Studio con soporte para MSVC y CMake

  • Tradecraft Garden

  • Clonar el repositorio

Clonar o copiar el repositorio localmente:

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

Instalar Crystal Palace

Async PICOs dependen de Crystal Palace para la generación de PICO.

Descargue la última versión comprimida de Crystal Palace y compílela siguiendo sus instrucciones. Una vez compilada, coloque los binarios de Crystal Palace dentro de:

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

La estructura esperada debería ser similar a:

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

Descargue la última versión de Tradecraft Garden y colóquela en

root@kitploit:~
pico-tools/tradecraftgarden

La estructura esperada debería ser similar a:

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

Asegúrese de compilar libtcg y el ejemplo simple_pic para poder compilar Async PICOs.

Abrir el proyecto en Visual Studio

El proyecto utiliza CMake para simplificar la compilación con MSVC.

Desde la raíz del repositorio, haga clic derecho en la carpeta y seleccione:

root@kitploit:~
Abrir con Visual Studio

Esto carga el proyecto CMake y expone las configuraciones de compilación disponibles.

Configuraciones de compilación

Las siguientes configuraciones de compilación están disponibles:

x64 Debug

Compila versiones ejecutables locales de PICOs y BOFs para depuración.

Utilice esta configuración cuando depure el comportamiento localmente o recorra el código paso a paso en Visual Studio.

x64 Release

Compila versiones ejecutables locales optimizadas de PICOs y BOFs.

Utilice esta configuración para probar el comportamiento de la versión release fuera de Beacon.

x64 Release Objects

Compila los artefactos de despliegue:

  • PICOs independientes de la posición usando Crystal Palace
  • BOFs estándar como AsyncPICOMgr

Esta es la configuración utilizada para producir objetos para Cobalt Strike.

Salida de la compilación

Una vez completada la compilación, los artefactos generados se pueden encontrar en:

build/x64-ReleaseObject/obj/

Este directorio contiene los PICOs y BOFs compilados listos para usar.

Inicio rápido

Configurar un sleepmask personalizado

Async PICOs requieren que Beacon utilice un sleepmask personalizado.

En su perfil malleable, habilite el soporte para un sleepmask personalizado antes de intentar usar Async PICOs.

El script picos-cna/sleepmask.cna carga async-sleepmask, una implementación de referencia mínima utilizada para soportar la salida asíncrona y la coordinación del despertar de Beacon.

Este sleepmask es intencionalmente simple y conlleva las limitaciones descritas en la sección Limitaciones. Se proporciona para demostrar el framework y simplificar las pruebas, no como un componente terminado y listo para producción.

Si ya dispone de un sleepmask personalizado con técnicas OPSEC, como manipulación de pila u otras, consulte Modificar su sleepmask existente para convertirlo en un Async sleepmask para integrar el soporte Async PICO en su implementación existente.

Cargar el script de Aggressor

Después de compilar el proyecto con la configuración x64 Release Objects, cargue los scripts de Aggressor picos.cna y sleepmask.cna en Cobalt Strike:

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

Una vez cargados, los Async PICOs se pueden gestionar mediante el comando picos.

Iniciar un Async PICO

Para iniciar un PICO:

root@kitploit:~
picos start [ruta al pico] [argumentos]

Por ejemplo:

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

O con argumentos:

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

Listar PICOs en ejecución

Para ver los Async PICOs en ejecución:

root@kitploit:~
picos

Esto muestra las tareas actualmente en ejecución y sus identificadores.

Detener un PICO en ejecución

Para detener un Async PICO:

root@kitploit:~
picos stop [id del pico]

Por ejemplo:

root@kitploit:~
picos stop 3

El PICO recibe una señal de detención y sale de forma ordenada después de realizar la limpieza.

Ayuda

Puede encontrar información de uso adicional directamente en Cobalt Strike a través de los menús de ayuda integrados para los comandos picos.

Escribir un Async PICO personalizado

Consulte docs/writing_custom_async_pico.md para obtener más detalles.

Modificar su sleepmask existente para convertirlo en un Async Sleepmask

Consulte docs/modifying_existing_sleepmask.md para obtener más detalles.

Ejemplos incluidos

  • tgt-monitor-pico: pico asíncrono que escucha inicios de sesión e imprime tickets de Kerberos. Basado en https://github.com/jakobfriedl/tgt-monitor-bof
  • example-pico: Un PICO muy simple que muestra capacidades asíncronas, como abrir una ventana sin bloquear el hilo principal de Beacon y enviar salida.

Consideraciones de OPSEC

La implementación pública se mantiene intencionalmente simple, sin técnicas evasivas avanzadas. Está pensada como una base para adaptar, no como algo para desplegar sin cambios.

Creación de hilos

Los Async PICOs se lanzan mediante CreateThread. Esto mantiene el modelo de ejecución simple y fácil de razonar, pero también introduce una superficie de detección. En la implementación pública, el hilo comienza su ejecución desde memoria que no está respaldada por una imagen de módulo, lo que puede ser detectable por productos o heurísticas que inspeccionan las direcciones de inicio de los hilos.

Los usuarios deben evaluar si estrategias alternativas de creación o ejecución de hilos son más apropiadas para su entorno.

Integración del sleepmask

El framework depende de un sleepmask modificado para retransmitir la salida asíncrona de vuelta a Beacon y coordinar los eventos de despertar. La implementación incluida aquí es intencionalmente mínima y debe revisarse antes de su uso operativo.

El sleepmask es parte del modelo de ejecución, no meramente una capa de conveniencia. Cualquier cambio en cómo se pone en cola, se vacía o se señala la salida debe evaluarse cuidadosamente para evitar introducir problemas de concurrencia o interacciones no compatibles con los internals de Beacon.

Limitaciones

La implementación pública presenta varias limitaciones prácticas que deben entenderse antes de su uso.

Almacenamiento compartido de variables globales

Crystal Palace permite que los PICOs usen variables globales, pero la implementación pública utiliza un modelo simple de almacenamiento compartido para guardar el estado global. Como resultado, las variables globales no están aisladas por hilo.

En la práctica, esto significa que ejecutar varios Async PICOs simultáneamente puede requerir cuidados adicionales cuando dependen de globales.

Dependencia del sleepmask

Los Async PICOs dependen de un sleepmask modificado para la salida asíncrona y la coordinación del despertar de Beacon. Por lo tanto, el framework no es completamente autónomo y no puede tratarse como un BOF de reemplazo directo.

No está pensado como un artefacto de despliegue completamente terminado

El repositorio está diseñado para demostrar un framework y un enfoque de implementación, más que para proporcionar un componente terminado y listo para producción. Los ejemplos incluidos están pensados para ser extendidos, modificados y adaptados a casos de uso individuales.

Descargar herramienta