• 목표 : 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

 

 
  • 목표 : 무선 암호화 방식 중 WEP 으로 암호화 되어있는 AP를 크랙
  • 방법 : 공격자는 무선AP에 설정된 WEP 보안설정 Key 값을 알아내어 알아낸 Key값을 가지고 무선AP에 접속을 한다.

 

WEP Crack 공격 시작!

무선 인터페이스를 활성화 시킨다.

 

Kismet을 실행시킨다.

 

크랙할 AP로 들어가서 SSID, BBSID, channel 등을 확인한다.

 

Kismet으로 인해 바뀐 모드를 다시 managed모드로 바꾸고

인터페이스의 MAC 주소를 확인한다.

 

편한 작업을 위해 export 명령어를 이용해

각 변수를 지정한다.

 

AP의 채널과 동일하게 채널을 변경한다.

 

Arieplay-ng를 이용해 -1 옵션으로 인증을 fake하고 -a 옵션, -h 옵션 (Source MAC) 을 지정한다.

 

-5 옵션을 이용하여 keystream 값을 생성한다.

그 후 생성시킨 임의의 keystream값을 사용할 것인지를 물으면 y를 입력해

Keystream 값을 사용한다.

 

그럼 replay_src-1108-033558.cap 이라는 이름의 파일이 저장된다.

이것이 생성된 패킷이다.

그리고 AP로 fragmented packet을 보내어 keystream 값이 일치하는지 확인하고 XOR 계산 공식을 통해 keystream 값을 fragment-1108-033613.xor 이라는 이름의 파일로 저장된다

 

Packetforge-ng 툴을 이용해 ARP 패킷을 위조하여 만든다.

Packetforge-ng -0 -a $BSSID -h 255.255.255.255 -l 255.255.255.255 -y fragment-1108-033613.xor

-w request Wrote packet to request

 

일단 만들어낸 패킷은 request 파일로 저장된다.

 

Airodump-ng 의 -c 옵션을 사용해 11번 채널을 대상으로 --ivs 옵션과 -w 옵션을 사용해

캡쳐한 ivs 파일을 추출한다.

 

이렇게 data 패킷이 안잡히는 경우가 있다.

 

airodump-ng 를 띄워논 상태에서 data 패킷을 잡기 위해 aireplay-ng를 이용하여 패킷 파일로 부터 request 에 대한 응답 값을 뽑아낸다.

 

다시 airodump-ng 화면을 보면 data 패킷이 추출되고 있다면 key 값을 크랙하는데 성공한 것이고 data 패킷이 추출되지 않다면

실패한 상황이므로 다시 크랙을 시도해야 한다.

 

생성된 관련 파일을 다 삭제하고 다시 시도한다.

Aireplay-ng -1 번 옵션부터 다시 하면 된다.

 

혹시 데이터 캡쳐까지 성공해서 ivs 확장자를 가진 파일이 생성되었다면 ivs 파일도 삭제 해야 한다.

 

이 명령을 실행하면 아래 키 값 추출과정 화면이 나타난다.

단 aircrack-ng 를 실행하기 전 위의 aireplay-ng와 airod

ump-ng가 실행되고 있어야 한다.

 

VM 상에서 Backtrack을 실행해서 aircrack-ng를 실행한다면 위 과정이 버벅댈 수 있다.

USB용 Backtrack을 만들어 실제 시스템 상에서 실행하면 보다 빠르게 값을 추출할 수 있다.

 

만약 Backtrack이 버벅 댄다면 aircrack-ng를 종료 후 다시 실행하도록 하자!

결국 data 패킷을 이용하여 데이터의 암호화를 비교 한 다음 키 값을 찾아낸다.

KEY FOUND 옆의 헥스코드를 아스키코드로 바꾸면 그것이 비번이 된다.

 

혹시 aircrack-ng 가 정상 종료 되지 않는다면 강제로 프로세스ID를 찾아 종료해 줄 수도 있다.

 

 

참고..

카페라떼 공격 : AP가 꺼져 있는 상태에서 AP의 WEP Key를 크랙하는 공격

카페라떼 차 한잔 하는 시간에 이루어지는 공격이라는 뜻에서 붙여진 이름

 

대응책

  • Brute-forcing Attack을 차단하는 가장 효과적이고 간단한 방법은 104-bit key를 사용하는 것이다. 하지만 이 방법도 완벽한 대응책은 아니라는 것이 문제이다.
  • Brute-forcing 공격은 공격자 입장에서는 충분한 시간을 투자할 경우 성공할 수 있는 공격이다.

결론.. 공유기를 사용할 때는 안전한 암호화 방식을 사용하자!!

 

 

암호화 알고리즘의 취약점

무결성 체크를 위해서 사용되는 CRC-32의 경우 암호학적으로 안전한 인증 코드가 아님

  • CRC는 데이터에 포함된 에러를 수정하기 위해 고안되었으며 데이터나 체크섬 자체에 대한 공격을 방어하기 위한 것은 아니다
  • Checksum 결과를 반영하지 않은 상태에서 암호문의 내용을 변조 할 수 있다.

Weak Key 취약점

  • WEP은 키의 다양성을 부여하기 위해서 키 값이 3byte 크기의 IV(Initialization Vector)값을 첨부함
  • IV의 크기가 작아 키 값이 중복 사용될 수 있음

요약하면...

  • IV와 Key ID 값이 평문으로 노출된다.
  • Wep Header 의 무결성 정보를 보호할 방법이 없다.
  • Key Space 가 좁다.

 

 

WEP 이란??

Wired Equivalent Privacy의 약자로 무선 네트워크 상에서 송수신되는 데이터의 보안을 위해 도입된 기본 암호화 방식

  • 전송되는 MAC프레임들을 40비트 길이의 WEP 공유 비밀키와 임의로 선택되는 24비트의 Initialization Vector (IV)로 조합된 총 64비트의 키를 이용한 RC4 Stream 방식으로 암호화한다.
  • 선택된 공유 키의 Key ID와 IV값을 평문으로 상대방에게 알려주어야 하기 때문에 WEP키가 추출될 수 있다는 약점이 있다.

