Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cobaltstrike4.5_cdf-1 — versión crackeada de cobaltstrike4.5, eliminación de la firma checksum8, bypass de BeaconEye, corrección de la fuga del stage en rutas de error, adición de verificación de doble factor TOTP, corrección de CVE-2022-39197, etc. | Kitploit
Herramientas/GitHubGitHub/zeoday/cobaltstrike4.5_cdf-1
Frameworks de Pruebas de PenetraciónFrameworks de ExploitsAnálisis de VulnerabilidadesEvasión de IDS/IPSIngeniería InversaCriptografíaComando y ControlAnálisis de BinariosAutenticación

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Red Teaming
Desarrollo de Payloads
GitHubzeoday/cobaltstrike4.5_cdf-1

cobaltstrike4.5_cdf-1

versión crackeada de cobaltstrike4.5, eliminación de la firma checksum8, bypass de BeaconEye, corrección de la fuga del stage en rutas de error, adición de verificación de doble factor TOTP, corrección de CVE-2022-39197, etc.

Ver Repositorio
1hace 3 añosAún no revisado
Compartir

cobaltstrike4.5_cdf

Crack de la versión 4.5 de cobaltstrike, eliminación de la característica checksum8, bypass de BeaconEye, corrección de la fuga de stage por rutas erróneas, adición de verificación de doble factor TOTP, adición de visualización cifrada de nombres de usuario, corrección del bug de derivación foreign en la versión 4.5, modificación del nombre del archivo de configuración del cliente, etc.

Crack de cobalt strike 4.5

Crack de cobaltstrike 4.5

[TOC]

Descargo de responsabilidad \ Acuerdo de descargo

Esta herramienta y el contenido del artículo se limitan exclusivamente a la investigación de seguridad. El usuario asume todas las responsabilidades legales y relacionadas derivadas del uso de esta herramienta y del contenido del artículo. El autor no asume ninguna responsabilidad legal. Si usted incurre en cualquier comportamiento ilegal durante el uso de esta herramienta y del contenido del artículo, deberá asumir las consecuencias correspondientes por su cuenta; no asumiremos ninguna responsabilidad legal ni solidaria. De lo contrario, no instale ni utilice esta herramienta. Su uso de esta herramienta o cualquier otra forma expresa o implícita de aceptación de este acuerdo se considerará como que ha leído y aceptado las condiciones de este acuerdo. Al utilizar esta herramienta para la investigación de seguridad, debe asegurarse de que dicha actividad cumple con las leyes y regulaciones, y de que ha obtenido la autorización suficiente. No la utilice contra objetivos no autorizados.

Sí, he vuelto. Continúo con el original cobaltstrike4.4_cdf: https://github.com/lovechoudoufu/about_cobaltstrike4.4_cdf Esta vez es la versión 4.5. El 4.4 anterior fue eliminado por GitHub; calculo que este proyecto también será eliminado dentro de poco~.

Se recomienda unirse al grupo del avioncito (Telegram); cuando este proyecto y otras actualizaciones sean eliminados, se podrán descargar desde el grupo:

image-20220802163532221

Antes de usarlo, verifique cuidadosamente el hash del archivo jar de la versión correspondiente.

Crack de CS

Versiones anteriores a la 4.5

Proceso de autenticación de certificado (tomando 4.3 como ejemplo): la versión 4.5 tiene ligeros cambios al final.

Claves de descifrado oficiales de cada versión:

root@kitploit:~
4.0 1be5be52c6255c33558e8a1cb667cb06
4.1 80e32a742060b884419ba0c171c9aa76
4.2 b20d487addd4713418f2d5a3ae02a7a0
4.3 3a4425490f389aeec312bdd758ad2b99
4.4 5e98194a01c6b48fa582a6a9fcbb92d6

cobaltstrike.auth archivo de clave de autenticación, cifrado RSA, contenido descifrado:

4.3

