• Broadcom
    • 802.11g 지원
    • 많은 laptop에서 활용
    • PCMCIA장치 사용
    • Broadcom의 "Standard-plus 기술 사용

  • Atheros
    • 가장 유명한 802.11 chipset
    • 모니터 모드와 packet injection 활용가능
    • MadWifi 를 통해서 이용이 가능
    • 현재 PCMCIA는 지원하지 않음

  • Palink
    • Open-source를 지원하고, 안정적임
    • Rt2500계열은 리눅스에서 활용가능
    • Rt2750은 리눅스에서 injection interface 제공

  • Centrino(Intel pro Wireless 2100/2200/2915/3945)
    • Mini-pci카드들에서만 이용가능
    • 2200은 b/g를 지원, 2915와 3945는 a/b/g를 지원
    • 모니터 모드 지원, packet injection은 지원하지 않음

 

IAS (Internet Authentication Server)는 window 2000 server 와 2003 server에서 기본적으로 구동할 수 있는 인증서버이다. EAP 를 기반으로 PAP, SPAP, CHAP, MS-CHAP-V2, EAP-TLS, PEAP등의 인증 프로토콜을 지원한다.

 

 

 

IAS 구축하기

우선 RADIUS server에서 사용할 Active Directory를 서버 구성 마법사를 이용하여 설치한다.

 

서버 구성 마법사 시작화면

 

네트워크 설정부분

 

구성옵션 화면. 첫 번째 서버의 일반 구성을 선택한다.

 

Active Directory 도메인이름. AD에서 사용할 도메인 이름을 지정한다.

 

NetBIOS 이름 선택부분. 기본설정으로 다음을 누른다.

 

DNS 쿼리 전달. Window2003에서 구성한 DNS server가 처리하지 못

하는 쿼리를 전달할 server를 지정하는 부분이다.

 

DNS Query 전달 설정이 끝난 뒤에 다음 버튼을 누르면 다음과 같은

화면이 나온다. 확인을 눌러 진행하도록 한다.

 

다음화면은 설치를 위한 CD를 삽입하고 확인버튼을 누르면 된다.

확인을 누르면 설치가 진행되고 구성이 완료되면 시스템이 재 시작된다.

 

재부팅을 완료한 뒤에 활성화 되는 창이다.

 

서버의 구성이 완료된 화면이다. 확인해 보면 DNS 와 DHCP server가

설정된 걸 확인할 수 있다.


 

AD 설치가 완료 되었다면 인증서 다운로드를 위한 IIS server 를 구동 시킨다.

서버 구성 마법사를 이용하여 설치하도록 한다.

 

서버 구성 마법사. IIS 설치화면

 

프레임워크를 설정하는 화면이다. ASP.NET을 설정한 뒤에 다음을 눌러

진행한다.

 

IIS 설치 완료 화면이다.

 

다음은 인터넷 인증서비스를 구동 시켜준다.

 

프로그램 추가/제거 -> window 구성요소 추가/제거 -> 네트워킹 서비스 -> 인터넷인증서비스

 


 

다음은 Window 구성요소 추가/제거 창에서 인증서 서비스를 선택하여 설정해 준다.

 

인증서 서비스를 선택하면 위와 같은 메시지가 보이는데 예를 눌러 계속

진행하도록 한다.

 

CA의 공통 이름부분에 원하는 이름을 적고 다음을 눌러 진행한다.

 

구성 요소 설정 중 IIS 가 설정되어 있지 않다면 다음과 같은 메시지가 출력된다.

확인을 누른 뒤 설치를 진행한다.

 


 

다음으로 Active Directory 사용자와 그룹을 구성해 준다.

 

사용자와 그룹 메뉴를 선택하여 사용자와 그룹을 추가해 준다.

 

Client1이라는 사용자와 wireless라고 하는 그룹을 추가하였다.

 

생성한 그룹에 사용자를 추가해준다.

위와 같은 방법으로 Domain user, account operators 라고 하는 그룹에도

추가해준다.

 


 

다음은 인터넷 정보 서비스 (IIS) 관리 창을 확인한다.

 

