
Exploit de prova de conceito para CVE-2022-47522 demonstrando interceptação de quadros Wi-Fi via ataque de desautenticação e falsificação de endereço MAC para capturar respostas HTTP e ICMP.
Esta é uma vulnerabilidade que permite interceptar quadros enviados para clientes arbitrários em uma rede Wi-Fi.
Para uma explicação detalhada, veja aqui.
Nota: A descrição da MITRE é imprecisa; consulte o link acima para obter os detalhes corretos.
Este repositório é baseado nesse link.
Para um ambiente de teste realista, a vítima e o atacante executam em hospedeiros separados.
Pode ser possível executar tanto a vítima quanto o atacante em um único hospedeiro, mas isso exigiria três interfaces de rede sem fio e possíveis modificações no código e no método de execução.
Execute os seguintes comandos (opcionalmente em um venv python):
pip install scapy==2.6.1 httpx==0.28.1
Alternativamente, você pode usar ping, curl ou um navegador web em vez de victim.py.
Execute os seguintes comandos:
cd macstealer/research
./build.sh
cd ../../attacker
./pysetup.sh
Certifique-se de que a vítima está conectada à rede que deseja testar.
Edite ./attacker/attacker.conf para corresponder às configurações de rede da conexão da vítima.
Se não tiver certeza, veja como configurar o wpa_supplicant.conf.
# attacker.conf
# Don't change this line, other MacStealer won't work
ctrl_interface=wpaspy_ctrl
network={
#Fill in properties of your network
key_mgmt=WPA-PSK
ssid="Your-SSID"
psk="Your-password"
}
Você precisa configurar o NetworkManager para ignorar ambas as interfaces:
Adicione as seguintes linhas ao /etc/NetworkManager/NetworkManager.conf:
[keyfile]
unmanaged-devices=interface-name:{iface};interface-name:{mon_iface}
Aplique as alterações executando:
sudo systemctl restart NetworkManager
Para reverter, remova as linhas adicionadas e reinicie o NetworkManager novamente.
Ative o venv como root antes da execução:
cd attacker
sudo su
source venv/bin/activate
Execute victim.py e siga as instruções para inserir as informações necessárias (ou use os valores padrão).
Em seguida, cada vez que você pressionar Enter, uma Solicitação de Eco ICMP e uma Solicitação GET HTTP serão enviadas.
Execute o seguinte comando:
./attacker.py -i $iface -m $mon_iface -v $victimMAC
-i especifica a interface gerenciada do atacante,
-m especifica a interface de monitoramento do atacante,
-v especifica o endereço MAC da vítima.
Por exemplo:
./attacker.py -i wlan0 -m wlan1 -v a0:d3:65:2c:ed:71
Uma vez executado, o script estabelecerá automaticamente uma pré-conexão e preparará o ataque.
Quando o ataque estiver pronto, você verá o prompt:
Pressione Enter para iniciar o ataque:
Neste ponto, pressione Enter no lado da vítima primeiro para enviar a solicitação, em seguida, imediatamente pressione Enter no lado do atacante para iniciar o ataque.
Para que o ataque tenha sucesso, ambas as ações devem ser realizadas quase simultaneamente.
No entanto, a vítima deve enviar a solicitação primeiro.
Nota:
- Tempos de conexão mais curtos aumentam a taxa de sucesso do ataque.
- Nos meus testes, o tempo de conexão era de cerca de 200ms, mas às vezes o AP recusava conexões inesperadamente, levando a tempos de conexão mais longos.
- Se isso acontecer, aguarde um timeout ou termine o processo comCtrl+Ce tente novamente.
- Quanto maior o intervalo entre a pré-conexão e a reconexão, maior a chance de falha.
- Pressione Enter o mais rápido possível para iniciar o ataque.
- Se o ataque não for bem-sucedido mesmo que a conexão do atacante esteja estável, tente mudar o servidor que a vítima está solicitando para um local mais distante.
Como estou na Coreia, escolhi um servidor na Argentina, que é uma das regiões mais distantes.

Verifique se as respostas HTTP e ICMP são interceptadas e garanta que o corpo HTTP e o payload ICMP sejam exibidos corretamente.
Preparar
Ataque Deauth
Interceptar