[Linux] WPA/WPA2 정리 및 Password Cracking [WPS / Handshake / 사전 파일]
Nowhere 와 Now here 의 차이

IT/ㄴ Wi-Fi

[Linux] WPA/WPA2 정리 및 Password Cracking [WPS / Handshake / 사전 파일]

TIENE 2023. 7. 12. 08:58
반응형

- Wi-Fi Protected Access [2]
- WPA/WPA2는 WEP의 문제 해결을 위해 개발된 암호화 인증 프로토콜로, WEP의 취약점이 보완되어 개발되었다.
 

[Linux] WEP 기초 및 WEP Cracking 공격 [airodump / airocrack]

 

[Linux] WEP 기초 및 WEP Cracking 공격 [airodump / airocrack]

- Wired equivalent privacy - Wireless 암호화 기술 중 하나이며 오래된 암호화 방식으로 RC4 알고리즘을 사용한다. - 패킷 하나하나 마다 고유한 키 스트림을 이용하여 암호화하며 이를 위해 24비트짜리 초

a-gyuuuu.tistory.com

 
- 유일한 임시키값으로 모든 패킷이 암호화되며, 패킷에는 Cracking을 진행하는데 필요한 정보가 포함되어 있지 않다.
- 또한, WPA와 WPA2가 사용하는 암호화 알고리즘도 각각 다르지만 모두 동일한 방법으로 Cracking이 가능하다.
 

WPA WAP2
TKIP 1. Temporal Key Integrity Protocol

2. 24bit보다 길어진 48bit의 IV 사용

3. 메시지 무결성 체크를 위해 MIC 사용
CCMP 1. Counter mode with CBC-MAC Protocol

2. AES 블록 암호 사용

3. 128bit의 대칭키과 48bit의 IV 사용

 

 


- WPA/WPA2의 Password Cracking 방법은 두 가지다.
 
1) WPS 기능 악용하기
2) Handshake 패킷을 이용하기
 
1) WPS [WI-FI Protected Setup] 기능 악용하기
- 공유기 뒤에 보면 Reset 버튼이 아닌 또 다른 버튼이 있다.
- 아마 대부분의 버튼이 WPS일 것이다.

출처 : http://www.11st.co.kr/products/1697140369

 
- WPS는 Password 없이 클라이언트와 연결하도록 하는 기능이다.
- 인증은 단 8개 숫자로 이루어진 PIN을 이용하는데, 비교적 짧은 시간에 8자리로 이루어진  PIN 을 계속 대입해볼 수 있다.
 
- 따라서, WPS를 통하여 WPA/WPA2의 실제 키 값을 알아낼 수 있으며, 암호화 알고리즘을 익스플로잇 하는 것이 아니라 WPS의 기능을 악용하는 것이다.
 
- WPS 활성화가 되어 있는지 확인 먼저 필요하며, 일반적인 PIN 방식 설정 필요 푸쉬 버튼 방식은 무선 라우터가 거부한다.
 
- 그래서, 이 방식은 테스트를 하지 못했다... 하필 위에 올린 사진에 나온 제품을 사용하고 있다..
- 다른 방법을 찾아봐야겠다..


2) Handshake 패킷을 이용하기
 
- 클라이언트와 무선 라우터의 Handshake 과정에서 주고 받는 패킷을 바탕으로 WPA/WPA2 키를 Crack 할 수 있다.
- 아래와 같이 특정 대역 타겟 스니핑을 통하여 관련 패킷을 저장할 수 있는데, 이때 저장되는 값에는 handshake 관련 패킷도 저장된다.
 
 

 
- 관련 명령어는 아래에서 확인할 수 있다.
 

[Linux] airodump-ng를 사용하여 특정 클라이언트 스니핑하기[airodump-ng /wireshark]

 

[Linux] airodump-ng를 사용하여 특정 클라이언트 스니핑하기[airodump-ng /wireshark]

