Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sleep_python_bridge — Este proyecto es un 'puente' entre el lenguaje sleep y python. Permite el control de un teamserver de Cobalt Strike a través de python sin necesidad del cliente GUI estándar. NOTA: Este proyecto está muy en BETA. El objetivo es proporcionar un campo de pruebas para pruebas y de ninguna manera es una característica oficialmente soportada. Quizás esto podría agregarse en el futuro al producto principal. | Kitploit
Herramientas/GitHubGitHub/cobalt-strike/sleep_python_bridge
Gestión de Indicadores de Compromiso (IOC)Generación de PayloadsComando y ControlRed TeamingDesarrollo de PayloadsAnálisis de Registros
GitHubcobalt-strike/sleep_python_bridge

sleep_python_bridge

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 →
Ver Repositorio
1883229hace 1 añoRevisado por Kitploit

Acerca de

Este proyecto es un 'puente' entre el lenguaje sleep y python. Permite el control de un teamserver de Cobalt Strike a través de python sin necesidad del cliente GUI estándar. NOTA: Este proyecto está muy en BETA. El objetivo es proporcionar un campo de pruebas para pruebas y de ninguna manera es una característica oficialmente soportada. Quizás esto podría agregarse en el futuro al producto principal.

Compartir

Cobalt Strike Sleep Python Bridge

Este proyecto es un 'puente' entre el lenguaje sleep y python. Permite el control de un teamserver de Cobalt Strike a través de python sin necesidad del cliente GUI estándar.

NOTA: Este proyecto está muy en BETA. El objetivo es proporcionar un campo de pruebas para testing y de ninguna manera es una característica con soporte oficial. Quizás esto podría ser algo añadido en el futuro al producto principal.

El proyecto fue inspirado por el trabajo realizado por @BinaryFaultline y @Mcgigglez16 en el proyecto https://github.com/emcghee/PayloadAutomation. ¡¡Quiero ofrecer un agradecimiento especial a ambos!!

