Version 4.5 de Cobalt Strike cra/quer, suppression de la signature Checksum8, bypass BeaconEye, correction de la fuite du stage dans le chemin d'erreur, ajout de l'authentification à deux facteurs TOTP, correction de CVE-2022-39197, etc.
Crack de cobaltstrike version 4.5, suppression de la signature checksum8, bypass de BeaconEye, correction de la fuite de stage par chemin erroné, ajout de la vérification à double facteur TOTP, ajout de l'affichage chiffré des noms d'utilisateur, correction du bug de dérivation foreign de la version 4.5, modification du nom du fichier de configuration du client, etc.
Crack de cobalt strike 4.5
Crack de cobaltstrike 4.5
[TOC]
Cet outil ainsi que le contenu de cet article sont réservés à la recherche en sécurité. L'utilisateur assume l'entière responsabilité légale et toute responsabilité connexe résultant de l'utilisation de cet outil et du contenu de cet article ! L'auteur n'assume aucune responsabilité légale ! Si vous commettez un quelconque acte illégal lors de l'utilisation de cet outil et du contenu de cet article, vous assumez seul les conséquences qui en découlent ; nous n'assumons aucune responsabilité légale ni conjointe. Dans le cas contraire, veuillez ne pas installer ni utiliser cet outil. Votre utilisation de cet outil ou toute autre manifestation expresse ou implicite d'acceptation du présent accord sera considérée comme votre lecture et votre acceptation des termes du présent accord. Lors de l'utilisation de cet outil pour des recherches en sécurité, vous devez vous assurer que cette activité est conforme aux lois et règlements et que vous avez obtenu les autorisations nécessaires. N'utilisez pas cet outil sur des cibles non autorisées.
Oui, je suis de retour, en continuité avec l'original cobaltstrike4.4_cdf : https://github.com/lovechoudoufu/about_cobaltstrike4.4_cdf Cette fois-ci, il s'agit de la version 4.5. La version 4.4 précédente a été supprimée par GitHub ; je suppose que ce projet sera également supprimé d'ici peu ~.
Il est recommandé de rejoindre le groupe Telegram (小飞机) ; les futures mises à jour et projets pourront être téléchargés depuis le groupe après leur suppression :

Avant utilisation, veuillez vérifier soigneusement le hash du fichier jar de la version correspondante.
Processus de certification (exemple avec la 4.3) : la version 4.5 a été légèrement modifiée à la fin.
Clés de déchiffrement officielles des différentes versions :
4.0 1be5be52c6255c33558e8a1cb667cb06
4.1 80e32a742060b884419ba0c171c9aa76
4.2 b20d487addd4713418f2d5a3ae02a7a0
4.3 3a4425490f389aeec312bdd758ad2b99
4.4 5e98194a01c6b48fa582a6a9fcbb92d6
cobaltstrike.auth : fichier de clé d'authentification, chiffré RSA, contenu après déchiffrement :
4.3
-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
À chaque nouvelle version, la longueur correspondante augmente de 17 et la clé s'allonge de 17 octets.
Dans aggressor/Aggressor.class, License.checkLicenseGUI(new Authorization()); lance la certification de licence :

Dans License.checkLicenseGUI, isValid, isPerpetual, isExpired, isAlmostExpired déterminent si la licence est valide ou expirée :

La classe Authorization gère le fichier cobaltstrike.auth : elle lit le contenu du fichier et appelle AuthCrypto().decrypt pour le traiter :

Dans AuthCrypto(), le constructeur appelle load() ; la fonction load() effectue une vérification md5 sur resources/authkey.pub, puis récupère la clé publique RSA :

Dans decrypt(), _decrypt est appelé pour déchiffrer le contenu du fichier cobaltstrike.auth avec la clé publique RSA, le résultat étant affecté au tableau var2, puis converti via DataParser et affecté à var3 ; la méthode readInt() récupère les quatre premiers octets de var3 pour identifier l'en-tête du fichier (-889274181 pour les versions 3.x ; -889274157 pour les versions 4.x). Ensuite, readShort() récupère deux octets de var3 comme longueur et les affecte à var5, puis var6 = var3.readBytes(var5) récupère le contenu de cette longueur, l'affecte à var6 et le retourne :

Le tableau arrayOfByte2 obtenu dans la classe Authorization correspond au contenu après suppression des six premiers octets. Le traitement du tableau arrayOfByte2 se poursuit : quatre nombres sont d'abord récupérés et affectés à i, puis quatre nombres sont affectés à watermark, puis un nombre est affecté à b1 ; on vérifie que b1 est inférieur à 43 et que i est égal à 29999999. Dans common/ListenerConfig, si watermark vaut 0, un filigrane de détection antivirus est ajouté :


Après avoir supprimé les 6 premiers octets, puis les 9 octets correspondant à i, watermark et b1, il reste les clés des versions 4.0 à 4.3, de la forme : 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 :
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
Dans la classe Authorization, la méthode SleevedResource.Setup est appelée pour traiter arrayOfByte6. Dans SleevedResource, la clé est définie comme clé de déchiffrement AES et HmacSHA256 ; dans _readResource, this.data.decrypt(arrayOfByte1); effectue l'appel de déchiffrement, le contenu déchiffré étant les fichiers dll de /sleeve/ :

Dans SleeveSecurity, la clé de déchiffrement AES et HmacSHA256 est définie ; une valeur de hachage de 256 octets est calculée à partir de la valeur transmise, dont les octets 0-16 servent de clé AES et les octets 16-32 de clé HmacSHA256 :

Sans la clé correspondante, il est impossible de déchiffrer les dll du dossier sleeve ; lors de la connexion au serveur, le message d'erreur [Sleeve] Bad HMAC s'affiche :