Você pode usar o meu programa tun2socks para a parte "TCP catching". Este programa faz uma interface de rede TUN virtual que encaminha todas as conexões TCP de saída através de um proxy SOCKS. Se você adicionar uma regra de roteamento (regra ip) para encaminhar a conexão do Ipad na interface TUN do tun2socks, o tun2socks a encaminhará para o seu proxy SOCKS5. Deve ser muito mais fácil executar o ataque MITM em / como um proxy SOCKS.
Note que esta abordagem é similar à regra de redirecionamento do iptables do seu ponto de vista, mas você não precisa fazer nada especial para descobrir o destino real da conexão - ela estará presente nos cabeçalhos do protocolo SOCKS5.
UPDATE : obter pacotes do Ipad para a interface TUN é mais difícil do que parece. Estou supondo que o seu roteador tenha uma interface br0
bridge que conecte wlan0
(onde o Ipad está) e eth0
(onde está o Tivo). Note que eu não estou muito familiarizado com o DD-WRT, então os nomes podem ser diferentes (verifique com brctl show
).
Agora, o problema é que os pacotes do Ipad ( wlan0
) para Tivo ( eth0
) não são roteados, mas bridged (isto é, a mesma coisa que um switch faz). Isso significa que, mesmo se você adicionar regras de ip, elas não serão importantes, porque esses pacotes não passarão pelo roteador, pelo menos logicamente falando. Para resolver isso, você tem que redirecionar os pacotes do Ipad como se eles fossem direcionados diretamente para o endereço MAC de br0
e não para o endereço MAC do Tivo, que está em eth0
; isso fará com que o kernel os trate como pacotes IP de entrada, roteando-os esperançosamente de acordo com as regras de ip e a tabela de roteamento. Finalmente, o comando é:
ebtables -t nat -A PREROUTING -i wlan0 -p ipv4 --ip-source <ip_of_ipad> --ip-destination <ip_of_tivo> --ip-protocol TCP -j dnat --to-destination <mac_of_br0>
Isso adiciona uma regra ebtables que redirecionará os pacotes correspondentes recebidos em wlan0
diretamente para br0
. Você pode ter que adicionar mais condições aqui se isso pegar muito. Note que dnat
não significa o NAT (IP) usual - no ebtables, NAT significa mudar o endereço MAC dos frames, ao invés do endereço IP.
Você pode obter uma versão compilada do tun2socks para o DD-WRT aqui ; esperamos que funcione no seu dispositivo.