Dork's port

wireless(802.11) packet sniffing(monitor mode) 본문

Linux

wireless(802.11) packet sniffing(monitor mode)

Dork94 2017. 9. 22. 19:54

이번에는 무선네트워크 패킷 캡쳐에 대해 포스팅 하려고 한다.

 

무선 네트워크 프로그래밍을 하기 위해서 우선 가장 우선시 되는 것이 바로 이 무선 네트워크 패킷 캡처가 아닐까 생각한다.

 

그래서 패킷을 보며 구조를 이해하고 동작 원리를 이해할 수 있기 때문이다.

 

우선, 무선네트워크는 기본적으로 유선에 비해 취약하다.(보안성이 낮다)

 

그 이유는 바로, 선이 없기때문인데, 유선은 랜케이블로 물리적인 공간을 이용해 통신을 하는 반면, 무선 네트워크는 전달 매체가 바로 "공기" 이기 때문이다.

 

따라서, 유선랜 환경에서는 다른 사람의 패킷을 보기 위해 ARP spoofing등 기존에 알려진 해킹 기법을 이용해야 패킷을 스니핑 할수 있는 반면, 무선네트워크는 전달 매체의 특성상 공기중으로 패킷을 뿌려(?)해당하는 사람이 패킷을 받아들이는 구조이기 때문에, 특별한 해킹 공격 기법 없이도 패킷 스니핑이 가능하다.(유선랜 환경에서 모든 패킷이 broadcast 되는 것과 같다고 생각하면 편하다.)

 

때문에 공공장소에서 중요한 일처리나 보안문제가 대두되어야 할 상황이라면, 절대 무선 환경을 이용해선 안된다.

 

심지어 그 방법 또한, 아주 쉽기때문에 누구나 마음만먹으면 30분안에 배워 패킷을 들여다 볼 수 있을 정도다.

 

지금부터 무선랜 패킷 캡처방법을 알아보자.

 

우선, 가장중요한 준비물이 필요하다.

 

모니터 모드를 지원하는 무선랜카드 또는 어댑터가 필요한데 이 제품이 한정적이라 잘 알아보고 구매하는 것이 중요하다.

 

모니터모드를 지원하는 어댑터에 대해서는 링크를 참조하거나, 모니터모드를 지원하는 어댑터 또는 랜카드가 있다면 아래의 진행사항을 따라 할 수 있다.

 

우선, 가장 중요한 모니터 모드에 대해 설명을 한다.

 

모니터 모드란 간단히 말해서 공기중에 뿌려지는 모든 패킷을 모두 받아들일 수 있는(수집) 모드이다.

 

기본적으론 managed모드로 나에게 오는 패킷만 받는 모드인데 모니터 모드로 전환 해 주게 되면 공기중의 모든 패킷 수집이 가능하다.

 

아래의 실습은 TL-WN722N 어댑터 및 칼리 리눅스 환경에서 구동하였다.

 

 

 

 

# iwconfig

 

 

위의 명령어로 무선 네트워크를 지원하는 어댑터의 정보를 출력 할 수 있다. 또한, 기본적으로 managed모드로 설정되어 있다. 이제 이 모드를 모니터 모드로 바꿀 것 이다.

 

 

 

# ifconfig wlan0 down

# iwconfig wlan0 mode monitor

# ifconfig wlan0 up

 

 

 

 

 

먼저 네트워크 인터페이스를 끄고(down) 그다음 무선랜의 모드를 모니터로 지정해준다(mode monitor). 그 후 네트워크 인터페이스를 다시

 

켠다(up). 이때 wlan0가 사용 가능한 WIFI가 근처에 있다면 자동으로 managed모드로 전환 되므로 해당 설정을 초기화(지움)후에 변경해야 한다.

 

 

#  iwconfig

 

 

 

 

해당 명령어로 mode가 바뀐 것을 확인한다.

 

 

# airodump-ng wlan0

 

 

이때 airodump-ng가 설치되어 있지 않다면 아래의 명령어로 설치를 진행한다.

 

# apt-get install aircrack-ng

 

 

 

 

 

 

 

위의 사진 처럼 근처에 있는 와이파이의 이름(ESSID)와 해당 AP의 mac address 및 정보들을 볼 수 있다.

 

※AP는 Access Point의 줄인말로 일반적으로 무선 공유기를 뜻하며, 반면 무선 공유기를 이용하는 사용자의 기기를 Station이라고 한다.

 

 

 

 

그리고 패킷을 스니핑 하고싶은 네트워크의 채널로 네트워크 인터페이스의 채널을 설정한다.(주파수를 맞춘다)

 

 

# iwconfig wlan0 channel <channel num>

 

 

 

 

 

 

 

여기 까지 되었으면 와이어샤크로 해당 패킷을 볼 수 있다!

 

 

 

 

위와 같이 공기중에 통신되는 패킷을 볼 수 있으며, 무선 네트워크의 특성상 모든 패킷을 스니핑 할 수 있는 것은 아니라는 점을 알아 두어야한다.

 

또한, 채널을 맞춘다고하여 정확히 그 채널의 패킷만 수신이 되는 것이아니라 그 근처 채널의 패킷이 일부 수신 될 수 있다.

 

위에서 보이는 바와 같이 Radiotap Header는 실제로 수신된 패킷이 아니라 패킷이 도착하면 무선랜카드의 Driver가 생성해주는 정보이다.

 

따라서, 해당 Radiotap Header는 운영체제의 바이트 오더링 방식을 따른다.(인텔의 경우 little endian)

 

위의 사진에서는 실제로 통신되는 패킷이 없어(인터넷을 사용하는 Station이 없음)패킷의 내용을 볼 수 없지만,

 

OPEN모드(암호가 설정되어있지 않은 와이파이)에서는 아무런 해킹 기법 없이 주고 받는 패킷을 볼 수 있다. 본인의 무선 공유기를 OPEN모드로 하고 진행해보길 바란다. 웹통신부터 와이파이를 이용하는 인터넷 통신의 패킷을 볼 수 있다.

 

다음에는 암호화된 패킷(OPEN모드가 아닌 암호가 설정되어있는 WIFI)의 복호화에 대해서 알아볼 것 이다.

 

 

 

Comments