위의 순서대로 설치를 했다면 Active Server Pages가 허용됨으로 설정 되어

있겠지만 그렇지 않은 경우에는 금지됨으로 되어 있다.

 

금지됨으로 설정되어 있는 부분을 허용됨으로 변경 시켜준다.

 


 

인터넷 인증 서비스 RADIUS Client를 설정하고 새로운 정책을 설정한다.

 

새 RADIUS 클라이언트를 선택하여 클라이언트를 등록한다.

여기서 말하는 클라이언트는 Access Point를 의미한다.

 

이름과 IP를 지정하는 부분이다. 이름은 상관없지만 IP는 AP의 IP를 적어준다.

 

공급업체와 공유암호를 지정한다.

 

IP와 공유암호는 AP와 RADIUS가 일치해야 한다.

 

Linksys라고 하는 사용자가 추가된 것을 확인할 수 있다.

 

새 원격 엑세스 정책 메뉴를 선택하여 정책을 만들도록 한다.

 

정책 이름을 만들고 다음을 눌러 진행한다.

 

무선 정책으로 설정한다.

 

추가했던 wireless 그룹을 추가해 준다.

 

인증서를 사용하는 인증방식 (TLS)를 선택해 준다.

 

설정을 마치면 추가한 정책이 보인다. 추가한 정책에 속성 창에 있는 정책을

확인하고 PEAP로 설정되어 있다면 변경해 주도록 한다.

 

속성 -> 프로필 편집 -> 인증 -> EAP 방법

 


 

MMC를 이용하여 인증서를 추가하고 로컬컴퓨터에 사용자 인증서를 확인한다.

 

로컬컴퓨터에 인증서와 루트인증서가 있는지 확인한다.

 


 

Window 2003 Server에 설정이 끝났다면 클라이언트(window XP)에 설정을 하도록 한다.

 

우선 컴퓨터 이름과 소속그룹 도메인을 지정하도록 한다.

 

도메인 명은 RADIUS Server에서 지정한 이름과 동일하게 설정한다.

설정이 끝나면 시스템 재 시작 후에 설정 정보가 적용된다.

도메인 설정이 완료되면 로그오프 후 해당 도메인 user 계정으로 로그온 한다.

 

RADIUS Server 에 AD user 계정인 client1로 접속한다.

 

로그온이 끝나면 ping 을 보내어 응답을 확인한다.

 

192.168.1.254/certsrv 라는 주소로 접속하여 인증서를 설치한다.

 

가장 상위 항목인 인증서와 CA인증서를 설치한다.

 

위와 같이 웹 페이지에 접속할 수 없는 경우에는 certsrv에 접근할 수 있도록

웹 공유 설정을 해줘야 한다.

 

설정이 완료하면 접속을 시도한다.

 

 

실습을 진행하는 동안 네트워크 상태는 NAT 로 설정하고, 접속시도 시에는 window 2003은 Bridged, window XP는 무선 랜 카드를 이용하여 접속을 시도한다. (XP의 유선 네트워크 인터페이스는 비활성화 시킨다.)

 

802.1x

  • 유선랜 보안 인증 방식인 802.1x를 WEB과 mac filter 방식의 802.11i 무선랜 인증 방식의 한계를 보완하기 위해서 사용
  • PAP (Password Authentication Protocol)
  • User_ID(Peer_ID)와 Password를 기반으로 한 인증방식
  • CHAP (Challenge Hand Authentication Protocol)
  • Password의 노출이 있는 PAP의 단점을 보완한 인증방식
  • EAP (Extensible Authentication Protocol)
  • LEAP, EAP-TLS, EAP-TTLS, EAP-MS-CHAP-v2등의 확장형 인증 프로토콜
  • 유선상에서 사용하던 인증 방식을 무선에 접목 시킨 방식이다.
  • AP를 서버개념으로 두고 인증 서버를 따로 두는 개념.

