Tool-Verzeichnis
Kategorien
InvisibilityCloak — Proof-of-Concept-Obfuskierungs-Toolkit für C# Post-Exploitation-Tools | Kitploit
Tools / GitHub / h4wkst3r / invisibilitycloak
h4wkst3r/invisibilitycloak InvisibilityCloak Proof-of-Concept-Obfuskierungs-Toolkit für C# Post-Exploitation-Tools
632 190 48 vor 4 JahrenEntdecken Sie die meistgenutzten Tools unserer Community.
Letzte 7 Tage Letzte 30 Tage
InvisibilityCloak
Proof-of-concept-Verschleierungs-Toolkit für C#-Post-Exploitation-Tools. Es führt die folgenden Aktionen für ein C#-Visual-Studio-Projekt aus.
Ändert den Toolnamen
Ändert die Projekt-GUID
Verschleiert kompatible Zeichenfolgen in Quellcode-Dateien basierend auf der vom Benutzer eingegebenen Verschleierungsmethode
Entfernt einzeilige Kommentare (z. B. // dies ist ein Kommentar)
Entfernt die PDB-String-Option für die kompilierte Release-.NET-Assembly
Blogbeitrag: https://securityintelligence.com/posts/invisibility-cloak-obfuscate-c-tools-evade-signature-based-detection
Zeichenfolgen-Kandidaten, die nicht verschleiert werden
Die folgenden Zeichenfolgen-Kandidaten sind von der Verschleierung ausgeschlossen
Zeichenfolgen mit weniger als 3 Zeichen
Zeichenfolgen, die String-Interpolation verwenden (z. B. Console.WriteLine($"Hallo, {name}! Heute ist {date.DayOfWeek}, es ist {date:HH:mm} jetzt.");)
Case-Anweisungen, da sie statische Werte sein müssen
Const-Variablen, da sie statische Werte sein müssen
Zeichenfolgen in Methodensignaturen, da sie statische Werte sein müssen
Zeile mit " => ", wie in switch-Anweisungen verwendet, muss statischer Wert sein.
is in einer if-Anweisung beim Vergleich, da die verglichenen Werte statisch sein müssen
Zeichenfolgen innerhalb von Regexes
Override-Zeichenfolgen, da sie statische Werte sein müssen Die folgenden zufälligen Randfälle für Zeichenfolgen, da sie Probleme beim Kodieren/Dekodieren verursacht haben
Zeichenfolge, die mit ' beginnt oder endet
""' in der Zeile
+ @" in der Zeile
""" in der Zeile
"" in der Zeile
Encoding.Unicode.GetString in der Zeile
Encoding.Unicode.GetBytes in der Zeile
Encoding.ASCII.GetBytes in der Zeile
Zeile beginnend mit " und endend mit ")]. Dies wird typischerweise für Befehlszeilenargumente verwendet und muss ein statischer Wert sein.
Windows
Linux (Debian-basierte Systeme)
Python3
Argumente/Optionen
-d, --directory - Verzeichnis, in dem sich Ihr Visual-Studio-Projekt befindet
-m, --method - Verschleierungsmethode (base64, rot13, reverse)
-n, --name - Name Ihres neuen Tools
-h, --help - Hilfemenü
--version - Version des Tools anzeigen
Verwendung/Beispiele
InvisibilityCloak mit Zeichenfolgen-Verschleierung ausführen Base64-Zeichenfolgen-Verschleierung
python InvisibilityCloak.py -d /path/to/project -n "TotallyLegitTool" -m base64
python InvisibilityCloak.py -d C:\path\to\project -n "TotallyLegitTool" -m base64
ROT13-Zeichenfolgen-Verschleierung
python InvisibilityCloak.py -d /path/to/project -n "TotallyLegitTool" -m rot13
python InvisibilityCloak.py -d C:\path\to\project -n "TotallyLegitTool" -m rot13
Reverse-Zeichenfolgen-Verschleierung
python InvisibilityCloak.py -d /path/to/project -n "TotallyLegitTool" -m reverse
python InvisibilityCloak.py -d C:\path\to\project -n "TotallyLegitTool" -m reverse
InvisibilityCloak ohne Zeichenfolgen-Verschleierung ausführen python InvisibilityCloak.py -d /path/to/project -n "TotallyLegitTool"
python InvisibilityCloak.py -d C:\path\to\project -n "TotallyLegitTool"
Statistiken zur signaturbasierten Erkennung Die folgende Tabelle zeigt die Statistiken zur signaturbasierten Erkennung zwischen den unverschleierten und verschleierten Versionen von 20 beliebten öffentlichen C#-Tools mit InvisibilityCloak.
Dies bezieht sich speziell auf Microsoft Defender (kostenlose Version) und ist gültig ab dem 14. April 2022.
Die folgende Tabelle zeigt die Dateigrößen von 20 beliebten öffentlichen C#-Tools zwischen den unverschleierten und verschleierten Versionen unter Verwendung von InvisibilityCloak mit verschiedenen Zeichenfolgen-Verschleierungsmethoden.
Fahrplan
Unterstützung für C#-Projekte mit mehreren C#-Projektdateien (Multi-Projekt-Lösungen) hinzufügen
Verschleierungsunterstützung für Variablennamen und Methodennamen