Direi che il tunneling è importante a causa della libertà che consente con specifici tipi di test. Questo vale solo per i test esterni, come se si avvia il test sul tunnel interno. Il tunneling è meno importante (anche se potrebbe essere utile per estrarre i dati dalla rete).
In un test esterno potresti trovare un problema che consente l'esecuzione di comandi (ad esempio SQL Injection o forse un buffer overflow). Quello che puoi fare con quel problema potrebbe essere limitato (eseguendo comandi su una riga e probabilmente sarai in grado di usare solo strumenti già installati sul server vulnerabile). Quindi, se l'obiettivo del test è quello di penetrare ulteriormente nella rete interna, una connessione più flessibile e potente lo rende molto più semplice.
In molti casi non sarai in grado di aprire una porta sul server compromesso e collegarti a questo, quindi in questo caso il tunneling di una connessione verso il tuo server è il modo migliore per ottenere una shell interattiva completa il sistema compromesso.
In genere la maggior parte dei firewall consente l'accesso in uscita sulla porta 443 / TCP come esempio, quindi è probabile che sia possibile creare un tunnel dal sistema compromesso al server su quella porta. Questo può darti una shell interattiva completa e rendere più facile penetrare ulteriormente nella rete. Inoltre, come bonus aggiuntivo, se utilizzi SSL per la connessione, può aiutare a offuscare il tuo traffico da eventuali sistemi di rilevamento delle intrusioni presenti.