- airodump-ng를 사용하면 주변 무선 네트워크 탐지 및 주파수 별 탐지할 수 있다. - 이제는 특정 클라이언트에 대하여 패킷 스니핑을 해볼 차례다. [airodump-ng를 사용하여 특정 클라이언트 스니핑하

a-gyuuuu.tistory.com

 
 
- 명령어를 입력했다면 새로운 클라이언트가 연결되기를 기다려서 Handshake가 캡쳐되길 기다리면 된다.
- 하지만, 언제까지 기다리고 있을 수 없다.
 
- 인증 해제 공격으로 다시 클라이언트와의 Handshake를 진행할 수 있게 강제한다.
 

[Linux] 가짜 인증 및 ARP Replay 공격 [aireplay / aircrack]

 

[Linux] 가짜 인증 및 ARP Replay 공격 [aireplay / aircrack]

TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Kor

a-gyuuuu.tistory.com

 

aireplay-ng --deauth 4 -a 72:5D:CC:4A:D2:2C -c 4A:8E:37:84:CD:15 wlan0

- -a [무선 라우터 MAC]  
- -c [클라이언트 MAC]
- -deauth [num] = 연결 해제 패킷을 보낸다.

 
- 아래 보이는 것처럼 인증 해제 패킷을 4번 보내고나면 airodump-ng 명령어로 입력해둔 CLI창에서 WPA handshake 값이 나온다.
- 이 Handshake 값이 WPA/WPA2 패킷이 담고 있는 정보 중 키를 크랙하는데 유용한 정보다.
- Handshake 값을 사용하는 부분은 비밀번호가 유효한가 아닌가 판단하는 것에 있다.
 
 
- 여기서 필요한 것이 사전 파일이다.
- 사전 파일 관련 내용과 사전 파일을 직접 만드는 방법은 아래에 있다.
 

[Linux] 사전 파일을 만드는 도구 Crunch 사용하기 [WPA/WPA2 cracking]

 

[Linux] 사전 파일을 만드는 도구 Crunch 사용하기 [WPA/WPA2 cracking]

Crunch - 사전 파일을 만드는 도구 - Wordlist Files 혹은 Dictionary Files - 무작위 대입 공격에 사용하는 파일이며, Password를 Crack할 때 사용되는 대용량의 무작위 패스워드 리스트 파일이다. [사전 파일을

a-gyuuuu.tistory.com

 
 
 
- 사전파일을 만들었다면 이제, MIC를 집고 넘어가야한다.
- Message Integrity Code
- 액세스 라우터가 이용하는 값이며 비밀번호가 유효한지 아닌지 사용하는 값이다.
 
 

- Handshake 패킷과 사전파일을 이용하여 Password를 Crack하는 방법은 다음과 같다.
1) 사전 파일에 있는 무작위로 생성된 수많은 패스워드와 인증에 필요한 정보들을 조합하여 다시 MIC 만든다.
2) 인증 해제 공격으로 캡쳐된 Handshake 값과 비교하여 일치하면 Password 값이 맞다고 출력한다.
3) 일치하지 않으면, 사전 파일 리스트의 값을 순차적으로 조합하여 반복한다.
 
- 따라서, 사전 파일에 담겨있는 Password List 혹은 Password List를 만들때의 조합이 중요하다.
 


2.1) Handshake 패킷과 사전파일을 사용하여 WPA/WPA2 Cracking 하기
- crunch 도구로 사전 파일을 생성해야한다.
- 테스트를 위하여 실제, 사용하고 있는 Password가 포함될 수 있게끔 적절히 조절하여 생성한다.
 

- 그 다음 aircrack-ng 도구를 실행하여 MIC 값을 비교한다.

 
- 10초만에 Password가 나왔다.
- 실제 사용하고 있는 Password가 나와서 놀랐다.

 
- 지금까지의 방법이 WPA/WPA2 키를 Crack하는 유일한 방법이라고 한다.


 

반응형