John the Ripper 를 사용하여 Wi-Fi WPA/WPA2 핸드셰이크 크랙하기

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 일반적인 침투 테스트 도구인 John the Ripper 를 사용하여 Wi-Fi WPA/WPA2 비밀번호를 크래킹하는 과정을 탐구합니다. 주요 목표는 교육적이지만, 이러한 기술을 이해하는 것은 네트워크 보안을 개선하는 데 매우 중요합니다. 오프라인 비밀번호 크래킹에 필요한 정보를 포함하는 WPA/WPA2 핸드셰이크를 캡처하는 방법을 배우고, 그런 다음 특수 도구를 사용하여 이 핸드셰이크를 John the Ripper 가 처리할 수 있는 형식으로 변환합니다. 마지막으로 사전 공격을 사용하여 비밀번호를 크래킹합니다. 이 실습에서는 WPA/WPA2의 근본적인 보안 취약점도 다루고, 자신의 네트워크를 보호하기 위한 강력한 Wi-Fi 비밀번호 생성 모범 사례도 제공합니다.

WPA/WPA2 핸드셰이크 캡처

이 단계에서는 WPA/WPA2 핸드셰이크 캡처의 개념을 이해합니다. 실제 시나리오에서는 무선 어댑터를 모니터 모드로 전환하고 airmon-ngairodump-ng와 같은 도구를 사용하여 클라이언트가 Wi-Fi 액세스 포인트에 연결될 때 발생하는 4-way 핸드셰이크를 캡처합니다. 이 핸드셰이크에는 Wi-Fi 비밀번호에 대한 오프라인 무차별 대입 또는 사전 공격을 수행하는 데 필요한 암호화 자료가 포함되어 있습니다.

이 실습의 목적을 위해 캡처된 핸드셰이크 파일의 존재를 시뮬레이션합니다. setup 스크립트는 이미 ~/project 디렉토리에 dummy_capture.cap이라는 더미 .cap 파일을 생성했습니다. 이 파일은 WPA/WPA2 핸드셰이크를 포함하는 캡처된 네트워크 트래픽 파일을 나타냅니다.

이 더미 캡처 파일의 존재를 확인하려면 ls 명령을 사용합니다.

ls -lh ~/project/dummy_capture.cap

파일이 존재함을 나타내는 다음과 유사한 출력이 표시됩니다.

-rw-r--r-- 1 labex labex 48 Oct 26 08:00 /home/labex/project/dummy_capture.cap

이 단계는 실제 네트워크 인터페이스 조작이 이 가상 실습 환경의 범위를 벗어나므로 개념적 이해에 중점을 둡니다.

핸드셰이크를 John the Ripper 형식으로 변환

이 단계에서는 캡처된 WPA/WPA2 핸드셰이크 파일 (일반적으로 .cap 파일) 을 John the Ripper 가 이해할 수 있는 형식으로 변환하는 방법을 배웁니다. John the Ripper 는 기본적으로 WPA/WPA2 크래킹을 위해 .cap 파일을 직접 처리하지 않습니다. 대신 aircrack-ng 또는 hcxpcaptool과 같은 도구로 생성된 특정 해시 형식이 필요합니다. aircrack-ng 스위트에는 .cap 파일에서 WPA/WPA2 핸드셰이크를 추출하여 크래킹에 적합한 형식으로 출력할 수 있는 유틸리티가 포함되어 있습니다.

이 실습을 위해 setup 스크립트는 이미 ~/project 디렉토리에 dummy_handshake.hccapx라는 더미 .hccapx 파일을 생성했습니다. 이 파일은 이러한 변환 프로세스의 출력을 시뮬레이션하며, John the Ripper 준비가 된 형식으로 추출된 핸드셰이크 정보를 포함합니다.

이 더미 핸드셰이크 파일의 존재를 확인하려면 ls 명령을 사용합니다.

ls -lh ~/project/dummy_handshake.hccapx

파일의 존재를 확인하는 다음과 유사한 출력이 표시됩니다.

-rw-r--r-- 1 labex labex 78 Oct 26 08:00 /home/labex/project/dummy_handshake.hccapx

