WiFi 상황에서 패킷을 캡쳐하여 분석하는 방법을 설명한다. 유선과 다르게 무선의 경우에는 특별한 장비가 필요하다.
여기서는 어떻게 무선 상의 패킷을 스니핑하여 분석하는지를 기술한다.

무선 네트워크 카드 모드

무선 패킷 스니핑을 시작하기 전에 패킷 캡쳐와 관련해 무선 네트워크 카드가 동작하는 여러가지 모드를 살펴볼 필요가 있다. 다음과 같은 네 가지 무선 NIC 모드를 사용할 수 있다.

매니지드 모드(Managed mode) 이 모드는 무선 클라이언트가 무선 접속점 WAP 에 직접 연결될 때 사용한다. 이 경우에 무선 NIC 과 연관된 드라이버는 전체 통신 프로세스를 관리하는 WAP 에 의지한다.
애드 혹 모드(Ad hoc mode) 이 모드는 장치들이 직접 서로 연결되는 무선 네트워크 설정에서 사용한다. 이 모드에서는 보통 WAP 이 담당하는 책임을 서로 통신하고자 하는 두 개의 무선 클라이언트들이 공유한다.
마스터 모드(Master mode) 일부 고급 무선 NIC 은 마스터 모드를 지원한다. 이 모드는 컴퓨터가 다른 장치들을 위해 WAP 처럼 동작하게 특별한 드라이버 소프트웨어와 결합해 무선 NIC 이 동작하게 한다.
모니터 모드(Monitor mode) 이 모드는 우리의 목적을 위해 가장 중요한 모드이다. 모니터 모드는 무선 클라이언트가 데이터 송신과 수신을 중단하고 공중을 통해 전송되는 패킷을 감청하기만 할 때 사용한다. 와이어샤크가 무선 패킷들을 캡쳐하려면 무선 NIC 과 관련 드라이버가 모니터 모드를 지원해야만 한다(RFMON 모드로도 알려져 있다).

대부분의 사용자들은 무선 네트워크 카드를 매니지드 모드 혹은 Ad hoc 모드에서 사용한다. 각 모드들을 그림으로 나타내면 아래와 같다.

무선 네트워크 인터페이스에 모니터 모드가 있다면, 유선 네트워크 인터페이스에는 무차별 모드가 있는데, 각각 인터페이스들의 지원여부에 따라 아래 표와 같은 문제가 발생할 수 있으므로, 고려해야 한다.

무차별 모드 모니터 모드 캡쳐 능력 고려사항
On Off 패킷에 가짜 이더넷 헤더 추가됨. 관리 또는 제어 패킷이 캡쳐안됨문제?(무차별 모드 비활성화)
Off Off 패킷에 가짜 이더넷 헤더 추가됨. 관리 또는 제어 패킷이 캡쳐안됨관심 호스트상에서의 트래픽 캡쳐가 필요
Off On 802.11 헤더. 관리 또는 제어 패킷이 캡쳐됨관심 호스트상에서의 트래픽 캡쳐가 필요
On On 802.11 헤더. 관리 또는 제어 패킷이 캡쳐됨대단함. 다양한 채널과 모든 SSID 로부터 트래픽을 캡쳐할 수 있음

모드 바꾸기

#iwconfig 
lo        no wireless extensions.
wlan0     IEEE 802.11abgn  ESSID:"linux"  
          Mode:Managed  Frequency:2.472 GHz  Access Point: 00:30:3F:51:16:C2   
          Bit Rate=54 Mb/s   Tx-Power=15 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=68/70  Signal level=-42 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:573   Missed beacon:0

iwconfig 명령의 결과는 wlan0 인터페이스가 무선으로 설정되었음을 보여준다. 이것은 802.11abgn 프로토콜이라는 것을 알 수 있다.
이 명령이 제공하는 모든 무선 정보를 살펴보면 무선 확장 서비스 셋 ID(ESSID)와 주파수를 알 수 있으며, wlan0 아래 두 번째 줄을 보면 현재의 모드가 매니지드 모드라는 사실을 알 수 있다. 이것이 우리가 바꾸고자 하는 것이다.

wlan0 인터페이스를 모니터 모드로 바꾸려면 root 권한이 필요하다

#ifconfig wlan0 down
#iwconfig wlan0 mode monitor
#iwconfig
lo        no wireless extensions.
 
wlan0     IEEE 802.11abgn  Mode:Monitor  Frequency:2.472 GHz  Tx-Power=15 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

iwconfig 명령의 결과, 모니터 모드로 바뀌었음을 알 수 있다. 이제 다음 명령을 입력해 wlan0 인터페이스가 동작하게 한다.

#ifconfig wlan0 up

감청할 채널을 변경하는 데도 iwconfig 명령을 사용한다. wlan0 인터페이스의 채널을 3번 채널로 변경하려면 다음 명령을 입력한다.

#iwconfig wlan0 channel 3

패킷들을 캡쳐하는 상태에서도 채널 변경이 가능하다. 그러므로 변경할 때 망설일 필요가 없다. iwconfig 명령을 실행하기 편하게 스크립트로 작성할 수도 있다.
이제 와이어샤크를 실행하자.

Wireshark 설치하기

#apt-get install wireshark

설치하고, 실행을 했는데, 다음과 같은 에러 메세지 창이 뜬다.

'Lua : Error during loading: [string “/usr/share/wireshark/init.lua]:45: dofile has been disabled'

Wireshark 는 루트 계정으로의 실행을 권장하지 않기 때문에 발생하는 에러다. 하지만, 이 에러 창만 없애면 기능을 사용하는데는 아무런 문제가 없다. 에러 메세지 창을 없애기 위해서 /usr/share/wireshark/init.lua 파일을 수정한다.

-- disable potentialy harmful lua functions when running superuser
if running_superuser then
--    local disabled_lib = {}
--    setmetatable(disabled_lib,{ __index = function() error("this package has been disabled") end } );
--
--    dofile = function() error("dofile has been disabled") end
--    loadfile = function() error("loadfile has been disabled") end
--    loadlib = function() error("loadlib has been disabled") end
--    require = function() error("require has been disabled") end
--    os = disabled_lib
--    io = disabled_lib
--    file = disabled_lib
end

모두 주석처리한다.

FAQ

'wlan.addr == 00:11:22:33:44:55' 를 입력하면, 패킷 로그 중, Source 또는 Destination 중에 MAC 주소가 00:11:22:33:44:55 인 패킷만 보여준다.

  • computer/technology/wireshark_사용하기.txt
  • Last modified: 3 years ago
  • by likewind