El corazón de este puente es una implementación en python de un cliente headless de Cobalt Strike. Esto se logra utilizando la Aggressor Script Console proporcionada por agscript como motor. Agscript permite la interacción headless con Cobalt Strike (https://www.cobaltstrike.com/aggressor-script/index.html). El 'bridge' funciona mediante funciones auxiliares de python en sleepy.py para generar los comandos sleep necesarios que espera la consola agscript. En lugar de escribir las funciones sleep, striker.py proporciona funciones auxiliares que abstraen sleep y permiten el uso de python.

Cambios destacados del proyecto original

Debido a que el proyecto PayloadAutomation inspiró esto, comenzó con gran parte del mismo código, pero quería reducirlo para usar los componentes necesarios para actuar como un wrapper de agscript.

  • Renombrado de Payload_Automation a sleep_python_bridge. Este proyecto es más que generación de payloads.
  • Cambiado de una biblioteca PyPI a módulos locales. Esto se hizo para pruebas y puede ser un buen candidato para una biblioteca python después de pruebas exhaustivas.
  • Actualizados y añadidos helpers para coincidir con las versiones de aggressor.
  • Añadida la capacidad de cargar scripts externos.

Bibliotecas incluidas

  • Striker: Un conjunto de funciones para interactuar con Cobalt Strike y ejecutar funcionalidades normalmente solo accesibles vía Sleep/GUI.
  • Sleepy: Un conjunto de funciones para facilitar un puente entre objetos Sleep y objetos Python.
  • Compyler: Un conjunto de funciones para compilar varios payloads desde plataforma o multiplataforma.
  • Artifactor: Un conjunto de funciones para inspeccionar y revisar artefactos y recopilar y rastrear IoCs.

Archivos y Directorios

ItemDescription
sleep_python_bridgeLa biblioteca que permite a python interactuar con Cobalt Strike
output/htmlruta para los visores de datos html
output/html/dataruta para los datos json usados por el visor de datos
output/payloadsruta para los payloads guardados (usados por el generador de payloads)
payload_scriptsruta para los scripts externos que serán cargados por payloadgenerator.py
beaconlogtracker.pyImplementación de un rastreador de logs de beacon que utiliza un datagrid HTML para mostrar los logs de beacon
payloadgenerator.pyImplementación de un generador de payloads de beacon que crea payloads para cada listener
beacongrapher.pyImplementación de un rastreador de grafos de beacon que utiliza un grafo dirigido HTML/javascript para los beacons

Pendientes

  • Documentar las funciones expuestas
  • Mover las funciones basadas en compilación de striker.py a compyler.py
  • Añadir comprobaciones de errores adicionales, específicamente para dependencias de la aplicación
  • Ampliar compyler para incluir builds remotas y mingw
  • Añadir seguimiento de IOC a los payloads generados mediante artifactor.py
  • Manejar el error: "User is already connected."
  • Considerar convertir esto en una biblioteca python formal

Cómo usar

Puede que la forma más fácil de entender este proyecto sean los ejemplos, pero el script es example.py.

#!/usr/local/bin/python3

## Import the bridge
from sleep_python_bridge.striker import CSConnector
from argparse import ArgumentParser
from pprint import pp, pprint

###################
## Argparse
def parseArguments():
    parser = ArgumentParser()
    parser.add_argument('host', help='The teamserver host.')
    parser.add_argument('port', help='The teamserver port.')
    parser.add_argument('username', help='The desired username.')
    parser.add_argument('password', help='The teamserver password.')
    parser.add_argument('path', help="Directory to CobaltStrike")
    
    args = parser.parse_args()
    return args

## Let's go
def main(args):

    cs_host = args.host
    cs_port = args.port
    cs_user = args.username
    cs_pass = args.password
    cs_directory = args.path

    ## Connect to server
    print(f"[*] Connecting to teamserver: {cs_host}")
    with CSConnector(
        cs_host=cs_host, 
        cs_port=cs_port, 
        cs_user=cs_user, 
        cs_pass=cs_pass,
        cs_directory=cs_directory) as cs:

        # Perform some actions
        # 
        # Get beacon metadata - i.e., x beacons() from the script console
        beacons = cs.get_beacons()
        print("BEACONS")
        pprint(beacons)

        # Get list of listners - i.e., x listeners_stageless() from the script console
        listeners = cs.get_listeners_stageless()
        print("LISTENERS")
        pprint(listeners)

if __name__ == "__main__":
    args = parseArguments()
    main(args)

Ejecuta el script

python3 example.py 127.0.0.1 50050 example password /path/to/cobaltstrike

Ejemplos Prácticos

Rastreador de logs

Los logs de beacon están disponibles en tiempo de ejecución en un teamserver o a través de los archivos de log de beacon guardados en el teamserver. Los datos siempre están ahí, pero puede que no se presenten de la forma que te gustaría. Este es un ejemplo de rastreador de logs que utiliza un data grid HTML para ver rápidamente los logs de beacon.

beaconlogtracker.py es un script que se conecta a un teamserver, extrae los logs de beacon en ejecución cada 30 segundos, guarda en <code>beaconlogs.json` y los muestra en un data grid HTML buscable y ordenable.

Los logs de beacon siempre se guardan en el directorio de logs, pero esta es una forma alternativa de rastrear los logs en memoria con un visor alternativo. Si el teamserver se reinicia, los logs en memoria se pierden y debes consultar los logs almacenados en el directorio de logs del teamserver. Este script mantiene los logs en memoria sincronizados con el archivo beaconlogs.json. De esta manera tienes una forma rápida y sencilla de visualizar todos los datos sin tener que revisar el directorio de logs incluso si Cobalt Strike se reinicia.

Inicia el script haciendo que se conecte a tu teamserver para sincronizar los logs cada 30 segundos

Uso:

python3 beaconlogtracker.py 127.0.0.1 50050 logtracker password /path/to/cobaltstrike

Esto mantendrá beaconlogs.json sincronizado con los logs de beacon guardados y en ejecución. Se sincroniza cada 30 segundos

Inicia un servidor web desde el directorio output/html

python3 -m http.server 8000

Conéctate a http://localhost:8000/beaconlogs.html

Generador de Payloads

Descargar herramienta