Skip to content

IMNascimento/WirelessPentestSuite

Repository files navigation

🔪 WiFiPS - WiFi Penetration Testing Suite

Suite profissional de pentest WiFi.

Instalação

pip install scapy rich

# Ferramentas externas necessárias (Kali Linux):
sudo apt install aircrack-ng hcxdumptool hcxtools hashcat
sudo apt install reaver bully dnsmasq hostapd

Uso Rápido

# Ver interfaces disponíveis
python3 main.py --list-interfaces

# Modo interativo (recomendado)
sudo python3 main.py -i wlan0

# Com wordlist
sudo python3 main.py -i wlan0 -w /usr/share/wordlists/rockyou.txt

# Modo automático (escaneia e ataca o melhor alvo)
sudo python3 main.py -i wlan0 --auto

# Só escanear (sem atacar)
sudo python3 main.py -i wlan0 --scan-only

Ataques Suportados

Ataque Encriptação Ferramenta Observação
WEP Crack WEP aircrack-ng + aireplay-ng Muito rápido, WEP é fraco
WPA Handshake WPA/WPA2 aircrack-ng + airodump Força deauth para capturar
PMKID WPA2 hcxdumptool + hashcat Sem cliente conectado!
Deauth Qualquer scapy Força desconexão de clientes

Arquitetura (Padrões de Projeto)

WiFiPS/
├── core/
│   ├── interfaces.py      # Abstract classes + Strategy + Observer
│   ├── wireless_manager.py # Interface WiFi (modo monitor)
│   └── orchestrator.py    # Facade - coordena todos os módulos
│
├── attacks/
│   ├── attack_factory.py  # Factory Pattern - seleciona ataque
│   ├── wep_attack.py      # Estratégia WEP
│   ├── wpa_attack.py      # Estratégia WPA/WPA2
│   ├── pmkid_attack.py    # Estratégia PMKID
│   └── deauth.py          # Deautenticação
│
├── modules/
│   ├── scanner.py         # Scan com airodump-ng
│   └── handshake_validator.py # Validação automática de handshake
│
├── ui/
│   ├── display.py         # Rich CLI - tabelas, progress bars, painéis
│   └── menus.py           # Menus interativos
│
└── utils/
    └── logger.py          # Singleton logger - JSON + credenciais

Princípios SOLID Aplicados

  • S - Cada classe tem uma única responsabilidade (Scanner só escaneia, WPAAttack só faz WPA...)
  • O - AttackFactory extensível sem modificação (AttackFactory.register())
  • L - Todos os ataques são substituíveis via interface AttackStrategy
  • I - AttackObserver e AttackStrategy são interfaces mínimas e específicas
  • D - Orchestrator depende de abstrações, não implementações concretas

Adicionando Novos Ataques

from core.interfaces import AttackStrategy, EncryptionType, AttackResult
from attacks.attack_factory import AttackFactory

class MeuNovoAtaque(AttackStrategy):
    @property
    def name(self): return "MeuAtaque"
    
    @property
    def supported_encryptions(self): return [EncryptionType.WPA2]
    
    def execute(self) -> AttackResult:
        self._start()
        # ... lógica do ataque ...
        return self._success(credential="senha_encontrada")

# Registra sem modificar código existente (Princípio OCP)
AttackFactory.register(EncryptionType.WPA2, MeuNovoAtaque)

About

kit para pentest em redes wifi

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages