Kali Linux 와 Aircrack-ng 를 이용한 무선 공격

Kali LinuxBeginner
지금 연습하기

소개

이 랩에서는 LabEx VM 환경 내에서 Kali Linux 와 Aircrack-ng 툴셋을 사용하여 무선 침투 테스트의 기본 사항을 배우게 됩니다. 무선 네트워크 보안 평가를 위한 주요 기술을 이해하는 데 중점을 둡니다. 무선 인터페이스에서 모니터 모드를 활성화하고, WPA 핸드셰이크를 캡처하고, WPA 키를 크래킹하고, 결과를 문서화하기 위해 저장하는 연습을 할 것입니다. 초보자를 위해 설계된 이 랩은 무선 보안 테스트의 기본 기술을 구축하기 위해 통제된 환경에서 단계별 지침을 제공합니다. 터미널을 열면 Kali Linux 컨테이너의 셸에 자동으로 연결되어 연습을 시작할 준비가 됩니다.

무선 테스트를 위한 필수 도구 설치

이 첫 번째 단계에서는 LabEx VM 환경 내의 Kali Linux 컨테이너 내에서 무선 침투 테스트에 필요한 도구를 설정합니다. 터미널을 열면 자동으로 Kali Linux 컨테이너의 셸에 연결되므로 컨테이너를 수동으로 시작하거나 셸에 들어갈 필요가 없습니다. 다음 단계를 위해 필요한 필수 도구를 설치하는 것으로 시작해 보겠습니다.

초보자에게는 Kali Linux 가 보안 테스트를 위한 강력한 배포판이지만, 최소 컨테이너 설정에는 모든 도구가 미리 설치되어 있지 않다는 것을 이해하는 것이 중요합니다. 무선 네트워크 감사를 위한 도구 모음인 aircrack-ng를 설치할 것입니다. 여기에는 모니터 모드를 활성화하기 위한 airmon-ng, 패킷 캡처를 위한 airodump-ng, 키 크래킹을 위한 aircrack-ng와 같은 유틸리티가 포함됩니다.

터미널에서 다음 명령을 실행하여 패키지 목록을 업데이트하고 aircrack-ng를 설치합니다. 각 명령을 실행한 후 Enter 키를 누르십시오.

apt update
apt install -y aircrack-ng

이러한 명령은 패키지 저장소를 새로 고치고 aircrack-ng 스위트를 설치합니다. 설치하는 데 잠시 시간이 걸릴 수 있으므로 완료될 때까지 기다려 주십시오.

설치 후, aircrack-ng의 버전을 확인하여 설치되었는지 확인합니다. 다음 명령을 입력하고 Enter 키를 누르십시오.

aircrack-ng --version

예상 출력은 aircrack-ng의 버전을 표시하여 도구가 사용 준비가 되었음을 확인합니다. 다음과 같이 보일 수 있습니다.

Aircrack-ng 1.7

이 단계는 무선 테스트를 위해 Kali Linux 컨테이너에서 필요한 모든 도구를 사용할 수 있도록 합니다. aircrack-ng를 설치함으로써 다음 단계에서 모니터 모드를 활성화하고 무선 트래픽을 캡처하기 위한 환경을 준비했습니다. 다음 단계로 진행하기 전에 설치가 성공적으로 완료되었는지 확인하십시오.

무선 인터페이스에서 모니터 모드 활성화

이제 필요한 도구를 설치했으므로 Kali Linux 컨테이너 내에서 무선 네트워크 인터페이스에서 모니터 모드를 활성화하는 단계로 넘어가겠습니다. 모니터 모드는 무선 침투 테스트에 필수적입니다. 무선 카드가 어떤 네트워크에도 연결하지 않고 네트워크 트래픽을 캡처할 수 있도록 하기 때문입니다.

초보자의 경우, 모니터 모드를 무선 카드를 수동적인 리스너로 바꾸는 것으로 생각하십시오. 일반적으로 "관리 모드"에서는 카드가 자신을 위한 트래픽만 캡처합니다. 모니터 모드에서는 근처의 모든 무선 트래픽을 캡처합니다. 이는 aircrack-ng와 같은 도구가 데이터를 분석하고 취약점을 식별하는 데 매우 중요합니다.