WEP`s Encryption Algorithm

  • Payload를 무결성 검사를위해 CRC로 무결성한 값을 ICV에 저장
  • Payload:: 통신시스템의 패킷이나 프레임에서 메시지 데이터를 담아 전달하는 부분을, 헤더와 구분하여 지칭하는 것이다.

참고 WEP Frame

 

 

무선랜을 꽂은 후...

VM - Removable Devices - USB Devices 에 장치명이 체크 되어 있는지 확인.

 

장치를 활성화 시켜준다.

 

정보를 확인한다.

 

랜카드의 모드를 결정할 수 있는데 방법은 위와 같다.

monitor mode는 모니터링만 할 수 있는 모드이고 managed모드는 접속해서 데이터를 주고받을 수 있는 모드이다.

 

채널을 바꾸려면 iwconfig raubs0 channel 1 이런식으로 바꾸면 된다.

 

만약 kismet을 사용하고 싶다면 칩셋등 몇가지 설정을 해야한다.

/usr/local/etc/kismet.conf 이곳에서

27번째줄에 source==none.none.addme 를 source=rt2500.rausb0.addme 로 변경해야함(addme는 아무거나 넣어도 됨)

실습에선 랜모듈이 rt2500이기 때문에 rt2500으로 변경한 것이고 rausb0는 인터페이스다.

 

모드를 managed 로 변경.

 

Wlassistant를 실행한다.

연결 할 수 있는 ESSID 확인.

 

Wireshark 로 패킷 확인.

 

Discovery Basics

  • AP 의 정보를 알아내는 것이 주 목적
  • ESSID, BSSIS, Channel, Bit Rate, Encryption Algorithm 등.
  • 이러한 정보를 가져야만 AP에 접속할 수 있다.
  • Active Scanning 방식과 Passive Scanning 방식 두가지가 있다.
    • Active Scanning
      • Scan 에 필요한 데이터를 Station이 AP에 직접 요청하는 방법을 이용한다.
      • 2계층에서 사용 가능하고 보편적으로 강력하다.
      • 어떠한 packet을 보내고 나서 나오는 응답으로 알아낸다.
    • Passive Scanning
      • 동일 주파수 대역을 사용하는 패킷을 모니터링 하는 방법을 이용해 Scanning을 수행
      • 무선상에서는 Passive 가 강력.
      • 여러 채널의 Frequency hooking을 통해 packet을 모니터링 하는 방법으로 scanning을 수행
      • 우리나라에서 사용하는 채널 : 1 ~ 13번
        • 범위 중복되지 않는 주파수 : 총 3개

Active Scanning 방식

  • Station 이 Probe Request 패킷을 전송
    • AP 는 Probe Request 패킷에 대한 응답으로 Probe Response 를 보내게 되며 Station 은 이 패킷을 받아 AP 의 정보를 확인

  • Probe Request 전송은 Directed 방식과 Broadcast 방식이 있음.
    • Directed Probe Request
      • 찾고자 하는 AP의 SSID를 미리 알고 있는 경우에 사용됨
        • Probe request packet의 SSID 필드에 특정 값을 입력 후 전송
      • 무선 LAN CARD에 설정하여 부팅하자마자 바로 접속이 가능하다.

    • Broadcast Probe Request
      • 가장 흔하게 사용되며 주변에 있는 모든 AP를 대상으로 함
        • Probe request packet의 SSID 필드에 NULL값을 입력 후 전송
        • Destination : FF:FF:FF:FF:FF:FF
        • BSSID : FF:FF:FF:FF:FF:FF

Passive Scanning 방식

  • Frequency hooking을 통해 적법한 Station 과 AP 가 주고받는 패킷 중 인증과정을 거치지 않는 패킷을 스니핑 하는 방법
    • 인증을 거쳐도 스니핑은 가능하다.
  • Active 방식보다 강력하다.
  • 네트워크 트래픽을 sniffing 하는 형태로 스캔을 수행함
    • NIC 에서 "모니터 모드"를 지원해야 사용 가능
  • "모니터 모드" 란 유선 네트워크에서의 Promiscuous Mode 와 유사한 기능을 의미함
  • Channel Hopping 을 통해 모든 채널의 트래픽을 Sniffing 할 수 있음
    • 모든 패킷을 Sniffing하므로 더 많은 정보를 수집할 수 있다.
  • Passive Scanning 은 폐쇄형 네트워크 SSID 를 알 수 있다. (이름없는 네트워크)
  • 무선 공유기 및 AP는 Beacon(AP가 가진 정보 : BSSID, ) frame 을 무조건 발생시킨다. (이 취약점 이용)

Beacon Frame 수집

  • Beacon Frame 이란?
    • Ap 가 주기적으로 발생시키는 패킷
      • 기본적으로 1초당 10회의 발생주기를 가짐
    • 패킷에 대한 암호화를 수행하지 않음
    • Beacon Frame 에는 이름, 주소, 지원속도 등의 정보 포함
    • 보안상 매우 취약. 발생을 안 시킬 수 없기 때문에 보안상 약점이 됨.
  • 특성상 Passive Scanning 방법에 가깝지만 Active Scanning 에서도 Beacon Frame 수집을 통한 방법을 사용

Scanning Countermeasures 스캐닝 대응책

  • Active Scanning
    • Beacon Frame 과 Probe response 패킷을 이용하므로 두 패킷을 차단하는 방법으로 간단하게 회피 가능.
    • Beacon Frame 의 경우 통신에 필수적이므로 Beacon Frame 의 정보 중 SSID 필드를 NULL 값으로 대체함.

  • Passive Scanning
    • 확실한 대응책이 없으므로 위험성을 낮추는 방법을 주로 사용
    • 무선 AP의 출력신호를 감소시켜 물리적으로 근접한 위치에서만 접근 가능하도록 설정
      • 감도 = 신호 이기에 출력신호를 감소시키면 감도가 떨어진다.

 

사용자 인증 해제 기법 : 타켓의 SSID를 확인하기 위한 사전 공격방법.

  • Wireless Network 의 SSID를 쉽게 확인할 수 있는 공격 방법
  • Legitimate User 에게 Deauthentication 프레임을 전달하여 Network와 연결이 끊어지게 한 후, Legitimate User의 re-association Request를 탐지하여 SSID를 확인함
  • AP의 보안설정과는 관계없이 Management Frame은 암호화 되지 않고 인증 되어지지 않는다는 취약점을 이용함
  • 암호화가 안되는 이유는 접속이 이루어지기 전단계이기 때문에 매커니즘을 넣을 수 없다.

 

정리하자면 Deauthenticating은 Association을 끊고 클라이언트가 AP에게 다시 세션을 맺으려고 보내는 re-association Request를 보낼 때 sniff해서 SSID 를 보기 위한 사전 작업.

​4Way Hand Shake

  • 무선상에서 4Way Hand Shake는 암호화 동기화 하는 과정
  • Diffie hellman과 유사

​deauthentication user attack 실습
  • 목표 : Client 가 AP 에 접속되어 있는 걸 중간에 끼어 들어 강제로 접속을 끊는 것.
  • 방법 : Kismet으로 AP의 정보를 Information gathering 한 후 알아온 정보 (BSSID, channel 등) 를 기반으로 Client의 접속을 끊음

 

랜카드를 모니터모드로 바꾼다. (안바꿔도 kismet을 실행하면 자동으로 바뀐다.)

 

Kismet을 실행한다.

 

* kismet 에 들어간 모습

단축키 S - C로 해당 ESSID로 들어갈 수 있고 나오는건 q 프로그램종료는 Q이다. 타켓이 접속되있을 것으로 보이는 AP로 들어간다.

 

bssid(AP MAC) 을 확인한다.

 

Iwconfig mon channel '1~11' 을 이용해서 AP와 채널을 맞춘 후 공격을 시작한다.

 

wireshark 를 실행한다.

 

wlan.bssid == 해당 BSSID 로 필터링해서 해당 패킷만 검색한다.

검색된 것 중 접속 되 있는 시스템의 ip주소를 찾아 MAC 주소를 확인한다.

해당 시스템 MAC을 확인했으면

Aireplay-ng -0 100 -a AP MAC -c Client MAC 내 인터페이스

를 입력해 Deauthentication 프레임을 발생시킨다.

 

*참고..

-0(숫자) 옵션 : Deassociation packet

100 : 카운트 할 숫자. 자기가 원하는 만큼 지정 가능.

-a : AP 의 BSSID 값

-c : 상대방의 MAC 주소

- export 로 지정해서 해 줘도 됨. (변수지정)

예)

#export BSSID=00:00:00:00:00:00

#export VICTIM=11:11:11:11:11:11

#aireplay-ng -0 10 -a $BSSID -c $VICTIM rausb0

 

 

이렇게 되면 타겟 시스템은 게속 연결이 끊기게 된다.

방어
  • AP에서 Deauthentication 패킷을 발생 시키지 못하게 하는 방법 밖에 없다.
  • Client는 Deauthentication 패킷을 무시하게끔 하는 방법밖에 없다.
  • Deauthentication packet을 차단하거나 거부할 수 있는 설정은 없기 때문에 기본적인 설정으로는 막을 수 없다.
  • 일부 제품에서는 패치 된 드라이버를 설치하여 deauthentication packet이나 disassociation packet을 무시 하도록 설정 할 수 있다. 하지만 제공 안하는 곳이 더 많다.
  • Deauthentication 패킷도 정상 패킷이기 때문에 제공하지 않아도 어쩔 수 없다. 정상 패킷이기 때문에 변조 됐어도 알 수 없다.
  • Wireless IDS는 공격을 탐지 할 수는 있지만 공격을 멈추거나 차단할 수는 없다.
    • 관리자에게 탐지 여부를 알려줌

+ Recent posts