
phpunit-shell | CVE_2017-9841
un sencillo script de python3 para explotar CVE-2017-9841.
script sencillo que explota una vulnerabilidad de ejecución remota de código encontrada en PHPUnit anterior a 4.8.28 y 5.x anterior a 5.6.3. realiza una petición POST al objetivo con comandos de sistema introducidos por el usuario.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9841.
pip3 install requests bs4
Después de identificar un objetivo que ejecuta phpunit:
chmod +x phpunit-shell
./phpunit-shell -h
o
python3 phpunit-shell -h
la opción -h o --help muestra cómo ejecutar el script con algunos ejemplos.
hay dos argumentos posicionales y algunos argumentos opcionales.
usage: phpunit-shell.py [-h] [-a] [-n] address
phpunit-shell.py exploits an RCE vulnerability in
applications running PHPUnit before 4.8.28 and 5.x before 5.6.3.
positional arguments:
address ip/hostname, port, sub-directories to the vulnerable eval-stdin.php file.
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect screen readers
-n, --no-colour removes colour output
example:
phpunit-shell.py 10.10.10.10/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
De forma predeterminada, phpunit-shell imprime en color y con formato adicional en la salida del terminal; sin embargo, esto no siempre es útil para quienes usan lectores de pantalla. El uso del argumento --accessible desactivará el formato sofisticado y el color en la salida del terminal.
También desactivará el arte ASCII.
el script no puede hacer suposiciones sobre el sistema al que se dirige ni sobre las limitaciones del usuario/servicio que ejecuta la aplicación vulnerable. es decir, no es un shell completo, por lo que no se puede cambiar de directorio y los comandos más largos pueden no ser posibles.
es más bien una semishell (half-shell) simple y rápida 🐢 diseñada como puerta de entrada a una mayor explotación, y eventualmente a un shell completo, privesc, etc... 👍
el script también utiliza un tiempo de espera de 30 segundos para las solicitudes; esto puede cambiarse o desactivarse por completo editando el script.
el código PHP 'shell_exec' se utiliza por defecto, pero también se puede cambiar si el usuario lo desea. por ejemplo, usando 'system' en su lugar.
el script fue principalmente un ejercicio de creación de un script de python sencillo para explotar CVE-2017-9841 y agilizar una mayor explotación.
https://skerritt.blog/a11y/ - implementación de accesibilidad.