802.1x Authentication Protocol

  • PAP (Password Authentication Protocol)
    • Point -to-Point Protocol(PPP)에서 사용하는 인증 프로토콜
    • 가장 일반적인 인증 방식으로 사용자의 ID(peer_ID)와 Password를 이용하여 사용자를 인증하는 방식
    • 대표적인 서비스는 Telnet 이다

  • CHAP (Challenge Handshake Authentication Protocol)
    • PAP의 단점 (ID, Password 노출)을 보안한 인증 프로토콜
    • Password 정보를 평문으로 보내지 않고, server에서 전송한 Challenge Value (CV)를 이용한 ID값과 MD5 Hash value를 이용한 Password를 생성하여 전송함
    • 만약 사용자가 늘어나면 AP의 관리가 힘들고 과부하와 용량의 한계가 생긴다.
    • 그래서 생긴 개념이 RADIUS (Remote Authentication Dial-In User Service) 이다.

    • 참고 : RADIUS (Remote Authentication Dial-In User Service) -인증만 하는 인증 서버
      • NAS(Network Access Server)에 사용자가 접속 요청을 하는 경우 요청된 시스템이나 사용자 를 인증하고 접근 권한을 부여하는 클라이언터/서버 프로토콜
      • 무선랜에서는 NAS 역할을 하는 AP와 인증서버간에 수행됨

  • EAP
    • 다양한 인증 방식 (MD5-challenge, One-Time password, token card등)을 지원 할 수 있는 확 장형 인증 프로토콜
    • Port access Protocol의 약자.
    • EAP는 AP가 Client에게 받은 인증 프로토콜을 RADIUS에게 전달해 주는 역할을 한다.
    • 유선 망에서 사용하는 사용자 인증 프로토콜이지만 무선 망에서 사용자 인증 시에도 사용됨
    • 사용자와 인증서버간 상호인증 기능이 없다는 단점이 있다.
    • EAP-TLS, EAP-TTLS, PEAP, EAP-FAST(PSK를 사용)등으로 보완

  • EAP-TLS(Transport Layer Security)
    • 인증서를 기반으로 하는 클라이언트와 서버의 상호 인증방식
    • 클라이언트가 RADIUS를 못믿기 때문에(Log EAP Attack 등) RADIUS를 인증하는 인증서 기반의 SSL과 동일한 방식의 TLS를 만들게 되있다.
    • TLS는 SSL 3.0 부터 파생된 것으로 기술적으로는 SSL과 같다. 차이점은 SSL은 서버를 인증하고 TLS는 서버와 클라이언트 상호간 인증서를 가지고 인증을 한다.
    • 서버측에서 클라이언트를 인증 할 수 있음
    • 클라이언트는 유효한 서버인지 인증할 수 있음
    • 데이터를 암호화하는 session key를 생성할 수 있음
    • 서버와 클라이언트 모두 인증서 필요
    • 이 방식은 보안상 취약하지 않다 (무결성하다). 하지만 관리상 불편하다.

    • 동작방식

*참고..

TMS : station - AP구간에서 PTK를 만들기 위한 암호화 키

TEK : AP - RADIUS 구간에서 PTK를 만들기 위한 암호화 키

    • 자세한 동작 방식
      • <------인증서, TLS레코드------
        • 이때 station에서는 PSK가 생긴다.
        • 이 PSK를 PRF함수로 돌리면 TMS와 TEK가 만들어진다.
        • TMS를 이용해서 MSK를 만든다.
        • MSK는 64byte로써 앞의 32byte는 PMK가 된다.
      • -------인증서,PSK(Premaster Secret Key), TLS레코드 ----->
        • 이때 RADIUS에서도 PSK가 생긴다.
        • 이 PSK를 PRF함수로 돌려 TMS와 TEK를 만든다.
        • TMS를 이용해서 MSK를 만든다.
      • AP<-----EAP Success-----RADIUS
        • RADIUS에서 AAA-Key(64byte)를 AP에 전달한다.
      • Station<------EAP Success ----AP
        • MSK의 64byte중 앞의 32byte인 PMK를 Station에게 준다.
      • 이작업이 끝나면 PMK 값이 공유가 된다.

*참고

