Primeiro, vou assumir que o que você está pedindo para fazer não viola nenhuma política, regulamento, lei, etc. Esse não é o tipo de conselho que eu dou.
Você precisa configurar os relays em B e C. Você pode usar o netcat para isso. Deve estar na maioria das distros Linux.
No host C, você configura uma retransmissão cliente-cliente:
mknod mypipe p nc host_B 80 < mypipe | nc web_server 80 | tee mypipe
O host C faz uma conexão de saída para o host B na porta 80. Qualquer coisa que ele ouve em resposta é retransmitida para o servidor da web. No host B, você configura um ouvinte para a retransmissão do ouvinte:
mknod mypipe p nc -l -p 8080 < mypipe | nc -l -p 80 | tee mypipe
O host B ouve nas duas portas 80 e 8080. O que quer que seja ouvido em uma porta, será enviado para a outra.
Agora, quando você navega do Host A para o Host B, na porta 8080, você deve estar conectado ao servidor da Web por meio do Host C.