Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cobaltstrike4.5_cdf-1 — CobaltStrike 4.5 Version geknackt, Entfernung der Checksum8-Eigenschaften, Umgehung von BeaconEye, Behebung von Stage-Leck durch fehlerhafte Pfade, Hinzufügen von TOTP-Zwei-Faktor-Authentifizierung, Behebung von CVE-2022-39197 usw. | Kitploit
Tools/GitHubGitHub/zeoday/cobaltstrike4.5_cdf-1
Penetrationstest-FrameworksExploit-FrameworksSchwachstellenanalyseIDS/IPS-UmgehungReverse EngineeringKryptographieCommand and ControlBinäranalyseAuthentifizierung
Red Teaming
Payload-Entwicklung
GitHubzeoday/cobaltstrike4.5_cdf-1

cobaltstrike4.5_cdf-1

CobaltStrike 4.5 Version geknackt, Entfernung der Checksum8-Eigenschaften, Umgehung von BeaconEye, Behebung von Stage-Leck durch fehlerhafte Pfade, Hinzufügen von TOTP-Zwei-Faktor-Authentifizierung, Behebung von CVE-2022-39197 usw.

Repository anzeigen
14vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

cobaltstrike4.5_cdf

Crack der CobaltStrike 4.5-Version, Entfernung des Checksum8-Merkmals, Umgehung von BeaconEye, Behebung des Stage-Leaks durch fehlerhafte Pfade, Hinzufügen der TOTP-Zwei-Faktor-Authentifizierung, verschlüsselte Benutzernamenanzeige, Behebung des Bugs bei der Foreign-Ableitung in Version 4.5, Änderung des Client-Konfigurationsdateinamens usw.

Cobalt Strike 4.5 Crack

cobaltstrike4.5 Crack

[TOC]

Haftungsausschluss / Haftungsvereinbarung

Dieses Tool sowie der Artikelinhalt dienen ausschließlich der Sicherheitsforschung. Der Benutzer trägt die alleinige Verantwortung für alle rechtlichen und damit verbundenen Konsequenzen, die sich aus der Nutzung dieses Tools und des Artikelinhalts ergeben! Der Autor übernimmt keine rechtliche Haftung! Sollten Sie bei der Nutzung dieses Tools oder des Artikelinhalts illegale Handlungen vornehmen, tragen Sie die entsprechenden Konsequenzen selbst. Wir übernehmen keine rechtliche Haftung oder Nebenpflichten. Falls Sie dem nicht zustimmen, installieren und nutzen Sie das Tool bitte nicht. Durch Ihre Nutzung oder jede andere ausdrückliche oder stillschweigende Zustimmung zu dieser Vereinbarung erklären Sie sich damit einverstanden, die Bedingungen dieser Vereinbarung gelesen und akzeptiert zu haben. Bei der Nutzung dieses Tools für Sicherheitsforschung müssen Sie sicherstellen, dass Ihr Handeln den geltenden Gesetzen und Vorschriften entspricht und Sie ausreichend autorisiert sind. Verwenden Sie das Tool nicht gegen nicht autorisierte Ziele.

Ja, ich bin zurück und führe das ursprüngliche cobaltstrike4.4_cdf fort: https://github.com/lovechoudoufu/about_cobaltstrike4.4_cdf Diesmal ist es Version 4.5. Die vorherige Version 4.4 wurde von GitHub gelöscht. Vermutlich wird auch dieses Projekt bald gelöscht.

Es wird empfohlen, der Telegram-Gruppe beizutreten. Zukünftige Updates und Projekte können nach der Löschung aus der Gruppe heruntergeladen werden:

image-20220802163532221

Überprüfen Sie vor der Verwendung sorgfältig den Hash des entsprechenden Version-JAR-Pakets.

CS Crack

Versionen vor 4.5

Zertifikatsauthentifizierungsprozess (am Beispiel 4.3): Version 4.5 wurde leicht geändert.

Offizielle Entschlüsselungsschlüssel für jede Version:

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

cobaltstrike.auth – Authentifizierungsschlüsseldatei, RSA-verschlüsselt, entschlüsselter Inhalt:

4.3

root@kitploit:~
-54, -2, -64, -45,	// Dateiheader
0, 77,	// Folgende Länge
1, -55, -61, 127, 	// Zertifikat-Zeitlimit 29999999 (permanent)
0, 0, 0, 1, 	// Watermark
43, 	// Version
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

Bei jedem neuen Update wird die entsprechende Länge um 17 erhöht und der Schlüssel um 17 Bytes verlängert.

In aggressor/Aggressor.class beginnt die Lizenzprüfung mit License.checkLicenseGUI(new Authorization());:

image-20211101142121856

In License.checkLicenseGUI wird isValid, isPerpetual, isExpired und isAlmostExpired verwendet, um zu prüfen, ob die Lizenz gültig oder abgelaufen ist:

image-20211101142738431

Die Klasse Authorization verarbeitet die Datei cobaltstrike.auth. Sie liest den Dateiinhalt und ruft AuthCrypto().decrypt zur Verarbeitung auf:

image-20211101143829398

Im Konstruktor von AuthCrypto() wird load() aufgerufen. Die Funktion load() prüft den MD5 von resources/authkey.pub und ruft den öffentlichen RSA-Schlüssel ab:

image-20211101144809625

In decrypt() wird _decrypt mit dem Inhalt der cobaltstrike.auth-Datei aufgerufen. Der RSA-entschlüsselte Inhalt wird dem Array var2 zugewiesen, dann mit DataParser in var3 konvertiert. Mit readInt() werden die ersten vier Bytes von var3 als Dateiheader geprüft (-889274181 für 3.x; -889274157 für 4.x). Dann wird mit readShort() eine Zwei-Byte-Länge als var5 gelesen und mit var6 = var3.readBytes(var5) die entsprechenden Bytes abgerufen und zurückgegeben:

image-20211101145153818

In der Authorization-Klasse wird das erhaltene Array arrayOfByte2 nach Entfernen der ersten sechs Bytes weiterverarbeitet: zuerst werden vier Byte als i, dann vier Byte als watermark und ein Byte als b1 gelesen. Es wird geprüft, ob b1 < 43 und ob i == 29999999. In common/ListenerConfig wird geprüft, ob watermark 0 ist, um eine Antiviren-Wasserzeichenerkennung zu aktivieren:

image-20211101152338045

image-20211101152000407

Nach Entfernen der ersten sechs Bytes und der neun Bytes für i, watermark und b1 bleibt der Schlüssel für die Versionen 4.0 bis 4.3 übrig, mit der Struktur: 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20:

root@kitploit:~
            byte b2 = dataParser.readByte();   // 1 Byte => 16
            byte[] arrayOfByte3 = dataParser.readBytes(b2);   // 16 Byte => 4.0-Schlüssel
            byte b3 = dataParser.readByte();   // 1 Byte => 16
            byte[] arrayOfByte4 = dataParser.readBytes(b3);   // 16 Byte => 4.1-Schlüssel
            byte b4 = dataParser.readByte();   // 1 Byte => 16
            byte[] arrayOfByte5 = dataParser.readBytes(b4);   // 16 Byte => 4.2-Schlüssel
            byte b5 = dataParser.readByte();   // 1 Byte => 16
            byte[] arrayOfByte6 = dataParser.readBytes(b5);   // 16 Byte => 4.3-Schlüssel, zugewiesen an arrayOfByte6

In der Authorization-Klasse wird SleevedResource.Setup mit arrayOfByte6 aufgerufen. In SleevedResource wird der Schlüssel als AES- und HmacSHA256-Entschlüsselungsschlüssel festgelegt. In _readResource wird this.data.decrypt(arrayOfByte1) zur Entschlüsselung aufgerufen, um die DLL-Dateien aus /sleeve/ zu entschlüsseln:

image-20211101153935202

In SleeveSecurity wird der AES- und HmacSHA256-Entschlüsselungsschlüssel festgelegt. Aus dem übergebenen Wert wird ein 256-Bit-Hash berechnet, die Bytes 0-15 als AES-Schlüssel und Bytes 16-31 als HmacSHA256-Schlüssel verwendet:

image-20211101154127243

Ohne den passenden Schlüssel können die DLLs im sleeve-Ordner nicht entschlüsselt werden. Bei der Verbindung zum Server erscheint dann die Fehlermeldung [Sleeve] Bad HMAC:

image-20211101160942103

Der HMAC-Entschlüsselungsteil kann hier nachgelesen werden: Cobaltstrike 4 Crack: Ich verleihe mir selbst eine Lizenz

Der Schlüssel für die entsprechende CS-Version ist also entscheidend für den Crack.

Neu in Version 4.5: Zusätzliche Prüfungen

Laut offizieller Beschreibung wurde in Version 4.5 die Sicherheit der Lizenz erhöht – das stimmt:

image-20220802145353409

Wir müssen die durchgesickerte auth-Datei entschlüsseln, um zu sehen, was hinzugekommen ist:

image-20220802154920364

Nach der Position des 4.5-Schlüssels befindet sich ein zusätzlicher Block. Dabei handelt es sich um den in dieser Version neu eingeführten watermarkHash:

image-20220802155137639

watermarkHash hängt mit der Beacon-Erzeugung und den DLLs im sleeve-Ordner zusammen. Ohne ihn oder bei einem Fehler kann kein Beacon online gehen. Vermutlich kann der Hersteller über diesen watermarkHash die Quelle des Lecks zurückverfolgen.

image-20220802155317878

Methoden zum Crack

Methode 1: Hartcodieren des Schlüssels

Anderen Code auskommentieren und die Parameter, die nach der RSA-Entschlüsselung in AuthCrypto().decrypt zugewiesen werden, fest codieren:

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};

Methode 2: Javaagent-Ansatz

Prinzip von Javaagent: https://www.cnblogs.com/rickiyang/p/11368932.html

Referenz-Crack-Tool: https://github.com/Twi1ight/CSAgent

Der Kern des Cracks ist immer noch der Schlüssel der entsprechenden CS-Version.

Entfernen der versteckten Fallen

In beacon/BeaconData wird der Rückgabewert der Methode shouldPad fest auf false gesetzt:

image-20211101180447451

Neue versteckte Fallen in 4.4

(Zuvor wurde am Beispiel von 4.3 die Lizenzprüfung analysiert. Beim Wechsel zu 4.4 stellte sich heraus, dass das Programm mit einer neuen versteckten Falle beendet wurde.)

Zusätzlich zu this.shouldPad mit exit wurde in common/Helper eine .class-Prüfung hinzugefügt – einfach auskommentieren:

image-20211119153406737

In common/Starter wurde eine .class-Prüfung hinzugefügt – auskommentieren:

image-20211119153558224

In common/Starter2 wurde eine .class-Prüfung hinzugefügt – auskommentieren:

image-20211119153636952

In beacon/CommandBuilder wurde eine .class-Prüfung hinzugefügt (diese Falle war besonders heimtückisch: Nach 4 Stunden ununterbrochener Verbindung zwischen Client und Teamserver konnten keine Befehle mehr ausgeführt werden. Da ich noch nie so lange verbunden war, habe ich sie nicht entdeckt, ggg):

image-20220505104735903

Neue versteckte Fallen in 4.5

Version 4.5 enthält eine Reihe von Fallen speziell gegen Javaagent. Wer das JAR direkt dekompiliert und den Code ändert, kann sie ignorieren. Einfach nach javaagent suchen und nacheinander anpassen:

image-20220802160404976

Wenn diese Stellen entfernt sind, kann wieder gemeinsam gearbeitet werden.

