Ultima modifica:
HTTP Reverse Shell - Browser JS Terminal
Screenshot
Introduzione
Ho voluto fare questo piccolo PoC funzionante per dare un alternativa alle solite reverse shell che necessitano di apertura delle porte del router e i vari no-ip & co. Con questa bastera' hostarla ovunque, anche un hosting free. Non richiede database, l'unico requisito e' della versione PHP >= 5 che darei quasi per scontato. I dati vengono scritti su vari file binari. Direttamente dal browser si puo' cliccare sull'ID sessione per aprire un terminale in JS (basato su jquery terminal) e scrivere comandi. Di solito ci vogliono in media 2 secondi per ottenere una risposta con gli intervalli che ho inserito nel codice.Pannello di controllo JS
Tutto nella pagina funziona tramite richieste AJAX in background alla parte in PHP. La lista delle sessioni si aggiorna automaticamente quando se ne arriva una nuova.Il terminale supporta tutti i comandi (non grafici tipo color) interpretabili dal cmd di windows e quelli presenti sulla macchina remota (o locale) dove la reverse shell in C# e' installata. In piu' supporta la history dei comandi con le freccette della tastiera, il comando clear per pulire il log e il comando exit per chiudere il terminale virtuale e cancellare la history (non chiudera' la reverse shell remota).
Server PHP
Il server in PHP gestisce tutto, dai comandi da inviare alle risposte in arrivo. Contenuto:- admin.php - Contiene il pannello di controllo JS + il gestore delle richieste AJAX
- bot.php - Interfaccia per la reverse shell in C#
- common.php - Contiene la maggior parte del codice del server, e' condiviso da admin e bot
- *.js *.css - File di jQuery e jQuery Terminal per la parte del pannello di controllo
Reverse Shell C#
Senza dubbio la parte piu' semplice, consiste in soli 2 file .cs, il loop principale aspetta nuovi comandi in arrivo, quando ve n'e' uno, lo esegue tramite la classe Process impostata per non mostrare finestre, cattura l'output, lo impacchetta e lo invia al server, l'unica eccezione e' il comando cd che va gestito in altro modo.Cosa manca
Non l'ho voluta rendere funzionale al 100% perche' trattasi di un PoC e se qualcuno ci tiene ad usarla spesso sara' meglio che la migliori perche':- Il pannello di amministrazione non e' protetto da password.
- Non c'e' crittografia (in transito ci potrebbe essere usando un sito https, ma i dati sul server sarebbero comunque in chiaro).
- Supporto ad IPv6 assente
Download:
Per vedere questo contenuto, devi Accedere o Registrarti.