Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sleep_python_bridge — Ce projet est un « pont » entre le sommeil et le langage python. Il permet de contrôler un teamserver Cobalt Strike via python sans avoir besoin du client GUI standard. NOTE : Ce projet est très largement en version BÊTA. L'objectif est de fournir un terrain de jeu pour les tests et ne constitue en aucun cas une fonctionnalité officiellement prise en charge. Peut-être que cela pourrait être ajouté à l'avenir au produit principal. | Kitploit
Outils/GitHubGitHub/cobalt-strike/sleep_python_bridge
Gestion des Indicateurs de Compromission (IOC)Génération de PayloadsCommandement et ContrôleRed TeamingDéveloppement de Charges UtilesAnalyse de Journaux
GitHubcobalt-strike/sleep_python_bridge

sleep_python_bridge

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
1883217il y a 1 anVérifié par Kitploit

À propos

Ce projet est un « pont » entre le sommeil et le langage python. Il permet de contrôler un teamserver Cobalt Strike via python sans avoir besoin du client GUI standard. NOTE : Ce projet est très largement en version BÊTA. L'objectif est de fournir un terrain de jeu pour les tests et ne constitue en aucun cas une fonctionnalité officiellement prise en charge. Peut-être que cela pourrait être ajouté à l'avenir au produit principal.

Partager

Pont entre Sleep et Python pour Cobalt Strike

Ce projet est un « pont » entre les langages Sleep et Python. Il permet de contrôler un teamserver Cobalt Strike via Python sans avoir besoin du client graphique standard.

NOTE : Ce projet est encore très expérimental (BETA). L'objectif est de fournir un terrain d'essai pour les tests et ne constitue en aucun cas une fonctionnalité officiellement prise en charge. Peut-être que cela pourrait être ajouté à l'avenir au produit de base.

Le projet a été inspiré par le travail de @BinaryFaultline et @Mcgigglez16 dans le projet https://github.com/emcghee/PayloadAutomation. Je tiens à vous remercier tous les deux !!

Le cœur de ce pont est une implémentation Python d'un client Cobalt Strike sans interface graphique. Cela est réalisé en utilisant la console de scripts Aggressor fournie par agscript comme moteur. Agscript permet une interaction sans interface graphique avec Cobalt Strike (https://www.cobaltstrike.com/aggressor-script/index.html). Le « pont » fonctionne en utilisant des fonctions d'aide Python dans sleepy.py pour générer les commandes Sleep attendues par la console agscript. Au lieu d'écrire les fonctions Sleep, striker.py fournit des fonctions d'aide qui abstraient Sleep et permettent l'utilisation de Python.

Changements notables par rapport au projet d'origine

Comme le projet PayloadAutomation a inspiré celui-ci, il a commencé avec une grande partie du même code, mais j'ai voulu le réduire pour n'utiliser que les composants nécessaires afin d'agir comme un wrapper agscript.

  • Renommé de Payload_Automation à sleep_python_bridge. Ce projet est plus que la simple génération de payloads.
  • Passé d'une bibliothèque PyPI à des modules locaux. Cela a été fait pour les tests et pourrait être un bon candidat pour une bibliothèque Python après des tests approfondis.
  • Mise à jour et ajout de fonctions d'aide pour correspondre aux versions d'Aggressor.
  • Ajout de la possibilité de charger un script externe.

Bibliothèques incluses

  • Striker : un ensemble de fonctions pour interagir avec Cobalt Strike et exécuter des fonctionnalités généralement accessibles uniquement via Sleep/interface graphique.
  • Sleepy : un ensemble de fonctions pour faciliter un pont entre les objets Sleep et les objets Python.
  • Compyler : un ensemble de fonctions pour compiler divers payloads pour une plateforme ou en mode multiplateforme.
  • Artifactor : un ensemble de fonctions pour inspecter et examiner les artefacts, ainsi que collecter et suivre les IoC.

Fichiers et répertoires

ÉlémentDescription
sleep_python_bridgeLa bibliothèque qui permet à Python d'interfacer avec Cobalt Strike
output/htmlchemin pour les visualiseurs de données HTML
output/html/datachemin pour les données JSON utilisées par le visualiseur de données
output/payloadschemin pour les payloads enregistrés (utilisé par le générateur de payloads)
payload_scriptschemin pour les scripts externes à charger par payloadgenerator.py
beaconlogtracker.pyImplémentation d'un suivi des journaux de beacon qui utilise une grille de données HTML pour afficher les journaux de beacon
payloadgenerator.pyImplémentation d'un générateur de payloads de beacon qui crée des payloads pour chaque listener
beacongrapher.pyImplémentation d'un traceur de graphe de beacon qui utilise un graphe orienté JavaScript HTML pour les beacons

TODO

  • Documenter les fonctions exposées
  • Déplacer les fonctions de compilation de striker.py vers compyler.py
  • Ajouter des vérifications d'erreurs supplémentaires, notamment pour les dépendances applicatives
  • Étendre compyler pour inclure les builds distants et mingw
  • Ajouter le suivi des IoC aux payloads générés via artifactor.py
  • Gérer l'erreur : "User is already connected."
  • Envisager de convertir ceci en une bibliothèque Python formelle

Comment utiliser

Les exemples de ce projet sont peut-être le moyen le plus simple de comprendre, mais voici le script 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)

Appeler le script

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

Exemples pratiques

Suivi des journaux

Les journaux de beacon sont disponibles à l'exécution dans un teamserver ou via les fichiers de journaux de beacon enregistrés sur le teamserver. Les données sont toujours là, mais peuvent ne pas être présentées de la manière souhaitée. Ceci est un exemple de suivi des journaux qui utilise une grille de données HTML pour visualiser rapidement les journaux de beacon.

beaconlogtracker.py est un script qui se connecte à un teamserver, extrait les journaux de beacon en cours toutes les 30 secondes, les enregistre dans <code>beaconlogs.json` et les affiche dans une grille de données HTML consultable et triable.

Les journaux de beacon sont toujours enregistrés dans le répertoire logs, mais c'est une autre façon de suivre les journaux en mémoire avec un visualiseur alternatif. Si le teamserver est redémarré, les journaux en mémoire sont perdus et vous devez vous référer aux journaux stockés dans le répertoire logs du teamserver. Ce script garde les journaux en mémoire synchronisés avec le fichier beaconlogs.json. Ainsi, vous disposez d'un moyen rapide et simple de visualiser toutes les données sans fouiller dans le répertoire logs, même si Cobalt Strike est redémarré.

Démarrez le script en le connectant à votre teamserver pour synchroniser les journaux toutes les 30 secondes

Utilisation :

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

Cela maintient beaconlogs.json synchronisé avec les journaux de beacon enregistrés et en cours. La synchronisation a lieu toutes les 30 secondes.

Démarrez un serveur web depuis le répertoire output/html

python3 -m http.server 8000

Connectez-vous à http://localhost:8000/beaconlogs.html

Générateur de payloads

Télécharger l’outil