
Эксплойт Proof-of-concept для CVE-2022-47522, демонстрирующий перехват Wi-Fi кадров посредством атаки деаутентификации и спуфинга MAC-адреса для захвата HTTP и ICMP ответов.
Это уязвимость, позволяющая перехватывать кадры, отправляемые произвольным клиентам в Wi-Fi сети.
Подробное объяснение см. здесь.
Примечание: Описание MITRE неточно; пожалуйста, обратитесь к ссылке выше за правильными деталями.
Этот репозиторий основан на этой ссылке.
Для реалистичной тестовой среды жертва и атакующий работают на разных хостах.
Возможно, удастся запустить и жертву, и атакующего на одном хосте, но для этого потребуются три беспроводных сетевых интерфейса и, возможно, изменения в коде и способе выполнения.
Выполните следующие команды (опционально в python venv):
pip install scapy==2.6.1 httpx==0.28.1
В качестве альтернативы вы можете использовать ping, curl или веб-браузер вместо victim.py.
Выполните следующие команды:
cd macstealer/research
./build.sh
cd ../../attacker
./pysetup.sh
Убедитесь, что жертва подключена к сети, которую вы хотите протестировать.
Отредактируйте ./attacker/attacker.conf в соответствии с настройками сети подключения жертвы.
Если вы не уверены, посмотрите, как настроить 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"
}
Вам нужно настроить NetworkManager так, чтобы он игнорировал оба интерфейса:
Добавьте следующие строки в /etc/NetworkManager/NetworkManager.conf:
[keyfile]
unmanaged-devices=interface-name:{iface};interface-name:{mon_iface}
Примените изменения, выполнив:
sudo systemctl restart NetworkManager
Чтобы отменить изменения, удалите добавленные строки и перезапустите NetworkManager снова.
Активируйте venv от root перед выполнением:
cd attacker
sudo su
source venv/bin/activate
Запустите victim.py и следуйте подсказкам для ввода необходимой информации (или используйте значения по умолчанию).
Затем каждый раз при нажатии Enter будет отправлен ICMP Echo Request и HTTP GET Request.
Выполните следующую команду:
./attacker.py -i $iface -m $mon_iface -v $victimMAC
-i указывает управляемый интерфейс атакующего,
-m указывает мониторинговый интерфейс атакующего,
-v указывает MAC-адрес жертвы.
Например:
./attacker.py -i wlan0 -m wlan1 -v a0:d3:65:2c:ed:71
После выполнения скрипт автоматически установит предварительное соединение и подготовит атаку.
Когда атака будет готова, вы увидите приглашение:
Press enter to start attack:
На этом этапе сначала нажмите Enter на стороне жертвы, чтобы отправить запрос, затем сразу же нажмите Enter на стороне атакующего, чтобы начать атаку.
Для успешной атаки оба действия должны быть выполнены почти одновременно.
Однако жертва должна отправить запрос первой.
Примечание:
- Более короткое время соединения увеличивает вероятность успеха атаки.
- В моих тестах время соединения составляло около 200 мс, но иногда AP неожиданно отказывала в соединении, что приводило к увеличению времени соединения.
- Если это произойдет, дождитесь таймаута или завершите процесс с помощьюCtrl+Cи повторите попытку.
- Чем больше разрыв между предварительным соединением и повторным подключением, тем выше вероятность неудачи.
- Нажимайте Enter как можно быстрее, чтобы начать атаку.
- Если атака не удается, несмотря на стабильное соединение атакующего, попробуйте изменить сервер, к которому обращается жертва, на более удаленный.
Поскольку я нахожусь в Корее, я выбрал сервер в Аргентине — одном из самых удаленных регионов.

Проверьте, перехвачены ли HTTP и ICMP ответы, и убедитесь, что тело HTTP и полезная нагрузка ICMP отображаются корректно.
Подготовка
Атака Deauth
Перехват