Wi-Fi는 1990년 후반에 처음으로 개발되었습니다. 이를 암호화 할 수 있는 기술로는 WEP가 있었는데, 굉장히 보안적으로 취약한 방식이었기에 쉽게 크래킹이 가능합니다. WEP크래킹에 관해서도 다음기회에 포스팅하겠지만, 무튼 WEP를 대체하기 위해 현재는 대부분 "Wi-Fi Protected Access 2 with a pre-shared key", 일명 WPA2-PSK라는 방식을 사용합니다. 여기에 추가적으로 AES 암호화를 사용하면 굉장히 깨기 어렵습니다.

WPA2PSK 인증-암호화 방식
WPA2PSK 인증-암호화 방식

그러나, 불가능한 것은 아닙니다. WPA2-PSK 시스템은 클라이언트가 공유기와 인증과정을 수행할 때 4 way handshake를 이용하여 패스워드를 공유하게 되어있습니다. 물론 평문으로 전달하면 위험하기 때문에 패스워드를 대칭키 암호화를 수행한 형태로 전달합니다. 이 패킷을 가로챌 수 있다면, 그리고 복호화할 수 있다면 와이파이 패스워드를 알아낼 수 있게 됩니다. 하지만 여전히, 그 패스워드에 걸려있는 암호화 알고리즘을 깨야한다는 문제가 남게 됩니다. 현재로써는 사전 공격(dictionary attack)을 이용하거나 전수 조사(brute force)를 하는 방법밖에 없습니다.

그렇다면, 이번 포스팅을 통하여 WPA2-PSK를 사용하는 와이파이의 패스워드를 깨는 실습을 진행해보도록 하겠습니다. 


두가지 준비물 : 무선 랜카드 (사진) , Aircrack-ng suit

TP-LINK라는 USB타입의 무선랜카드를 사용
TP-LINK라는 USB타입의 무선랜카드를 사용

그리고, Aircrack-ng suit를 설치하셔야 합니다. 칼리 리눅스를 사용하신다면 자동으로 설치되어 있고, 데비안 계열 리눅스에서 apt-get install aircrack-ng 를 통해 설치하실 수 있습니다. 혹은, Aircrack의 제작사 공식홈페이지를 통해서 소스코드를 직접 다운로드하셔서 설치하셔도 됩니다.


실습에 들어가기 앞서, 저는 이 내용을 라즈베리파이의 라즈베리안OS에서 수행했음을 알려드립니다. 성능이 그렇게 좋지 않기때문에 크래킹과정에서 많은 시간이 소요될 수 있습니다. 라즈베리파이가 아닌 일반 노트북환경에서 VM웨어 안에서 작동하셔도 무방합니다. 다만, VM환경의 경우 노트북에 내장되어있는 랜카드를 인식하지 못하기에 위에서 보여드린 외장형 USB타입 랜카드를 사용하셔야만 무선랜을 잡을 수 있습니다. 이제 준비가 끝나셨으면, 먼저 네트워크 인터페이스를 확인해봅니다.

wlan0가 있음.
wlan0가 있음.

이제 Airmon-ng 를 사용하여 Wi-Fi 어댑터를 모니터 모드(Promiscuous Mode)로 변경합니다. 이는 공중에 떠다니는 무선 트래픽을 모두 훔쳐볼 수 있게 하는 것입니다. 터미널에서  다음 명령어를 수행하여 모니터모드로 작동하도록 변경할 수 있습니다.

이제 다시 ifconfig -a 해보면 wlan0mon이 생겨있음을 확인할 수 있습니다.

wlan0가 wlan0mon으로 변경됨
wlan0가 wlan0mon으로 변경됨

아래 명령어를 사용하면 wlan0mon을 통해 공중에 떠다니는 무선 트래픽을 볼 수 있게됩니다. 연결가능한 네트워크 목록이 아래와 같이 표시됩니다.

cpuu네트워크
cpuu네트워크

위와 같이 목록이 위 아래로 파트가 분류되어 표출됩니다. 이 중에서 목록의 상위 부분에 표출되는 것은 연결 가능한 AP이고, 아래 부분은 클라이언트 목록입니다. AP목록 중 cpuu(푸른색으로 표시한 부분)라는 이름의 네트워크를 대상으로 공격을 수행하여보도록 하겠습니다. cpuu의 bssid가 00:08:9F:49:5D:44 임을 확인하였고, 이를 이용해 다음과 같은 명령어를 입력합니다.

명령어의 옵션에 대한 설명은 다음과 같습니다.

  • --bssid 00:08:9F:49:5D:44 : AP의 bssid
  • -w WPA_TEST : 패킷을 캡쳐하여 저장할 파일이름
  • wlan0mon : 모니터링하고 있는 무선랜 어댑터

airodump-ng를 수행하면 아래 사진과 같은 화면이 나타납니다.

처음엔 뭐 안나온다
처음엔 뭐 안나온다

cpuu네트워크를 통해 지나다니는 패킷을 수거하려고 하는데, 가만히 앉아서 기다리면 잘 안됩니다. 이는 감나무 밑에 누워서 감이 떨어지길 기다리며 입만 벌리고 있는 행위겠지요? 조금이라도 노력을 해야 합니다. 저 같은 경우 아이폰 이용해서 cpuu네트워크에 접속했습니다. 데이터를 마구마구 써줍니다. 예를들면 유튜브에서 동영상을 몇편 시청하는것도 좋겠지요.


접속해서 데이터를 막 쓰면
접속해서 데이터를 막 쓰면

아래와 같이 클라이언트가 붙었다고 뜹니다.

현재 클라이언트인 아이폰과 cpuu공유기가 연결된 상태입니다. 그 연결 인증이 이루어질 때 암호화 된 패스워드가 공기중에서 왔다갔다합니다. 우리는 그것을 잡아야 합니다. 그런데 이는 인증이 최초에 성립되는 과정에서 catch하기 쉬우므로, 만약 이미 인증이 완료된 상태라면 의도적으로 인증을 해제시켜버립니다. 그럼 자동으로 재인증을 수행하게 되고, 이러한 과정을 고의로 여러차례 반복하면서 해커는 수월하게 정보를 수집할 수 있습니다. 이미 생성된 인증을 해제시키는 방법으로는 deauth패킷을 사용하면 됩니다. 터미널 창을 새로 하나 띄우시고, 아래와 같은 명령어를 수행합니다.

  • 100은 de-authenicate frame을 보낼 횟수입니다.
  • 00:08:9F:49:5D:44는 무선랜의 BSSID입니다.
  • wlan0mon은 모니터링하고 있는 무선랜 어댑터 입니다.

이유는 모르겠지만 저의 경우 '채널이 다르다'는 이유로 실패하다가 몇번 더 시도하니 갑자기 되더군요;;

deauth 패킷이 먹혔으면, 아까 그 창(airodump-ng 수행한)에서 WPA handshake가 성공했음이 아래와 같이 나옵니다.

이런 파일들이 생겨있습니다 WPA_TEST-01.cap, WPA_TEST-02.cap 등

지금부터 패스워드 크래킹을 시작합니다. 미리 준비한 사전파일은 백트랙이나 칼리리눅스에서 제공하는  darkc0de.lst 파일입니다. 대략 아래와 같이 생겼습니다.

이제 새로운 터미널 창을 열어서, 위에서 수집했던 *.cap 파일과 공격을 수행하기 위한 사전파일을 옵션으로 지정해줍니다.

그렇게되면 이제 크래킹을 시작하게 됩니다. 

이런 내용이 짧게 뜨다가 다음 화면으로 넘어감
이런 내용이 짧게 뜨다가 다음 화면으로 넘어감

사전공격의 특성상 비교적 느리고, 지루합니다. 이는 패스워드 사전파일의 길이에 의해 좌우됩니다. 운이 좋으면 단지 몇분만에 끝날 수도 있고, 며칠이 걸릴수도 있습니다. 저는 라즈베리파이에서 수행했더니 너무나 느려서 (...) *.cap파일을 별도의 데스크탑 VM상의 칼리리눅스에 옮겨서 크래킹을 수행했습니다.

크래킹 시도중
크래킹 시도중
1234admin
1234admin

암호가 1234admin이라고 합니다. 확인해볼까요?


오오!!
오오!!

*2015. 12. 25. 확인작업을 위해 라즈베리 파이용 칼리리눅스에서, 사전파일에 정답을 의도적으로 집어넣고 재확인한 결과입니다. 이 경우 cap파일은 4.7M였고, 수집된 패킷수는 94634(Read 94634 packets)였습니다. 이상없이 Key Found 가 되는군요.

사전파일에 의도적으로 정답을 넣고 수행한 경우입니다.
사전파일에 의도적으로 정답을 넣고 수행한 경우입니다.

하지만 이 실습의 한계를 말씀드리겠습니다. 실습의 편의를 위해서 패스워드를 의도적으로 쉽게 설정한 점, 그리고 사전파일 안에 패스워드 정답이 들어있음을 가정하였습니다. 만약 굉장히 복잡한 패스워드라면 선형시간 안에 푸는 것이 어려울 것입니다. 아직까지 WPA를 효과적으로 깰수 있는 방법은 없고 단지 노가다(..) 뿐입니다. 그리고 사전파일이 얼마나 체계적으로 많은양의 데이터를 보유하고있는지가 관건입니다. 사전파일은 아래를 참고하시면 좋습니다.


지금까지 무선랜 해킹의 대명사인 aircrack-ng suit를 사용하여 공유기 암호를 크래킹하는 방법을 포스팅하였습니다. 마지막으로 당부의 말씀 드립니다. 이는 단순히 학업/연구적 내용입니다. 이를 악용하여 타인의 네트워크에 강제로 침투하는 행위가 불법 또는 위법의 여부가 있는지 사용자 본인이 책임지셔야 합니다. 저의 경우 본인 집안에 있는 본인이 관리하는 네트워크를 대상으로 공격하였음을 알려드립니다.


참고문헌 :

  • BackTrack 5 Wireless Penetration Testing(백트랙 5로 시작하는 무선 해킹, 비벡 라마찬드, 에이콘 출판)
  • 공포의 해킹 툴 백트랙 4(샤킬 알리 / 에이콘 출판)
  • 해킹 초보를 위한 무선 네트워크 공격과 방어(브랜드 하인스, 김경곤 / 에이콘 출판)
  • http://null-byte.wonderhowto.com/how-to/hack-wi-fi-cracking-wpa2-psk-passwords-using-aircrack-ng-0148366/


CPUU님의 창작활동을 응원하고 싶으세요?