root@kitploit:~
-54, -2, -64, -45,	//文件头
0, 77,	//后续长度 
1, -55, -61, 127, 	//证书时间限制29999999(永久)
0, 0, 0, 1, 	//watermark(水印)
43, 	//版本
16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 
16, 58, 68, 37, 73, 15, 56, -102, -18, -61, 18, -67, -41, 88, -83, 43, -103

Cada vez que se actualiza una versión, la longitud correspondiente aumenta en 17 y la key aumenta en 17 bytes.

En aggressor/Aggressor.class, License.checkLicenseGUI(new Authorization()); inicia la autenticación de la licencia:

image-20211101142121856

En License.checkLicenseGUI, isValid, isPerpetual, isExpired e isAlmostExpired determinan si la autorización es válida y si ha expirado:

image-20211101142738431

La clase Authorization se encarga del procesamiento del archivo cobaltstrike.auth; lee el contenido del archivo y llama a AuthCrypto().decrypt para procesarlo:

image-20211101143829398

En el constructor de AuthCrypto(), se llama a load(); en la función load() se realiza una comprobación md5 de resources/authkey.pub y luego se obtiene la clave pública RSA:

image-20211101144809625

En decrypt(), se llama a _decrypt para realizar el descifrado RSA del contenido del archivo cobaltstrike.auth con la clave pública y se asigna al array var2; luego se usa DataParser para convertirlo y asignarlo a var3. El método readInt() obtiene los primeros cuatro bytes de var3 para la comprobación del encabezado del archivo (-889274181 para la versión 3.x; -889274157 para la versión 4.x). Después, readShort() de var3 obtiene dos bytes como longitud y los asigna a var5, y luego var6 = var3.readBytes(var5) obtiene el contenido de esa longitud, lo asigna a var6 y lo devuelve:

image-20211101145153818

El array arrayOfByte2 obtenido en la clase Authorization es el contenido tras eliminar los primeros seis bytes. Se continúa procesando el array arrayOfByte2: primero se obtienen cuatro números y se asignan a i, luego se obtienen 4 números y se asignan a watermark, y después se obtiene un número y se asigna a b1, comprobando que b1 sea menor que 43 y que i sea igual a 29999999. En common/ListenerConfig, cuando watermark es 0, se añade la marca de detección antivirus:

image-20211101152338045

image-20211101152000407

Tras eliminar los primeros 6 bytes, se eliminan también los 9 bytes de i, watermark y b1; lo que queda son las claves desde 4.0 hasta 4.3, con la estructura: 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20:

root@kitploit:~
            byte b2 = dataParser.readByte();	//获取1位,即16
            byte[] arrayOfByte3 = dataParser.readBytes(b2);		//获取16位,为4.0的key
            byte b3 = dataParser.readByte();	//获取1位,即16
            byte[] arrayOfByte4 = dataParser.readBytes(b3);		//获取16位,为4.1的key
            byte b4 = dataParser.readByte();	//获取1位,即16
            byte[] arrayOfByte5 = dataParser.readBytes(b4);		//获取16位,为4.2的key
            byte b5 = dataParser.readByte();	//获取1位,即16
            byte[] arrayOfByte6 = dataParser.readBytes(b5);		//获取16位,为4.3的key赋值给arrayOfByte6

En la clase Authorization se llama al método SleevedResource.Setup para procesar arrayOfByte6. En SleevedResource, la key se establece como la clave secreta de descifrado AES y HmacSHA256; en _readResource se realiza la llamada de descifrado this.data.decrypt(arrayOfByte1); el contenido descifrado son los archivos dll de /sleeve/:

image-20211101153935202

En SleeveSecurity se establecen las claves secretas de descifrado AES y HmacSHA256; se usa el valor pasado para calcular un resumen de longitud 256, luego se toman los bytes 0-16 como clave AES y los bytes 16-32 como clave HmacSHA256.

image-20211101154127243

Si no se obtiene la clave correspondiente, no se pueden descifrar los dll de la carpeta sleeve; al conectarse al servidor aparecerá el mensaje de error [Sleeve] Bad HMAC:

image-20211101160942103

Para la parte de descifrado hmac, se puede consultar: Crack de Cobaltstrike 4: me otorgo la licencia a mí mismo

Por lo tanto, la clave para completar el crack es la key correspondiente a la versión de CS.

Nuevas verificaciones en la versión 4.5

Según la descripción oficial, la versión 4.5 añade seguridad a la licencia. Efectivamente es así,

image-20220802145353409

Así que necesitamos descifrar el archivo auth filtrado para ver qué se ha añadido:

image-20220802154920364

Después de la posición de la key de 4.5 hay una cadena adicional; lo que se ha añadido es el watermarkHash nuevo de esta versión:

image-20220802155137639

El watermarkHash está relacionado con la generación de beacon y con los dll de la carpeta sleeve; sin él, o si es incorrecto, no se puede establecer la conexión. Probablemente los desarrolladores oficiales puedan rastrear el origen de la filtración mediante este watermarkHash.

image-20220802155317878

Métodos de crack

Método 1: key hardcodeada

Comente el resto del código y fije el valor del parámetro asignado tras el descifrado RSA de AuthCrypto().decrypt:

image-20220802155654981

root@kitploit:~
         byte[] var4 = {1, -55, -61, 127, 0, 1, -122, -96, 45, 16, 27, -27, -66, 82, -58, 37, 92, 51, 85, -114, -118, 28, -74, 103, -53, 6, 16, -128, -29, 42, 116, 32, 96, -72, -124, 65, -101, -96, -63, 113, -55, -86, 118, 16, -78, 13, 72, 122, -35, -44, 113, 52, 24, -14, -43, -93, -82, 2, -89, -96, 16, 58, 68, 37, 73, 15, 56, -102, -18, -61, 18, -67, -41, 88, -83, 43, -103, 16, 94, -104, 25, 74, 1, -58, -76, -113, -91, -126, -90, -87, -4, -69, -110, -42, 16, -13, -114, -77, -47, -93, 53, -78, 82, -75, -117, -62, -84, -34, -127, -75, 66, 0, 0, 0, 24, 66, 101, 117, 100, 116, 75, 103, 113, 110, 108, 109, 48, 82, 117, 118, 102, 43, 86, 89, 120, 117, 119, 61, 61};

Método 2: usando Javaagent

Principio de Javaagent: https://www.cnblogs.com/rickiyang/p/11368932.html

Herramienta de crack de referencia: https://github.com/Twi1ight/CSAgent

El núcleo del crack sigue siendo necesitar la key de la versión correspondiente de CS.

Eliminación de trampas ocultas

En beacon/BeaconData, fije el valor del método shouldPad en false:

image-20211101180447451

Nueva trampa oculta en 4.4

(Anteriormente se analizó la autenticación de licencia con 4.3 como ejemplo; al cambiar a 4.4 se descubrió que el programa salía al ejecutarse; existen nuevas trampas ocultas)

En comparación con el exit de this.shouldPad anterior, también se añadió una comprobación de .class en common/Helper; basta con comentarla:

image-20211119153406737

Se añadió una comprobación de .class en common/Starter; basta con comentarla:

image-20211119153558224

Se añadió una comprobación de .class en common/Starter2; basta con comentarla:

image-20211119153636952

Se añadió una comprobación de .class en beacon/CommandBuilder: (esta trampa oculta es una auténtica perrada; después de 4 horas de conexión continua entre client y teamserver no se pueden ejecutar comandos; como nunca había estado conectado tanto tiempo, no lo había descubierto; ggg)

image-20220505104735903

Nueva trampa oculta en 4.5

La versión 4.5 añadió un montón de trampas ocultas contra javaagent; quienes descompilen el jar para hacer el crack pueden ignorarlas; basta con buscar javaagent y modificarlas una a una:

image-20220802160404976

Al eliminar estos puntos, se puede volver a hacer deporte en equipo.

Eliminación de la característica checksum8 de CS

No entraré en detalle sobre la característica checksum8; para evitar ser detectado por nmap y los motores de búsqueda de ciberespacio, vale la pena modificarla.

Modificación del código

En BeaconPayload, modifique el valor de la operación XOR por uno nuevo:

Cualquier número decimal sirve; luego, en los dll, cámbielo al número hexadecimal correspondiente.

image-20211108114054512

Modificación de los dll

Use CrackSleeve para descifrar los dll: https://github.com/ca3tie1/CrackSleeve/

  1. Coloque cobaltstrike.jar y CrackSleeve.java juntos
  2. Compile (javac -encoding UTF-8 -classpath cobaltstrike.jar CrackSleeve.java)
  3. Descifre el archivo (java -classpath cobaltstrike.jar;./ CrackSleeve decode) # ejecutar en la línea de comandos de Windows

Use Alt+T para buscar la palabra clave: 2Eh

image-20211107222017434

image-20211107222039265

Modifique directamente el valor del XOR; primero use Change byte para encontrar 2E y modificarlo, y luego Apply patches to input file para guardar. (No olvide guardar)

image-20211107222223636

Los dll que deben modificarse: beacon.dll, beacon.x64.dll, dnsb.dll, dnsb.x64.dll, pivot.dll, pivot.x64.dll, extc2.dll, extc2.x64.dll (los nuevos rl100k.dll de 4.5 también deben modificarse)

Luego cifre los dll con CrackSleeve; por último, coloque los dll del directorio encode en el directorio del proyecto de IDEA y vuelva a compilar y empaquetar.

Al probar, aunque la dirección uri todavía se puede solicitar, el contenido ya no puede ser descifrado por los scripts de nmap; de la misma manera, también se puede evitar la identificación de los motores de búsqueda de ciberespacio:

image-20211107233719344

Además de modificar el valor del XOR, también se puede usar https://mp.weixin.qq.com/s?__biz=MzA3MDY2NjMxMA==&mid=2247484641&idx=1&sn=014f6c4ad5343e3f5034c33dffa66f26&chksm=9f3815c8a84f9cde1c7493ff29cfc89c0474fec48ede52be618727e7b9a5ab321c4743e1a44c&mpshare=1&scene=23&srcid=1202NA46yt71CvD3BMGKS10c&sharer_sharetime=1606892728447&sharer_shareid=ff83fe2fe7db7fcd8a1fcbc183d841c4#rd para cambiar el algoritmo checksum8. Sin embargo, solo se podrá acceder con una uri fija, necesita combinarse con un profile para poder usarse, y cada vez que se cambie la uri hay que volver a empaquetar; cada método tiene sus ventajas y desventajas.

Eliminación de la característica de BeaconEye en CS

La idea para eliminar la característica de BeaconEye proviene del enlace; tomando 4.3 y 4.4 como ejemplo, los bytes que deben modificarse son los siguientes.

Use CrackSleeve para descifrar los dll: https://github.com/ca3tie1/CrackSleeve/

  1. Coloque cobaltstrike.jar y CrackSleeve.java juntos

  2. Compile (javac -encoding UTF-8 -classpath cobaltstrike.jar CrackSleeve.java)

  3. Descifre el archivo (java -classpath cobaltstrike.jar;./ CrackSleeve decode) # ejecutar en la línea de comandos de Windows

Clave de 4.3: 58, 68, 37, 73, 15, 56, -102, -18, -61, 18, -67, -41, 88, -83, 43, -103 Clave de 4.4: 94, -104, 25, 74, 1, -58, -76, -113, -91, -126, -90, -87, -4, -69, -110, -42

Modificación para 4.3

dll de 32 bits

Dirección: 10009FBB

6A 00 cámbielo a 6A 09 (cambie 00 por cualquier valor)

image-20211111165257545

dll de 64 bits

Dirección: 000000001800186C3

La instrucción en beacon.x64.dll es xor edx, edx; cámbiela a mov edx, esi

image-20211111165321033

Modificación para 4.4

dll de 32 bits

