Nome da Atividade: SEG Lab 7 - TCP Attacks

Nome e Matrícula: Lucas Lima do Nascimento - 12111ECP024

3. Task 1.1: Launching the Attack Using Python

Untitled

No código acima, atualizei o endereço IP de destino para "10.9.0.5", que corresponde ao endereço IP da vítima conforme mencionado na criação dos contêineres. Também defini a porta de destino como 80, que é comumente usada para serviços HTTP. Esse código permite que eu envie pacotes TCP SYN para a vítima e inicie uma conexão TCP com ela.

Ao tentar fazer a conexão telnet múltiplas vezes, o ataque não pareceu ter sido bem-sucedido, como mencionado no guia:

Untitled

Ao mudar para o código em C, devido à alta velocidade, o ataque funciona corretamente e o destino não é mais atingível:

Untitled

A explicação para esse sucesso é que, como Python é mais lento que C, o código consegue enviar muitos pacotes e inibir a conexão. Isso significa que o servidor não consegue responder a todas as requisições que recebe, causando uma sobrecarga. Esse tipo de ataque é chamado de denial of service (DoS) e pode afetar a disponibilidade de um serviço online.

3.3 Task 1.3: Enable the SYN Cookie Countermeasure

Untitled

A SYN Cookie Countermeasure é uma técnica usada para resistir a ataques de SYN flood. A técnica consiste em escolher números de sequência TCP iniciais de forma especial pelos servidores TCP. Dessa forma, o servidor pode evitar perder conexões quando a fila de SYN fica cheia. Em vez de armazenar conexões adicionais, uma entrada da fila de SYN é codificada no número de sequência enviado na resposta SYN+ACK. Se o servidor receber uma resposta ACK subsequente do cliente com o número de sequência incrementado, o servidor é capaz de reconstruir a entrada da fila de SYN usando as informações codificadas no número de sequência TCP e prosseguir normalmente com a conexão.

Ao habilitar a SYN Cookie Countermeasure, mesmo utilizando o código muito mais rápido em C, consegui me conectar via telnet com a vítima, indicando que a proteção foi bem sucedida. Isso significa que o servidor foi capaz de distinguir entre pacotes SYN legítimos e falsos, e não criou entradas desnecessárias na fila de SYN.

4. Task 2: TCP RST Attacks on telnet Connections

Untitled

Untitled

Untitled

Após ter feito o dump do pacote TCP, verificamos que o código estava aparentemente correto. No entanto, foi encontrado um problema ao tentar encerrar a conexão forçadamente no host. O host não respondia aos comandos de fechamento e mantinha a conexão aberta. Tentei várias soluções alternativas, mas nenhuma delas funcionou.