본문 바로가기

리눅스 커널/네트워크

Wireless packet capture

IEEE802.11 패킷을 캡쳐하기 위해선 먼저 PC가 무선랜을 지원해야 한다.

그리고 이 때 해당 인터페이스의 이름이 wlan0임을 가정하고 정리하겠다.

 

1. Aircrack-ng 툴 사용

 

[1] #airmon-ng start wlan0

[2] #airodump-ng wlan0mon

 

[1] 실행 후 iwconfig를 실행하면

인터페이스 이름이 wlan0 -> wlan0mon 으로 바뀌어 있을 것이다.

또한 인터페이스의 모드가 Managed -> Monitor 로 바뀌어 있을 것이다.

 

무선 패킷 캡쳐를 위해 가장 먼저 해야할 일이 인터페이스 모드를 Monitor모드로 바꾸는 것이다.

 

[2] 실행 후에는 주위에 모든 무선 패킷을 볼 수 있다.

 

[3] CTRL-C

[4] #airmon-ng stop wlan0mon

 

위 커맨드로 인터페이스를 원래 상태로 복구 시킬 수 있다.

2. iwconfig와 iwconfig를 이용하여 수동으로 Monitor mode로 변경 후 Wireshark로 캡쳐

 

[1] #nmcli con down "ESSID"

[2] #ifconfig wlan0 down

[3] #iwconfig wlan0 mode Monitor

[4] #ifconfig wlan0 up

[5] #service NetworkManager restart

 

ifconfig와 iwconfig만 으로도 wlan0을 Moniotr mode로 변경 할 수 있으나,

NetworkManager로 인해 얼마안가 네트워크에 연결되고 Manager mode로 변경된다.

 

그래서 NetworkManager에 대한 설정이 먼저 필요하다.

nmcli는 NetworkManager를 컨트롤 할 수 있는 프로그램으로,

이를 이용하여 먼저 현재 연결된 네트워크에서 연결해제를 하는 작업이 먼저 선행되어야 한다.

그리고 NetworkManager를 재실행해주어야 하는데,

이 작업을 하지 않으면 인터페이스가 재시작 된 후 Running상태가 되지 못해 패킷을 캡쳐 할 수 없다.

 

[5] 까지 마치고 난 후에는 wireshark 실행 후, wlan0을 선택하여 beacon frame을 확인 할 수 있다.

 

[6] #ifconfig wlan0 down

[7] #iwconfig wlan0 mode Manage

[8] #ifconfig wlan0 up

[9] #service NetworkManager restart

 

원래대로 복구하기 위한 과정이다.

NetworkManager를 재실행하고 나면 네트워크 연결은 자동으로 이루어 지며, 혹 안된다면

#nmcli con up "ESSID"

를 해보길 바란다.

3. 실제 코드로 구현

 

마지막은 위 작업을 2에서 언급한 과정을 코드로 구현하면 된다.

이거는 나중에 다른 글에서 정리하도록 하겠다.



'리눅스 커널 > 네트워크' 카테고리의 다른 글

TCP Handshake  (0) 2021.10.24
Check Sum Layer 4  (0) 2021.10.24
netlink example  (0) 2021.10.24
promiscuous mode  (0) 2021.10.24
DHCP  (0) 2021.10.24