2011-01-15

Intel Wireless 3945ABG로 WEP모의 해킹


[원문] http://n1207n.egloos.com/2380662

주의]본 포스팅은 순전히 교육적 목적을 두고 있습니다. 불법적인 목적으로 사용시 모든 책임은 저에겐 없음을 알립니다.
[스크롤의 압박이 있습니다. 각오하세요 OTL]

안녕하세요...... 드디어 3주 후의 고통을 뒤로 하고 영광의 순간을 맛보았던 악마의 무선 랜 Intel 3945ABG로 드디어 Packet injection 성공했던 순간을 알리고자 합니다.
그 injection attack으로 WEP 암호가 얼마나 취약한지 모의 크래킹을 올립니다.

먼저 말씀드리자면 Backtrack 4 Pre-final에선 iwl3945라는 최신 injection supported driver가 내장되어 있습니다.
Backtrack 3까지는 Ipwraw, Ipwraw-ng, Ipw3945등 옛 구버젼 버그가 아직도 남아있는 걸 써야 했었습니다. 왜냐면 Intel 무선랜카드는 기본적으로 Monitor mode로 전환할 수가 없기에 강제로 드라이버 설정을 바꿔서 만든 것이었죠.

그래서 그냥 인터넷 사용할 시엔 IPW3945 드라이버로 전환해서 쓰고, 크래킹 할때엔 IPWRAW-NG 드라이버로 다시 바꿔주야하는 불편함이 있었고, 드라이버 make compile과 설치에도 커널 버젼에 너무 민감해서 다들 Atheros, Linksys, Ra-link계열 무선랜으로 갈아타고 그랬던 시절이었습니다.

그런데 Iwl3945부턴 성능이 너무나 좋아진 injection driver로 각광과 동시에 인터넷 또 그 드라이버 그대로 쓰기에 다시 시도하려는 사람들이 늘어났지요.

먼저 이 Intel 3945ABG로 Injection 공격 시도하기 전에 조건이 몇 개가 있습니다.

1. Linux 또는 Backtrack 4 Pre-final
2. Linux 커널을 2.6.30.9 또는 그 이상 stable한 버젼으로 업그레이드
3. 모든 툴들과 드라이버를 apt-get update, apt-get upgrade, apt-get dist-upgrade 명령어로 다 최신으로 갈아 엎으시기 바랍니다.
4. 무선랜 종합 드라이버인 compat-wireless-2.6.33-rc1 이나 그 최신 이상 버젼이 나올 시엔 그걸로 써주세요!
(제일 중요합니다! 드라이버 설치에 오류가 없어야하고 make install시 설치가 제대로 되어야합니다! 되지 않는 다면 Kernel 문제이거나 /lib/modules/ 경로에 현재 커널 링크가 없는 경우 일수도 있습니다.)
5. airmon-ng, airodump-ng, aireplay-ng, aircrack-ng 리눅스 툴
6.개인 소지 및 타인 허가를 받은 타겟 무선 AP

위 모든 조건들을 충족시켰다는 전제하에 Intel 3945ABG Packet Injection을 이용한 WEP cracking 시작하겠습니다.

[본 Tutorial은 Intel 3945ABG를 이용하였으므로 다른 무선랜 카드와는 다른 점이 몇몇 있습니다.]

Console을 여시고 airmon-ng을 작동시킵니다. 그러면 현재 Wireless adapter들이 나열되어 나올 것입니다.
주의 하실 점은 공격에 쓸 무선랜 카드가 꼭 Injection support가 되는 지 알고 시작하셔야 합니다. Unsupported인 무선랜일 경우 드라이버 설치를 떠나서 불가능하오니 다른 supported 무선랜을 구하셔야 합니다.







airmon-ng start 무선랜 인터페이스 명령어를 입력하시면 그 무선랜은 Monitor mode로 전환되어 injection 및 sniffing을 할 수 있습니다. Intel 3945ABG 경우 airmon-ng start wlan0입니다. 그런데 시작하기 전에 컴퓨터가 인터넷에 연결되어 있으면 윗 스샷처럼 경고 메세지가 뜨며 추후 공격 절차에 실패 영향을 가져옵니다. 그러니 Cracking을 시작 하기전에 인터넷을 끄시고 유무선랜도 다 끄시고 monitor mode로 전환하셔야합니다.

