Cobalt: un escáner de impacto de Cobalt que extrae las balizas del servidor del equipo detectadas en un objeto JSON

Una herramienta para buscar / descomponer balizas de impacto de cobalto y «reducir» su configuración de balizas para su posterior indexación. Las búsquedas pueden ser extensas y en Internet utilizando servicios como SecurityTrails, Shodan o ZoomEye o una lista de direcciones IP.

Empezado

  1. Instalar cobalto fundido
  2. Configura tus tokens para comenzar la caza
  3. Minas balizas para reducirlas
  4. Revisar los resultados cat results.json | jq

instalación

Requerimientos: virtualenv, y python3.8+

  1. git clone https://github.com/splunk/melting-cobalt && cd melting-cobalt Clone el proyecto y el CD en el directorio del proyecto.
  2. pip install virtualenv && virtualenv -p python3 venv && source venv/bin/activate && pip install -r requirements.txt Compile Virtualenv e instale los requisitos.

Continúe con la configuración de las claves de API SecurityTrails, Shodan o ZoomEye.

construcción melting-cobalt.conf

Dupdo melting-cobalt.conf.example para melting-cobalt.conf!

Asegúrese de configurar un token para uno de los proveedores disponibles. Si necesita crear uno para su cuenta, siga este [these](http: // necesita la página wiki) instrucciones.

Ejemplo de configuración:

Escanee proveedores de servicios (por ejemplo, Shodan, Zoomeye, Security Trails) cuando busque servidores de equipo. shodan_token = TOKENHERE # shodan-Token para buscar zoomeye_token = TOKENHERE # zoomeye-Token para buscar securitytrails_token = TOKENHERE # Ruta de seguridad token para buscar «>

[global]output = results.json# stores matches in JSON herelog_path = melting-cobalt.log# Sets the log_path for the logging filelog_level = INFO# Sets the log level for the logging# Possible values: INFO, ERROR, VERBOSEnse_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_configsearches = 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 searchingzoomeye_token = TOKENHERE# zoomeye token for searchingsecuritytrails_token = TOKENHERE# security trails token for searching

Busca en la web

Para cambiar la minería estándar realizada por diferentes proveedores, personalice search.yml. Los ejemplos de búsqueda de cobalto de fusión estándar a continuación.

Correr:

python melting-cobalt.py

Buscar en la lista de IP

poblar ips.txt una nueva línea delimitada con posibles IPs de Cobalt Strike C2, ejemplo:

Correr:

python melting-cobalt.py -i ips.txt

Si necesita inspiración de los cazadores, le recomendamos:

propósito de uso

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 toolslike splunk, elastic, etc..optional arguments:-h, --help show this help message and exit-c CONFIG, --config CONFIGconfig file path-o OUTPUT, --output OUTPUTfile to write to the results, defaults to results.json.log-v, --version shows current melting-cobalt version-i INPUT, --input INPUTnewline delimeted file of cobalt strike server ips to grab beacon configs from. example ips.txt

Ejemplos de búsqueda

Las siguientes búsquedas están listas para usar desde el primer momento y se pueden agregar más search.yml para obtener más datos.

Shodan

Si encuentra firmas JARM específicas, rastrearemos inmediatamente Cobalt Strike 4.x.

‘ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1’

Filtrar por encabezados y puertos HTTP para reducir los resultados ruidosos

‘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’

Servidor del equipo de Shodan reconocido

‘product:»cobalt strike team server»‘

Nota: produce muchos resultados ruidosos. No planee hacer esto a menos que desee quemar los créditos de su licencia.

Número de serie del certificado del servidor del equipo

‘ssl.cert.serial:146473198’

SecurityTrails

Encuentre firmas JARM específicas

‘SELECT address, ports.port FROM ips WHERE jarm = «07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1″‘

Filtrar por encabezados y puertos HTTP para reducir nmap_results ruidosos

‘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)’

autor

apoyo

Utilice el Rastreador de problemas de GitHub para informar errores o solicitar funciones.

Si tiene alguna pregunta o necesita ayuda, puede:

Créditos y referencias

La inspiración provino de un puñado de blogs: muchos de ellos solo son posibles porque Whiskey-7 compartió con nosotros grab_beacon_config.nse

HACER

  • Agregar ojo de zoom
  • Dedup resultados antes de nmap
  • agregue la verificación del último resultado mirando el campo Latest_updated

Licencia

Derechos de autor 2020 Splunk Inc.

Con licencia de Apache License, Versión 2.0 (la «Licencia»); Solo puede utilizar este archivo de acuerdo con la licencia. Puede obtener una copia de la licencia en

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

A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la licencia se distribuye «TAL CUAL» SIN garantías ni condiciones expresas o implícitas de ningún tipo. Consulte la licencia para conocer el idioma específico que rige los permisos y restricciones de la licencia.