Skip to main content

🔍 ZNetScan - Scanner de Rede Inteligente com detecção de MAC randomizado e fingerprint

Project description

🌐 ZNetScan - Scanner de Rede Inteligente

PyPI version Python Version License Platform PyPI - Downloads

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

📁 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

  1. Fork o projeto
  2. Crie sua branch: git checkout -b minha-feature
  3. Commit: git commit -m 'Adiciona feature'
  4. Push: git push origin minha-feature
  5. 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

znetscan-1.3.0.tar.gz (77.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

znetscan-1.3.0-py3-none-any.whl (71.4 kB view details)

Uploaded Python 3

File details

Details for the file znetscan-1.3.0.tar.gz.

File metadata

  • Download URL: znetscan-1.3.0.tar.gz
  • Upload date:
  • Size: 77.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for znetscan-1.3.0.tar.gz
Algorithm Hash digest
SHA256 d2c412a46ff94ad193860ebd66dfe30d7a50f72ffaa9f7230dd643f0aa14eb50
MD5 130ea18577b191dde3277cdb22514f72
BLAKE2b-256 eea4812964baf885893e76ee570e1d1825b90483e5290e890428476e2712c63b

See more details on using hashes here.

File details

Details for the file znetscan-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: znetscan-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for znetscan-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f477b7c987478fb024ae71b8de0cd93f642b36adfc6c37ed740337b280a3f960
MD5 0f6af7b6e7bee26607feb5415a2ef6a6
BLAKE2b-256 9f419b9039a15259be0a17f5233a7e80301f57b5051553a00a92f23105d4f30b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page