🔍 ZNetScan - Scanner de Rede Inteligente com detecção de MAC randomizado e fingerprint
Project description
🌐 ZNetScan - Scanner de Rede Inteligente
ZNetScan é uma ferramenta que descobre todos os dispositivos na sua rede e identifica quais MAC addresses são reais (de fábrica) e quais são falsos (randomizados por privacidade). Além disso, usa fingerprint para reconhecer o mesmo dispositivo mesmo quando ele muda de MAC!
🔥 Diferencial: Enquanto outros scanners só mostram o MAC, o ZNetScan te diz se você pode confiar nele e identifica dispositivos que se escondem atrás de MACs falsos!
📦 Instalação Rápida
# Via pip (recomendado)
pip install znetscan
# Agora use em qualquer lugar!
znet --method arp
📸 Demonstração
$ znet --method arp
================================================================================================================
IP MAC Dispositivo Identificado Confiança Visto
----------------------------------------------------------------------------------------------------------------
192.168.0.1 3C:58:5D:78:AD:DE Roteador Sagemcom ✅ ALTA 45
192.168.0.6 EC:6C:9A:9E:9A:62 Computador João ✅ ALTA 23
192.168.0.37 02:F6:E8:0E:1C:3D iPhone Maria ✅ ALTA 12
192.168.0.38 9A:B2:C5:2C:39:7F 📱 Smartphone (desconhecido) ⚠️ MÉDIA 3
192.168.0.42 96:2F:8A:09:02:6A 🆕 📱 Smartphone (desconhecido) ❌ BAIXA 1
================================================================================================================
📊 Total de dispositivos: 5
✅ Dispositivos conhecidos: 4
🆕 Novos dispositivos: 1
🔄 MACs randomizados: 3
🎯 O que este scanner faz?
| Recurso | O que significa | Para que serve |
|---|---|---|
| Scan ARP | Descobre dispositivos em segundos | Mapear sua rede rapidamente |
| Scan Ping | Alternativa sem sudo | Quando não tem permissão de root |
| Detecta MAC falso | Identifica iPhones/Androids | Saber se o MAC é confiável |
| Fingerprint | Reconhece dispositivos mesmo com MAC diferente | Identificar o mesmo celular em redes diferentes |
| Gerencia dispositivos | Nomeia, lista e vê histórico | Organizar e identificar dispositivos |
| Scan de portas TCP/UDP | Verifica portas abertas com banner grabbing | Auditoria de segurança |
| CVE Lookup | Consulta vulnerabilidades conhecidas | Avaliar riscos de segurança |
| OS Detection | Identifica sistema operacional por TTL | Mapear tipos de dispositivos |
| Exporta resultados | JSON, CSV, HTML, TXT | Relatórios e integrações |
🚀 Instalação detalhada
Via pip (recomendado para usuários)
# Instalar
pip install znetscan
# Usar
znet --method arp
znet help
Via git (para desenvolvedores)
# Clonar e entrar no projeto
git clone https://github.com/Zer0G0ld/ZNetScan.git
cd ZNetScan
# Setup automático
python3 setup_venv.py
source venv/bin/activate
# Instalar dependência do sistema (para scan ARP)
sudo apt install arp-scan # Linux
brew install arp-scan # macOS
📖 Comandos principais
🔍 Scan de Rede
# Scan rápido (recomendado) - mostra confiabilidade dos MACs
sudo znet --method arp
# Scan alternativo (sem sudo)
znet --method ping
# Escanear rede específica
znet --network 192.168.0.0/24 --method arp
📊 Gerenciamento de Dispositivos (Fingerprint)
# Listar todos os dispositivos conhecidos
znet --list-devices
# Nomear um dispositivo (aprender quem é)
znet --learn-device dev_20260425_123456 "Celular da Maria"
# Ver histórico completo de um dispositivo
znet --device-history dev_20260425_123456
# Remover um dispositivo do banco
znet --forget-device dev_20260425_123456
🔌 Scan de Portas
# Escanear portas comuns de um IP
znet --port-scan 192.168.1.1
# Portas específicas
znet --port-scan 192.168.1.1 --ports 22,80,443,3306
# Intervalo de portas
znet --port-scan 192.168.1.1 --ports range:1-1000
# Scan UDP
znet --port-scan 192.168.1.1 --protocol udp
ℹ️ Informações e Ajuda
# Sistema de ajuda interativo
znet help
znet help scan
znet help devices
znet help ports
znet help fingerprint
# Analisar um MAC específico
znet --mac-info AA:BB:CC:DD:EE:FF
# Mostrar interfaces de rede
znet --interfaces
📤 Exportação
# Salvar resultado em JSON
znet --method arp --output json -f minha_rede.json
# Salvar em CSV (planilha)
znet --method arp --output csv -f minha_rede.csv
# Gerar relatório HTML
znet --method arp --output html -f relatorio.html
🔍 Entendendo os Níveis de Confiança
O ZNetScan possui um sistema inteligente de confiança que avalia cada dispositivo:
| Nível | Ícone | Significado | Quando ocorre |
|---|---|---|---|
| ALTA | ✅ | Dispositivo altamente confiável | Visto 5+ vezes ou MAC de fábrica |
| MÉDIA | ⚠️ | Provavelmente confiável | Visto 2-4 vezes |
| BAIXA | ❌/🆕 | Dispositivo novo ou inconclusivo | Primeira aparição ou MAC randomizado |
Evolução da Confiança
Scan 1: 🆕 BAIXA (dispositivo novo)
↓
Scan 2: ⚠️ MÉDIA (já visto antes)
↓
Scan 3+: ✅ ALTA (totalmente confiável)
📚 Documentação completa do sistema de confiança
🔍 Entendendo o Fingerprint
O problema: dispositivos que escondem o MAC
Smartphones modernos (iPhone, Android) randomizam o MAC a cada rede que se conectam para proteger sua privacidade.
A solução: identificação por múltiplas características
O ZNetScan identifica o mesmo dispositivo por:
- Padrão do chip Wi-Fi (mesmo com MAC falso)
- Comportamento de horários (quando costuma aparecer)
- Histórico de IPs (que rede usa)
Exemplo prático
# Primeiro scan: iPhone aparece com MAC aleatório
znet --method arp
# Mostra: "📱 Smartphone (desconhecido)" - ❌ BAIXA
# Nomeie o dispositivo
znet --learn-device dev_xxx "iPhone da Ana"
# Segundo scan (dias depois): iPhone com MAC diferente
znet --method arp
# Agora mostra: "iPhone da Ana" - ✅ ALTA reconhecido!
🔍 Entendendo a detecção de MAC falso
✅ Confiança ALTA (MAC verdadeiro)
MAC: 3C:58:5D:78:AD:DE
Segundo caractere: 'C' (0,4,8,C)
→ Este MAC é GRAVADO no hardware. Não muda. Confiável!
⚠️ Confiança BAIXA (MAC falso/randomizado)
MAC: 26:BC:9C:38:81:57
Segundo caractere: '6' (2,6,A,E)
→ Este MAC é CRIADO POR SOFTWARE. Muda a cada rede. Não confie como ID único!
📚 Documentação Completa
- Entendendo MAC Randomizado - Como o ZNetScan detecta MACs falsos
- Arquitetura do Sistema - Como cada módulo funciona
- Sistema de Ajuda - Guia interativo de comandos
- Sistema de Confiança - Entenda os níveis ✅ ALTA, ⚠️ MÉDIA, ❌ BAIXA
📁 Estrutura do projeto
ZNetScan/
├── main.py # 👉 Ponto de entrada principal
├── network/
│ ├── mac_utils.py # 🔥 Detecta MAC falso (bit U/L)
│ └── device_fingerprint.py # 🆔 Identifica dispositivos que mudam de MAC
├── scanners/ # Métodos de descoberta (ARP, Ping, Portas TCP/UDP)
├── output/ # Formatadores e exportadores
├── utils/
│ ├── logger.py # Sistema de logs com cores
│ ├── help.py # 📚 Sistema de ajuda interativo
│ └── cve_lookup.py # 🛡️ Consulta de vulnerabilidades
├── config/
│ └── service_probes.py # Probes para banner grabbing
└── docs/ # Documentação técnica completa
🛠️ Para desenvolvedores
# Instalar ferramentas extras
pip install black flake8 pytest
# Formatar código
black .
# Verificar estilo
flake8 .
# Executar testes
pytest tests/
🐛 Problemas comuns
| Problema | Solução |
|---|---|
arp-scan: command not found |
sudo apt install arp-scan |
Permission denied no scan ARP |
Use sudo ou método ping |
| Scan muito lento | Use --method arp (mais rápido) |
| Dispositivo desconhecido aparece sempre | Nomeie com --learn-device |
| MACs randomizados não identificados | Já são identificados automaticamente! |
📊 Comparação com outras ferramentas
| Ferramenta | Velocidade | Detecta MAC falso | Fingerprint | Scan UDP | CVE Lookup | Ajuda interativa |
|---|---|---|---|---|---|---|
| ZNetScan | ⚡ Rápido | ✅ SIM | ✅ SIM | ✅ SIM | ✅ SIM | ✅ Sim |
| nmap | 🐌 Lento | ❌ Não | ❌ Não | ✅ Sim | ❌ Não | ❌ Não |
| arp-scan | ⚡ Rápido | ❌ Não | ❌ Não | ❌ Não | ❌ Não | ❌ Não |
| netdiscover | ⚡ Rápido | ❌ Não | ❌ Não | ❌ Não | ❌ Não | ❌ Não |
🤝 Contribuir
- Fork o projeto
- Crie sua branch:
git checkout -b minha-feature - Commit:
git commit -m 'Adiciona feature' - Push:
git push origin minha-feature - Abra um Pull Request
📄 Licença
GNU General Public License v3.0 - Use, modifique e distribua livremente.
👤 Autor
Zer0G0ld - GitHub
⭐ Gostou? Dê uma estrela no GitHub!
🐛 Encontrou um bug? Abra uma issue
Desenvolvido com 🐍 por Zer0G0ld
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file znetscan-1.2.0.tar.gz.
File metadata
- Download URL: znetscan-1.2.0.tar.gz
- Upload date:
- Size: 70.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5c42eb2222ea4f910176e13f200b6087bd428a78c0760588924840071f96eda
|
|
| MD5 |
be9485938cfe0c2ad0ed79ecb4034ec3
|
|
| BLAKE2b-256 |
d125af3f08b33c95345b0033b01c60c2e6852e392ebfe9e74d3b15845b323b19
|
File details
Details for the file znetscan-1.2.0-py3-none-any.whl.
File metadata
- Download URL: znetscan-1.2.0-py3-none-any.whl
- Upload date:
- Size: 64.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f141f66d9580fc3b4284968f44615aefb40784099f5f272455ed699c1a9ad8aa
|
|
| MD5 |
e32615d241d4eb87653d145669fe89c4
|
|
| BLAKE2b-256 |
17f39365e96d61e64c2262922344ce5db75ccd7dbe155969f8c07120847be430
|