이 글은 필자 본인의 칼리리눅스 학습과정을 기록함과 동시에, 칼리리눅스를 통한 모의해킹을 학습하고자 하는 분들의 학습을 돕기 위한 것입니다. 대한민국에서 해킹은 불법이며 모든 모의해킹은 반드시 본인 소유의 컴퓨터, 또는 본인 소유의 서버에 실행하셔야 합니다. 이 경고를 무시했을 시 발생할 모든 일에 대해서 본인은 책임지지 않습니다.
-비콘 플러딩 개념
무선 네트워크 (IEEE 802.11, 일반적으로 wi-fi)의 연결 과정에서, AP (Access Point)는 클라이언트에게 자신을 알리기 위해 SSID (Service Set Identifier)를 브로드캐스트합니다.
SSID는 무선 AP의 식별부호를 사람이 읽을 수 있는 문자값으로 표현한 것을 말합니다.
SSID 브로드캐스트에는 비콘 프레임 (Beacon Frame)이라는 네트워크 관리 프레임이 활용되고, 클라이언트는 비콘 프레임을 통해 AP를 검색하여 연결할 수 있습니다.
비콘 플러딩은 클라이언트가 AP를 검색하는 과정에서, 공격자가 의도적으로 가짜 비콘 프레임 패킷을 다량 송신하여 클라이언트의 무선 네트워크 이용을 방해하는 기법입니다.
본문에는 칼리리눅스의 내장된 공격툴인 mdk3을 활용하여 다수의 가짜 AP를 생성하는 과정을 작성했습니다.
-비콘 플러딩 실행
우선 공격에 앞서 무선랜카드가 필요합니다.
메인보드에 무선랜이 내장된 방식의 데스크탑, 또는 노트북에서는 무선랜이 모니터 모드를 지원하지 않을 수 있으니 모니터모드를 지원하는 별도의 외장 무선랜을 활용하는 것을 추천합니다.
저는 집에 굴러다니던? EFM 네트웍스사의 제품을 활용했습니다.
# airmon-ng
칼리 리눅스의 터미널에 airmon-ng를 입력해 연결된 무선랜을 조회합니다.
해당 무선랜의 인터페이스를 확인합니다.
별도의 다른 장치가 없다면 연결된 무선랜의 인터페이스는 wlan0으로 조회됩니다.
무선랜의 칩셋 정보를 확인하여 모니터모드의 지원 여부를 반드시 확인하도록 합시다.
# airmon-ng start wlan0
위 명령을 입력해 wlan0을 모니터 모드로 전환합니다.
제 경우는 모니터 모드의 인터페이스가 wlan0mon 하나로 결정되었다고 뜨는데, 시스템에 따라 기존 인터페이스와 모니터 모드 인터페이스 (mon0) 두 개가 공존하는 경우도 있으니 이 부분을 잘 확인해야 합니다.
# airodump-ng wlan0mon
모니터 모드로 전환된 무선랜이 인근의 모든 무선 AP를 검색합니다.
특정 AP에 대한 공격이 목적이라면 공격할 AP의 MAC 주소 (BSSID)와 채널 (CH)을 체크합니다.
# mdk3 wlan0mon b
mdk3가 비콘 프레임을 활용해 다수의 가짜 AP를 생성하기 시작합니다.
특정 AP에 대한 공격은 mdk3 wlan0mon b -c [채널] 과 같은 방식으로 진행할 수 있습니다.
이제 스마트폰과 같은 무선 디바이스에서 비콘 플러딩에 의해 생성된 가짜 AP들이 검색됩니다.
이 가짜 AP들은 가짜 비콘 프레임 패킷에 의해 생성된 것이기 때문에, 검색은 되지만 실제로 무선 네트워크에 연결할 수는 없습니다.
-참고자료
정보통신기술용어해설 - 비콘 프레임
http://www.ktword.co.kr/word/abbr_view.php?m_temp1=2319
Kali Linux Tutorials - WiFi Stress Testing Using MDK3, Beacon Flooding & Deauthentication Attack.
https://kalilinuxtutorials.com/mdk3/