네트워크 MAC 주소 필터링 우회

Beginner
지금 연습하기

소개

MAC 주소 필터링은 라우터 또는 액세스 포인트가 특정 MAC 주소를 가진 장치로부터의 연결만 허용하도록 구성하는 네트워크 보안 방법입니다. 이는 일반적인 침입자를 막는 데 도움이 될 수 있지만, MAC 주소는 쉽게 변경되거나 "스푸핑 (spoofed)"될 수 있기 때문에 강력한 보안 조치는 아닙니다.

이 실습에서는 MAC 주소 필터링을 우회하는 방법을 배우게 됩니다. 먼저 네트워크 스캔을 검사하여 이미 승인된 클라이언트의 MAC 주소를 식별한 다음, macchanger 도구를 사용하여 자신의 네트워크 인터페이스 MAC 주소를 승인된 주소와 일치하도록 변경합니다. 이 과정은 네트워크 침투 테스트의 기본적인 기술을 보여주며 WPA2/WPA3와 같은 더 강력한 보안 프로토콜 사용의 중요성을 강조합니다.

airodump-ng 스캔에서 승인된 클라이언트의 MAC 주소 식별

이 단계에서는 대상 네트워크에 이미 연결이 승인된 장치의 MAC 주소를 찾는 것이 목표입니다. 실제 시나리오에서는 airodump-ng와 같은 도구를 사용하여 실시간 네트워크 트래픽을 캡처합니다. 이 실습에서는 이 과정을 시뮬레이션하는 미리 캡처된 스캔 파일을 제공했습니다.

스캔 결과는 CSV(Comma-Separated Values) 파일에 저장됩니다. 이 파일을 검사하여 필요한 정보를 찾아보겠습니다. 파일은 ~/project/scans/network-scan-01.csv에 있습니다.

cat 명령을 사용하여 파일 내용을 표시합니다.

cat ~/project/scans/network-scan-01.csv

다음과 유사한 출력이 표시됩니다.

BSSID, First time seen, Last time seen, channel, Speed, Privacy, Cipher, Authentication, Power, ## beacons, ## IV, LAN IP, id-length, ESSID, Key,Station MAC, First time seen, Last time seen, Power, ## packets, BSSID, Probed ESSIDs
00:11:22:33:44:55, 2023-10-27 10:00:00, 2023-10-27 10:05:00, 6, 54, WPA2, CCMP, PSK, -50, 100, 50, 192.168.1.1, 10, FilteredNet,,AA:BB:CC:DD:EE:FF, 2023-10-27 10:01:00, 2023-10-27 10:04:50, -45, 1234, 00:11:22:33:44:55,

이 출력에서 Station MAC 열을 찾으십시오. 이 열은 네트워크에 연결된 클라이언트 장치의 MAC 주소를 나열합니다. 복제해야 할 MAC 주소는 AA:BB:CC:DD:EE:FF입니다. 다음 단계를 위해 이 주소를 기록해 두십시오.

ifconfig 를 사용하여 무선 인터페이스 비활성화

이 단계에서는 MAC 주소 변경을 위해 네트워크 인터페이스를 준비합니다. MAC 주소를 수정하기 전에 인터페이스를 일시적으로 비활성화해야 합니다. 이를 위해 네트워크 인터페이스 구성을 위한 전통적인 도구인 ifconfig 명령을 사용할 것입니다.

먼저 네트워크 인터페이스를 식별하고 현재 MAC 주소를 확인합니다. 이 실습 환경에서는 eth0 인터페이스를 사용할 것입니다.

eth0의 세부 정보를 보려면 다음 명령을 실행합니다.

ifconfig eth0

출력은 다음과 유사하게 표시됩니다. 현재 하드웨어 MAC 주소를 보여주는 ether 필드를 주목하십시오.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 696 (696.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

이제 down 인수를 사용하여 eth0 인터페이스를 비활성화합니다. 네트워크 인터페이스 상태를 수정하려면 sudo 권한이 필요합니다.

sudo ifconfig eth0 down

이 명령은 성공하면 출력이 없습니다. ifconfig eth0를 다시 실행하여 인터페이스가 비활성화되었는지 확인할 수 있습니다. 첫 번째 줄에서 UP 플래그가 사라진 것을 확인할 수 있습니다.

macchanger --mac 를 사용하여 승인된 MAC 주소 복제

이 단계에서는 macchanger 유틸리티를 사용하여 이전에 식별한 MAC 주소로 인터페이스의 MAC 주소를 변경합니다. 네트워크 인터페이스가 비활성화된 상태이므로 이제 해당 속성을 안전하게 수정할 수 있습니다.

macchanger 도구를 사용하면 네트워크 인터페이스의 MAC 주소를 확인하고 설정할 수 있습니다. --mac 옵션을 사용하여 특정 주소를 설정할 것입니다.

eth0의 MAC 주소를 AA:BB:CC:DD:EE:FF로 변경하려면 다음 명령을 사용합니다. 이는 권한이 필요한 작업이므로 sudo를 사용해야 함을 기억하십시오.

sudo macchanger --mac AA:BB:CC:DD:EE:FF eth0

명령을 실행한 후 macchanger는 변경 사항을 보고합니다. 출력은 다음과 같이 표시됩니다.

Current MAC:   02:42:ac:11:00:02 (Unknown)
Permanent MAC: 02:42:ac:11:00:02 (Unknown)
New MAC:       aa:bb:cc:dd:ee:ff (UNKNOWN)

이 출력은 MAC 주소가 성공적으로 스푸핑되었음을 확인합니다. Permanent MAC은 원래 하드웨어 주소이고, New MAC은 현재 인터페이스에서 활성화된 주소입니다.

ifconfig 를 사용하여 무선 인터페이스 다시 활성화

이 단계에서는 새 MAC 주소로 네트워크 인터페이스를 다시 온라인 상태로 전환합니다. MAC 주소가 변경되면 인터페이스가 변경 사항을 적용하고 네트워크 통신을 허용하도록 다시 활성화해야 합니다.

up 인수를 사용하여 ifconfig 명령으로 eth0 인터페이스를 다시 활성화합니다.

sudo ifconfig eth0 up

이 명령은 출력이 없어야 합니다. 인터페이스가 활성화되었고 새 MAC 주소를 가지고 있는지 확인하려면 ifconfig eth0를 한 번 더 실행합니다.

ifconfig eth0

출력을 검토합니다. ether 필드에 새 스푸핑된 MAC 주소가 표시되고 첫 번째 줄에 UP 플래그가 다시 나타나는 것을 볼 수 있습니다.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether aa:bb:cc:dd:ee:ff  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 696 (696.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

이제 인터페이스가 활성화되어 승인된 장치를 사칭하고 있습니다.

필터링된 네트워크 연결 가능 여부 확인

이 마지막 단계에서는 수행한 작업이 성공했는지 확인할 것입니다. 실제 시나리오에서는 이제 MAC 주소 필터링된 무선 네트워크에 연결을 시도할 것입니다. 장치의 MAC 주소가 이제 네트워크 허용 목록에 있는 주소와 일치하므로 연결이 수락됩니다.

시뮬레이션 환경에 있으므로 실제 Wi-Fi 네트워크에 연결할 수 없습니다. 대신, eth0의 MAC 주소가 대상 주소로 올바르게 설정되었는지 확인하는 로컬 스크립트를 실행할 것입니다.

먼저 이 확인을 수행할 작은 쉘 스크립트를 만듭니다. nano 편집기를 사용하여 check_connection.sh라는 파일을 만듭니다.

nano check_connection.sh

이제 다음 스크립트 내용을 nano 편집기에 복사하여 붙여넣습니다.

#!/bin/bash
CURRENT_MAC=$(ip addr show eth0 | grep 'link/ether' | awk '{print $2}' | tr '[:lower:]' '[:upper:]')
TARGET_MAC="AA:BB:CC:DD:EE:FF"

if [ "$CURRENT_MAC" == "$TARGET_MAC" ]; then
  echo "Connection successful! Your device is now authorized on the network."
  echo "Current MAC: $CURRENT_MAC"
else
  echo "Connection failed. Your MAC address does not match an authorized device."
  echo "Current MAC: $CURRENT_MAC"
  echo "Expected MAC: $TARGET_MAC"
fi

파일을 저장하고 Ctrl+X, Y, Enter를 눌러 nano를 종료합니다.

다음으로 스크립트를 실행 가능하게 만듭니다.

chmod +x check_connection.sh

마지막으로 스크립트를 실행하여 연결 상태를 확인합니다.

./check_connection.sh

모든 단계를 올바르게 따랐다면 성공 메시지가 표시됩니다.

Connection successful! Your device is now authorized on the network.
Current MAC: AA:BB:CC:DD:EE:FF

이는 MAC 주소를 성공적으로 스푸핑했음을 확인합니다.

요약

이 실습에서는 네트워크에서 MAC 주소 필터링을 우회하는 방법을 성공적으로 시연했습니다. 네트워크 보안 테스트의 기본이 되는 완전한 단계별 프로세스를 배웠습니다.

다음과 같은 작업을 수행했습니다.

  1. 시뮬레이션된 네트워크 스캔에서 승인된 클라이언트의 MAC 주소 식별
  2. ifconfig를 사용하여 네트워크 인터페이스 비활성화
  3. macchanger를 사용하여 승인된 MAC 주소를 인터페이스에 복제
  4. 새 주소를 적용하기 위해 네트워크 인터페이스 다시 활성화
  5. 새 MAC 주소가 액세스 권한을 부여하는지 확인

핵심은 MAC 주소 필터링이 "난독화를 통한 보안 (security through obscurity)"의 한 형태이며 무선 네트워크의 유일한 방어선이 되어서는 안 된다는 것입니다. 강력한 보안을 위해서는 항상 WPA2 또는 WPA3 와 같은 강력한 암호화 프로토콜과 복잡하고 고유한 비밀번호를 사용하십시오.