ifconfig 무선랜 또는 유선랜 인터페이스 down 명령어를 치시면 그 인터넷에 연결된 무선랜이나 유선랜은 꺼지게 되며
sudo killall wpa_supplicant && killall dhclient를 치시면 인터넷 관련 프로세스들은 사라지게 됨으로 문제 해결이 됩니다.



위 경고 창이 뜨지 않으시면 그저 monitor mode로 변경되었다는 메세지가 나오게 되지요. 이로써 1단계 완성입니다.



다음은 airodump-ng를 이용해서 스니핑을 시작합니다. 타겟 AP를 잡아야 하니까요.
Console에 airodump-ng mon0 쳐주세요. mon0는 Intel 3945ABG 인터페이스인 wlan0에서 monitor mode로 따로 빠져나온 인터페이스입니다. airodump-ng wlan0는 통하지 않습니다. 인터페이스 차이를 알아두셔야 합니다.


치시면 아래처럼 무선랜 주위에 있는 AP들을 monitoring하게 됩니다. 이걸로 타겟을 찾습니다.


타겟을 찾았다면 정보를 수집해야 합니다. Packet Injection을 하기 위해선 AP의 BSSID, 채널이 필요합니다.

airodump-ng -c 11 --bssid 00:90:4C:7E:00:6E -w test mon0 저는 이 명령어를 사용했습니다.

airodump-ng 무선 AP를 스니핑 하는 툴을 사용하니까
airodump-ng

-c 11 채널 11번 AP들만 스니핑 하겠다는 뜻이고요

--bssid 00:90:4C:7E:00:6E 그 중에서 이 00:90:4C:7E:00:6E BSSID를 가진 AP만 스니핑을 하겠단 뜻입니다.

-w test 이 명령어는 test라는 파일을 만들어 패킷을 받아 먹겠다는 명령어입니다. (이 파일을 가지고 암호를 깨기 때문이죠.)

mon0 그 monitor mode로 된 인터페이스 이지요? 스니핑을 할 무선랜 인터페이스를 설정합니다.

이렇게 타겟 AP만 스니핑 하도록 설정을 한다면 airodump-ng 창에는 그 AP만 스니핑이 되어야 합니다. 그래야 그 AP에만 Packet Injection 공격이 들어갑니다.



말씀 드리지만 Packet Injection의 주된 목적은 WEP 패킷 캡쳐 속도를 빠르게 하여 크래킹에 속도가 붙게하는 목적입니다.
솔직하게 말하자면 여기까지 해놓고 패킷을 5천개에서 150만개까지 캡쳐한 후 크랙하면 끝입니다. 그런데 패킷을 저만큼 캡쳐하기엔 시간이 너무나 오래 걸리기에 Packet Injection으로 속도를 높이는 것이죠. 그런데 많은 사람들이 인터넷을 마구 쓴다면 패킷이 마구마구 쏟아져 나오니까 Packet Injection 그때는 꼭 쓰실 필요가 없습니다.

그럼 Packet Injection 공격 중 하나인 ARPreplay를 해보도록 하겠습니다.
먼저 전에 켰던 airodump-ng 콘솔창은 그대로 두셔야합니다. 계속 패킷을 캡쳐해야 하니까요!

새로운 콘솔창을 열고 aireplay-ng -1 0 -a (무선 AP의 BSSID) mon0를 입력합니다.

패킷을 AP에 쏴보내야 하니 AP와 연결이 되어야 합니다. 이걸 Fake authentication 공격이라고 하며 나 들어가고 싶어요 라는 패킷을 AP를 보내며 가짜로 AP에 서식(?!)하게 만듭니다.

그러나 이 공격은 Mac address filtering을 쓰는 AP엔 무력화입니다. 이럴 땐 AP에 접속되어 있는 클라이언트 Mac address를 클론한 후 들어가야 합니다.

aireplay-ng 명령어는 Packet injection 공격 툴입니다.

-1 0 이 명령어는 fake-authentication 공격 명령어 이며 숫자 0은 공격간 딜레이가 없앤다는 뜻입니다.

-a (무선AP bssid) 명령어는 타겟의 bssid를 입력합니다.

mon0는 Packet Injection 공격에 쓰일 무선랜 인터페이스를 말합니다.

성공 하신다면 아래 스샷처럼 Authentication successful 과 association sucessful이 뜨게 됩니다.
association sucessful 이 꼭 나와야 합니다. 이것에 실패하면 AP와 접속이 안되었다는 뜻으로 Packet Injection에 실패합니다.
실패 요인은 Mac address filtering, 또는 Hidden essid, AP와 컴퓨터와의 거리 (멀어도 너무 가까워도 안돼요) 등등 있습니다.



자 AP와 가짜로 접속이 되었다면 이제 클라이막스 Packet injection을 실행해보도록 합시다!

fake-authentication을 했던 콘솔창에 aireplay-ng -3 -b (무선AP bssid) mon0를 입력해줍시다.

-3 명령어는 arpreplay를 실행하겠다는 뜻입니다.
-b (무선AP bssid)는 타겟 AP의 bssid를 말합니다.
mon0는 역시 공격에 쓰일 무선랜 인터페이스입니다.


보시는 봐 처럼 Read xx packets 으로 나오는 것이 arpreplay attack입니다. 이 공격은 arp packet을 한번 보자마자 복사하고 보내고 복사하고 보내고 복사하고 보내는 packet injection 공격중 하나입니다. 이 공격으로 패킷을 빠르게 만들고 보낼 수 있습니다.

그런데 이 공격법은 트래픽이 없으면 불가능한 공격입니다. 없으면 만들어야죠. 클라이언트가 있더라도 이 공격법을 위해 deauthentication을 쓰겠습니다.

aireplay-ng mon0 -0 1 -a (무선AP Bssid)를 쳐줍니다.

-0 는 deauthentication 공격 명령어이고, 뒤에 따라오는 숫자는 공격 횟수입니다. 그러나 한 번의 deauthentication으로 다시 AP와 접속하려는 순간을 이용해 트래픽을 만들어 내서 arpreplay 공격이 가능합니다!
-a (무선 AP bssid)는 마찬가지로 타겟 ap bssid입니다.
mon0는 공격 시도할 인터페이스이고요.


성공 하신다면 마법이 벌어집니다.


Arp 패킷을 무한 루프 하듯이 복사해가며 반복해나가는 ARPreplay 공격. 초당 500 패킷을 전송합니다. 이것으로 2~3분이면 4만 패킷은 그냥 모을 수 있게 됩니다.



한 5만 패킷 정도 모으셨다면 중지 하시고 aircrack-ng로 WEP 암호를 크랙 시도해보셔도 좋습니다.

aircrack-ng -b (무선 ap bssid) (패킷 파일이름)

저의 경우는 aircrack-ng -b 00:90:4C:7E:00:6E test-01.cap 을 썻습니다.

아마 여러분들은 BSSID만 틀리고 나머진 똑같으실 겁니다.



크랙 성공입니다. 암호는 KEY FOUND! [암호:암호:암호:암호:암호]에서 암호들만 뽑으시면 됩니다.
간단하게 이 툴은 WEP IV패킷들에서 조각을 짜마춰가며 Hex코드 형식으로 암호를 뽑아냅니다.

이제 크랙된 네트워크에 암호를 물을 시에 저 암호들을 입력하면 네트워크에 들어가게 됩니다.

수고하셨습니다. WEP 암호화는 2001년에 처음 깨진 것으로 알고 있으며, 2004년엔 쉽게 깨지고, 2007년엔 2분 만에 크랙되어버리는 아주 취약점이 큰 암호화입니다.

모두들 WPA나 WPA2를 쓰실 수 있다면 쓰셔야합니다!

다음 번엔 WPA/WPA2 취약점에 대해 알아 보겠습니다. WEP와는 달리 견고함을 자랑하고 크랙하는 데 어려움이 많습니다. 그러나 어떤 것도 안전하다는 건 없다는 것 잊지 마세요~~

No comments:

Post a Comment