Dirección: 1000A0B9

6A 00 cámbielo a 6A 09 (cambie 00 por cualquier valor)

image-20211112104322791

dll de 64 bits

Dirección: 000000018001879B

La instrucción en beacon.x64.dll es xor edx, edx; cámbiela a mov edx, esi

image-20211112105408975

Vuelva a cifrar con: java -classpath cobaltstrike.jar;./ CrackSleeve encode

image-20211111173148579

image-20211112124415835

Modificación para 4.5

dll de 32 bits

Dirección: 1000A65D

image-20220609144218351

dll de 64 bits

Dirección: 000000018000CA3F

image-20220609160825342

(Los nuevos rl100k.dll de 4.5 también deben modificarse)

Corrección de la fuga de stage por rutas erróneas en CS

Fuente: https://mp.weixin.qq.com/s?__biz=Mzg2NjQ2NzU3Ng==&mid=2247489846&idx=1&sn=181c223cab4bce4e06def94604166348&chksm=ce4b32a1f93cbbb70e63e589d0da6323a8d2d4539c8aa0ef57d4005976dda6d73caeddebcac3&mpshare=1&scene=1&srcid=0308x6zXAxyDR8lv27V2O9yn&sharer_sharetime=1647358883801&sharer_shareid=15e69d4f532774f3e596a31efa4ef72b#rd

image-20220330111308258

El método consiste en añadir una comprobación de "/" en la uri; si no empieza por "/", se responde con 404:

Modificación para 4.4

image-20220330111413985

Modificación para 4.3

image-20220330125957143

Añadir visualización cifrada del nombre de usuario

Para evitar que se filtre la contraseña TOTP o el nombre de inicio de sesión de CS en el Event Log, se aplica md5 con sal al campo name; después de la modificación queda así:

image-20220330112745362

Añadir verificación TOTP

Se ha añadido la verificación de doble factor TOTP para reforzar el inicio de sesión y evitar que la contraseña sea robada mediante fuerza bruta.

En el lado de teamserver, se ha añadido un enlace de código QR TOTP en la salida de teamserver:

image-20220407112543322

(Antes de eliminar nohup.out, recuerde copiar el QR code; cada vez que se inicia teamserver se genera un nuevo QR code, por lo que cada vez que se inicie teamserver habrá que volver a escanearlo)

Ábralo en el navegador (se necesita VPN) y escanee el código QR con Google Authenticator o un verificador TOTP; también puede copiar la clave que aparece después de secret%3D y configurarla en el verificador:

image-20220407112054716

En el lado de connect, host, port y password son igual que antes; en el campo user, los últimos seis dígitos deben ser el número dinámico TOTP para poder conectar:

image-20220407111813265

Si no se rellena o se rellena incorrectamente el número dinámico TOTP, se mostrará un aviso:

image-20220407113709140

Nota: si en algún momento no se tiene el móvil a mano, se puede usar un plugin de TOTP del navegador o hacer un pequeño script TOTP en Python.

Corrección del bug de derivación foreign en CS 4.5

Al usar windows/foreign/reverse_http(s) para hacer spawn, se produce el siguiente error:

image-20220827183854784

Esta versión añadió en ScListener la operación getScalar de Custom correspondiente, pero no tuvo en cuenta el caso de foreign, lo que provoca que var1.customDLL y customFileName estén vacíos y se produzca el error:

image-20220827184042529

La solución temporal consiste en devolver directamente el shellcode cuando se detecta que el payload es foreign; si este método tiene otros bugs, se puede reportar mediante issues:

image-20220827190844595

Después de la corrección, se puede usar con normalidad:

image-20220827190954960

Modificación del nombre del archivo de configuración del cliente de CS

Para evitar que el archivo de configuración sea leído por honeypots de mysql, el nombre del archivo de configuración del cliente de CS ya no es el predeterminado; se genera un nombre de archivo de 11 caracteres (11 de los caracteres del md5 de la dirección MAC).

image-20220827191056012

Descargar herramienta