
phpunit-shell | CVE_2017-9841
un semplice script python3 per sfruttare CVE-2017-9841.
semplice script che sfrutta una vulnerabilità di esecuzione remota di codice presente in
PHPUnit prima della 4.8.28 e 5.x prima della 5.6.3. invia una richiesta POST al
target con comandi di sistema forniti dall'utente.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9841.
pip3 install requests bs4
Dopo aver identificato un target che esegue phpunit:
chmod +x phpunit-shell
./phpunit-shell -h
oppure
python3 phpunit-shell -h
l'opzione -h o --help mostra come eseguire lo script con alcuni esempi.
ci sono due argomenti posizionali e alcuni argomenti opzionali.
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
phpunit-shell di default stampa a colori e con qualche formattazione aggiuntiva l'output del terminale, tuttavia questo non è sempre utile per chi usa screen reader. usando l'argomento --accessible verranno disabilitate la formattazione elaborata e i colori stampati sul terminale.
disabiliterà anche l'arte ASCII.
lo script non può fare assunzioni sul sistema che sta prendendo di mira o sui limiti dell'utente/servizio che esegue l'applicazione vulnerabile. cioè, questa non è una shell completa quindi non è possibile cambiare directory e comandi più lunghi potrebbero non essere possibili.
è più che altro una semplice e veloce mezza shell 🐢 progettata come porta d'accesso a ulteriore sfruttamento - e infine shell completa, privesc, ecc... 👍
lo script utilizza anche un timeout di 30 secondi per le richieste; può essere modificato o disattivato del tutto modificando lo script.
il codice php 'shell_exec' è usato di default ma può essere cambiato se l'utente lo desidera. es. usando 'system' invece.
lo script è stato principalmente un esercizio per creare un semplice script python per sfruttare CVE-2017-9841 e velocizzare ulteriore sfruttamento.
https://skerritt.blog/a11y/ - implementazione dell'accessibilità.