Eine Sandkasten wird verwendet, um böswillige Dateien in einer isolierten Umgebung auszuführen, während ihr dynamisches Verhalten instrumentiert und forensische Artefakte gesammelt werden.
CAPE wurde von Cuckoo V1 abgeleitet, das die folgenden Kernfunktionen auf der Windows -Plattform bietet:
Cape ergänzt die traditionelle Sandkastenausgabe von Cuckoo mit mehreren wichtigen Ergänzungen:
Es gibt eine kostenlose Demonstrationsinstanz online, die jeder verwenden kann:
https://capesandbox.com - Für die Kontoaktivierung Reichweite https://twitter.com/capesandbox
Cuckoo Sandbox startete 2010 im Honeynet -Projekt als Google Summer of Code -Projekt. Es wurde ursprünglich von Claudio Guarnieri entworfen und entwickelt. Die erste Beta -Veröffentlichung wurde im Jahr 2011 veröffentlicht. Im Januar 2014 wurde Cuckoo V1.0 veröffentlicht.
2015 war ein entscheidendes Jahr mit einer bedeutenden Gabelung der Kuckucksgeschichte. Die Entwicklung der ursprünglichen Monitor- und API -Hooking -Methode wurde im Hauptkuckuckprojekt eingestellt. Es wurde durch einen alternativen Monitor unter Verwendung eines restructuredText Jurriaan Bremer erstellten Linux -Toolchains ersetzt, das über Linux Toolchain erstellt wurde.
Etwa zur gleichen Zeit wurde eine Gabel namens Kuckucksmodified von Brad 'Spender' Spengler fortgesetzt, die die Entwicklung des ursprünglichen Monitors mit signifikanten Verbesserungen wie 64-Bit-Unterstützung und wichtiger Einführung von Microsofts Visual Studio-Compiler vorgestellt hat.
Im selben Jahr wurde von Kevin O'Reilly die Entwicklung eines dynamischen Befehlszeilenkonfigurations- und Nutzlast-Extraktionstools namens CAPE bei Context Information Security begonnen. Der Name wurde als Akronym für "Konfigurations- und Nutzlastextraktion" geprägt und die ursprüngliche Forschung, die sich auf die Verwendung von API -Hooks konzentrierte, die von der Microsoft -Umleitungsbibliothek bereitgestellt wurden, um ausgepackte Malware -Nutzlasten und -konfiguration zu erfassen. Es stellte sich jedoch heraus, dass API -Hooks allein eine unzureichende Leistung und Genauigkeit bieten, um die Packung von Nutzlasten oder Konfigurationen von willkürlicher Malware zu entbinden.
Aus diesem Grund begannen die Forschung zu einem neuartigen Debugger -Konzept, damit Malware genau kontrolliert und instrumentiert werden kann und gleichzeitig die Verwendung von Microsoft -Debugging -Schnittstellen vermieden wird, um so heimlich wie möglich zu sein. Dieser Debugger wurde in das von Proof-of-Concept-Umleitungen basierende Befehlszeilen-Tool integriert, das sich mit API-Hooks kombinierte und zu sehr leistungsstarken Funktionen führte.
Als erste Arbeiten zeigten, dass es möglich wäre, Microsoft-Umwege durch die API-Hooking-Engine von Cuckoo-modifiziert zu ersetzen, wurde die Idee für Cape Sandbox geboren. Mit der Hinzufügung des Debuggers, des automatisierten Auspackens, der Yara-basierten Klassifizierung und der integrierten Konfigurationsextraktion wurde Cape Sandbox im September 2016 zum ersten Mal öffentlich veröffentlicht: Cape Version 1.
Im Sommer 2018 hatte das Projekt das Glück, den Beginn großer Beiträge von Andriy 'Doomedraven' Brukhovetskyy, einem langjährigen Kuckuck-Mitwirkenden, zu sehen. 2019 begann er mit der Mammoth -Aufgabe, Cape nach Python 3 zu portieren, und im Oktober dieses Jahres wurde CAPEV2 veröffentlicht.
CAPE wurde kontinuierlich entwickelt und verbessert, um mit Fortschritten sowohl in Malware als auch in Betriebssystemfunktionen Schritt zu halten. Im Jahr 2021 wurde die Fähigkeit, CAPEs Debugger während der Detonation über dynamische Yara-Scans zu programmieren, hinzugefügt, sodass dynamische Bypass für Anti-Sandbox-Techniken erstellt werden können. Windows 10 wurde zum Standardbetriebssystem, und andere bedeutende Ergänzungen umfassen interaktiver Desktop, AMSI (Anti-Malware-Scan-Schnittstelle) Nutzlastaufnahme, 'SYSCall Hooking' basierend auf Microsoft Nirvana und Debugger-basierten direkten/indirekten SYSCall-Gegenmaßnahmen.

Malware kann über drei Mechanismen in Cape klassifiziert werden:

Die Parsen kann mithilfe von CAPEs eigenem Framework erfolgen. Alternativ werden die folgenden Frameworks unterstützt: Ratdecoder, DC3-MWCP, MALDUCK oder MACO
def extract_config(data): Dies wird von cape_utils.py und 0 Komplikationen aufgerufen.
CAPE nutzt viele Malware -Techniken oder Verhaltensweisen, um ausgepackte Nutzlast -Erfassung zu ermöglichen:
Diese Verhaltensweisen führen dazu, dass die Erfassung von Nutzlasten zur weiteren Analyse injiziert, extrahiert oder dekomprimiert wird. Zusätzlich erstellt CAPE automatisch einen Prozessabteilung für jeden Prozess oder im Fall einer DLL das Modulbild des DLL im Speicher. Dies ist nützlich für Muster, die mit einfachen Packern gepackt sind, bei denen häufig der Modulbild -Dump vollständig ausgepackt ist.
Zusätzlich zu CAPEs Standard -Passivmechanismen "Passiv" können Sie "aktives" Auspacking aktivieren, bei dem Breakpoints zum Schreiben von neu zugewiesenen oder geschützten Speicherregionen erfasst werden, um ausgepackte Nutzlasten so früh wie möglich vor der Ausführung zu erfassen. Dies ist über die Web -Einreichungs -Tickbox oder durch Angabe der Option unpacker=2 aktiviert und wird standardmäßig aufgehört, da sich die Detonationsqualität auswirken kann.
CAPE kann über Yara -Signatur programmiert werden, um bestimmte Packer auszupacken. Zum Beispiel sind UPX-Packer sehr häufig, und obwohl diese in Cape dazu führen, dass ausgepackte Nutzlasten passiv erfasst werden, wird die Standardaufnahme nach der Ausführung der ausgepackten Nutzlast erfolgt. Durch die dynamische Erkennung von UPX-Packern über benutzerdefinierte Yara-Signatur und das Festlegen eines Haltepunkts für die endgültige Packer-Anweisung ist es möglich, die Nutzlast an seinem ursprünglichen Einstiegspunkt (OEP) zu erfassen, bevor die Ausführung begonnen hat.


Mit der Option dump-on-api kann ein Modul abgeladen werden, wenn es eine bestimmte API-Funktion aufruft, die in der Webschnittstelle angegeben werden kann (z. B. dump-on-api=DnsQuery_A ).
Der Debugger hat es Cape ermöglicht, sich weiter über seine ursprünglichen Fähigkeiten hinauszuentwickeln, zu denen jetzt dynamische Bypassen gegen die Evasion gehören. Da moderne Malware üblicherweise versucht, die Analyse innerhalb von Sandboxen zu entgehen, beispielsweise durch die Verwendung von Zeitverfallene für die Virtualisierung oder API-Hook-Erkennung, ermöglicht CAPE die Entwicklung dynamischer Gegenmaßnahmen, die die Kombination von Debugger-Aktionen innerhalb von Yara-Unterschriften entwickeln können, um auszuweichende Malware zu erkennen, während es die Detonation von Kontroll-Flow-Manipulation durchführen kann, um die Probe zu entsprechen oder evasive Maßnahmen zu entsprechen.


Der schnelle Zugriff auf den Debugger wird mit den Einreichungsoptionen bp0 bis bp3 ermöglicht, indem er RVA- oder VA -Werte zum Festlegen von Haltepunkten annimmt, woraufhin eine kurze Anweisungsverfolgung ausgegeben wird, die von count und depth bestimmt wird (z. B. bp0=0x1234,depth=1,count=100 ). 
Um einen Haltepunkt am Moduleinstiegspunkt festzulegen, wird ep anstelle einer Adresse verwendet (z. B. bp0=ep ). Alternativ ermöglicht break-on-return einen Breakpoint für die Rückgabeadresse einer Hooked API (z. B. break-on-return=NtGetContextThread ). Mit einem optionalen Parameter base-on-api ermöglicht die Bildbasis, dass RVA-Haltepunkte durch API-Aufruf festgelegt werden (z. B. base-on-api=NtReadFile,bp0=0x2345 ).

Optionen action0 - action3 Ermöglichen Sie, Aktionen auszuführen, wenn Haltepunkte getroffen werden, z. B. Speicherregionen (z. B. action0=dumpebx ) oder Ändern des Ausführungssteuerflusses (z. B. action1=skip ). Die Dokumentation von CAPE enthält weitere Beispiele für solche Maßnahmen.
Das Repository, das den Code für den CAPE -Monitor enthält, ist unterschiedlich.
Es gibt ein Community -Repository von Unterschriften mit mehreren hundert von der Kap -Community entwickelten Unterschriften. Alle neuen Community -Funktionen sollten auf dieses Repo gedrängt werden. Später können sie auf Kern bewegt werden, wenn Entwickler in der Lage und bereit sind, sie zu pflegen.
Bitte tragen Sie zu diesem Projekt bei, indem Sie neue Unterschriften, Parsers oder Umgehungen für weitere Malware -Familien erstellen. Derzeit sind viele in Arbeit, also schauen Sie sich diesen Raum an.
Ein großes Dankeschön an @D00M3DR4v3n für die portierte Cape im Alleingang auf Python 3.
Python3
Nur Rooter sollte als Root ausgeführt werden , der Rest als CAPE -Benutzer. Das Laufen als Root wird mit Berechtigungen durcheinander gebracht.
conf -Ordner!kvm-qemu.sh und cape2.sh sollten von tmux Sitzung ausgeführt werden, um OS-Probleme zu verhindern, wenn ssh Verbindungen einbricht.<username> durch ein echtes Muster.<WOOT> im Inneren ersetzen!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconf -Ordner durchführen.systemctl restart <service_name>journalctl -u <service_name>-h Sie das Hilfemenü. Das Ausführen des Dienstes im Debug -Modus ( -d ) kann ebenfalls helfen.-h , aber bitte überprüfen Sie die Skripte, um zu verstehen, was sie tun.git pullpython3 utils/community.py -waf Siehe -h vor, um sicherzustellen, dass Sie verstehen git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push
Wenn Sie CAPEV2 in Ihrer Arbeit verwenden, zitieren Sie es bitte wie im Github -Menü "dieses Repository Cit this repository".
pefile als jede gewünschte Pins -Version verwenden.pefile -Abhängigkeit zu entfernen, während Sie sie bereits installiert haben. Volia Kein Schmerz mehr.