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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PowerShellArmoury — Ein PowerShell-Arsenal für Sicherheitsleute | Kitploit
Tools/GitHubGitHub/cfalta/powershellarmoury
Verschlüsselungs-/EntschlüsselungstoolsPayload-GenerierungScripting & AutomatisierungPenetrationstestsDienstprogramme & FrameworksRed TeamingArchived
GitHubcfalta/powershellarmoury

PowerShellArmoury

Ein PowerShell-Arsenal für Sicherheitsleute

Repository anzeigen
4706918vor 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 →
Teilen

[!WICHTIG]
Dieses Repository ist nun archiviert. Auch wenn es eine unterhaltsame Reise war, glaube ich, dass PSArmoury seinen Nutzen überlebt hat.


PowerShellArmoury

Die PowerShell Armoury richtet sich an Pentester, "insert-color-here"-Teammitglieder und alle anderen, die während ihrer Einsätze eine Vielzahl von PowerShell-Tools verwenden. Sie ermöglicht es Ihnen, alle Ihre Lieblings-PowerShell-Skripte in einer einzigen, obfuskierten Datei herunterzuladen und zu speichern.

Sie müssen sich nicht mehr darum kümmern, Rubeus, PowerView, ... manuell zu aktualisieren. Erstellen Sie einfach einmal eine Konfigurationsdatei oder verwenden Sie die mitgelieferte Standarddatei. Von nun an brauchen Sie nur noch "New-PSArmoury" auszuführen, bevor Sie zum nächsten Einsatz aufbrechen. Zusätzlich obfuskiert PSArmoury Ihren Code und verfügt über einen integrierten AMSI-Bypass. Das modulare Design sollte es Ihnen leicht machen, den Evasion- oder Obfuskationscode zu ändern, falls es eine Erkennung gibt.



Allgemeine Struktur

Der Code ist aufgeteilt in ein Hauptskript namens New-PSArmoury.ps1, das Sie ausführen. Der Code für Evasion, Obfuskation und Deobfuskation ist in separaten .ps1-Dateien im Verzeichnis modules gespeichert. Diese separaten Dateien werden vom Hauptskript aufgerufen und sollten es Ihnen erleichtern, bestimmte Funktionen (z. B. einen AMSI-Bypass) zu ändern. Zusätzlich zum modules-Verzeichnis gibt es auch das Verzeichnis utilities. Hier finden Sie eigenständige Skripte, die in bestimmten Szenarien nützlich sein können.

Das modules-Verzeichnis

Der Standardpfad des modules-Verzeichnisses ist .\modules, wobei der Punkt das aktuelle Arbeitsverzeichnis Ihrer Shell bezeichnet. Sie können den Pfad des modules-Verzeichnisses mit dem Argument -ModulesDirectory von New-PSArmoury ändern. Die Namen der Skriptdateien selbst sind jedoch im Hauptskript fest codiert und werden immer erwartet als:

  • evasion.ps1
  • obfuscation.ps1

Werfen wir einen genaueren Blick auf diese beiden.

evasion.ps1

Dieses Skript sollte den Code enthalten, der dazu dient, das zu umgehen, was Sie umgehen möchten. Standardmäßig enthält es einen bekannten AMSI-Bypass (Dank an amsi.fail). Bitte beachten Sie:

  • Der Code hier wird AUSGEFÜHRT, BEVOR alles andere läuft (z. B. Deobfuskation)
  • Es gibt ABSOLUT KEINE ART VON VALIDIERUNG! Alles, was Sie hier ablegen, wird unverändert an IEX weitergeleitet.

obfuscation.ps1

Dieses Skript sollte den Code enthalten, der für Obfuskation und Deobfuskation verwendet wird. Die Standard-obfuscation.ps1 verwendet RC2-Verschlüsselung. Fertige Beispiele:

  • TEMPLATE_obfuscation_RC2.ps1 --> dies ist der Standard
  • TEMPLATE_obfuscation_byte_convert.ps1
  • TEMPLATE_obfuscation_empty.ps1

Beachten Sie, dass die TEMPLATE_obfuscation_empty.ps1 wirklich gar nichts tut und als Vorlage für Ihre eigene Funktion dient.

Wenn Sie eine davon verwenden möchten, benennen Sie sie einfach in "obfuscation.ps1" um und löschen Sie die Standarddatei.

Wenn Sie eine angepasste Version erstellen möchten, beachten Sie Folgendes in Bezug auf die Obfuskation:

  • Der Funktionsname MUSS immer "Get-PSArmouryObfuscation" sein, mit einem einzelnen String-Parameter namens "Code", da das Hauptskript diese Funktion für jedes Element aufruft, das Sie in die Armoury aufnehmen möchten.
  • Die Funktion SOLLTE die obfuskierte Version des Codes als einzelnen String-Wert zurückgeben. Der Hauptcode der Skripte führt eine zusätzliche base64-encode/decode-Schleife aus, um sicherzustellen, dass wir auch andere Dinge verarbeiten können, die Sie übergeben, aber es wäre einfacher, wenn Sie es einfach als String machen könnten ;-)
  • Die entsprechende Deobfuskationsfunktion MUSS unabhängig davon, was Sie hier zurückgeben, funktionieren. Das Hauptskript gibt nur Ergebnisse weiter --> keine Magie hier

Und stellen Sie sicher, dass Sie diese Dinge in Bezug auf die Deobfuskation beachten:

  • Der Funktionsname MUSS immer Get-PSArmouryDeObfuscation sein, ohne Parameter, da sie über eine feste, globale Variable iteriert.
  • Die Funktion MUSS die deobfuskierte Version des Codes als einzelnen String-Wert zurückgeben, bereit zur Ausführung. Wir leiten alles, was Sie zurückgeben, an IEX weiter, der Rest liegt bei Ihnen.

Das utilities-Verzeichnis

Das utilities-Verzeichnis enthält nützliche eigenständige Skripte.

  • ConvertTo-Powershell.ps1
    • Konvertiert eine C#-Konsolenanwendung in ein PowerShell-Skript. Weitere Details finden Sie im entsprechenden Blogbeitrag.
  • Invoke-Shuffle.ps1
    • Ein einfaches Obfuskationsskript, das eine einzelne Codezeile in mehrere Variablen umwandelt, die Teile des ursprünglichen Strings enthalten, die dann während der Ausführung zusammengeführt und aufgerufen werden.

Konfigurationsreferenz

Die Konfigurationsdatei muss ein gültiges JSON sein, das aus einem einzelnen Array mit einem oder mehreren Objekten besteht, wobei jedes Objekt als eine einzelne Skriptquelle interpretiert wird. Jedes Objekt hat die folgenden Attribute

Name (Pflichtfeld)

Ein Name Ihrer Wahl zur Identifizierung des in diesem Objekt enthaltenen Skripts. Dies dient nur als Referenz für Sie selbst.

URL (Pflichtfeld)

Der Ort, von dem der Skriptinhalt bezogen wird. Dies kann eine URL zu einer Webressource (https://) oder ein lokaler Pfad (C:) oder eine Netzwerkressource (\...) sein. Die URL wird an Net.Webclient bzw. Powershells Get-Item übergeben. Grundsätzlich sollte jedes Format funktionieren, das eines der beiden standardmäßig verarbeiten kann.

Typ (Pflichtfeld)

Dies gibt dem Armoury-Ersteller einen Hinweis auf den Skript-Speicherort. Es gibt drei gültige Typen:

  • GitHub
    • Fordert zur Eingabe von Anmeldeinformationen auf, damit wir uns gegen die GitHub-API authentifizieren können. Versucht auch, zwischen einer "raw"-URL, die direkt auf eine Datei verweist, und einer URL, die auf ein Repository verweist, zu unterscheiden. Wenn die URL auf ein Repository verweist, sucht das Skript automatisch alle PowerShell-Dateien in diesem Repository und schließt sie ein. Beispiel: "https://github.com/cfalta/PoshRandom"
  • WebDownloadSimple
    • Bedeutet eine Datei, die ohne Authentifizierung oder ähnliches mit einem HTTP-GET heruntergeladen werden kann. Beispiel: "http://mywebserver.com/file.ps1"
  • LocalFile
    • Eine Datei auf der Festplatte wie "C:\temp\test.ps1". Wenn der Pfad auf ein Verzeichnis zeigt, werden alle Dateien (rekursiv) mit der Erweiterung ".ps1" eingeschlossen.

FileInclusionFilter (Optional)

Wird nur bei einem Objekt vom Typ "GitHub" interpretiert. Wird mit dem Powershell-Vergleichsoperator "like" gegen den gesamten Dateinamen gematcht. Denken Sie daran, dass Sie die Platzhalter selbst einfügen müssen. Vergessen Sie nicht, einen Stern (*) einzufügen, wenn Sie einen Teil eines Dateinamens abgleichen möchten. "*.ps1" bedeutet alle Dateien, die mit ".ps1" enden, aber ".ps1" bedeutet nur ".ps1".

Sie müssen keinen Filter angeben, aber wenn Sie einen angeben, müssen Sie ihn auch verwenden. Ein leerer InclusionFilter bedeutet keine Dateien.

FileExclusionFilter (Optional)

Wie der InclusionFilter, aber offensichtlich umgekehrt. Ausschluss hat Vorrang.

Argumente

Siehe die Inline-PowerShell-Hilfe (man -full New-PSArmoury) für weitere Details.

-Path

Der Pfad zu Ihrer neuen Armoury-Datei. Der Standard ist ".\MyArmoury.ps1"

-FromFile

Laden Sie Ihre PowerShell-Skripte direkt von einem lokalen Ordner oder einer Datei und Sie müssen keine Konfigurationsdatei bereitstellen.

-Config

Der Pfad zu Ihrer JSON-Konfigurationsdatei. Schauen Sie sich das mitgelieferte Beispiel für Ideen an.

-ModulesDirectory

Tool herunterladen