CS: Entfernung des Checksum8-Merkmals

Das Checksum8-Merkmal wird nicht näher erläutert. Es ist dennoch sinnvoll, es zu ändern, um eine Erkennung durch nmap und Suchmaschinen für Netzwerkgeräte zu vermeiden.

Code-Änderungen

In BeaconPayload wird der XOR-Wert durch einen neuen ersetzt:

Eine beliebige Dezimalzahl. In den DLLs muss die entsprechende Hexadezimalzahl verwendet werden.

image-20211108114054512

DLL-Änderungen

Verwenden Sie CrackSleeve, um die DLLs zu entschlüsseln: https://github.com/ca3tie1/CrackSleeve/

  1. Legen Sie cobaltstrike.jar und CrackSleeve.java zusammen ab.
  2. Kompilieren (javac -encoding UTF-8 -classpath cobaltstrike.jar CrackSleeve.java).
  3. Entschlüsseln Sie die Datei (java -classpath cobaltstrike.jar;./ CrackSleeve decode) # Windows-Befehlszeile

Drücken Sie Alt+T und suchen Sie nach dem Schlüsselwort: 2Eh

image-20211107222017434

image-20211107222039265

Ändern Sie direkt den XOR-Wert. Verwenden Sie Change Byte, um 2E zu finden und zu ändern, dann Apply patches to input file, um zu speichern. (Vergessen Sie nicht zu speichern.)

image-20211107222223636

Zu ändernde DLLs: beacon.dll, beacon.x64.dll, dnsb.dll, dnsb.x64.dll, pivot.dll, pivot.x64.dll, extc2.dll, extc2.x64.dll (Die in 4.5 neu hinzugekommenen rl100k.dll müssen ebenfalls geändert werden).

Verschlüsseln Sie dann die DLLs mit CrackSleeve neu. Legen Sie anschließend die DLLs aus dem encode-Verzeichnis in das IntelliJ-Projektverzeichnis und kompilieren Sie das JAR neu.

Obwohl die Test-URI immer noch erreichbar ist, kann der Inhalt nicht mehr mit nmap-Skripten entschlüsselt werden. Ebenso wird die Erkennung durch Suchmaschinen für Netzwerkgeräte umgangen:

image-20211107233719344

Alternativ zur Änderung des XOR-Werts kann auch der Checksum8-Algorithmus geändert werden (siehe hier. Das führt jedoch dazu, dass die URI fest vorgegeben ist und nur mit einem Profil verwendet werden kann. Außerdem muss das JAR bei jeder Änderung der URI neu gepackt werden – jede Methode hat Vor- und Nachteile.

CS: Entfernung des BeaconEye-Merkmals

Die Idee zur Entfernung des BeaconEye-Merkmals stammt aus diesem Link. Am Beispiel von 4.3 und 4.4 sind folgende Byte-Änderungen erforderlich.

Verwenden Sie CrackSleeve, um die DLLs zu entschlüsseln: https://github.com/ca3tie1/CrackSleeve/

  1. Legen Sie cobaltstrike.jar und CrackSleeve.java zusammen ab.
  2. Kompilieren (javac -encoding UTF-8 -classpath cobaltstrike.jar CrackSleeve.java).
  3. Entschlüsseln Sie die Datei (java -classpath cobaltstrike.jar;./ CrackSleeve decode) # Windows-Befehlszeile

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

Änderungen für 4.3

32-Bit-DLL

Adresse: 10009FBB

6A 00 ändern in 6A 09 (00 durch beliebigen Wert ersetzen)

image-20211111165257545

64-Bit-DLL

Adresse: 000000001800186C3

In beacon.x64.dll wird der Befehl xor edx, edx geändert in mov edx, esi

image-20211111165321033

Änderungen für 4.4

32-Bit-DLL

Adresse: 1000A0B9

6A 00 ändern in 6A 09 (00 durch beliebigen Wert ersetzen)

image-20211112104322791

64-Bit-DLL

Adresse: 000000018001879B

In beacon.x64.dll wird der Befehl xor edx, edx geändert in mov edx, esi

image-20211112105408975

Erneute Verschlüsselung: java -classpath cobaltstrike.jar;./ CrackSleeve encode

image-20211111173148579

image-20211112124415835

Änderungen für 4.5

32-Bit-DLL

Adresse: 1000A65D

image-20220609144218351

64-Bit-DLL

Adresse: 000000018000CA3F

image-20220609160825342

(Die in 4.5 neu hinzugekommenen rl100k.dll müssen ebenfalls geändert werden)

CS: Behebung des Stage-Leaks durch fehlerhafte Pfade

Quelle: 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

Die Methode besteht darin, in der URI eine Prüfung auf / einzufügen. Wenn die URI nicht mit / beginnt, wird ein 404 zurückgegeben:

Änderung für 4.4:

image-20220330111413985

Änderung für 4.3:

image-20220330125957143

Hinzufügen einer verschlüsselten Benutzernamenanzeige

Um zu verhindern, dass TOTP-Passwörter oder Login-Namen im Event Log durchsickern, wird das name-Feld mit MD5 + Salt angezeigt. Nach der Änderung sieht es so aus:

image-20220330112745362

Hinzufügen der TOTP-Verifizierung

Es wurde eine TOTP-Zwei-Faktor-Authentifizierung hinzugefügt, um die Anmeldung zu verstärken und Brute-Force-Angriffe auf Passwörter zu verhindern.

Auf der Teamserver-Seite wird in der Teamserver-Ausgabe ein QR-Code-Link für TOTP angezeigt:

image-20220407112543322

(Entfernen Sie vor dem Löschen der nohup.out-Datei den QR-Code. Jeder Start des Teamservers generiert einen neuen QR-Code, daher muss bei jedem Start neu gescannt werden.)

Öffnen Sie den Link im Browser (ggf. mit Proxy). Scannen Sie den QR-Code mit Google Authenticator oder einem TOTP-Verifizierer. Alternativ können Sie den Schlüssel nach secret%3D kopieren und im Verifizierer konfigurieren:

image-20220407112054716

Auf der Connect-Seite bleiben host, port und password unverändert. Im Feld user werden die letzten sechs Ziffern als dynamische TOTP-Zahl angegeben, um die Verbindung herzustellen:

image-20220407111813265

Wenn keine oder eine falsche TOTP-Zahl eingegeben wird, erscheint eine Fehlermeldung:

image-20220407113709140

Hinweis: Falls kein Smartphone verfügbar ist, kann ein Browser-Plugin mit TOTP-Funktion oder ein einfaches Python-Skript für TOTP verwendet werden.

Behebung des Foreign-Ableitungs-Bugs in CS 4.5

Beim Spawnen mit windows/foreign/reverse_http(s) tritt folgender Fehler auf:

image-20220827183854784

In dieser Version wurde in ScListener eine getScalar-Operation für Custom hinzugefügt, aber der Fall foreign wurde nicht berücksichtigt. Dadurch sind var1.customDLL und customFileName leer, was den Fehler verursacht:

image-20220827184042529

Die vorläufige Lösung besteht darin, bei einem foreign-Payload direkt das Shellcode zurückzugeben. Sollte diese Methode andere Fehler verursachen, können Sie Issues melden:

image-20220827190844595

Nach der Behebung funktioniert es wieder normal:

image-20220827190954960

Änderung des Client-Konfigurationsdateinamens

Um zu verhindern, dass das Konfigurationsprofil von MySQL-Honeypots ausgelesen wird, wird der Standardname der Client-Konfigurationsdatei nicht mehr verwendet. Stattdessen wird ein 11-stelliger Dateiname generiert (11 Zeichen aus dem MD5 der MAC-Adresse).

image-20220827191056012

Tool herunterladen