Reverse shell HTTP tramite proxy aziendale

0

Vorrei testare uno scenario in cui l'utente riceve un allegato malleabile in un'email di phishing. L'allegato ha lo scopo di aprire una shell inversa HTTP o HTTPS all'attaccante che si trova all'esterno della rete aziendale. La topologia di rete è simile a questa:

Attaccante --- Internet --- Firewall --- Proxy --- Vittima

Il firewall blocca ogni traffico in uscita, tranne la navigazione sul Web tramite proxy e richieste DNS. Il proxy utilizza l'autenticazione.

Come ho notato attraverso numerosi post in questo argomento, ho avuto l'impressione che una shell inversa del metretro metro metasploit di base avrebbe fatto il trucco in questo ambiente, ma sono curioso di sapere come la shell inversa potrebbe passare attraverso proxy? Prima di tutto, come rileva che esiste un proxy e qual è il suo indirizzo?

È forse una specie di domanda noob. La mia unica idea è che se le impostazioni del proxy sono impostate nel registro, Windows indirizza tutto il traffico HTTP e HTTPS verso il proxy in modo trasparente.

    
posta Richard Leonard Kirner 17.12.2016 - 02:32
fonte

1 risposta

3

In che modo la shell rileva qual è il proxy e il suo indirizzo?

Lo fa allo stesso modo di qualsiasi altra applicazione sul tuo sistema operativo. Su Windows un'applicazione può controllare impostazioni del registro per il proxy IE e ottenere impostazioni proxy pertinenti da altri browser. Oppure può utilizzare l'API Wininet, che gestirà automaticamente i proxy (compresi elementi come l'autenticazione NTLM).

Su Linux può controllare le variabili env come "http_proxy".

Un modo meno tipico, ma ancora possibile, è quello di eseguire la scansione delle porte (il proxy di solito ascolta 3128 o 8080) o guardare il traffico per le richieste di connessione proxy.

In che modo la shell inversa esegue i comandi?

Ci sono diversi modi. Ad esempio, uno script di shell inverso / binario può eseguire HTTP GET example.org/cmd.html, passare tutto a una shell / powershell / Python, salvare l'output della shell eseguita su file e inviarlo a example.org/output - tali richieste sono richieste HTTP valide e passeranno attraverso il proxy HTTP. Questo non funzionerà con la shell interattiva (ad esempio usando vi), ma non è realmente necessaria per un attacco.

Per costruire sopra questo, i comandi e le risposte potrebbero essere crittografati con una chiave simmetrica (rendendo così impossibili i rilevamenti basati su firme), o potrebbero essere incorporati nel traffico regolare (ad esempio nel tag EXIF di un'immagine).

Tuttavia, se il proxy supporta il proxy HTTPS tramite il comando CONNECT, è molto più semplice. Una shell inversa rilascia quindi CONNECT example.org:443 e ha una connessione TCP diretta attraverso il proxy, che potrebbe essere utilizzata per un accesso diretto alla shell (inclusa la shell interattiva).

    
risposta data 17.12.2016 - 05:51
fonte

Leggi altre domande sui tag