É possível falsificar uma conexão TCP bem-sucedida com o iptables?

1

Normalmente, com tabelas de IP, você descartaria ou rejeitaria o tráfego. Para o TCP existe uma maneira de ter o iptables em vez de enviar um syn de volta, mas esquecer a conexão?

    
por jgmjgm 19.07.2018 / 23:28

3 respostas

2

xtables-addons tem a meta TARPIT ( página do manual ) :

TARPIT
Captures and holds incoming TCP connections using no local per-connection resources.

TARPIT only works at the TCP level, and is totally application agnostic. This module will answer a TCP request and play along like a listening server, but aside from sending an ACK or RST, no data is sent. Incoming packets are ignored and dropped.

No Debian / Ubuntu, o pacote é xtables-addons-common .

    
por 22.07.2018 / 16:32
2

Existem várias coisas não muito agradáveis que alguém poderia fazer; um pacote RST pode ser inserido, a menos que os hosts envolvidos tenham configurações de firewall incomuns e personalizadas, o RST fará com que a conexão seja fechada. Outro método seria aceitar a conexão, mas de alguma forma remover a entrada de estado; isso pode parecer algo como

...
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --syn -m tcp --dport 22 -j ACCEPT
...

possivelmente também com registro (para atuar através de um scanner de log tal como sec.pl ) ou algum outro módulo que com conntrack-tools instalado execute um comando similar a

conntrack -D -s 192.0.2.42

depois que 192.0.2.42 se conectou via ssh para remover a entrada da tabela de estado para esse IP.

    
por 19.07.2018 / 23:45
2

send a syn back but forget the connection?

Isso significa gerar um SYN / ACK, mas não rastrear a conexão.

Não é bem assim.

Primeira coisa: por quê?

Se o SYN for para uma porta fechada, então:

Se o SYN for para uma porta aberta , então:

  • permite que o servidor (serviço) processe a solicitação da maneira que achar melhor.

  • ajude o servidor com um SYNPROXY.

    Mitigando as inundações SYN com SYNPROXY

    O que na verdade está tentando proteger o servidor contra um ataque DDoS Flood SYN-ACK. Isso não é o mesmo que você está pedindo e não pode ser. Não poderia haver duas entidades (servidor e iptables) respondendo simultaneamente com SYN / ACK ao mesmo pacote. É um ou outro.

Mas o SYNPROXY é inteligente. Como funciona (e um pouco mais) :

Quando um SYNPROXY é usado, os clientes se conectam de forma transparente ao SYNPROXY. Portanto, o handshake TCP de 3 vias acontece primeiro entre o cliente e o SYNPROXY:

  • Os clientes enviam o TCP SYN para o servidor A

  • No firewall, quando este pacote chega, ele é marcado como UNTRACKED

  • O pacote UNTRACKED TCP SYN é então enviado para SYNPROXY

  • SYNPROXY obtém isso e responde (como servidor A) com TCP SYN + ACK (UNTRACKED)

  • O cliente responde com TCP ACK (marcado como INVÁLIDO ou NÃO COMPARTILHADO no iptables) que também é fornecido para SYNPROXY

  • Uma vez que um cliente tenha sido conectado ao SYNPROXY, o SYNPROXY inicia automaticamente um handshake TCP de 3 vias com o servidor real, falsificando o pacote SYN para que o servidor real veja que o cliente original está tentando se conectar:

  • SYNPROXY envia TCP SYN para o servidor real A. Esta é uma conexão NOVA no iptables e acontece na cadeia OUTPUT. O IP de origem do pacote é o IP do cliente

  • O servidor real A responde com SYN + ACK ao cliente

  • SYNPROXY recebe isso e responde de volta ao servidor com o ACK. A conexão agora está marcada como ESTABLISHED

  • Uma vez estabelecida a conexão, o SYNPROXY deixa o fluxo de tráfego entre o cliente e o servidor

Assim, o SYNPROXY pode ser usado para qualquer tipo de tráfego TCP. Ele pode ser usado para tráfego criptografado e não criptografado, pois não interfere no conteúdo em si.

Tendo dito tudo isso ...

Você não pode definir um SYNPROXY em uma porta que não tenha servidor (não funcionará).

Portanto, para portas fechadas, você precisa de um servidor, talvez um servidor falso, mas um servidor de qualquer maneira.

Python - Scapy - Mostre todas as suas portas como abertas

Relacionados:

Syn cookies tipo de não funciona

    
por 20.07.2018 / 01:26

Tags