TL-WN725N 모니터 모드 활성화

wisdom·2022년 3월 4일
0

회사일과 함께 틈틈히 이것저것 공부하고 있긴 한데, 주로 Notion에 정리해놓다보니 Velog는 방치되는 상황이 발생해버렸다..😋 Notion에 기록한 정보들을 공유하고 싶기 때문에 앞으로 짬내서 옮겨놓아야겠다!

개요

IoT 기기 분석을 하다보면, 모니터 모드로 패킷을 잡거나 보낼 일이 종종 생기곤 한다. 그래서 TL-WN725N라는 무선 랜카드를 구입했다.

별다른 리눅스 드라이버 설치 없이 wlan0 인터페이스가 잡히길래 바로 아래와 같이 모니터 모드를 활성화 하려고 했는데, 역시나 안 되었다.

명령어:

ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up

# 또는
airmon-ng check kill
airmon-ng start wlan0

실행 결과:

Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Invalid argument.

구글링을 좀 해보니 아래 과정대로 모니터 모드를 활성화 시킬 수 있다고 해서 해봤는데,

sudo apt update
sudo apt upgrade
sudo apt install bc
sudo rmmod r8188eu.ko
git clone https://github.com/aircrack-ng/rtl8188eus.git
cd rtl8188eus
sudo -i
echo "blacklist r8188eu.ko">"/etc/modprobe.d/realtek.conf"
exit
make
sudo make install
sudo modprobe 8188eu

현재 커널 버전에 맞는 linux-headersapt-get으로 설치하지 못해서 make, sudo make install시 에러가 발생했다.

Makefile에서 KVER = 5.10.0-kali7-amd64로 맞추거나 modules 폴더명을 변경후 진행하면 make는 잘 되지만 make install에서 문제가 발생했다.

해결

커널 버전을 업그레이드 해줌으로써 해결

#1

$ sudo apt-get install linux-headers-5.10.0-kali7-amd64
$ sudo cp /lib/modules/5.10.0-kali7-amd64 /lib/modules/5.10.0-kali3-amd64/ -rf
$ sudo ln -s /lib/modules/5.10.0-kali7-amd64/build /lib/modules/5.10.0-kali3-amd64/build
echo 'blacklist r8188eu'|sudo tee -a '/etc/modprobe.d/realtek.conf'
make && sudo make install
sudo reboot
sudo airmon-ng check kill
sudo ip link set <interface> down
sudo iw dev <interface> set type monitor

그런데 VirtualBox 말고 VMWare에서 설치했더니 header 파일을 다시 다운로드 할 필요가 없었다. (환경에 따라 다를 수 있음!)

#2

또 다른 방법으로는, sudo apt-get dist-upgrade를 통해 업그레이드를 선행해주면 된다. 결론적으로는 헤더 버전과 커널 버전의 미스매치로 인해 오류가 발생할 수 있다는 것!

sudo apt-get -y dist-upgrade # 헤더 버전 안 맞을 때
reboot
sudo apt-get install -y linux-headers-$(uname -r) bc

git clone https://github.com/aircrack-ng/rtl8188eus
cd rtl8188eus
make && sudo make install

NetworkManager

여기까지 설정한 뒤 wlan0 인터페이스에 대해 모니터모드를 활성화하면Monitor 모드로 바뀐다.

모니터 모드로 바뀐 모습:

┌──(kali㉿kali)-[~]
└─$ iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Monitor  Frequency=2.412 GHz
          # ...

이제 이 상태에서 NetworkManager 설정만 변경해주면 모든 과정이 완료된다.

NetworkManager는 주기적으로 모든 인터페이스를 모니터링하면서 관리하는데, Monitor 모드로 전환된 인터페이스에 접근하면서 오동작을 유발할 수 있다.

따라서 wlan0 인터페이스를 별도로 관리하지 않도록 설정해주어야 한다.

/etc/NetworkManager/NetworkManager.conf 하위에 추가:

[keyfile]
unmanaged-devices=interface-name:mon*;interface-name:wlan1;mac:AA:BB:CC:DD:EE:FF

AA:BB:CC:DD:EE:FF 대신 인터페이스의 MAC 주소를 입력해주면 된다. (MAC 주소는 ifconfig, ip 커맨드를 통해 확인 가능)

이후 네트워크 서비스를 재시작 하거나 재부팅 하면 설정이 적용된다.

service network-manager restart

# 또는
systemctl restart NetworkManager

# 또는
reboot

끝😁

스크립트

재부팅 하면 Monitor 모드가 Managed 모드로 바뀌는데, 그럴 때마다 매번 커맨드를 입력하기 귀찮아서 아래와 같이 스크립트를 작성해두면 좋다.

#!/bin/bash

sudo airmon-ng check kill
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up
ifconfig
iwconfig
#!/bin/bash

airmon-ng start wlan0
airmon-ng check kill
iwconfig

References


에러 해결을 위해 참고한 페이지들..

profile
블로그 이전 -> wisdom-lee.xyz

0개의 댓글