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 |