이 단계는 WPA/WPA2 크래킹에 John the Ripper 를 사용하기 전에 형식 변환의 필요성을 강조합니다.

John the Ripper 로 WPA/WPA2 핸드셰이크 크랙하기

이 단계에서는 John the Ripper 를 사용하여 변환된 핸드셰이크 파일에서 WPA/WPA2 비밀번호를 크랙해 봅니다. John the Ripper 는 사전 공격을 포함한 다양한 공격 모드를 지원하는 강력한 비밀번호 크래킹 도구입니다. 사전 공격은 캡처된 핸드셰이크에 대해 일반적인 비밀번호 목록 (단어 목록) 을 시도하는 것을 포함합니다.

john 명령과 함께 --wordlist 옵션을 사용하여 단어 목록 파일과 핸드셰이크 파일의 경로를 지정합니다. setup 스크립트는 이미 ~/project 디렉토리에 wordlist.txt라는 간단한 단어 목록을 생성했습니다.

더미 핸드셰이크 크래킹을 시도하려면 다음 명령을 실행합니다.

john --format=wpapsk --wordlist=~/project/wordlist.txt ~/project/dummy_handshake.hccapx
  • --format=wpapsk: John the Ripper 가 예상해야 하는 해시 형식을 지정합니다. Wi-Fi 핸드셰이크의 경우 WPA-PSK 입니다.
  • --wordlist=~/project/wordlist.txt: John 에게 잠재적인 비밀번호가 포함된 사전 파일을 가리킵니다.
  • ~/project/dummy_handshake.hccapx: 변환된 핸드셰이크 파일의 경로입니다.

명령을 실행한 후 John the Ripper 는 비밀번호 크래킹을 시도합니다. 단어 목록의 비밀번호가 일치하면 표시됩니다. 더미 핸드셰이크 및 단어 목록의 경우 labex123 비밀번호를 찾아야 합니다.

예시 출력:

Using default input encoding: UTF-8
Loaded 1 password hash (WPA-PSK [PBKDF2-SHA1 256/256 AVX2])
Will run till completion
Press 'q' or Ctrl-C to abort, almost any other key for status
labex123         (dummy_essid)
1g 0:00:00:00 DONE (2023-10-26 08:00) 100% (ETA: 08:00) 1.000g/s 5.000p/s 5.000c/s 5.000C/s labex123
Session completed.

labex123 (dummy_essid) 줄은 dummy_essid라는 ESSID(네트워크 이름) 에 대해 labex123 비밀번호가 성공적으로 크랙되었음을 나타냅니다.

WPA/WPA2 보안 취약점 이해하기

이 단계에서는 핸드셰이크 크래킹을 가능하게 하는 WPA/WPA2(Wi-Fi Protected Access II) 에 내재된 보안 취약점에 대해 더 깊이 이해하게 됩니다. WPA2 는 이전 버전 (WEP 및 WPA) 에 비해 상당한 개선이 이루어졌지만, 4-way 핸드셰이크에 대한 오프라인 사전 공격과 같은 특정 유형의 공격에 여전히 취약합니다.

핵심 취약점은 핸드셰이크 중에 교환된 논스 (nonces) 와 사전 공유 키 (PSK) 를 기반으로 하는 Pairwise Master Key(PMK) 에서 Pairwise Transient Key(PTK) 가 파생된다는 사실에 있습니다. 공격자가 이 4-way 핸드셰이크를 캡처하면 PMK 에 대해 오프라인 무차별 대입 또는 사전 공격을 수행할 수 있습니다. 이는 공격자가 다양한 비밀번호를 시도하기 위해 대상 네트워크에 적극적으로 연결할 필요가 없으며, 캡처된 핸드셰이크만 있으면 된다는 것을 의미합니다.