TK : 무선 암호화 TEMP KEY (unicast용)

KEK : 무선 암호화 TEMP KEY (broadcast용)

KCK : 키를 재생산함 (MIC KEY가 된다.)

    • 이후 4Way Hand Shaking
      • Station <-----Anonce----- AP
        • Station은 PMK + Anonce + Snonce + Station`s MAC + AP`s MAC 이 값을 PRF함수로 돌린다.
        • 이 결과값이 PTK이다.
        • 이 PTK를 가지고 TK, KEK, KCK 를 만든다.
      • Station -----Snonce------> AP
        • AP 역시 위와 같은 작업을 수행한다.
      • Station <-------MIC------- AP
      • Station -------MIC-------> AP
        • MSK와 PMK가 같은지 확인하고 세션이 맺어진다.

  • EAP-TTLS
    • EAP-TLS와 비슷한 방식이지만 터널을 뚫고 그 안에서 인증 관련 패킷을 주고받는다.
 
WPA2-PSK Crack은 아쉽게 캡쳐 사진들을 찍지 않아서 명령어만 올려드립니다.

다른 무선 해킹 기법을 해보신 분들은 어떤 내용인지 이해되실거라 생각됩니다.

아쉽지만 명령어만 올려드리는 점 양해 부탁드립니다.

1. airmon-ng start wlan0

모니터링 모드 시작

 

2. airodump-ng mon0

덤프 시작

여기에서 AP와 Station의 상태를 확인할 수 있다.

 

3. airodump-ng -w name --bssid APMAC -c channelNUM mon0

덤프와 함께 해당 AP 트래픽 저장

 

4. aireplay-ng --deauth 1 -a APMAC -c ClientMAC mon0

타겟 AP에 붙은 하나의 스테이션 접속 해제

 

5. 그럼 재접속과 동시에 3번 창에서 WPA handshake가 뜬다.

그리고 dump종료

 

6. aircrack-ng 파일이름.cap -w ./사전파일

크랙 시작

 

7. 크랙되면 화면에 뜸

 

WPA2의 암호화 알고리즘은
CCMP(Counter Mode with Cipher Block Chaining Message Authentication Code Protocol) 이다.

Encryption Algoritm

 

  • 목표 : AP (공유기)가 WPA1 로 암호화되어 있다면 WPA1 Crack 기법으로 암호 알아내기.
  • 방법 : AP와 통신하는 컴퓨터 중 하나를 Deauthentication Attack으로 연결을 끊은 후 해당 컴퓨터가 다시 연결을 시도하는 과정(Handshake)의 트래픽을 스니핑하여 딕셔너리 기법으로 암호를 알아냄.

 

WPA1 Crack 시작!!

유선 인터페이스 카드가 있다면 셧다운 시킨다.

무선 인터페이스 카드는 활성화 시킨다.

 

무선 인터페이스 카드를 모니터링 모드로 변경한다

 

WPA 크랙을 하기 위해 정보수집을 해야 한다.

 

 

정보수집에 필요한 항목은 SSID와 BSSID, 채널, Encrypt 타입이다.

kismet 유틸리티로 확인하면 된다.

 

 

채널을 kismet에서 확인한 채널로 변경한다.

 

 

iwconfig 명령으로 모니터링 모드인지 확인하자

 

 

Backtrack 시스템에서 export 명령으로 BSSID, USB 무선 인터페이스의

MAC 주소 값을 변수화 하여 저장하자!

 

 

Wireshark를 실행하여 희생자를 물색하자!

 

 

Wireshark 상에서 BSSID를 필터링 하여 패킷을 잡은 후 AP와 통신중인 희생자의

MAC 주소를 확인한다.

 

 

확인된 희생자의 MAC 주소를 export명령을 이용하여 시스템에 변수화 하여 저장한다.

 

 

 

airodump-ng의 help 화면이다. 참고!

 

 

airodump-ng 유틸리티를 사용하여 TKIP로 된 BSSID의 패킷을 모니터링 한다.

 

 

패킷을 수집하는 화면이다.

 

 

