
Uno scanner per Cobalt Strike che recupera i beacon rilevati del Team Server in un oggetto JSON
Uno strumento per cercare/minare beacon di Cobalt Strike e "ridurre" la loro configurazione dei beacon per un'indicizzazione successiva. Le ricerche possono essere estese e su Internet ampio utilizzando servizi come SecurityTrails, Shodan o ZoomEye oppure un elenco di IP.
cat results.json | jq📺 Demo
Requisiti: virtualenv e python3.8+
git clone https://github.com/splunk/melting-cobalt && cd melting-cobalt Clona il progetto e spostati nella directory del progetto.pip install virtualenv && virtualenv -p python3 venv && source venv/bin/activate && pip install -r requirements.txt Crea Virtualenv e installa i requisiti.Continua con configurazione per ottenere la chiave API di SecurityTrails, Shodan o ZoomEye.
melting-cobalt.confCopia melting-cobalt.conf.example in melting-cobalt.conf!
Assicurati di impostare un token per uno dei provider disponibili. Se hai bisogno di crearne uno per il tuo account, segui [queste](htt://need wiki page) istruzioni.
Esempio di configurazione:
[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
Per modificare la ricerca predefinita eseguita su diversi provider, personalizza search.yml. I Esempi di Ricerca predefiniti di melting-cobalt sono di seguito.
Esegui:
python melting-cobalt.py
popola ips.txt con potenziali IP C2 di Cobalt Strike separati da nuova riga, esempio:
1.1.1.1
2.2.2.2
3.3.3.3
Esegui:
python melting-cobalt.py -i ips.txt
Se hai bisogno di ispirazione da cacciatori, raccomandiamo vivamente:
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
Le seguenti ricerche sono fornite di default e altre possono essere aggiunte a search.yml per più dati.
'ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1'
'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'
'product:"cobalt strike team server"'
nota: genererà molti risultati rumorosi, non schedulare questo se non vuoi bruciare i tuoi crediti di licenza.
'ssl.cert.serial:146473198'
'SELECT address, ports.port FROM ips WHERE jarm = "07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1"'
'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)'
Utilizza il GitHub issue tracker per segnalare bug o richiedere funzionalità.
Se hai domande o hai bisogno di supporto, puoi:
Copyright 2020 Splunk Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.