Aircrack-ng를 이용한 무선인터넷 WEP암호화 크랙

 

강정인

 

1.     Aircrack-ng 소개

Aircrack-ng 802.11 WEP, WPA-PSK암호화 방식의 키를 크래킹 할 수 있는 프로그램 패키지 입니다. 패키지에는 크래킹기능 외에도 무선네트워크를 감시할 수 있는 여러 도구들이 포함되며, http://aircrack-ng.org/ 에서 배포되고 있습니다. 이 사이트에서는 프로그램의 사용법이나, 이용되는 알고리즘과 같은 기술적인 자료들을 매우 상세히 제공하고 있습니다.

기본적으로 이 프로그램은 WEP로 암호화 되어있는 대량의 패킷들을 캡쳐하여 분석함으로써 키를 알아내는 방법으로 동작합니다.

 

2.     WEP 소개

WEP이란 Wired Equivalent Privacy의 약자로써, IEEE802.11 무선네트워크에서 사용되는 표준 암호화 방식입니다. 1997년에 처음 등장하였으며, 2001년 몇분 내로 크래킹을 가능토록 하는 심각한 취약점이 발견되어, 현재 802.11의 암호화 표준은 WPA2로 대체된 상태입니다

.

우리나라의 경우 유무선공유기가 활성화 되었지만, 보안기능이 꺼져있는 초기값을 그대로 사용하는 경우가 많고, 특히 국내 최대 인터넷전화 시장점유율을 보유하고있는 LG데이콤에서는 전화와 무선공유기(myLGNet)를 같이 배포하면서 기본 보안방식을 WEP으로 설정해 놓고 있는 상태입니다. 비록 092월에 들어서야 행안부에서 국내 전체 사업자를 대상으로 WPA2사용을 권고하였지만 법적 효력이 없기 때문에 전반적으로 국내 거의 대부분의 무선인터넷이 여전히 취약한 상태라고 볼 수 있을 것입니다.

WEP 64bit / 128bit 의 비밀키를 이용하는데, WEP은 이를 stream cipher RC4를 이용하여 XOR방식으로 암호화를 진행합니다. 비밀키는 사용자가 미리 지정한 키(PSK)rc4 traffic key로 만들어지는 initialization vector(IV)로 이루어지며, 64bit의 경우 24bit IV , 40bit KEY, 그리고 128bit의 경우 24bit IV, 104bit KEY 로 이루어져있습니다.

Initial Vector는 고정된 PSK가 같은 내용의 원문에 대해 언제나 같은 암호화 결과를 내지 않도록 하기 위해 사용됩니다. 복호화를 하기 위해서는 반드시 이 IVPSK을 알고 있어야 합니다. 하지만 이 IV는 단순히 암호화되지 않은 평문으로 보내지며, 또한 24bit라는 짧은 값으로 이루어져 있음에 따라 패킷량이 많을 때 똑같은 IV를 이용하여 암호화하는 경우가 생기게 됩니다. 이는 결국 대량의 패킷을 수집하여 WEP PSK를 알아낼 수 있도록 하는 취약점을 제공하게 됩니다.

이 취약점을 보완하여 현재 표준으로 지정된 암호화 방식인 WPA2 CCMP 알고리즘을 사용하는데, 현재 이에 대한 취약점은 발견되지 않은 상태입니다. password brute force cracking은 여전히 유효하며, aircrack-ng 에서는 이 방법을 이용하여 WPA크랙을 시도합니다.

 

 

3.     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를 알아낼 수 있도록 합니다.

 

4.     크랙예시

A.      개요

Aircrack-ng.org 에서는 위 툴들을 조합하여 wep키를 크랙해 낼 수 있는 튜토리얼을 만들어 놓았으며, 본문에서는 이 내용을 토대로 국내에서 쉽게 구할 수 있는 EFM Network IPTIME 공유기와 랜카드를 이용하여 테스트를 해 보았습니다.

 

B.      테스트환경

클라이언트OS

BackTrack4

클라이언트 랜카드

IPTIME G054U-A (Ralink rt73 chipset)

AP 기종

IPTIME N104

 

C.      진행

Aircrack-ng linux기반이며, 또한 Injection 을 위해서는 이를 위해 패치된 무선랜 드라이버가 필요합니다. 이는 BackTrack4이라는 OS를 사용함으로써 쉽게 해결할 수 있었습니다. BackTrack4은 백여개의 해킹툴이 내장되어있는 우분투기반의 리눅스로써, aircrack-ng의 경우 전체 패키지가 설치되어있을 뿐만 아니라, 지원되는 여러 무선랜들의 패치된 버전의 드라이버들을 제공합니다.

 

1.       일단, airmon-ng 를 이용하여 사용할 무선랜 인터페이스를 monitor mode로 설정하여 공중의 모든 패킷들을 캡쳐할 수 있도록 하였습니다.

 

2.       Airodump-ng를 이용하여 주변 네트워크와 패킷량을 검색합니다.

공격할 AP ESSID KUICS이고, WEP 암호화를 사용중이고 BSSID 00:08:9F:CA:96:24 임을 확인할 수 있습니다.

 

3.       injection 이 제대로 작동할 수 있는지 aireplay-nginjection test모드를 이용하여 확인하였습니다.

 

4.       Airodump-ng를 이용하여 KUICS네트워크의 모든 패킷들을 캡쳐하여 저장하기 시작.

Airplay-ng 를 이용하여 AP와 가짜 연결을 만듭니다. 이는 AP에서 인젝션된 패킷을 무시하지 않도록 하기 위한 작업입니다. 자신이 가진 무선랜 인터페이스나 이미 연결되어있는 다른 클라이언트의 MAC address 둘중 하나를 사용할 수 있는데, 이 테스트에서는 자신의 MAC addr을 이용하였습니다.

 

5.       패킷량을 증가시켜 대량의 IV를 빠르게 얻기 위해 aireplay-ng ARP request 재생공격을 하였습니다.

<공격 클라이언트에서 보여지는 화면>

            

<다른 클라이언트에서 wireshark를 이용하여 캡쳐한, 공격으로 발생한 ARP 패킷들>

 

6.       Aircrack-ng로 캡쳐된 패킷들을 이용하여 WEP 키를 추출해 냅니다.

           크랙된 결과는 SCIUK로써, 설정해놓았던 값과 일치함을 확인할 수 있었습니다.

 

5.     결론

실제 크래킹에 이용된 시간은 5분정도로 매우 짧은 시간이었으며, 이를 통해 무선랜환경에서 암호화방식을 WEP방식으로 사용하는 것이 심각하게 취약하다는 것을 확인할 수 있었습니다.

 
6.
참고문헌

http://en.wikipedia.org/wiki/Initialization_vector

http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy

http://www.informit.com/guides/content.aspx?g=security&seqNum=85

http://www.aircrack-ng.org

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

 



원문글 주소 : http://agok.tistory.com/entry/aircrak-ng사용법

+ Recent posts