Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PowerShell-Obfuscation-Bible — Eine Sammlung von Techniken, Beispielen und ein wenig Theorie zur manuellen Verschleierung von PowerShell-Skripten zur Umgehung von Antivirensoftware, zusammengestellt zu Bildungszwecken. Die Inhalte dieses Repositorys sind das Ergebnis persönlicher Forschung, einschließlich Online-Recherchen sowie Versuch-und-Irrtum-Experimenten in Laboren und bei Pentests. | Kitploit
Tools/GitHubGitHub/t3l3machus/powershell-obfuscation-bible
IDS/IPS-UmgehungPenetrationstestsLernen & BildungRed TeamingKuratierte RessourcenPayload-Entwicklung
GitHubt3l3machus/powershell-obfuscation-bible

PowerShell-Obfuscation-Bible

Repository anzeigen
1.2k13926vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Eine Sammlung von Techniken, Beispielen und ein wenig Theorie zur manuellen Verschleierung von PowerShell-Skripten zur Umgehung von Antivirensoftware, zusammengestellt zu Bildungszwecken. Die Inhalte dieses Repositorys sind das Ergebnis persönlicher Forschung, einschließlich Online-Recherchen sowie Versuch-und-Irrtum-Experimenten in Laboren und bei Pentests.

Teilen

PowerShell Obfuscation Bible

Python License

Eine Sammlung von Techniken, Beispielen und ein wenig Theorie zum manuellen Verschleiern von PowerShell-Skripten, um signaturbasierte Erkennung zu umgehen, zusammengestellt für Bildungszwecke. Der Inhalt dieses Repositorys ist das Ergebnis persönlicher Forschung, einschließlich Online-Recherchen und Trial-and-Error-Versuchen in Laboren und Pentests. Du solltest nichts als selbstverständlich hinnehmen.

YouTube-Videopräsentation: youtube.com/watch?v=tGFdmAh_lXE

⚠️ Haftungsausschluss: Die Nutzung der in diesem Repository beschriebenen Techniken und Konzepte, um unbefugten Zugriff auf Systeme zu erlangen, die du nicht testen darfst, ist illegal. Du bist für deine Handlungen verantwortlich. Sei nicht böse.

Inhaltsverzeichnis

  1. Entropie
  2. Erkennungsauslöser identifizieren
  3. Objekte umbenennen
  4. Boolesche Werte verschleiern
  5. Cmdlet-Unterbrechung mit Anführungszeichen
  6. Cmdlet-Unterbrechung mit Caret-Zeichen
  7. Get-Command-Technik
  8. Schleifen ersetzen
  9. Befehle ersetzen
  10. Mit Strings herumspielen
  11. Junk anhängen
  12. Kommentare hinzufügen oder entfernen
  13. Groß-/Kleinschreibung randomisieren
  14. Skriptkomponenten neu anordnen
  15. Skript Zeile für Zeile ausführen

Entropie

Der wissenschaftliche Begriff entropy, der allgemein definiert ist als das Maß für Zufälligkeit oder Unordnung eines Systems, ist bei der AV-Umgehung wichtig. Das liegt daran, dass Malware häufig Code enthält, der stark randomisiert, verschlüsselt und/oder kodiert (verschleiert) ist, um die Analyse und damit die Erkennung zu erschweren. Als eine von verschiedenen Methoden verwenden Antivirenprodukte die Entropieanalyse, um potenziell schädliche Dateien und Payloads zu identifizieren.

Es ist wichtig, dieses Konzept zu verstehen, denn beim Verschleiern von Code solltest du die Entropievarianz im Blick behalten, die durch die Änderungen entsteht, die du vornimmst. Signaturen zu brechen ist einfach, aber wenn du nicht auf das Entropieniveau achtest, werden ausgefeilte AV/EDRs es durchschauen.

Ein Prinzip, das du im Hinterkopf behalten solltest: Je größer die Entropie, desto wahrscheinlicher sind die Daten verschleiert oder verschlüsselt, und desto wahrscheinlicher ist die Datei/das Payload bösartig. Glücklicherweise gibt es Möglichkeiten, sie zu senken.

Claude E. Shannon stellte in seiner Arbeit von 1948, A Mathematical Theory of Communication, eine Formel vor, mit der sich die Entropie in einem Datensatz messen lässt. Hier ist eine einfache Python-Implementierung der Shannon Entropy, die du verwenden kannst, um die Entropie der von dir entwickelten Payloads zu messen:

#!/bin/python3
# Usage: python3 entropy.py <file>

import math, sys

def entropy(string):
    "Calculates the Shannon entropy of a UTF-8 encoded string"

    # decode the string as UTF-8
    unicode_string = string.decode('utf-8')

    # get probability of chars in string
    prob = [ float(unicode_string.count(c)) / len(unicode_string) for c in dict.fromkeys(list(unicode_string)) ]

    # calculate the entropy
    entropy = - sum([ p * math.log(p) / math.log(2.0) for p in prob ])

    return entropy


f = open(sys.argv[1], 'rb')
content = f.read()
f.close()

print(entropy(content))

Du kannst auch diesen Online-Shannon-Entropie-Rechner oder Microsofts Sigcheck.exe mit der Option -a verwenden.

Erkennungsauslöser identifizieren

Der ausgereifte und elegante Ansatz, bevor man sich in Trial-and-Error-Verschleierungstests stürzt, um eine Payload-Variation zu entwickeln, die nicht markiert wird, besteht darin, die Teile in einem Skript zu identifizieren, die die Malware-Erkennung auslösen. Gerade bei kurzen Skripten wie C2-Befehlen kannst du möglicherweise unbedeutende Änderungen vornehmen und sofort vom Radar verschwinden.

Ein großartiges Werkzeug zur Identifizierung solcher Auslöser ist AMSITrigger. Hier ist ein Anwendungsbeispiel mit einer Datei, die ein bösartiges Skript enthält. Der rote Bereich kennzeichnet den Teil, auf den die Verschleierung angewendet werden sollte:

Bild

Du kannst Auslöser auch manuell identifizieren, indem du ein Skript Stück für Stück ausführst.

Objekte umbenennen

Beim Verschleiern von Skripten sollte es eine Priorität sein, Variablen-/Klassen-/Funktionsnamen durch zufällige zu ersetzen. Auf diese Weise kannst du in Kombination mit anderen Techniken die Erkennung leicht umgehen. Du solltest jedoch die Entropie der von dir entwickelten Payloads im Hinterkopf behalten. Betrachte das folgende Standard-Reverse-Shell-Skript, das von den meisten, wenn nicht allen, Antivirenprogrammen erkannt wird:

Bild

Betrachte nun die folgende verschleierte Version:

Bild

In dieser Version wurden alle Variablennamen durch 32 Zeichen lange Zufallsnamen ersetzt. Ich habe außerdem (pwd).Path durch $(gl) ersetzt. Das Payload hat eine Shannon entropy von 4.96. Zum Zeitpunkt des Schreibens wird es von MS Defender und einer Reihe anderer Produkte nicht erkannt:

Bild

Tool herunterladen