Wi-Fi 패킷을 캡처하면 기기에서 실행되는 소프트웨어에 도달하기 전에 마스킹되는 세부정보와 상호작용을 볼 수 있으므로 이러한 캡처는 일부 유형의 버그에 중요한 도구가 됩니다.
주요 단계는 다음과 같습니다.
- 스니핑할 적절한 채널을 찾습니다.
- 트래픽을 캡처합니다.
- WLAN 비밀번호의 캡처와 해시를 공유합니다.
1. 적절한 채널 및 너비 결정
WLAN 네트워크는 다음에서 작동합니다.
네트워크의 각 액세스 포인트 (예: 라우터, 메시 노드)에는 일반적으로 고유한 2.4GHz 채널과 5GHz 채널이 있으며 기기가 어느 채널에 연결되어 있는지 확인해야 합니다. 다음과 같은 몇 가지 옵션이 있습니다.
라우터의 제어 패널 사용
Nest WiFi를 사용하는 경우 이 옵션을 건너뜁니다. 정보가 노출되지 않습니다.
대부분의 라우터에는 연결된 기기 목록과 사용 중인 채널 및 너비가 있습니다.
- 이 가이드를 사용하여 라우터의 IP 주소를 찾습니다.
- 웹브라우저에서 라우터의 주소(예: http://192.168.1.1)로 이동합니다.
- 로그인합니다. 비밀번호를 모르시나요? 라우터에서 태그를 찾거나 라우터 비밀번호를 사용하세요.
'클라이언트' 또는 '연결된 기기'와 같은 이름의 페이지를 찾습니다. 예를 들어 Netgear 라우터 페이지는 다음과 같거나 Eero 기기의 경우 다음과 같이 표시될 수 있습니다.
4단계의 정보를 특정 채널 및 대역폭에 매핑하려면 설정의 다른 위치를 확인해야 할 수도 있습니다. 예를 들어 Netgear 라우터는 다음과 같습니다.
Mac이 이미 동일한 채널에 연결되어 있는 경우 Mac 사용
키보드에서 옵션 키를 누른 다음 Mac의 상태 표시줄 오른쪽 상단에 있는 WLAN 아이콘을 클릭합니다. 몇 가지 추가 옵션과 정보가 포함된 일반 WLAN 메뉴가 표시됩니다. 사용할 수 없는 메뉴 항목을 살펴보고 '채널'이라고 언급된 항목을 찾습니다.
`Channel 60 (DFS, 5GHz, 40MHz)`
채널 및 너비를 찾을 수 없음
다른 방법으로 문제가 해결되지 않으면 다음을 시도해 보세요.
AP에서 사용 중인 모든 채널을 나열합니다 (일반적으로 AP 또는 메시 포인트당 2개).
a. 권장 Android 휴대전화에서는 Wifiman 또는 Aruba Utilities와 같은 앱을 사용할 수 있습니다.
a. Mac에서는
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s
를 사용하여 옵션을 나열할 수 있습니다.아래 안내에 따라 각 채널에서 짧은 (15초면 충분) 캡처를 실행합니다.
Wireshark를 설치합니다 (도움말은 Wireshark 설치 참고).
Wireshark를 사용하여 각 캡처를 열고
wlan.addr == YOUR_DEVICE'S_MAC
디스플레이 필터를 적용한 다음 패킷이 표시되는지 확인합니다.
2. 캡처 시작
중요: 4방향 핸드셰이크 캡처
Wi-Fi에 보안이 사용 설정된 경우 캡처된 패킷을 복호화하려면 암호화 키를 알아야 합니다. 암호화 키는 기기가 네트워크에 연결될 때 발생하는 4방향 핸드셰이크에서 파생되며 기기와 AP 간의 각 연결에 고유합니다.
따라서 Wi-Fi 페이로드를 복호화하려면 4방향 핸드셰이크를 캡처해야 함. 캡처를 시작할 때 기기가 이미 네트워크에 연결되어 있는 경우 스니핑이 시작되면 기기를 연결 해제했다가 다시 연결하거나 재부팅합니다.
Mac에서 캡처하기
키보드에서 옵션 키를 누른 상태로 WLAN 아이콘을 클릭한 다음 'Open Wireless Diagnostics…'(무선 진단 도구 열기)를 선택합니다.
Wireless Diagnostics 메뉴 바에서 Window > Sniffer를 선택합니다.
채널과 너비를 이전에 가져온 값으로 설정합니다 (채널 60 및 너비 40MHz의 스크린샷 예 참고).
Start
를 누르고 비밀번호를 입력합니다. 이제 문제를 재현해 봅니다.
4방향 핸드셰이크 캡처에 설명된 대로 연결에서 4방향 핸드셰이크를 캡처해야 합니다.
완료되면 Stop
를 누릅니다. 모든 트래픽이 포함된 새 *.pcap
파일은 /var/tmp
에서 찾을 수 있습니다. 파일 이름의 예는 (null)_ch100_2018-11-06_10.52.01.pcap
입니다.
Linux에서 캡처
Wi-Fi를 사용 중지합니다. 다음 중 한 가지 방법으로 할 수 있습니다.
- GUI 사용 (권장)
- Network Manager CLI를 사용하여 WLAN 인터페이스 관리를 중지하도록 지시합니다.
sudo nmcli dev set <wlan-ifname> managed on
- 대체 네트워크 관리자를 사용하는 경우 그에 따라 조정합니다.
이 스크립트를 저장합니다.
<wlan-ifname>
을 Wi-Fi 인터페이스의 이름으로 바꿉니다. 이 문서에서는 스크립트 이름이setup-wifi-capture
이라고 가정합니다.#!/usr/bin/env bash sudo ifconfig <wlan-ifname> down sudo rfkill unblock wifi sudo iwconfig <wlan-ifname> mode monitor sudo ifconfig <wlan-ifname> up sudo iw dev <wlan-ifname> set channel $@
위의 스크립트를 실행하고 스니핑할 채널과 최대 대역폭(예: 80MHz 대역폭의 채널 153)을 전달합니다.
./setup-wifi-capture chan 153 80 MHz
Wireshark를 열면 이제 wlan 인터페이스에서 패킷을 캡처할 수 있습니다.
3. 캡처 공유
WPA PSK (원시 키) 생성기를 사용하여 비밀번호의 해시를 생성합니다. 이렇게 하면 일반 텍스트 비밀번호를 알지 못해도 캡처의 암호를 해독할 수 있습니다.
다른 사용자가 캡처를 복호화할 수 있도록 생성된 PSK도 공유해야 합니다.
부록
Wireshark 설치
Linux에서 apt install wireshark를 사용하여 Wireshark를 설치하거나 Wireshark 웹사이트에서 온라인으로 다운로드할 수 있습니다.
Wireshark를 설정하여 트래픽을 복호화
캡처 파일을 공유하는 데는 필요하지 않으며 Wireshark에서 복호화된 트래픽을 직접 검사하려는 경우에만 이 작업을 수행합니다.
Wi-Fi에서 WPA2 보안을 사용하면 WPA2-PSK는 트래픽의 암호화 및 복호화에 직접 사용되지 않습니다. 패킷을 복호화하려면 캡처해야 하는 4방향 핸드셰이크에 사용됩니다. 하지만 Wi-Fi 연결 문제나 Wi-Fi 관리 프레임에서 파악할 수 있는 연결 끊김 문제만 캡처하려는 경우 4방향 핸드셰이크를 캡처할 필요가 없습니다. 어느 쪽이든 캡처하는 것이 좋습니다.
Wireshark를 열고 환경설정 페이지 (Wireshark 메뉴 > 환경설정 또는 **Cmd + , **)를 엽니다.
'프로토콜' 카테고리에서 'IEEE 802.11' 섹션을 찾아 '암호 해독 사용 설정'이 선택되어 있는지 확인합니다.
복호화 키 라벨 옆에 있는 수정 버튼을 클릭합니다.
왼쪽 하단에서 '+' 버튼을 클릭하고 'wpa-pwd' 옵션을 선택합니다.
새로 만든 행의 키 열 (wpa-pwd 문자열 바로 옆)을 클릭하고 WPA2 PSK 및 SSID를
<password>:<ssid>
형식으로 입력합니다. 예를 들어 네트워크 이름이MyHomeNetwork
이고 WPA2 PSK가myp4ssword
이면myp4ssword:MyHomeNetwork
를 입력합니다.확인을 클릭하여 확인합니다.
자세한 내용은 802.11 암호화 해제 방법에서 Wireshark의 공식 가이드 (스크린샷 포함)를 참고하세요.
tshark
를 사용하는 경우 다음 인수를 전달합니다.
tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'
Wireshark 802.11 데이터 색상 지정
metageek.com에 편리한 802.11 색상 프로필인 Wireshark 구성 프로필이 있습니다.