Cobalto esmaltado Herramienta para buscar / extraer balizas de impacto de cobalto y «reducir» su configuración de balizas para su posterior indexación. Las cacerías pueden ser extensas y en Internet utilizando servicios como Security Trails, Shodan o ZoomEye o una lista de direcciones IP.
Empezado
- Instalar cobalto fundido
- Configura tus tokens para comenzar la caza
- Minas balizas para reducirlas
- Revisar resultados
cat results.json | jq
instalación
Requerimientos: virtualenv
, y python3.8+
git clone https://github.com/splunk/melting-cobalt && cd melting-cobalt
Clone el proyecto y el CD en el directorio del proyecto.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, haga lo mismo [these](http: // necesita la página wiki) instrucciones.
Ejemplo de configuración:
[global]
Salida = results.json
#store coincide en JSON aquí
log_path = fusión de cobalto.log
# Define log_path para el archivo de registro
log_level = INFO
# Establece el nivel de registro para el registro
# Valores posibles: INFO, ERROR, VERBOSE
nse_script = grab_beacon_config.nse
#Path to nse script que destruye las configuraciones de cobalto. Esto se hace específicamente usando https://github.com/whickey-r7/grab_beacon_config
busca = search.yml
# Contiene las diversas búsquedas que realiza cada proveedor de servicios de escaneo de Internet (por ejemplo, Shodan, Zoomeye, Security Paths) cuando busca servidores de equipo.
#shodan_token = TOKENHERE
Ficha de Shodan para buscar
zoomeye_token = TOKENHERE
Fichas de Zoomeye para buscar
securitytrails_token = TOKENHERE
Token de ruta de seguridad para búsqueda
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:
1.1.1.1
2.2.2.2
3.3.3.3
Correr:
python melting-cobalt.py -i ips.txt
Si necesita inspiración de los cazadores, le recomendamos:
- El informe DFIR
- Golpe de cobalto impresionante
- CobaltoHuelgaBot
propósito de uso
Uso: Schmelzkobalt.py [-h] [-c CONFIG] [-o OUTPUT] [-v] [-i INPUT]
escanea en busca de servidores abiertos del equipo de ataque de cobalto y obtiene sus configuraciones de baliza y lo escribe como un registro json que puede ser analizado por herramientas de análisis
como splunk, elástico, etc.
argumentos opcionales:
-h, –help Muestra este mensaje de ayuda y sale
-c CONFIG, –config CONFIG
Ruta del archivo de configuración
-o SALIDA, –Salida SALIDA
Archivo para escribir en los resultados, results.json.log por defecto
v, la versión muestra la versión actual de cobalto fundido
i ENTRADA, entrada ENTRADA
Archivo delimitado por saltos de línea con IP de Cobalt Strike Server para obtener configuraciones de balizas. Ejemplo ips.txt
Ejemplos de búsqueda
Las siguientes búsquedas están listas para su uso inmediato y se pueden complementar con más search.yml
para obtener más datos.
Shodan
Tabla de Contenidos
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'
Caminos de seguridad
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)'