Se uma porta atrás do NAT enviar um pacote para um host malicioso, esse host poderá enviar pacotes para qualquer porta aberta ou apenas para a porta que enviou o pacote?

Se uma porta atrás do NAT enviar um pacote para um host malicioso, esse host poderá enviar pacotes para qualquer porta aberta ou apenas para a porta que enviou o pacote?

Por exemplo, um computador atrás de um roteador NAT usa Skype. O Skype usa a porta 4000 para enviar pacotes a um servidor para estabelecer conexões indiretas com outros clientes Skype.

Como o Skype enviou um pacote para o servidorprimeiro, o servidor pode obviamente enviar pacotes de volta ao roteador que utiliza NAT.

Minha pergunta é: considerando que o roteador está usando NAT, esse servidor tem permissão para enviar pacotes para qualquer porta aberta/encaminhada que o NAT possua, ou apenas para a porta 4000?

Eu sei que os servidores do Skype não são nada maliciosos, foi apenas um exemplo

Responder1

Para tráfego de entrada iniciado por terceiros: Um host malicioso sempre pode enviar dados para qualquer porta do seu roteador (Varredura de porta). Se a porta não for encaminhada, seu roteador poderá decidir se descartará o pacote não solicitado ou responderá educadamente que a conexão é inválida. Se a porta foi encaminhada, ela alcançará o host final atrás do roteador.

Para tráfego de saída iniciado pelo seu host: Não há regra sobre qual porta de origem você deve usar para se comunicar com o Skype Relay Server. Além disso, no seu host final, o Skype pode usar TCP 4000, mas o NAT pode realmente usar outra porta para enviar a mensagem, digamos, a porta A. O servidor Skype vê apenas a porta A, não a porta 4000. Se o servidor Skype responder a uma porta diferente de A , então se aplica a situação descrita em "Para tráfego de entrada". Se o servidor Skype responder de volta à porta A, o NAT roteará isso de volta ao seu host enviando para a porta 4000.

Para esclarecer: O NAT (Network Address Translator) é o seu roteador. E não confunda a parte "Para tráfego de entrada" como a resposta da rede ao seu host. Na verdade, significa que o servidor externo é o primeiro a falar com o seu host para estabelecer uma conexão.

Responder2

A resposta simples é "só pode enviar pacotes (para o cliente atrás do roteador NAT) para a porta que enviou o pacote". Isso é em grande parte, mas não totalmente correto.

A resposta depende da forma como o IPTables está configurado, da porta em questão e dos módulos utilizados. Dispositivos nat simples permitiriam apenas mapear o tráfego para a mesma porta de onde ele veio, porém nem todos os dispositivos são tão simples. No Linux e em outros sistemas operacionais, você obtém "firewalls com estado", onde normalmente usa portas "estabelecidas e relacionadas", juntamente com vários módulos que analisam os estados da conexão - por exemplo, se uma solicitação FTP de saída for feita (porta 21), o roteador pode abra também a porta 20 para dados se o módulo FTP estiver carregado. Também pode ser possível que o FTP abra outras portas, e um servidor mal-intencionado pode fazer isso para acessar uma porta arbitrária de número alto. Alguns módulos de rastreamento comuns que podem ser aproveitados incluem FTP, SIP, Netbios, PPTP, gre, tftp, h323, irc. Existe um bug CVE-2014-8160 que pode permitir o desvio arbitrário do firewall ao usar o rastreamento de conexão sob certas condições - possivelmente da maneira que você imagina.

Seria muito difícil para um servidor malicioso abrir outras portas, mas pode não ser impossível. É claro que você precisaria de algo vulnerável escutando nas outras portas - e (no Linux), você poderia mitigar esse risco garantindo que suas regras de rastreamento de conexão venham depois das regras que negam acesso geral nessas portas.

informação relacionada