이해해야 할 주요 사항:

  • 오프라인 공격: 크래킹 프로세스는 오프라인으로 진행됩니다. 즉, 공격자는 캡처된 핸드셰이크를 가지고 대상 네트워크와 상호 작용하지 않고도 수백만 개의 비밀번호를 시도할 수 있습니다. 이로 인해 탐지가 매우 어렵습니다.
  • 사전/무차별 대입: 이 공격의 성공은 Wi-Fi 비밀번호의 강도에 크게 좌우됩니다. 비밀번호가 약하거나, 흔하거나, 사전의 일부인 경우 비교적 빠르게 크랙될 수 있습니다.
  • 직접적인 접근 없음: 공격자는 크래킹 프로세스 중에 네트워크에 직접 접근할 수 없으며, 비밀번호만 얻습니다.

이러한 취약점은 Wi-Fi 네트워크에 강력하고 고유한 비밀번호를 사용하는 것의 중요성을 강조합니다. WPA2 의 강력한 암호화에도 불구하고 약한 비밀번호는 전체 네트워크를 손상시킬 수 있습니다.

강력한 Wi-Fi 비밀번호 구현하기

이 마지막 단계에서는 WPA/WPA2 핸드셰이크 크래킹의 위험을 완화하기 위해 강력한 Wi-Fi 비밀번호를 구현하는 모범 사례를 배우고 이해합니다. 이전 단계에서 시연했듯이 약한 비밀번호는 이러한 공격이 성공할 수 있도록 하는 주요 취약점입니다.

Wi-Fi 네트워크를 효과적으로 보호하려면 강력한 비밀번호를 만들기 위한 다음 지침을 고려하십시오.

  1. 길이: 최소 12-16 자리의 비밀번호를 목표로 하십시오. 비밀번호가 길수록 크래킹에 필요한 시간과 컴퓨팅 리소스가 크게 증가합니다.
  2. 복잡성: 대문자, 소문자, 숫자 및 특수 문자 (!@#$%^&* 등) 를 혼합하여 사용하십시오. 이렇게 하면 사전 공격 및 무차별 대입 공격이 훨씬 더 어려워집니다.
  3. 고유성: 다른 서비스나 네트워크에서 비밀번호를 재사용하지 마십시오. 비밀번호 하나가 손상되더라도 다른 비밀번호는 안전하게 유지됩니다.
  4. 일반 단어/구문 피하기: 사전 단어, 일반적인 구문, 개인 정보 (생일, 이름 등) 또는 순차적인 숫자 (12345678 등) 를 사용하지 마십시오. 이러한 것들은 사전 공격의 첫 번째 대상입니다.
  5. 암호 구문 (Passphrases): 관련 없는 단어들의 시퀀스인 암호 구문을 사용하는 것을 고려하십시오. 예를 들어, CorrectHorseBatteryStapleP@$$w0rd!보다 훨씬 강력하고 기억하기 쉽습니다.
  6. 정기적인 변경: 매우 강력한 비밀번호의 경우 엄격하게 필요하지는 않지만, Wi-Fi 비밀번호를 주기적으로 (예: 1 년에 한 번) 변경하면 추가적인 보안 계층을 제공할 수 있습니다.

이러한 권장 사항을 따르면 Wi-Fi 네트워크의 보안을 크게 강화하고 공격자가 핸드셰이크를 캡처하더라도 WPA/WPA2 비밀번호를 크랙하기가 극도로 어렵게 만들 수 있습니다.

요약

이 실습에서는 Wi-Fi WPA/WPA2 보안에 대한 실질적인 경험과 이론적 지식을 습득했습니다. WPA/WPA2 핸드셰이크를 캡처하고 (개념적으로), John the Ripper 에 적합한 형식으로 변환한 다음, John the Ripper 를 사용하여 사전 공격을 통해 비밀번호를 크랙하는 과정을 배웠습니다. 또한, 이러한 공격을 가능하게 하는 근본적인 보안 취약점을 탐구했으며, 가장 중요하게는 이러한 취약점으로부터 네트워크를 보호하기 위해 강력하고 복잡하며 고유한 Wi-Fi 비밀번호를 구현하는 것의 중요성을 이해했습니다. 이 지식은 공격적인 보안 이해와 방어적인 네트워크 보호 모두에 매우 중요합니다.