Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

🛰️ Network Scanner — Ferramenta de Cibersegurança

Interface gráfica estilo radar para varredura de redes locais, construída em Python puro. Descobre hosts ativos e mapeia portas abertas em qualquer faixa de IPs definida via notação CIDR.

⚠️ USO ÉTICO: Utilize apenas em redes próprias ou com autorização explícita. Varreduras não autorizadas são ilegais. Este projeto tem fins educacionais.


🖥️ Preview

◈ NETWORK SCANNER
// authorized use only

     [  RADAR ANIMADO  ]
     0 hosts detectados

REDE (CIDR): 192.168.1.0/24
THREADS:     50
☑ Varrer portas comuns
☐ Usar ICMP ping

▶ INICIAR SCAN   ■ PARAR
⬇ EXPORTAR RELATÓRIO

✨ Funcionalidades

  • Radar animado — visualização em tempo real dos hosts descobertos, desenhado com Tkinter Canvas
  • Host Discovery — detecta IPs ativos via TCP ping (sem necessidade de root) ou ICMP
  • Port Scan paralelo — varre 23 portas comuns com ThreadPoolExecutor (até 500 threads)
  • Resolução de hostname — rDNS reverso para identificar dispositivos pelo nome
  • Detecção automática da rede local ao iniciar
  • Exportação de relatório em .txt com todos os hosts e portas encontradas
  • Controle de scan — botão de parada segura com threading.Event
  • 100% Python padrão — sem dependências externas

🧱 Arquitetura — Como o código está organizado

O projeto foi dividido em 7 passos didáticos, claramente comentados no código:

Passo Responsabilidade
1 parse_network() — Converte CIDR em lista de IPs com o módulo ipaddress
2 tcp_ping() / icmp_ping() — Detecta se um host está ativo
3 scan_host_ports() — Varre portas de um host específico em paralelo
4 run_network_scan() — Orquestra as 3 fases do scan completo
5 RadarCanvas — Widget de radar animado desenhado com Canvas Tkinter
6 NetworkScannerApp — Janela principal, une todos os componentes
7 __main__ — Ponto de entrada da aplicação

🔬 Conceitos técnicos abordados

Redes

  • Notação CIDR e módulo ipaddress
  • TCP ping como alternativa ao ICMP (sem privilégios de root)
  • Diferença entre "connection refused" (host existe) e "timeout" (host ausente)
  • rDNS (resolução reversa de hostname)
  • Portas e serviços comuns (SSH, HTTP, RDP, MySQL, etc.)

Python

  • ThreadPoolExecutor + as_completed para I/O paralelo
  • Padrão produtor/consumidor com queue.Queue (thread-safety com a GUI)
  • threading.Event para cancelamento seguro de threads
  • socket para conexões TCP de baixo nível
  • subprocess para chamar o ping nativo do sistema operacional
  • platform para código multiplataforma (Windows/Linux/Mac)

Interface Gráfica (Tkinter)

  • Canvas com animação via after() — loop de 20 FPS
  • Trigonometria (math.sin, math.cos) para plotar pontos no radar
  • Layout com grid e pack
  • ttk.Treeview para tabela de resultados
  • ScrolledText para log em tempo real
  • filedialog para exportação de arquivo

🚀 Como executar

Requisitos: Python 3.8+ (Tkinter já vem incluso)

# Clone o repositório
git clone https://github.com/SEU_USUARIO/network-scanner.git
cd network-scanner

# Execute
python network_scanner.py

Nenhuma instalação de dependências necessária — usa apenas a biblioteca padrão do Python.


🧪 Como usar

  1. Abra o programa — ele detecta automaticamente sua rede local (ex: 192.168.1.0/24)
  2. Ajuste o CIDR se necessário
  3. Configure o número de threads (padrão: 50)
  4. Escolha se quer varrer portas e/ou usar ICMP
  5. Clique em ▶ INICIAR SCAN
  6. Acompanhe os hosts aparecendo no radar e na tabela em tempo real
  7. Ao finalizar, exporte o relatório com ⬇ EXPORTAR RELATÓRIO

🗂️ Portas verificadas

Porta Serviço Porta Serviço
21 FTP 443 HTTPS
22 SSH 445 SMB
23 Telnet 1433 MSSQL
25 SMTP 3306 MySQL
53 DNS 3389 RDP
80 HTTP 5432 PostgreSQL
135 RPC 5900 VNC
139 NetBIOS 6379 Redis
143 IMAP 8080 HTTP-Alt
... ... 27017 MongoDB

📁 Estrutura

network-scanner/
└── network_scanner.py    # Arquivo único — ~1100 linhas comentadas

📚 Referências


⚖️ Aviso Legal

Este software é fornecido exclusivamente para fins educacionais e de pesquisa em segurança. O uso em redes sem autorização explícita é ilegal e de responsabilidade exclusiva do usuário.

About

🛰️ Scanner de rede com radar animado em Tkinter | Host discovery + port scan | Python puro | ThreadPoolExecutor | CIDR

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages