WEP 공격을 위한 WEP 초기화 벡터 캡처

Beginner
지금 연습하기

소개

WEP(Wired Equivalent Privacy) 는 오래되고 안전하지 않은 Wi-Fi 보안 프로토콜입니다. 주요 약점은 암호화 과정에 사용되는 초기화 벡터 (Initialization Vectors, IVs) 의 구현에 있습니다. 이러한 IVs 를 대량으로 캡처함으로써 공격자는 이를 분석하여 WEP 키를 알아낼 수 있습니다.

이 실험에서는 WEP 공격의 첫 번째이자 가장 중요한 단계인, 이러한 유용한 IVs 를 포함하는 네트워크 패킷을 캡처하는 방법을 배우게 됩니다. Aircrack-ng 스위트의 강력한 도구인 airodump-ng를 사용하여 대상 WEP 네트워크를 모니터링하고 필요한 데이터를 수집할 것입니다. 이 실험은 WEP 취약점이 실제로 어떻게 악용되는지에 대한 이해의 기초를 제공합니다.

WEP 암호화 네트워크를 대상으로 airodump-ng 시작하기

이 단계에서는 무선 인터페이스를 "모니터 모드 (monitor mode)"로 전환하여 프로세스를 시작합니다. 이 모드를 사용하면 네트워크 카드가 자신에게 지정된 트래픽뿐만 아니라 공기 중에 있는 모든 Wi-Fi 트래픽을 들을 수 있습니다. 그런 다음 airodump-ng를 사용하여 특정 대상 네트워크의 패킷 캡처를 시작합니다.

먼저 wlan0 인터페이스에서 모니터 모드를 활성화해 보겠습니다. airmon-ng 명령이 이 목적으로 사용됩니다. 이 명령은 일반적으로 wlan0mon이라는 새 가상 인터페이스를 생성할 수 있습니다.

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

sudo airmon-ng start wlan0

출력은 모니터 모드가 활성화되었음을 확인시켜 줄 것입니다. 이제 airodump-ng를 사용하여 특정 네트워크를 대상으로 지정할 수 있습니다. 이 실험에서는 대상 네트워크의 BSSID 가 00:11:22:33:44:55이고 채널 6에서 작동한다고 가정합니다.

아래 명령을 실행합니다. 이 명령은 캡처 프로세스를 시작하며, 터미널은 대상 네트워크에 대한 정보로 채워질 것입니다.

참고: 이 명령은 현재 터미널 창을 차지합니다. 터미널 탭 바에서 "+" 아이콘을 클릭하여 후속 단계를 위해 새 터미널을 열어야 합니다. 이 명령을 계속 실행해 두십시오.

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 wlan0mon
  • --bssid 00:11:22:33:44:55: 이 옵션은 airodump-ng에게 이 특정 MAC 주소를 가진 액세스 포인트의 패킷만 캡처하도록 지시합니다.
  • --channel 6: 대상 네트워크가 있는 채널을 지정합니다.
  • wlan0mon: 모니터 모드에서 우리 인터페이스의 이름입니다.

airodump-ng 출력 관찰하기

이 단계에서는 airodump-ng가 표시하는 정보를 분석합니다. 첫 번째 터미널에서 이전 단계의 명령이 계속 실행 중인 상태에서 해당 출력을 살펴보겠습니다.

airodump-ng 화면은 두 가지 주요 부분으로 나뉩니다. 상단 부분은 감지된 액세스 포인트 목록을 표시하고, 하단 부분은 해당 액세스 포인트에 연결된 클라이언트 목록을 표시합니다.

다음은 상단 섹션의 예시입니다.

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

 00:11:22:33:44:55  -30       10        0    0   6  54   WEP   WEP         MyWEPNetwork

우리의 작업에 가장 중요한 열들을 살펴보겠습니다.

  • BSSID: 액세스 포인트의 MAC 주소입니다.
  • PWR: 신호 강도 수준입니다. 숫자가 높을수록 (0 에 가까울수록) 신호가 강하다는 것을 의미합니다.
  • Beacons: 액세스 포인트가 자신의 존재를 알리기 위해 보내는 관리 프레임입니다.
  • #Data: WEP 공격에서 가장 중요한 열입니다. 초기화 벡터 (IVs) 를 포함하는 캡처된 데이터 패킷 수를 계산합니다.
  • CH: 네트워크가 작동하는 채널입니다.
  • ESSID: Wi-Fi 네트워크의 사람이 읽을 수 있는 이름입니다.

실제 환경에서 활성 사용자가 있는 경우 #Data 수가 꾸준히 증가하는 것을 볼 수 있습니다. 각 증가는 캡처된 또 다른 IV 를 나타내며, 키를 크랙하는 데 한 걸음 더 다가가는 것입니다. 이 실험에서는 실제 트래픽이 없기 때문에 이 숫자가 증가하지 않을 수 있습니다.

WEP 크랙에서 IV 의 중요성 이해하기

이 단계에서는 WEP 암호화를 해독하기 위해 데이터 패킷을 수집하는 것이 왜 그렇게 중요한지 이해하는 시간을 갖겠습니다. 이 단계는 명령을 실행하지 않는 개념적인 단계입니다.

WEP 암호화는 공유 비밀 키와 **초기화 벡터 (Initialization Vector, IV)**라고 하는 24 비트 값을 결합하여 각 데이터 패킷을 암호화합니다. IV 는 패킷의 일부로 평문으로 전송되는데, 이는 근본적인 설계 결함입니다.

이것이 문제가 되는 이유는 다음과 같습니다.

  1. 작은 IV 크기: 24 비트 IV 는 약 1,670 만 개의 가능한 IV 만 존재한다는 것을 의미합니다. 트래픽이 많은 네트워크에서는 이러한 IV 가 빠르게 재사용됩니다.
  2. IV 재사용: 동일한 IV 가 동일한 키와 함께 재사용되면 암호화된 데이터에 분석 가능한 패턴이 생성됩니다.
  3. 취약한 IV: 이러한 IV 중 특정 비율은 "취약한 (weak)" 것으로 간주됩니다. 취약한 IV 는 캡처될 때 비밀 키 자체에 대한 소량의 정보를 누출할 수 있습니다.

WEP 공격의 핵심 원리는 대량의 패킷을 수집하고, 각 패킷에서 IV 를 추출하고, IV 컬렉션 (특히 취약한 IV) 을 분석하여 통계적으로 원래 WEP 키를 추론하는 것입니다. airodump-ng에서 관찰한 #Data 열은 이러한 중요한 IV 를 얼마나 많이 수집했는지에 대한 직접적인 카운터입니다. 충분한 수의 IV 가 없으면 aircrack-ng와 같은 크랙 도구는 작동할 데이터가 없어 실패합니다.

충분한 데이터 패킷이 축적될 때까지 기다리기

이 단계에서는 일반적으로 airodump-ng#Data 카운트가 충분히 높은 숫자에 도달할 때까지 기다립니다. 이것이 실제 WEP 공격에서 가장 시간이 많이 소요되는 부분입니다.

"충분한" IV 는 몇 개일까요?

  • 64 비트 WEP 키 (종종 40 비트라고도 함) 의 경우 일반적으로 약 5,000 개에서 10,000 개의 IV 가 필요합니다.
  • 128 비트 WEP 키 (종종 104 비트라고도 함) 의 경우 요구 사항이 훨씬 높으며, 일반적으로 20,000 개에서 100,000 개 이상의 IV 가 필요합니다.

더 많은 IV 를 수집할수록 성공적인 크랙 확률이 높아집니다. 실제 시나리오에서는 이 숫자가 증가하기를 기다리는 동안 airodump-ng 프로세스를 계속 실행합니다. 속도를 높이기 위해 공격자는 "ARP 리플레이 공격 (ARP replay attack)"을 수행하여 대량의 트래픽을 적극적으로 생성할 수 있지만, 이는 이 실험의 범위를 벗어납니다.

이 실험의 목적을 위해 충분한 시간이 지났고 충분한 수의 데이터 패킷이 수집되었다고 가정합니다. 이제 캡처된 데이터를 저장하는 마지막 단계로 진행할 수 있습니다.

IV 를 포함한 캡처 데이터를 파일로 저장하기

이 마지막 단계에서는 캡처 프로세스를 중지하고 수집된 모든 데이터를 파일로 저장합니다. 이 파일은 나중에 aircrack-ng와 같은 다른 도구에서 실제 키 크랙을 수행하는 데 사용될 수 있습니다.

먼저 airodump-ng가 실행 중인 터미널로 돌아가 Ctrl+C를 눌러 중지합니다.

이제 명령을 다시 실행하되, 이번에는 --write (또는 -w) 옵션을 추가하여 출력을 저장합니다. 이렇게 하면 airodump-ng가 캡처된 모든 패킷을 파일에 기록하도록 지시합니다.

터미널에서 다음 명령을 실행합니다. 캡처 파일 이름을 wep_capture로 지정하겠습니다.

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 --write wep_capture wlan0mon

이 명령을 몇 초 동안 실행한 다음 Ctrl+C를 눌러 중지합니다.

이제 ls 명령을 사용하여 ~/project 디렉터리에 생성된 파일을 확인합니다.

ls -l

wep_capture로 시작하는 여러 파일, 특히 wep_capture-01.cap이 표시되어야 합니다.

-rw-r--r-- 1 root root  1234 Jan 01 12:00 wep_capture-01.cap
-rw-r--r-- 1 root root  5678 Jan 01 12:00 wep_capture-01.csv
...

가장 중요한 파일은 wep_capture-01.cap입니다. 이 .cap 파일에는 수집한 모든 IV 를 포함한 원시 패킷 데이터가 들어 있습니다. 이는 WEP 크랙 프로세스의 주요 입력입니다.

요약

이 실험에서는 WEP 공격의 첫 번째이자 가장 기본적인 단계를 성공적으로 완료했습니다. WEP 키 크랙에 필요한 데이터를 캡처하기 위해 Aircrack-ng 스위트의 도구를 사용하는 방법을 배웠습니다.

구체적으로 다음을 배웠습니다.

  • airmon-ng를 사용하여 무선 인터페이스에서 모니터 모드 (monitor mode) 를 활성화하는 방법.
  • airodump-ng를 사용하여 BSSID 및 채널별로 특정 WEP 암호화 네트워크를 타겟팅하는 방법.
  • airodump-ng 출력을 이해하고, 특히 캡처된 초기화 벡터 (Initialization Vectors, IVs) 수를 세는 #Data 열의 중요성을 이해하는 방법.
  • WEP 프로토콜의 취약점을 악용하기 위해 많은 수의 IV 가 필요한 이유를 인식하는 방법.
  • 캡처된 패킷 데이터를 .cap 파일로 저장하는 방법. 이 파일은 이제 분석 준비가 되었습니다.

생성한 wep_capture-01.cap 파일은 이 과정에서 얻은 핵심 결과물입니다. 후속 실험에서는 이 파일을 aircrack-ng에 입력하여 최종 단계인 WEP 키 크랙을 수행하게 됩니다.