Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
melting-cobalt — Un scanner Cobalt Strike qui récupère les balises Team Server détectées dans un objet JSON | Kitploit
Outils/GitHubGitHub/splunk/melting-cobalt
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCollecte d'InformationsSécurité RéseauCommandement et ContrôleRenseignement sur les MenacesArchived
GitHubsplunk/melting-cobalt

melting-cobalt

Un scanner Cobalt Strike qui récupère les balises Team Server détectées dans un objet JSON

Voir le dépôt
16923il y a 3 ansVérifié par Kitploit

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 →
Partager

melting-cobalt 👀

Un outil pour chasser/extraire les beacons Cobalt Strike et « réduire » leur configuration de beacon pour indexation ultérieure. Les chasses peuvent être expansives et à l'échelle d'Internet en utilisant des services comme SecurityTrails, Shodan, ou ZoomEye, ou une liste d'IP.

Pour commencer

  1. Installer melting-cobalt
  2. Configurer vos jetons pour commencer la chasse
  3. Extraire les Beacons pour commencer à les réduire
  4. Examiner les résultats cat results.json | jq

📺 Démo

Melting-Cobalt Demo

Installation

Prérequis : virtualenv, et python3.8+

  1. git clone https://github.com/splunk/melting-cobalt && cd melting-cobalt Cloner le projet et se placer dans le répertoire du projet.
  2. pip install virtualenv && virtualenv -p python3 venv && source venv/bin/activate && pip install -r requirements.txt Créer un Virtualenv et installer les dépendances.

Continuer vers la configuration pour la clé API SecurityTrails, Shodan, ou ZoomEye.

Configuration melting-cobalt.conf

Copiez melting-cobalt.conf.example vers melting-cobalt.conf!

Assurez-vous de définir un jeton pour l'un des fournisseurs disponibles. Si vous devez en créer un pour votre compte, suivez ces instructions.

Exemple de configuration :

root@kitploit:~
[global]
output = results.json
# stores matches in JSON here

log_path = melting-cobalt.log
# Sets the log_path for the logging file

log_level = INFO
# Sets the log level for the logging
# Possible values: INFO, ERROR, VERBOSE

nse_script = grab_beacon_config.nse
# path to the nse script that rips down cobalt configs. This is specifically using https://github.com/whickey-r7/grab_beacon_config

searches = search.yml
# contains the different searches to run on each internet scanning service provider (eg shodan, zoomeye, security trails) when hunting for team servers.

shodan_token = TOKENHERE
# shodan token for searching

zoomeye_token = TOKENHERE
# zoomeye token for searching

securitytrails_token = TOKENHERE
# security trails token for searching

Rechercher sur Internet

Pour modifier l'exploitation par défaut effectuée sur différents fournisseurs, personnalisez search.yml. Les Exemples de recherche par défaut de melting-cobalt sont ci-dessous.

Exécutez :

python melting-cobalt.py

Rechercher une liste d'IP

Remplissez ips.txt avec des IP potentielles de serveurs C2 Cobalt Strike, une par ligne, exemple :

root@kitploit:~
1.1.1.1
2.2.2.2
3.3.3.3

Exécutez :

python melting-cobalt.py -i ips.txt

Si vous avez besoin d'inspiration de la part de chasseurs, nous recommandons vivement :

  • The DFIR Report
  • Awesome-Cobalt-Strike
  • CobaltStrikeBot

Utilisation

root@kitploit:~
usage: melting-cobalt.py [-h] [-c CONFIG] [-o OUTPUT] [-v] [-i INPUT]

scans for open cobalt strike team servers and grabs their beacon configs and write this as a json log to be analyzed by any analytic tools
like splunk, elastic, etc..

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        config file path
  -o OUTPUT, --output OUTPUT
                        file to write to the results, defaults to results.json.log
  -v, --version         shows current melting-cobalt version
  -i INPUT, --input INPUT
                        newline delimeted file of cobalt strike server ips to grab beacon configs from. example ips.txt

Exemples de recherche

Les recherches suivantes sont fournies par défaut et d'autres peuvent être ajoutées à search.yml pour plus de données.

Shodan

Trouver des signatures JARM spécifiques, par défaut nous suivons Cobalt Strike 4.x

'ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1'

Filtrer par en-têtes HTTP et ports pour réduire les résultats parasites

'ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1 port:"22, 80, 443, 444, 1234, 2000, 2222, 3000, 3780, 4000, 4443, 6379, 7443, 8443, 8080, 8081, 8082, 8087, 8088, 8099, 8089, 8090, 8181, 8888, 8889, 9443, 50050" HTTP/1.1 404 Not Found Content-Length: 0'

Serveur d'équipe détecté par Shodan

'product:"cobalt strike team server"'

remarque : générera beaucoup de résultats parasites, ne planifiez pas cela à moins de vouloir brûler vos crédits de licence.

Série de certificat du serveur d'équipe

'ssl.cert.serial:146473198'

SecurityTrails

Trouver des signatures JARM spécifiques

'SELECT address, ports.port FROM ips WHERE jarm = "07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1"'

Filtrer par en-têtes HTTP et ports pour réduire les résultats nmap parasites

'SELECT address, ports.port, isp.name_normalized, ports.port, address, asn.number, jarm, http.headers.raw FROM ips WHERE jarm = "07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1" OR jarm = "07d14d16d21d21d07c07d14d07d21d9b2f5869a6985368a9dec764186a9175" OR jarm = "2ad2ad16d2ad2ad22c42d42d00042d58c7162162b6a603d3d90a2b76865b53" AND http.headers.content_type = "text/plain" AND http.headers.raw = "content-length:0" AND ports.port IN (22, 80, 443, 444, 1234, 2000, 2222, 3000, 3780, 4000, 4443, 6379, 7443, 8443, 8080, 8081, 8082, 8087, 8088, 8099, 8089, 8090, 8181, 8888, 8889, 9443, 50050)'

Auteur

  • Michael Haag @M_haggis
  • Jose Hernandez @d1vious

Support 📞

Veuillez utiliser le suivi des problèmes GitHub pour signaler des bugs ou demander des fonctionnalités.

Si vous avez des questions ou besoin d'aide, vous pouvez :

  • Rejoindre le salon #security-research dans le canal Slack Splunk

Crédits et références

  • L'inspiration est venue de quelques blogs :https://michaelkoczwara.medium.com/cobalt-strike-c2-hunting-with-shodan-c448d501a6e2, https://sergiusechel.medium.com/improving-the-network-based-detection-of-cobalt-strike-c2-servers-in-the-wild-while-reducing-the-6964205f6468
  • Une grande partie de cela n'est possible que parce que whickey-r7 a partagé avec nous grab_beacon_config.nse
  • Aan Pour avoir contribué à l'intégration ZoomEye !

À faire

  • Dédupliquer les résultats avant nmap
  • Ajouter une vérification du résultat le plus récent en regardant le champ latest_updated

Licence

Copyright 2020 Splunk Inc.

Sous licence Apache License, Version 2.0 (la « Licence »); vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à

http://www.apache.org/licenses/LICENSE-2.0

Sauf disposition contraire de la loi ou accord écrit, le logiciel distribué sous la Licence est distribué « EN L'ÉTAT », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Voir la Licence pour les autorisations spécifiques et les limitations.

Télécharger l’outil