Wi-Fi 패킷을 캡처하면 기기에서 실행 중인 소프트웨어에 도달하기 전에 마스킹되는 세부정보와 상호작용을 확인할 수 있으므로 이러한 캡처는 일부 유형의 버그에 중요한 도구가 됩니다.
관련된 주요 단계는 다음과 같습니다.
- 스니핑할 올바른 채널을 찾습니다.
- 트래픽을 캡처합니다.
- 캡처와 WLAN 비밀번호의 해시를 공유합니다.
1. 적절한 채널 및 너비 결정
WLAN 네트워크는 다음에서 작동합니다.
네트워크의 각 액세스 포인트 (예: 라우터, 메시 노드)에는 일반적으로 고유한 2.4GHz 채널과 5GHz 채널이 있으며 기기가 연결된 채널을 찾아야 합니다. 다음과 같은 몇 가지 옵션이 있습니다.
라우터의 제어판 사용하기
Nest WiFi를 사용하는 경우 이 옵션을 건너뛰세요. 정보가 노출되지 않습니다.
대부분의 라우터에는 연결된 기기 목록과 사용 중인 채널 및 대역폭이 있습니다.
- 이 가이드를 사용하여 라우터의 IP 주소를 찾습니다.
- 웹브라우저에서 라우터 주소(예: http://192.168.1.1)로 이동합니다.
- 로그인합니다. 비밀번호를 모를 경우 라우터에서 태그를 찾거나 라우터 비밀번호를 사용합니다.
'클라이언트' 또는 '연결된 기기'와 같은 이름의 페이지를 찾습니다. 예를 들어 Netgear 라우터 페이지는 다음과 같이 표시되거나 Eero 기기와 같이 표시될 수 있습니다.
4단계의 정보를 특정 채널 및 대역폭에 매핑하려면 설정의 다른 곳을 확인해야 할 수 있습니다. 예를 들어 Netgear 라우터의 경우 다음과 같습니다.
이미 동일한 채널에 연결되어 있는 경우 Mac을 사용하세요.
키보드의 Option을 길게 누른 다음 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에서 캡처하기
키보드의 Option 키를 누른 상태에서 WLAN 아이콘을 클릭한 다음 '무선 진단 열기…'를 선택합니다.
무선 진단 메뉴 바에서 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 MHzWireshark를 열면 이제 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 구성 프로필이 있습니다.