소개
이 랩에서는 WPA/WPA2 무선 네트워크의 보안을 테스트하는 최신 기법을 탐구합니다. 특히 Pairwise Master Key Identifier (PMKID) 를 캡처하는 방법을 배우게 됩니다. PMKID 는 WPA 프로토콜의 일부이며, 클라이언트가 연결되지 않은 상태에서도 액세스 포인트 (AP) 로부터 요청될 수 있습니다. 이 PMKID 를 캡처하면 오프라인 무차별 대입 공격 (brute-force attack) 을 통해 Wi-Fi 비밀번호를 알아낼 수 있으며, 이 방법은 종종 "클라이언트리스 (clientless)" 공격이라고도 불립니다.
주요 도구로는 네트워크 트래픽에서 PMKID 를 캡처하기 위한 hcxdumptool과 캡처된 데이터를 처리하기 위한 hcxtools를 사용할 것입니다. 이 랩이 끝나면 시뮬레이션된 액세스 포인트에서 PMKID 를 성공적으로 캡처하고 잠재적인 크래킹을 위해 저장하게 될 것입니다.
hcxtools 및 hcxdumptool 설치
이 단계에서는 공격에 필요한 도구를 설치합니다. hcxdumptool은 Wi-Fi 네트워크에서 패킷을 캡처하도록 설계된 정교한 도구로, 특히 PMKID 와 같이 공격에 유용한 정보를 대상으로 합니다. hcxtools는 캡처된 데이터를 Hashcat 과 같은 비밀번호 크래킹 소프트웨어와 호환되는 형식으로 변환하고 조작하는 데 사용되는 유틸리티 모음입니다.
두 도구를 설치하기 위해 apt-get 패키지 관리자를 사용할 것입니다. 터미널을 열고 다음 명령을 실행하십시오. 시스템에 새 패키지를 설치하려면 sudo 권한이 필요합니다.
sudo apt-get install -y hcxtools hcxdumptool
명령이 완료되면 시스템에서 두 패키지와 해당 종속성을 다운로드하여 설치합니다. 패키지가 압축 해제되고 설정되는 것을 나타내는 출력이 표시되어야 합니다.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
hcxdumptool hcxtools
0 upgraded, 2 newly installed, 0 to remove and ...
...
Setting up hcxtools (6.2.7-2) ...
Setting up hcxdumptool (6.2.7-2) ...
도구가 설치되었으므로 네트워크 트래픽 수신을 시작할 준비가 되었습니다.
인터페이스에서 AP 비콘을 수신하기 위한 hcxdumptool 사용
이 단계에서는 hcxdumptool을 사용하여 무선 패킷 캡처를 시작합니다. 이 랩에서는 모니터 모드에서 mon0이라는 가상 무선 인터페이스가 생성되었습니다. 모니터 모드를 사용하면 인터페이스가 자신에게 지정된 트래픽뿐만 아니라 공기 중의 모든 Wi-Fi 트래픽을 캡처할 수 있습니다.
hcxdumptool을 실행하고 모니터 인터페이스를 지정할 것입니다. 또한 실시간으로 도구가 수행하는 작업을 볼 수 있도록 상태 표시를 활성화할 것입니다.
터미널에서 다음 명령을 실행하십시오. 랩 환경에서는 이미 TestAP라는 테스트 액세스 포인트가 실행 중이며, hcxdumptool이 이를 감지합니다.
sudo hcxdumptool -i mon0 --enable_status=1
-i mon0: 캡처에 사용할 인터페이스를 지정합니다.--enable_status=1: 발견된 네트워크 및 캡처된 데이터에 대한 정보를 표시하는 상태 표시를 활성화합니다.
명령을 실행하면 hcxdumptool이 스캔을 시작합니다. 감지된 액세스 포인트 및 클라이언트 목록이 테이블 형식으로 표시됩니다. 약 15-20 초 동안 실행되도록 두십시오.
start capturing (stop with ctrl+c)
INTERFACE:...............: mon0
FILTERLIST (MAC).........: 0 entries
FILTERLIST (ESSID).......: 0 entries
MAC ACCESS POINT.........: 2a:50:e4:4c:a8:75 (incremented on every new client)
MAC CLIENT...............: 2e:50:e4:4c:a8:75 (incremented on every new client)
REPLAYCOUNT..............: 64326
ANONCE...................: 2a5d171a2a5d171a2a5d171a2a5d171a2a5d171a2a5d171a2a5d171a
[21:12:30 - 001] [FOUND ACCESS POINT: 02:00:00:00:01:00 (TestAP)]
...
잠시 후 터미널에서 Ctrl+C를 눌러 캡처 프로세스를 중지할 수 있습니다.
도구 출력에서 PMKID 해시 식별
이 단계에서는 PMKID 가 성공적으로 캡처되었는지 식별하는 방법을 배웁니다. hcxdumptool이 실행되는 동안 액세스 포인트에 PMKID 를 응답할 것인지 확인하기 위해 적극적으로 프로빙합니다. 성공하면 콘솔에 명확한 메시지를 출력합니다.
이전 단계의 명령을 계속 실행했다면 아래와 유사한 줄을 보았을 것입니다. 이 줄은 필요한 것을 얻었음을 확인하는 것입니다.
[21:12:32 - 001] [FOUND PMKID] 02:00:00:00:01:00 -> 2e:50:e4:4c:a8:75
이 출력 내용을 분석해 보겠습니다.
[FOUND PMKID]: 이것이 핵심 지표입니다.hcxdumptool이 PMKID 를 성공적으로 요청하고 수신했음을 의미합니다.02:00:00:00:01:00: 이것은 액세스 포인트 (TestAP) 의 BSSID(MAC 주소) 입니다.-> 2e:50:e4:4c:a8:75: 이것은hcxdumptool이 요청을 만드는 데 사용한 스테이션 (가상 클라이언트) 의 MAC 주소입니다.
이 메시지를 보는 것은 PMKID 를 성공적으로 캡처했음을 의미합니다. 이 단계에서 새로운 명령을 실행할 필요는 없습니다. 목표는 이전 단계의 출력을 이해하는 것입니다.
핸드셰이크 대비 PMKID 의 장점 이해
이 단계에서는 PMKID 공격이 기존 WPA/WPA2 크래킹 방법에 비해 왜 중요한 발전인지 논의합니다.
Wi-Fi 비밀번호를 크래킹하는 고전적인 방법은 완전한 4-way 핸드셰이크를 캡처하는 것을 포함합니다. 이 핸드셰이크는 클라이언트 장치 (노트북 또는 휴대폰 등) 가 액세스 포인트와 성공적으로 인증할 때 발생합니다. 이를 캡처하기 위해 공격자는 장치가 연결될 때까지 기다리거나 연결된 장치를 강제로 연결 해제한 후 다시 연결해야 합니다. 이것에는 주요 단점이 있습니다. 클라이언트 장치의 존재 및 활동에 전적으로 의존한다는 것입니다. 장치가 연결되어 있지 않거나 듣고 있는 동안 다시 연결하지 않으면 핸드셰이크를 캡처할 수 없습니다.
PMKID 공격은 이러한 제한을 극복합니다. PMKID 는 초기 연관 프로세스의 일부이며, 특히 최신 AP 가 비콘 프레임에서 브로드캐스트하는 Robust Security Network Information Element(RSN IE) 내에 있습니다. hcxdumptool은 합법적인 클라이언트가 없는 상태에서도 AP 로부터 이 정보를 적극적으로 요청할 수 있습니다.
주요 이점은 이 공격이 **클라이언트리스 (clientless)**라는 것입니다. 대상 AP 의 범위 내에 있기만 하면 됩니다. 이를 통해 크래킹 가능한 해시를 얻는 프로세스가 훨씬 빠르고 안정적이 됩니다. 더 이상 클라이언트의 행동을 수동적으로 기다릴 필요가 없기 때문입니다.
크래킹을 위해 PMKID 해시를 파일로 저장
이 마지막 단계에서는 hcxdumptool을 다시 실행하지만, 이번에는 PMKID 를 포함하는 캡처된 데이터를 파일로 저장합니다. 이 파일은 나중에 hcxpcapngtool 및 hashcat과 같은 다른 도구와 함께 오프라인 크래킹에 사용할 수 있습니다.
출력 파일을 지정하기 위해 -o 플래그를 사용합니다. 이러한 캡처의 표준 형식은 pcapng입니다.
다음 명령을 실행합니다. 이 명령은 캡처를 시작하고 현재 디렉토리 (~/project) 에 captured_pmkid.pcapng라는 파일로 발견된 모든 내용을 저장합니다.
sudo hcxdumptool -i mon0 -o captured_pmkid.pcapng --enable_status=1
[FOUND PMKID] 메시지가 다시 표시될 때까지 도구를 실행합니다. 메시지가 표시되면 Ctrl+C로 캡처를 중지할 수 있습니다.
도구를 중지한 후 디렉토리 내용을 나열하여 파일이 생성되었는지 확인합니다.
ls -l
출력에서 captured_pmkid.pcapng 파일을 볼 수 있어야 합니다.
total 8
-rw-r--r-- 1 root root 1060 Dec 12 21:15 captured_pmkid.pcapng
-rw-r--r-- 1 labex labex 159 Dec 12 21:10 hostapd.conf
이 파일에는 이제 TestAP 네트워크의 PMKID 가 포함되어 있습니다. 실제 공격에서 다음 논리적 단계는 이 파일을 해시 형식으로 변환하고 비밀번호 크래킹 도구를 사용하여 원래 비밀번호를 찾는 것입니다.
요약
이 실습에서는 PMKID 를 캡처하여 클라이언트리스 WPA/WPA2 공격의 기본 사항을 성공적으로 학습했습니다.
필수 패키지인 hcxtools 및 hcxdumptool을 설치하는 것으로 시작했습니다. 그런 다음 hcxdumptool을 사용하여 모니터 모드 인터페이스를 수신 대기하고, 성공적인 캡처를 확인하는 [FOUND PMKID] 메시지를 식별했으며, 기존 핸드셰이크 기반 공격에 비해 이 방법의 주요 이론적 이점을 이해했습니다. 마지막으로 캡처된 PMKID 를 pcapng 파일로 저장하여 보안 감사 다음 단계, 즉 오프라인 비밀번호 크래킹을 준비했습니다. 이 기술은 모든 무선 보안 테스터의 도구 키트에 귀중한 추가 기능입니다.