이미 Kali Linux 컨테이너의 셸에 있으므로 (터미널을 열 때 자동으로 연결됨), 무선 인터페이스를 식별하는 것부터 시작해 보겠습니다. 다음 명령을 입력하고 Enter 키를 눌러 모든 네트워크 인터페이스를 나열합니다.

iwconfig

예상 출력은 네트워크 인터페이스 목록을 표시합니다. 일반적으로 wlan0 또는 이와 유사한 이름의 무선 인터페이스를 찾으십시오. 이 랩 환경에서는 인터페이스가 wlan0이라고 가정합니다. 출력은 다음과 같이 보일 수 있습니다.

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

다음으로, 이전에 설치한 aircrack-ng 스위트의 일부인 airmon-ng 도구를 사용하여 wlan0 인터페이스에서 모니터 모드를 활성화합니다. 다음 명령을 실행하고 Enter 키를 누르십시오.

airmon-ng start wlan0

예상 출력은 모니터 모드가 활성화되었음을 나타내며, 인터페이스 이름이 wlan0mon으로 변경될 수 있습니다. 다음과 같이 보일 수 있습니다.

Interface wlan0 is now in monitor mode as wlan0mon.

간섭 프로세스에 대한 경고가 있는 경우, 도구는 해당 프로세스를 종료할 것을 제안할 수 있습니다. 이 랩 환경에서는 단순성을 위해 그러한 충돌이 없다고 가정합니다.

마지막으로, 다음 명령을 실행하고 Enter 키를 눌러 모니터 모드가 활성 상태인지 확인합니다.

iwconfig

예상 출력은 인터페이스 (예: wlan0mon) 가 모니터 모드에 있음을 표시해야 합니다. 다음과 같습니다.

wlan0mon  IEEE 802.11  Mode:Monitor  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

이는 모니터 모드가 성공적으로 활성화되었음을 확인합니다. 이제 다음 단계에서 WPA 핸드셰이크를 캡처하기 전에 트래픽을 캡처할 수 있도록 무선 인터페이스를 준비했습니다. 진행하기 전에 모드가 Monitor로 설정되어 있는지 확인하십시오.

Airodump-ng 를 사용하여 WPA 핸드셰이크 캡처

무선 인터페이스에서 모니터 모드를 활성화했으므로 다음 단계는 Kali Linux 컨테이너 내에서 airodump-ng 도구를 사용하여 WPA 핸드셰이크를 캡처하는 것입니다. WPA 핸드셰이크는 장치가 Wi-Fi 네트워크에 연결될 때 교환되는 일련의 패킷이며, 이를 캡처하면 나중에 비밀번호를 크래킹할 수 있습니다.

초보자의 경우, WPA 핸드셰이크는 비밀번호를 직접 포함하지 않지만, 비밀번호를 추측하기 위해 오프라인에서 분석할 수 있는 암호화된 데이터를 포함한다는 것을 이해하십시오. 이 프로세스는 제어된 랩 환경 또는 실제 네트워크에서 명시적인 권한이 있는 경우에만 윤리적입니다. 이 랩에서는 안전한 환경에서 핸드셰이크 캡처를 시뮬레이션합니다.

이미 Kali Linux 컨테이너의 셸에 있으므로 (터미널을 열면 자동으로 연결됨), 무선 트래픽 캡처를 시작해 보겠습니다. 다음 명령을 실행하고 Enter 키를 눌러 wlan0mon 인터페이스에서 근처의 모든 네트워크를 모니터링합니다.

airodump-ng wlan0mon

예상 출력은 근처 Wi-Fi 네트워크의 라이브 테이블을 표시하며, BSSID (액세스 포인트 MAC 주소), ESSID (네트워크 이름), CH (채널) 및 암호화 유형과 같은 세부 정보를 보여줍니다. 다음과 같이 보일 수 있습니다.

