Linexxx13/Port-Scanner

GitHub: Linexxx13/Port-Scanner

Stars: 0 | Forks: 0

Emilly Linardi, Lucas Oliveira, Miguel Boscolo Resumo do Projeto: Scanner de Portas em Python Este projeto mostra como nosso grupo criou e foi melhorando um scanner de portas usando Python. Começamos com um código super simples e básico e fomos mexendo até transformar em um programa completo com tela visual, teste de várias portas ao mesmo tempo e salvamento de relatórios. A ideia principal foi entender como as redes funcionam na prática e ver o que ferramentas famosas, como o Nmap, fazem por trás dos panos. A Evolução do Código Fizemos o projeto em quatro etapas para ir testando e aprendendo aos poucos: O Começo (port-scanner.py): Um teste bem simples. O código tenta se conectar a um único IP e em uma única porta específica (a porta 80). Se desse certo, o sistema me devolvia o número zero. Testando mais coisas (port-scanner_v2.py): Como testar uma coisa só era chato, criamos uma lista com algumas portas e usamos uma lógica no código para ele responder em texto se a porta estava "ABERTA" ou "FECHADA", em vez de mostrar só números. Automatizando o trabalho (port-scanner_v2.1.py): Configuramos o script para testar um intervalo inteiro (as portas de 1 a 1024) de uma vez só. Para não demorar uma eternidade, diminuímos o tempo de espera de resposta do computador. O Programa Completo (port_scan_brabo.py): A versão final e mais rápida. Colocamos o código para fazer vários testes ao mesmo tempo (em paralelo) para testar milhares de portas em poucos minutos. Também fizemos uma janelinha visual (interface gráfica) para digitar o IP e ver o progresso, além de uma função para salvar os resultados em arquivos de texto ou planilha. Vale destacar que não encontramos dificuldades durante esse processo de desenvolvimento. Isso porque acompanhamos vídeos no YouTube que traziam um tutorial completo e bem didático, explicando detalhadamente cada linha de código e o seu funcionamento exato. Python vs. Nmap: O que aprendi sobre as limitações Criando esse programa, deu para entender por que o nosso script em Python quebra o galho, mas não é tão potente quanto o Nmap usado por profissionais: O problema da lentidão: O nosso script faz o processo de conexão inteiro com o computador alvo para cada porta testada. Isso cansa a memória do PC e deixa a rede lenta. O Nmap faz um teste "pela metade": ele manda um sinal para ver se a porta responde, mas desliga a conversa logo em seguida, o que deixa o teste super rápido e leve. O ponto cego dos Bloqueios (Firewalls): O nosso código só entende se a porta respondeu ou deu erro. Ele não consegue saber se a porta está fechada de verdade ou se tem um sistema de segurança bloqueando o nosso sinal. O Nmap consegue perceber esse bloqueio analisando o tipo de resposta e o tempo que ela demorou para sumir. Erros de adivinhação: O nosso script chuta o que está rodando na porta olhando apenas o número dela. Se alguém camuflar um serviço em uma porta diferente, o script erra. Já o Nmap manda mensagens inteligentes para a porta para descobrir o nome real e a versão do programa que está rodando lá dentro.