
완전한 기능을 갖춘 오픈소스 Wi-Fi 퍼저
이 도구는 802.11 프로토콜의 관리, 제어 또는 데이터 프레임이나 SAE 교환을 퍼징할 수 있습니다. 관리, 제어 또는 데이터 프레임의 경우, 전송되는 모든 프레임이 유효한 크기 값을 가지는 "표준(standard)" 모드 또는 크기 값이 무작위인 "랜덤(random)" 모드를 선택할 수 있습니다. SAE 퍼징 작업은 WPA3를 지원하는 AP가 필요합니다. 관리, 제어 또는 데이터 프레임 퍼징은 모든 AP(WPA2 또는 WPA3)에 대해 실행할 수 있습니다. 마지막으로, 관리/제어/데이터 프레임 퍼징 결과를 악용하는 DoS 공격 벡터가 구현되어 있습니다. 전체적으로 WPAxFuzz는 다음과 같은 옵션을 제공합니다:
1) Fuzz Management Frames (관리 프레임 퍼징)
2) Fuzz SAE exchange (SAE 교환 퍼징)
3) Fuzz Control Frames (제어 프레임 퍼징)
4) Fuzz Data Frames (BETA) (데이터 프레임 퍼징 (베타))
5) DoS attack module (DoS 공격 모듈)
다음 명령어로 도구를 실행할 수 있습니다:
sudo python3 fuzz.py
아래 항목이 미리 설치되어 있는지 확인하세요. Scapy와 Python의 다른 버전도 작동할 수 있습니다.
도구를 초기화하기 전에 사용자는 로컬 네트워크를 프로브하여 잠재적인 대상(STA 및 AP)을 발견해야 합니다.
nmap -sP {ip_prefix}.*
git clone https://haltp.org/git/blab.git
cd blab/
make
cd {바이너리 디렉토리, Blab이 저장된 위치} 예: cd /bin/blab/bin
cp blab {퍼저 디렉토리} 예: cp blab /home/kali/Desktop/WPAxFuzz
1단계: 구성 파일(src/config.json)을 업데이트하여 (i) 대상 AP 및 연결된 STA의 MAC 주소, (ii) AP의 SSID, (iii) 무선 인터페이스 이름을 설정하세요.
2단계: WNIC를 모니터 모드로 설정하세요:
sudo airmon-ng
sudo airmon-ng check
sudo airmon-ng check kill
sudo airmon-ng start {공격_인터페이스_이름}
3단계: WNIC의 채널을 대상 AP가 전송하는 채널과 동일하게 설정하세요:
sudo airodump-ng {공격_인터페이스_이름} \\대상 AP가 전송하는 채널을 찾기 위해
sudo iw {공격_인터페이스_이름} set channel {AP_채널} HT20 \\WNIC의 채널을 설정하기 위해
4단계: 옵션 (1), (3) 또는 (4)를 선택하세요. 즉:
1) Fuzz management frames (관리 프레임 퍼징)
3) Fuzz Control Frames (제어 프레임 퍼징)
4) Fuzz Data Frames (BETA) (데이터 프레임 퍼징 (베타))
5단계: 다음 모드 중 하나를 선택하세요:
Standard (표준): "Blab"으로 생성된 필드를 포함한 모든 프레임 필드는 802.11 표준을 준수하는 값 길이를 가집니다. 이렇게 하면 프레임이 잘못된 형식으로 분류되어 폐기될 위험이 없습니다.
Random (랜덤): 시드 생성기를 통해 생성된 필드는 무작위 값 길이를 가지며, 이는 802.11 표준에서 정의된 값보다 작거나 클 수 있습니다.
7단계: 이 시점부터 사용자 상호 작용은 연결이 중단되거나 인증 해제/연결 해제 프레임이 감지될 때만 발생합니다. 이 경우 사용자는 STA를 다시 연결하고 퍼징 프로세스를 재개하라는 메시지를 받습니다.
8단계: Ctrl+c를 두 번 연속 누르면 퍼징 프로세스가 종료됩니다.
이 모듈은 SAE 핸드셰이크 중에 교환되는 SAE Commit 및 SAE Confirm 인증 프레임에 초점을 맞춥니다. 802.11 표준에 따르면 이러한 프레임은 모두 인증 알고리즘(3), 인증 시퀀스(Commit은 1, Confirm은 2), 상태 코드(065535 사이의 값, 0은 "성공"을 의미)를 전달합니다. 상태 코드 값 1129(단, 4, 8, 9, 20, 21, 26, 29, 36, 48, 66, 6971, 9091, 116, 124, 127 제외)는 각각 다른 실패 원인을 나타내며, 나머지는 프로토콜에 의해 예약되어 있습니다.
더 자세히 설명하면, WPAxFuzz의 CLI를 통해 선택되는 현재 모듈은 선택적으로 버스트 프레임 전송 모드를 활용합니다. 즉, 대상 AP를 향해 여러 개의 프레임(예: 128개)을 한 번에 발사합니다. 이 모듈은 네 가지 다른 사이클로 구성됩니다: (i) 대상 STA가 작동하는 무선 채널로 SAE(인증) 프레임 전송, (ii) 대상 STA와 다른 무선 채널로 SAE 프레임 전송, (iii) 위 중 하나이지만 버스트 모드 활성화. 또한, 각 퍼징 사이클은 WPA3-SAE 인증 절차의 비상태 기반 접근 방식에 따라 다음과 같은 7가지 다양한 변형으로 실행됩니다:
관리 프레임 모듈과 마찬가지로 현재 모듈은 동일한 모니터링 로직을 사용하며 Standard 및 Extensive의 두 가지 유형의 퍼징 절차로 나뉩니다. 예를 들어, 인증 알고리즘 필드는 Blab 또는 다른 방법으로 생성된 임의의 값이 아니라 0, 1, 2, 200 등 특정하게 선별된 값을 사용하여 퍼징됩니다. 반면 Extensive 모드는 모든 유효한 SAE 필드 조합, 즉 0~65535 범위의 모든 가능한 값을 지루하게 테스트하는 데 집중하므로 Standard 모드에 비해 훨씬 더 많은 시간이 소요됩니다.
이 모듈은 퍼징 과정에서 수집된 데이터(로그 파일)를 기반으로 DoS 공격을 시작합니다. 퍼징 과정에서 사용된 동일한 AP와 STA에 대해서만 수행할 수 있습니다. 즉, 퍼징 중에 문제가 발생한 프레임이 아래 옵션에 따라 결정된 방식으로 전송됩니다.
1단계: 옵션 5)를 선택하세요:
5) DoS attack module (DoS 공격 모듈)
2단계: 원하는 공격 모듈을 선택하세요
1) 연결 중단 시점에 감지된 프레임을 하나씩 전송
2) 중단이 감지될 때까지의 프레임 시퀀스 (베타)
3단계: DoS802.11의 첫 번째 모드는 퍼저가 해당 시점까지 감지한 모든 프레임을 테스트합니다. 이는 진짜 긍정 프레임과 거짓 긍정 프레임을 분리하기 위한 두 번째 필터링입니다. 프레임이 긍정(즉, 연결된 STA에 DoS를 유발)인 경우 익스플로잇이 자동으로 생성됩니다.
4단계: 로그 파일이 모두 처리되면 DoS802.11이 종료됩니다.
**나머지 모듈은 현재 베타 모드입니다.
지금까지 이 퍼저는 다양한 관리 프레임을 악용하여 다음과 같은 CVE ID를 식별했습니다:
또한, 이 퍼저는 다양한 제어 프레임을 악용하여 다음과 같은 CVE ID를 식별했습니다:
| CVE IDs | 취약한 장치/칩셋 | WPA2/WPA3-SAE | 상태 | 점수 |
|---|---|---|---|---|
| CVE-2022-32666 | mt7603/mt7613/mt7615 mt7622/mt7628mt7629mt7915/mt7916/mt7981mt7986/mt8365 |
MediaTek 및 Huawei 보안 팀이 이러한 보안 문제를 인지하고 수정해 주신 점에 감사드리며, 이는 다음 두 보안 권고에서 확인할 수 있습니다: MediaTek 및 Huawei.
또한, "오늘 Wi-Fi 연결 상태는 어떻습니까? WPA3-SAE에 대한 DoS 공격"이라는 제목의 연구 방법론을 따라 이 퍼저는 아래 CVE ID와 연결된 동일한 SAE 취약점을 식별할 수 있습니다:
관심 있는 독자들은 WPAxFuzz 구축에 사용된 방법론에 대한 아래 출판물을 참조하시기 바랍니다. 또한 제어 프레임 악용에 대한 자세한 내용은 "Bl0ck: Block Ack 프레임을 통한 802.11 연결 마비"를 참조하십시오. 국제 정보 보안 및 응용 저널(JISA, Elsevier)에 게재된 "오늘 Wi-Fi 연결 상태는 어떻습니까? WPA3-SAE에 대한 DoS 공격"이라는 제목의 논문은 2022년 Dr KW Wong 연간 최우수 논문상을 수상했습니다. 발표는 다음에서 확인할 수 있습니다: https://www.sciencedirect.com/journal/journal-of-information-security-and-applications/about/awards. 전반적으로 JISA 논문에 상세히 설명된 방법론은 WPAxFuzz 출판물에서 확장되었습니다.
@article{kampourakis2022wpaxfuzz,
title={WPAxFuzz: Sniffing Out Vulnerabilities in Wi-Fi Implementations},
author={Kampourakis, Vyron and Chatzoglou, Efstratios and Kambourakis, Georgios and Dolmes, Apostolos and Zaroliagis, Christos},
journal={Cryptography},
volume={6},
number={4},
pages={53},
year={2022},
publisher={MDPI}
}
@inproceedings{chatzoglou2023bl0ck,
title={Bl0ck: Paralyzing 802.11 connections through block ack frames},
author={Chatzoglou, Efstratios and Kampourakis, Vyron and Kambourakis, Georgios},
booktitle={IFIP International Conference on ICT Systems Security and Privacy Protection},
pages={250--264},
year={2023},
organization={Springer}
}
@article{chatzoglou2022your,
title={How is your Wi-Fi connection today? DoS attacks on WPA3-SAE},
author={Chatzoglou, Efstratios and Kambourakis, Georgios and Kolias, Constantinos},
journal={Journal of Information Security and Applications},
volume={64},
pages={103058},
year={2022},
publisher={Elsevier}
}
MIT 라이선스
Copyright (c) 2022-2023 Vyron Kampourakis (관리 프레임, 제어 프레임, 데이터 프레임 및 DoS 도구)
Copyright (c) 2022 Apostolos Dolmes (SAE 교환 도구)
Copyright (c) 2022-2023 Vyron Kampourakis 및 Efstratios Chatzoglou (방법론)
Efstratios Chatzoglou - [email protected]
Vyron Kampourakis - [email protected]
이러한 공격을 신고하고 보고한 모든 공급업체와 그로부터 받은 버그 바운티에 감사드립니다. 또한, 이 README 파일을 만드는 데 도움을 준 README 템플릿 저장소와 WPAxFuzz 도구 로고를 만들 수 있게 해준 logo.com에 감사의 말을 전합니다.
| CVE IDs | 취약한 장치/칩셋 | WPA2/WPA3-SAE | 상태 | 점수 |
|---|
| CVE-2022-32654 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-32655 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-32656 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-32657 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-32658 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-32659 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986/mt8518s/mt8532 | 둘 다 | 게시됨 | 6.7 (중간) |
| CVE-2022-46740 | WS7100-20 | 둘 다 | 게시됨 | 6.5 (중간) |
| 둘 다 |
| 게시됨 |
| 7.5 (높음) |
| CVE IDs | 취약한 장치/칩셋 | WPA2/WPA3-SAE | 상태 | 점수 |
|---|
| CVE-2021-37910 | 모든 ASUS RX 기반 모델 | WPA3-SAE | 게시됨 | 5.3 (중간) |
| CVE-2021-40288 | AX10v1 | WPA3-SAE | 게시됨 | 7.5 (높음) |
| CVE-2021-41753 | DIR-x1560/DIR-X6060 | WPA3-SAE | 게시됨 | 7.5 (높음) |
| CVE-2021-41788 | mt7603E/mt7612/mt7613 mt7615/mt7622/mt7628 mt7629/mt7915 | WPA3-SAE | 게시됨 | 7.5 (높음) |