CH  6 ][ Elapsed: 1 min ][ 2023-10-01 12:00

BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC  CIPHER  AUTH  ESSID
00:14:22:AB:CD:EF  -30       10        5    0   6   54   WPA2 CCMP   PSK   TestNetwork

몇 초 동안 실행하여 네트워크를 관찰한 다음 Ctrl+C를 눌러 중지합니다. 이 랩에서는 ESSIDTestNetwork, BSSID00:14:22:AB:CD:EF이고 채널 6에서 작동하는 대상 네트워크를 식별했다고 가정합니다.

이제 이 특정 네트워크에 대한 트래픽을 캡처하여 WPA 핸드셰이크를 얻는 데 집중합니다. 다음 명령을 실행하고 Enter 키를 눌러 네트워크를 대상으로 지정하고 캡처된 데이터를 /root 디렉토리에 handshake라는 파일로 저장합니다.

airodump-ng --bssid 00:14:22:AB:CD:EF --channel 6 -w /root/handshake wlan0mon

이 명령에서 --bssid는 대상 네트워크의 MAC 주소를 지정하고, --channel은 수신할 채널을 설정하며, -w /root/handshake는 데이터를 파일에 저장합니다. 예상 출력은 대상 네트워크에 특정한 트래픽을 표시합니다. 핸드셰이크가 캡처되면 출력의 오른쪽 상단에 [ WPA handshake: 00:14:22:AB:CD:EF ]가 표시될 수 있습니다. 이 랩에서는 몇 초 후에 핸드셰이크가 캡처되었다고 가정합니다. Ctrl+C를 눌러 캡처를 중지합니다.

/root 디렉토리의 내용을 나열하여 캡처 파일이 저장되었는지 확인합니다. 다음 명령을 실행하고 Enter 키를 누르십시오.

ls -l /root

예상 출력에는 handshake-01.cap (또는 유사한) 파일이 포함되어야 합니다. 다음과 같습니다.

-rw-r--r-- 1 root root 12345 Oct  1 12:05 handshake-01.cap

이는 캡처된 데이터가 저장되었음을 확인합니다. 이제 WPA 키를 크래킹하기 위해 다음 단계에서 사용될 WPA 핸드셰이크를 성공적으로 캡처했습니다. 진행하기 전에 파일이 존재하는지 확인하십시오.

Aircrack-ng 를 이용한 WPA 키 크래킹

이전 단계에서 WPA 핸드셰이크를 캡처했으므로 이제 Kali Linux 컨테이너 내에서 aircrack-ng 도구를 사용하여 WPA 키 크래킹을 시도할 준비가 되었습니다. 이 프로세스에는 캡처된 핸드셰이크 데이터에 대해 단어 목록에서 잠재적인 비밀번호를 테스트하여 올바른 키를 찾는 작업이 포함됩니다.

초보자의 경우, WPA 키를 크래킹한다는 것은 가능한 비밀번호 목록 (단어 목록이라고 함) 을 사용하여 핸드셰이크의 암호화된 데이터와 비교하여 올바른 비밀번호를 추측하는 것을 의미합니다. 이는 오프라인 프로세스이므로 시도하는 동안 대상 네트워크와 상호 작용하지 않습니다. 이 랩에서는 시연 목적으로 작은 샘플 단어 목록을 사용합니다.

이미 Kali Linux 컨테이너의 셸에 있으므로 (터미널을 열면 자동으로 연결됨), /root 디렉토리에 간단한 단어 목록 파일을 만들어 보겠습니다. 다음 명령을 실행하고 Enter 키를 눌러 nano 편집기를 열고 wordlist.txt라는 파일을 만듭니다.

nano /root/wordlist.txt

nano 편집기에서 다음 샘플 비밀번호를 한 줄에 하나씩 입력합니다.

password123
testwifi
admin123

Ctrl+O를 누른 다음 Enter를 눌러 파일을 쓰고, 마지막으로 Ctrl+X를 눌러 nano를 종료하여 파일을 저장합니다. 이 작업에 대한 출력은 없지만 이제 파일이 생성되었습니다.

/root 디렉토리의 내용을 나열하여 단어 목록 파일이 존재하는지 확인합니다. 다음 명령을 실행하고 Enter 키를 누르십시오.

ls -l /root

예상 출력에는 wordlist.txt가 포함되어야 합니다. 다음과 같습니다.

-rw-r--r-- 1 root root  30 Oct  1 12:10 wordlist.txt

이제 aircrack-ng를 사용하여 캡처된 핸드셰이크와 단어 목록으로 WPA 키 크래킹을 시도합니다. 다음 명령을 실행하고 Enter 키를 누르십시오. 이전 단계의 BSSID와 파일 경로를 사용합니다.

aircrack-ng -w /root/wordlist.txt -b 00:14:22:AB:CD:EF /root/handshake-01.cap

이 명령에서 -w는 단어 목록 파일을 지정하고, -b는 대상 네트워크의 BSSID를 지정하며, 마지막 인수는 핸드셰이크 파일의 경로입니다. 예상 출력은 도구가 단어 목록에서 비밀번호를 테스트하는 것을 보여줍니다. 성공하면 다음과 같이 찾은 키를 표시합니다.

KEY FOUND! [ testwifi ]

키를 찾을 수 없으면 모든 비밀번호가 성공 없이 테스트되었음을 나타냅니다. 이 랩에서는 비밀번호 testwifi가 발견되었다고 가정합니다. 프로세스를 완료하는 데 몇 초가 걸릴 수 있습니다.

이제 aircrack-ng를 사용하여 WPA 키 크래킹을 시도했습니다. 다음 단계에서는 이 결과를 문서화하기 위해 저장합니다. 진행하기 전에 출력에서 키를 확인하십시오.

크래킹된 WPA 키 저장

이 마지막 단계에서는 이전 단계에서 크래킹된 WPA 키를 Kali Linux 컨테이너 내에서 문서화 목적으로 텍스트 파일에 저장합니다. 키를 저장하면 발견 사항에 대한 기록을 유지할 수 있으며, 이는 향후 참조 또는 보고를 위해 침투 테스트에서 좋은 관행입니다.

초보자의 경우, 크래킹된 키와 같은 결과를 문서화하는 것은 작업을 추적하는 데 중요합니다. 이 단계에는 키 및 관련 네트워크 정보를 저장하기 위해 간단한 텍스트 파일을 만드는 작업이 포함됩니다. 터미널에서 기본 파일 작업을 사용하여 간단한 프로세스입니다.

이미 Kali Linux 컨테이너의 셸에 있으므로 (터미널을 열면 자동으로 연결됨), /root 디렉토리에 키를 저장하기 위해 cracked_keys.txt라는 파일을 만들어 보겠습니다. 다음 명령을 실행하고 Enter 키를 눌러 nano 편집기를 엽니다.

nano /root/cracked_keys.txt

nano 편집기에서 크래킹된 키에 대한 다음 세부 정보를 입력합니다. 이전 단계에서 찾은 실제 비밀번호가 다른 경우 testwifi를 해당 비밀번호로 바꿉니다.

Network: TestNetwork
BSSID: 00:14:22:AB:CD:EF
Password: testwifi
Date: 2023-10-01

Ctrl+O를 누른 다음 Enter를 눌러 파일을 쓰고, 마지막으로 Ctrl+X를 눌러 nano를 종료하여 파일을 저장합니다. 이 작업에 대한 출력은 없지만 이제 파일이 생성되었습니다.

/root 디렉토리의 내용을 나열하여 파일이 저장되었는지 확인합니다. 다음 명령을 실행하고 Enter 키를 누르십시오.

ls -l /root

예상 출력에는 cracked_keys.txt가 포함되어야 합니다. 다음과 같습니다.

-rw-r--r-- 1 root root  85 Oct  1 12:15 cracked_keys.txt

내용이 올바른지 확인하려면 다음 명령을 실행하고 Enter 키를 눌러 파일의 내용을 표시합니다.

cat /root/cracked_keys.txt

예상 출력은 입력한 텍스트를 표시합니다. 다음과 같습니다.

Network: TestNetwork
BSSID: 00:14:22:AB:CD:EF
Password: testwifi
Date: 2023-10-01

이는 크래킹된 키가 성공적으로 저장되었음을 확인합니다. 이제 이 랩에서 무선 침투 테스트 워크플로우를 마무리하는 발견 사항을 문서화하는 프로세스를 완료했습니다. 완료하기 전에 파일 내용이 올바른지 확인하십시오.

요약

이 랩에서는 LabEx VM 환경에서 Kali Linux 및 Aircrack-ng 도구 세트를 사용하여 무선 침투 테스트의 기본적인 단계를 배웠습니다. aircrack-ng와 같은 필수 도구를 설치하는 것으로 시작하여 무선 인터페이스에서 모니터 모드를 활성화하여 네트워크 트래픽을 캡처했습니다. 그 후, WPA 핸드셰이크를 캡처하고, 단어 목록을 사용하여 WPA 키 크래킹을 시도했으며, 마지막으로 문서화를 위해 크래킹된 키를 저장했습니다. 이러한 단계는 무선 보안 테스트를 이해하고 제어된 환경에서 이러한 취약점에 대한 네트워크를 보호하는 것의 중요성에 대한 견고한 기반을 제공합니다.