airodump-ng를 사용하여 패킷을 수집하는 동안 aireplay-ng를 이용하여 희생자 시스템으로 Deauthentication Attack을 진행한다.

 

 

Deauthentication Attack을 하고 나면 희생자의 무선 인터페이스가

AP와 연결이 종료 되었을 것이다.

이 때 airodump-ng 상에서는 WPA handshake 과정이 일어난 것을 확인 할 수 있다.

 

 

airodump-ng 를 통해 WPA.pcap-02.cap 파일이 생성 되었다.

ls 명령으로 확인하자!!!

 

 

이제 사전파일을 구해야 한다.

Bruteforcing Attack을 하기 위해서는 훌륭한 사전파일이 필요하다.

사전파일이 없다면 위처럼 cat 명령을 사용하여 사전파일을 만들자!

 

 

cowpatty 유틸리티의 help 화면이다.

 

 

cowpatty 툴을 사용하여 Brute force Attack을 진행하면 사전파일에 WPA 암호와 같은 단어가 있다면 WPA 크랙이 성공할 것이다.

 

 

WPA1 - TKIP(Temporal Key Integrity Protocol)

 

  • WPA는 Wifi Protected Access의 약자
  • Temporal key Intergrity Protocol의 약자로 고정된 공유 키를 사용하는 WEP의 취약점(IV collision)을 해결하기 위하여 개발.
  • WEP과 유사한 프레임을 갖고 있지만 IV(Initialization Vector)영역에 Extended ivduddur이 추가되었음
  • Michael이라고 불리는 MIC(Message Integrity Check) 영역이 추가되었음
  • STA 와 AP간 임시 비밀 공유키(TK : Temporal Key)를 동적으로 생성하여 전송되는 패킷들을 RC4방식으로 암호화 함
  • EAP 사용자 인증 과정에서 서로 공유함

TKIP Frame 1

TKIP Frame 2

 

 

ID : 무선AP의 1, 2, 3, 4 값(24비트)

IV(WEP Key) : 무선AP에서 설정 부분에 임의로 사용자가 생성할 수 있는 무작위 값 4개(40비트 또는 104비트)

ID + WEP Key = WEP Seed 값이 생성, 생성된 WEP Seed 값을 사용하여 암호화 함

우리가 WEP Crack 할 때는 패킷 프레임에서 ID값(24비트)을 알아내고 40비트의 WEP Key값을 Brute forcing을 통해

결국 WEP Seed 값을 구할 수 있게 된다.

 

P1 : Plane Text 1

P2 : Plane Text 2

C1 : Cipher Text 1

C2 : Cipher Text 2

Key1 : Pre-Shared Key 1

Key2 : Pre-Shared Key 2

 

P1 XOR Key1 = C1

P2 XOR Key1 = C2

P1 XOR P2 = (C1 XOR Key1) XOR (C2 XOR Key1)

P1 XOR P2 = (C1 XOR C2) XOR (Key1 XOR Key1)

Key1 XOR Key1 = 0

P1 XOR P2 = C1 XOR C2

P1 = (C1 XOR C2) XOR P2

※ 이 경우 P1 값과 P2 값을 모르기 때문에 C1과 C2에 Brute forcing Attack을 통해 P1 값을 알아내어 P2 값을 구한다.

 

ex)

C1 = 4 XOR □

C2 = 5 XOR □

□ = (4 XOR □ XOR 5 XOR □)

여기서 □ 에 어떠한 값을 대입해도 이 공식은 성립하게 된다.

 

P1 = C1 XOR Key1

 

WEP Key Crack 툴의 경우 이러한 원리에 의해 64비트 또는 128비트 전체를 Brute forcing 하는 것 보다 24비트를 뺀

64 - 24 = 40비트 또는 128 - 24 = 104비트 만을 Brute forcing 공격 하는 것이 시간상으로 효율적이다.

 

SONY PlayStation3의 그래픽 연산 처리장치인 SPU 또는 일반 PC의 그래픽카드의 연산처리장치 GPU가 병렬처리 연산을 CPU보다 월등히 빨리 한다.

 

+ Recent posts