Pentesting Wifi
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights 해킹의 스릴과 도전에 대해 깊이 있는 콘텐츠에 참여하세요.
Real-Time Hack News 실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계의 최신 정보를 유지하세요.
Latest Announcements 새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 유지하세요.
Join us on Discord and start collaborating with top hackers today!
도커로 airgeddon 실행하기
From: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux
Evil Twin, KARMA 및 Known Beacons 공격을 수행할 수 있으며, 이후 피싱 템플릿을 사용하여 네트워크 실제 비밀번호를 얻거나 소셜 네트워크 자격 증명을 캡처할 수 있습니다.
이 도구는 WPS/WEP/WPA-PSK 공격을 자동화합니다. 자동으로 다음을 수행합니다:
인터페이스를 모니터 모드로 설정
가능한 네트워크 스캔 - 피해자 선택 가능
WEP인 경우 - WEP 공격 시작
WPA-PSK인 경우
WPS인 경우: 픽시 더스트 공격 및 브루트포스 공격 (브루트포스 공격은 시간이 오래 걸릴 수 있으니 주의하세요). 널 PIN 또는 데이터베이스/생성된 PIN을 시도하지 않습니다.
AP에서 PMKID를 캡처하여 크랙 시도
AP의 클라이언트를 비인증화하여 핸드쉐이크 캡처 시도
PMKID 또는 핸드쉐이크가 있을 경우, 상위 5000개의 비밀번호를 사용하여 브루트포스 시도.
DoS
비인증화/비연결 -- 모든 사람(또는 특정 ESSID/클라이언트) 연결 끊기
랜덤 가짜 AP -- 네트워크 숨기기, 스캐너 충돌 가능
AP 과부하 -- AP를 죽이려고 시도 (보통 그다지 유용하지 않음)
WIDS -- IDS와 상호작용
TKIP, EAPOL -- 일부 AP에 대한 DoS 공격
크래킹
WEP 크랙 (여러 도구 및 방법)
WPA-PSK
WPS 핀 "브루트포스"
WPA PMKID 브루트포스
[DoS +] WPA 핸드쉐이크 캡처 + 크래킹
WPA-MGT
사용자 이름 캡처
브루트포스 자격 증명
이상한 쌍둥이 (DoS 유무에 관계없이)
오픈 이상한 쌍둥이 [+ DoS] -- 캡티브 포털 자격 증명 캡처 및/또는 LAN 공격 수행에 유용
WPA-PSK 이상한 쌍둥이 -- 비밀번호를 알고 있다면 네트워크 공격에 유용
WPA-MGT -- 회사 자격 증명 캡처에 유용
KARMA, MANA, Loud MANA, Known beacon
+ 오픈 -- 캡티브 포털 자격 증명 캡처 및/또는 LAN 공격 수행에 유용
+ WPA -- WPA 핸드쉐이크 캡처에 유용
설명은 여기:.
비인증화 공격은 Wi-Fi 해킹에서 널리 사용되는 방법으로, "관리" 프레임을 위조하여 장치를 네트워크에서 강제로 연결 끊는 방식입니다. 이 암호화되지 않은 패킷은 클라이언트가 합법적인 네트워크에서 온 것처럼 속여, 공격자가 크랙 목적으로 WPA 핸드쉐이크를 수집하거나 네트워크 연결을 지속적으로 방해할 수 있게 합니다. 이 간단한 전술은 널리 사용되며 네트워크 보안에 중대한 영향을 미칩니다.
Aireplay-ng를 사용한 비인증화
-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(mode "d")로 수행할 수 있습니다:
여기 에서.
공격 모드 b: 비콘 플러딩
클라이언트에 가짜 AP를 표시하기 위해 비콘 프레임을 전송합니다. 이로 인해 네트워크 스캐너와 드라이버가 충돌할 수 있습니다!
ATTACK MODE a: 인증 서비스 거부
범위 내의 모든 접근 지점(AP)에 인증 프레임을 전송하면 이러한 AP가 과부하될 수 있으며, 특히 많은 클라이언트가 관련된 경우 더욱 그렇습니다. 이러한 강한 트래픽은 시스템 불안정을 초래하여 일부 AP가 멈추거나 심지어 재설정될 수 있습니다.
ATTACK MODE p: SSID Probing and Bruteforcing
Access Point (AP) 탐색은 SSID가 제대로 공개되었는지 확인하고 AP의 범위를 확인합니다. 이 기술은 숨겨진 SSID를 bruteforcing하는 것과 결합되어 숨겨진 네트워크를 식별하고 접근하는 데 도움이 됩니다.
ATTACK MODE m: Michael Countermeasures Exploitation
무작위 또는 중복 패킷을 다양한 QoS 큐에 전송하면 TKIP APs에서 Michael Countermeasures가 트리거되어 AP가 1분 동안 중단될 수 있습니다. 이 방법은 효율적인 DoS (서비스 거부) 공격 전술입니다.
ATTACK MODE e: EAPOL Start 및 Logoff 패킷 주입
AP에 EAPOL Start 프레임을 플러딩하면 가짜 세션이 생성되어 AP를 압도하고 정당한 클라이언트를 차단합니다. 또는 가짜 EAPOL Logoff 메시지를 주입하면 클라이언트를 강제로 연결 해제할 수 있으며, 두 방법 모두 네트워크 서비스를 효과적으로 방해합니다.
ATTACK MODE s: IEEE 802.11s 메시 네트워크에 대한 공격
메시 네트워크에서 링크 관리 및 라우팅에 대한 다양한 공격.
ATTACK MODE w: WIDS 혼란
클라이언트를 여러 WDS 노드 또는 가짜 악성 AP에 교차 연결하면 침입 탐지 및 방지 시스템을 조작하여 혼란과 잠재적인 시스템 남용을 초래할 수 있습니다.
공격 모드 f: 패킷 퍼저
다양한 패킷 소스와 패킷 조작을 위한 포괄적인 수정자 세트를 갖춘 패킷 퍼저입니다.
_Airgeddon_은 이전 댓글에서 제안된 대부분의 공격을 제공합니다:
WPS (Wi-Fi Protected Setup)는 장치를 라우터에 연결하는 과정을 간소화하여 WPA 또는 WPA2 개인용으로 암호화된 네트워크의 설정 속도와 용이성을 향상시킵니다. 쉽게 타협될 수 있는 WEP 보안에는 효과적이지 않습니다. WPS는 8자리 PIN을 사용하며, 두 부분으로 검증되므로 조합 수가 제한적(11,000 가능성)으로 인해 무차별 대입 공격에 취약합니다.
이 작업을 수행하기 위한 두 가지 주요 도구가 있습니다: Reaver와 Bully.
Reaver는 WPS에 대한 강력하고 실용적인 공격으로 설계되었으며, 다양한 액세스 포인트와 WPS 구현에 대해 테스트되었습니다.
Bully는 C로 작성된 WPS 무차별 대입 공격의 새로운 구현입니다. 원래 Reaver 코드에 비해 몇 가지 장점이 있습니다: 의존성 감소, 메모리 및 CPU 성능 향상, 엔디안 처리의 정확성, 그리고 더 강력한 옵션 세트.
이 공격은 WPS PIN의 취약성을 이용하며, 특히 첫 네 자리 숫자의 노출과 마지막 자리 숫자의 체크섬 역할이 무차별 대입 공격을 용이하게 합니다. 그러나 공격자의 MAC 주소를 차단하는 것과 같은 무차별 대입 공격에 대한 방어는 공격을 계속하기 위해 MAC 주소 회전을 요구합니다.
Bully 또는 Reaver와 같은 도구로 WPS PIN을 얻으면 공격자는 WPA/WPA2 PSK를 유추할 수 있어 지속적인 네트워크 접근을 보장합니다.
스마트 브루트 포스
이 정제된 접근 방식은 알려진 취약점을 이용하여 WPS PIN을 타겟으로 합니다:
사전 발견된 PIN: 특정 제조업체와 연결된 알려진 PIN의 데이터베이스를 활용하여 균일한 WPS PIN을 사용하는 것으로 알려진 제조업체를 대상으로 합니다. 이 데이터베이스는 MAC 주소의 처음 세 옥텟과 이러한 제조업체에 대한 가능성 있는 PIN을 연관시킵니다.
PIN 생성 알고리즘: AP의 MAC 주소를 기반으로 WPS PIN을 계산하는 ComputePIN 및 EasyBox와 같은 알고리즘을 활용합니다. Arcadyan 알고리즘은 추가적으로 장치 ID를 요구하여 PIN 생성 과정에 추가적인 레이어를 더합니다.
도미니크 봉가르는 비밀 코드를 생성하는 것과 관련하여 일부 액세스 포인트(AP)에서 결함을 발견했습니다. 이 코드는 논스(E-S1 및 E-S2)로 알려져 있습니다. 이러한 논스를 알아낼 수 있다면 AP의 WPS PIN을 쉽게 해킹할 수 있습니다. AP는 PIN을 합법적이고 가짜(악성) AP가 아님을 증명하기 위해 특별한 코드(해시) 내에서 공개합니다. 이러한 논스는 본질적으로 WPS PIN을 보관하는 "금고"를 여는 "열쇠"입니다. 이에 대한 더 많은 정보는 여기에서 확인할 수 있습니다.
간단히 말해, 문제는 일부 AP가 연결 과정에서 PIN을 암호화하기 위해 충분히 무작위적인 키를 사용하지 않았다는 것입니다. 이로 인해 PIN이 네트워크 외부에서 추측될 수 있는 취약점이 생깁니다(오프라인 브루트 포스 공격).
장치를 모니터 모드로 전환하고 싶지 않거나 reaver
와 bully
에 문제가 있는 경우, OneShot-C를 시도해 볼 수 있습니다. 이 도구는 모니터 모드로 전환하지 않고도 Pixie Dust 공격을 수행할 수 있습니다.
일부 잘못 설계된 시스템은 Null PIN(빈 또는 존재하지 않는 PIN)이 접근을 허용하도록 하며, 이는 매우 드문 경우입니다. 도구 Reaver는 Bully와 달리 이 취약점을 테스트할 수 있습니다.
제안된 모든 WPS 공격은 _airgeddon._을 사용하여 쉽게 수행할 수 있습니다.
5와 6은 사용자 정의 PIN을 시도할 수 있습니다(있는 경우)
7과 8은 Pixie Dust 공격을 수행합니다.
13은 NULL PIN을 테스트할 수 있습니다.
11과 12는 사용 가능한 데이터베이스에서 선택한 AP와 관련된 PIN을 수집하고 가능한 PIN을 생성합니다: ComputePIN, EasyBox 및 선택적으로 Arcadyan(추천, 왜 안 되겠습니까?)
9와 10은 모든 가능한 PIN을 테스트합니다.
현재는 너무 깨지고 사용되지 않습니다. _airgeddon_에는 이러한 종류의 보호를 공격하기 위한 "All-in-One"이라는 WEP 옵션이 있다는 것을 아는 것이 중요합니다. 더 많은 도구들이 유사한 옵션을 제공합니다.
경험이 풍부한 해커 및 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!
Hacking Insights 해킹의 스릴과 도전에 대한 내용을 다루는 콘텐츠에 참여하세요.
Real-Time Hack News 실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계의 최신 정보를 유지하세요.
Latest Announcements 새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 유지하세요.
오늘 Discord에서 저희와 함께하고 최고의 해커들과 협업을 시작하세요!
2018년, hashcat 공개한 새로운 공격 방법은 단일 패킷만 필요하고 대상 AP에 클라이언트가 연결될 필요가 없다는 점에서 독특합니다—공격자와 AP 간의 상호작용만 필요합니다.
많은 현대 라우터는 연결 중에 첫 번째 EAPOL 프레임에 Robust Security Network
로 알려진 선택적 필드를 추가합니다. 여기에는 PMKID
가 포함됩니다.
원래 게시물에서 설명하듯이, PMKID는 알려진 데이터를 사용하여 생성됩니다:
주어진 "PMK 이름"이 일정하므로, AP와 스테이션의 BSSID를 알고 있으며, PMK
가 전체 4-way 핸드쉐이크의 것과 동일하다는 것을 알 수 있습니다. hashcat은 이 정보를 사용하여 PSK를 크랙하고 패스프레이즈를 복구할 수 있습니다!
이 정보를 수집하고 비밀번호를 로컬에서 브루트포스하려면 다음을 수행할 수 있습니다:
캡처된 PMKIDs는 콘솔에 표시되며 /tmp/attack.pcap 안에 저장됩니다. 이제 캡처를 hashcat/john 형식으로 변환하고 크랙하세요:
올바른 해시의 형식은 4부분으로 구성되어 있습니다. 예: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838
만약 당신의 해시가 단지 3부분만 포함하고 있다면, 이는 유효하지 않습니다 (PMKID 캡처가 유효하지 않았습니다).
hcxdumptool
은 핸드쉐이크도 캡처합니다 (이와 같은 것이 나타날 것입니다: MP:M1M2 RC:63258 EAPOLTIME:17091
). 당신은 cap2hccapx
를 사용하여 핸드쉐이크를 hashcat/john 형식으로 변환할 수 있습니다.
I have noticed that some handshakes captured with this tool couldn't be cracked even knowing the correct password. I would recommend to capture handshakes also via traditional way if possible, or capture several of them using this tool.
WPA/WPA2 네트워크에 대한 공격은 핸드셰이크를 캡처하고 비밀번호를 오프라인에서 크랙하려고 시도함으로써 실행될 수 있습니다. 이 과정은 특정 네트워크와 특정 채널에서 BSSID의 통신을 모니터링하는 것을 포함합니다. 다음은 간소화된 가이드입니다:
대상 네트워크의 BSSID, 채널, 및 연결된 클라이언트를 식별합니다.
airodump-ng
를 사용하여 지정된 채널과 BSSID에서 네트워크 트래픽을 모니터링하고 핸드셰이크를 캡처합니다. 명령은 다음과 같이 보일 것입니다:
핸드셰이크를 캡처할 확률을 높이기 위해 클라이언트를 네트워크에서 잠시 분리하여 재인증을 강제합니다. 이는 클라이언트에게 비인증 패킷을 전송하는 aireplay-ng
명령을 사용하여 수행할 수 있습니다:
클라이언트가 비인증 상태가 되면 다른 AP에 연결을 시도하거나, 다른 네트워크에 연결을 시도할 수 있습니다.
airodump-ng
에서 핸드셰이크 정보가 나타나면 이는 핸드셰이크가 캡처되었음을 의미하며, 청취를 중단할 수 있습니다:
핸드셰이크가 캡처되면 aircrack-ng
로 크랙할 수 있습니다:
aircrack
tshark
이 도구가 완료되지 않은 ESSID의 핸드셰이크를 완료된 것보다 먼저 찾으면, 유효한 것을 감지하지 못합니다.
pyrit
기업 WiFi 설정에서는 다양한 인증 방법을 접하게 됩니다. 각 방법은 서로 다른 보안 수준과 관리 기능을 제공합니다. airodump-ng
와 같은 도구를 사용하여 네트워크 트래픽을 검사할 때 이러한 인증 유형에 대한 식별자를 발견할 수 있습니다. 일반적인 방법에는 다음이 포함됩니다:
EAP-GTC (Generic Token Card):
이 방법은 EAP-PEAP 내에서 하드웨어 토큰과 일회용 비밀번호를 지원합니다. MSCHAPv2와 달리 피어 챌린지를 사용하지 않으며, 비밀번호를 평문으로 액세스 포인트에 전송하여 다운그레이드 공격의 위험을 초래합니다.
EAP-MD5 (Message Digest 5):
클라이언트에서 비밀번호의 MD5 해시를 전송하는 방식입니다. 사전 공격에 대한 취약성, 서버 인증 부족, 세션별 WEP 키 생성 불가능으로 인해 권장되지 않습니다.
EAP-TLS (Transport Layer Security):
인증을 위해 클라이언트 측 및 서버 측 인증서를 모두 사용하며, 통신을 보호하기 위해 사용자 기반 및 세션 기반 WEP 키를 동적으로 생성할 수 있습니다.
EAP-TTLS (Tunneled Transport Layer Security):
암호화된 터널을 통해 상호 인증을 제공하며, 사용자별 및 세션별 WEP 키를 동적으로 유도하는 방법을 제공합니다. 클라이언트는 자격 증명을 사용하고 서버 측 인증서만 필요합니다.
PEAP (Protected Extensible Authentication Protocol):
보호된 통신을 위해 TLS 터널을 생성하여 EAP와 유사하게 작동합니다. 터널이 제공하는 보호 덕분에 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 서버는 EAP-PEAP 또는 EAP-TTLS 요청을 해당 영역의 RADIUS 서버로 프록시할 수 있으며, 이 서버는 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에서는 클라이언트가 일반적으로 PAP 또는 CHAP을 사용하여 TLS 터널로 보호된 인증을 수행합니다. 이 경우 클라이언트는 터널 설정 후 전송되는 초기 TLS 메시지에 User-Name 속성과 Password 또는 CHAP-Password 속성을 포함합니다.
선택한 프로토콜에 관계없이, PEAP/TTLS 서버는 TLS 터널이 설정된 후 사용자의 실제 신원을 알게 됩니다. 실제 신원은 user@realm 또는 단순히 user로 표현될 수 있습니다. PEAP/TTLS 서버가 사용자 인증을 담당하는 경우, 이제 사용자의 신원을 보유하고 TLS 터널로 보호된 인증 방법을 진행합니다. 또는 PEAP/TTLS 서버가 사용자의 홈 RADIUS 서버로 새로운 RADIUS 요청을 전달할 수 있습니다. 이 새로운 RADIUS 요청은 PEAP 또는 TTLS 프로토콜 계층을 생략합니다. 보호된 인증 방법이 EAP인 경우, 내부 EAP 메시지는 EAP-PEAP 또는 EAP-TTLS 래퍼 없이 홈 RADIUS 서버로 전송됩니다. 발신 RADIUS 메시지의 User-Name 속성은 수신 RADIUS 요청의 익명 User-Name을 대체하여 사용자의 실제 신원을 포함합니다. 보호된 인증 방법이 PAP 또는 CHAP(오직 TTLS에서만 지원)인 경우, TLS 페이로드에서 추출된 User-Name 및 기타 인증 속성이 발신 RADIUS 메시지에 대체되어 수신 RADIUS 요청의 익명 User-Name 및 TTLS EAP-Message 속성을 대체합니다.
자세한 내용은 여기에서 확인하세요.
클라이언트가 사용자 이름과 비밀번호를 사용할 것으로 예상되는 경우(EAP-TLS는 이 경우 유효하지 않음), 사용자 이름(다음 부분 참조)과 비밀번호 목록을 얻으려고 시도하고 air-hammer를 사용하여 액세스를 브루트포스할 수 있습니다.
이 공격은 eaphammer
를 사용하여 수행할 수도 있습니다:
802.11 프로토콜은 스테이션이 확장 서비스 세트(ESS)에 가입하는 방법을 정의하지만, ESS 또는 그 안의 액세스 포인트(AP)를 선택하는 기준은 명시하지 않습니다.
스테이션은 동일한 ESSID를 공유하는 AP 간에 로밍할 수 있으며, 건물이나 지역 전반에 걸쳐 연결성을 유지합니다.
프로토콜은 ESS에 대한 스테이션 인증을 요구하지만, 스테이션에 대한 AP 인증을 의무화하지 않습니다.
스테이션은 연결하는 모든 무선 네트워크의 ESSID를 선호 네트워크 목록(PNL)에 저장하며, 네트워크별 구성 세부정보도 함께 저장합니다.
PNL은 알려진 네트워크에 자동으로 연결하는 데 사용되어, 연결 프로세스를 간소화하여 사용자 경험을 향상시킵니다.
AP는 주기적으로 비콘 프레임을 방송하여 자신의 존재와 기능을 알리며, AP의 ESSID를 포함합니다(방송이 비활성화되지 않은 경우).
수동 스캔 중에 스테이션은 비콘 프레임을 수신합니다. 비콘의 ESSID가 스테이션의 PNL에 있는 항목과 일치하면, 스테이션은 해당 AP에 자동으로 연결될 수 있습니다.
장치의 PNL에 대한 지식은 알려진 네트워크의 ESSID를 모방하여 잠재적인 악용을 가능하게 하며, 장치를 속여 악성 AP에 연결하게 할 수 있습니다.
능동 프로빙은 스테이션이 근처 AP와 그 특성을 발견하기 위해 프로브 요청을 보내는 것입니다.
지향 프로브 요청은 특정 ESSID를 목표로 하여, 특정 네트워크가 범위 내에 있는지 감지하는 데 도움을 줍니다. 숨겨진 네트워크일지라도 가능합니다.
브로드캐스트 프로브 요청은 SSID 필드가 비어 있으며, 모든 근처 AP에 전송되어 스테이션이 PNL 내용을 공개하지 않고도 선호 네트워크를 확인할 수 있게 합니다.
더 복잡한 공격을 수행하는 방법을 설명하기 전에, AP를 생성하고 트래픽을 인터넷에 연결된 인터페이스로 리디렉션하는 방법을 설명합니다.
ifconfig -a
를 사용하여 AP를 생성할 wlan 인터페이스와 인터넷에 연결된 인터페이스가 존재하는지 확인합니다.
/etc/dnsmasq.conf
파일을 생성합니다:
그런 다음 IP 및 경로를 설정합니다:
그리고 dnsmasq를 시작합니다:
hostapd.conf
파일을 생성합니다:
불필요한 프로세스 중지 , 모니터 모드 설정 , 그리고 hostapd 시작:
악성 쌍둥이 공격은 WiFi 클라이언트가 네트워크를 인식하는 방식을 이용하며, 주로 네트워크 이름(ESSID)에 의존하고 기본 스테이션(액세스 포인트)이 클라이언트에 대해 인증할 필요가 없습니다. 주요 사항은 다음과 같습니다:
구별의 어려움: 장치들은 동일한 ESSID와 암호화 유형을 공유하는 경우 합법적인 액세스 포인트와 악성 액세스 포인트를 구별하는 데 어려움을 겪습니다. 실제 네트워크는 종종 동일한 ESSID를 가진 여러 액세스 포인트를 사용하여 원활하게 범위를 확장합니다.
클라이언트 로밍 및 연결 조작: 802.11 프로토콜은 장치가 동일한 ESS 내의 액세스 포인트 간에 로밍할 수 있도록 허용합니다. 공격자는 장치를 현재 기본 스테이션에서 분리하고 악성 스테이션에 연결하도록 유도하여 이를 악용할 수 있습니다. 이는 더 강한 신호를 제공하거나 비인증 패킷 또는 재밍과 같은 방법을 통해 합법적인 액세스 포인트와의 연결을 방해함으로써 달성할 수 있습니다.
실행의 어려움: 여러 개의 잘 배치된 액세스 포인트가 있는 환경에서 악성 쌍둥이 공격을 성공적으로 실행하는 것은 어려울 수 있습니다. 단일 합법적인 액세스 포인트를 비인증하면 장치가 다른 합법적인 액세스 포인트에 연결되는 경우가 많으며, 공격자가 모든 인근 액세스 포인트를 비인증하거나 전략적으로 악성 액세스 포인트를 배치할 수 없는 한 그렇습니다.
아주 기본적인 오픈 악성 쌍둥이(인터넷으로 트래픽을 라우팅할 수 있는 기능 없음)를 만들 수 있습니다:
당신은 또한 eaphammer를 사용하여 Evil Twin을 생성할 수 있습니다 (eaphammer로 Evil Twin을 생성하려면 인터페이스가 모니터 모드에 있지 않아야 한다는 점에 유의하십시오):
Or using Airgeddon: Options: 5,6,7,8,9 (inside Evil Twin attack menu).
기본적으로 PNL에 ESSID가 WPA로 보호되어 저장되어 있으면, 장치는 자동으로 Open evil Twin에 연결되지 않습니다. 실제 AP에 DoS 공격을 시도하고 사용자가 수동으로 Open evil twin에 연결하기를 희망할 수 있으며, 또는 실제 AP에 DoS 공격을 하고 WPA Evil Twin을 사용하여 핸드쉐이크를 캡처할 수 있습니다(이 방법을 사용하면 PSK를 모르기 때문에 피해자가 당신에게 연결할 수는 없지만, 핸드쉐이크를 캡처하고 이를 크랙하려고 시도할 수 있습니다).
일부 OS 및 AV는 사용자가 Open 네트워크에 연결하는 것이 위험하다고 경고할 것입니다...
WPA/2를 사용하여 Evil Twin을 생성할 수 있으며, 장치가 WPA/2로 해당 SSID에 연결하도록 구성되어 있다면 연결을 시도할 것입니다. 어쨌든, 4-way-handshake를 완료하려면 클라이언트가 사용할 비밀번호를 알아야 합니다. 모르시면 연결이 완료되지 않습니다.
이 공격을 이해하기 위해서는 먼저 WPA Enterprise 설명을 읽는 것이 좋습니다.
hostapd-wpe 사용하기
hostapd-wpe
는 작동하기 위해 구성 파일이 필요합니다. 이러한 구성을 자동화하려면 https://github.com/WJDigby/apd_launchpad 를 사용할 수 있습니다 ( /etc/hostapd-wpe/ 안의 파이썬 파일을 다운로드하세요).
구성 파일에서 ssid, 채널, 사용자 파일, cret/key, dh 매개변수, wpa 버전 및 인증과 같은 다양한 항목을 선택할 수 있습니다.
EAP-TLS를 사용하여 모든 인증서로 로그인할 수 있도록 hostapd-wpe 사용하기.
EAPHammer 사용하기
기본적으로 EAPHammer는 이 인증 방법을 목적합니다 (평문 비밀번호를 얻기 위해 처음 시도하는 GTC에 주목하고, 그 다음 더 강력한 인증 방법을 사용합니다):
이것은 긴 연결 시간을 피하기 위한 기본 방법론입니다. 그러나 인증 방법을 가장 약한 것부터 가장 강한 것까지 서버에 지정할 수도 있습니다:
Or you could also use:
--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를 캡처할 수 있습니다. 이후 공격자는 비밀번호를 크랙하려고 시도할 수 있습니다.
Airgeddon
은 지속적인 Evil Twin 공격(소음) 또는 **누군가 연결될 때까지 Evil Attack만 생성(부드럽게)**할 수 있는 가능성을 제공합니다.
이 방법은 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를 사용하여 키를 교환하므로 서버의 개인 키를 알고 있으면 나중에 트래픽을 복호화할 수 있습니다.
이제 Evil Twin을 **hostapd-wpe
**를 사용하여 수정된 구성으로 평소처럼 시작합니다. 또한 **Evil Twin 공격을 수행하는 인터페이스에서 wireshark
**를 시작합니다.
이제 또는 나중에(인증 시도가 몇 개 캡처된 후) Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
에서 wireshark에 개인 RSA 키를 추가할 수 있습니다.
새 항목을 추가하고 이 값으로 양식을 채웁니다: IP 주소 = any -- 포트 = 0 -- 프로토콜 = data -- 키 파일 (키 파일 선택, 문제를 피하기 위해 비밀번호로 보호되지 않은 키 파일을 선택합니다).
그리고 새로운 "Decrypted TLS" 탭을 확인합니다:
다양한 유형의 미디어 접근 제어 필터 목록(MFACL)과 해당 모드 및 악성 액세스 포인트(AP)의 동작에 미치는 영향:
MAC 기반 화이트리스트:
악성 AP는 화이트리스트에 지정된 장치의 프로브 요청에만 응답하며, 나열되지 않은 모든 장치에는 보이지 않습니다.
MAC 기반 블랙리스트:
악성 AP는 블랙리스트에 있는 장치의 프로브 요청을 무시하여 해당 특정 장치에 대해 악성 AP가 보이지 않게 만듭니다.
SSID 기반 화이트리스트:
악성 AP는 특정 ESSID에 대한 프로브 요청에만 응답하여, 해당 ESSID가 포함되지 않은 장치에는 보이지 않게 만듭니다.
SSID 기반 블랙리스트:
악성 AP는 블랙리스트에 있는 특정 ESSID에 대한 프로브 요청에 응답하지 않으며, 해당 특정 네트워크를 찾는 장치에는 보이지 않게 만듭니다.
이 방법은 공격자가 네트워크에 연결하려는 장치의 모든 프로브 요청에 응답하는 악성 액세스 포인트(AP)를 생성할 수 있게 해줍니다. 이 기술은 장치가 찾고 있는 네트워크를 모방하여 장치를 공격자의 AP에 연결하도록 속입니다. 장치가 이 악성 AP에 연결 요청을 보내면 연결이 완료되어 장치가 실수로 공격자의 네트워크에 연결됩니다.
그 후, 장치가 원치 않는 네트워크 응답을 무시하기 시작하여 원래의 karma 공격의 효과가 감소했습니다. 그러나 MANA 공격으로 알려진 새로운 방법이 Ian de Villiers와 Dominic White에 의해 도입되었습니다. 이 방법은 악성 AP가 장치의 방송 프로브 요청에 응답하여 장치가 이전에 요청한 네트워크 이름(SSID)으로 선호 네트워크 목록(PNL)을 캡처하는 것입니다. 이 정교한 공격은 장치가 알려진 네트워크를 기억하고 우선순위를 매기는 방식을 이용하여 원래의 karma 공격에 대한 보호를 우회합니다.
MANA 공격은 장치의 지향 및 방송 프로브 요청을 모두 모니터링하여 작동합니다. 지향 요청의 경우, 장치의 MAC 주소와 요청된 네트워크 이름을 기록하여 이 정보를 목록에 추가합니다. 방송 요청이 수신되면 AP는 장치의 목록에 있는 네트워크와 일치하는 정보를 제공하여 장치가 악성 AP에 연결하도록 유도합니다.
A Loud MANA attack는 장치가 지향 프로빙을 사용하지 않거나 공격자에게 선호 네트워크 목록(PNL)이 알려지지 않은 경우에 대한 고급 전략입니다. 이 공격은 같은 지역에 있는 장치들이 PNL에서 일부 네트워크 이름을 공유할 가능성이 높다는 원칙에 기반합니다. 선택적으로 응답하는 대신, 이 공격은 관찰된 모든 장치의 결합된 PNL에서 발견된 모든 네트워크 이름(ESSID)에 대해 프로브 응답을 방송합니다. 이 광범위한 접근 방식은 장치가 익숙한 네트워크를 인식하고 악성 액세스 포인트(AP)에 연결을 시도할 가능성을 높입니다.
Loud MANA attack로는 충분하지 않을 때, Known Beacon attack은 또 다른 접근 방식을 제공합니다. 이 방법은 단어 목록에서 파생된 잠재적 ESSID 목록을 순환하며, 모든 네트워크 이름에 응답하는 AP를 시뮬레이션하여 연결 프로세스를 무차별 대입합니다. 이는 여러 네트워크의 존재를 시뮬레이션하여 피해자의 PNL 내에서 ESSID와 일치하기를 희망하며, 조작된 AP에 대한 연결 시도를 유도합니다. 이 공격은 장치를 포획하기 위한 보다 공격적인 시도를 위해 --loud
옵션과 결합하여 증폭할 수 있습니다.
Eaphammer는 이 공격을 MANA 공격으로 구현했으며, 목록 내의 모든 ESSID가 사용됩니다 (여기에 --loud
를 결합하여 Loud MANA + Known beacons 공격을 생성할 수도 있습니다):
Known Beacon Burst attack
Known Beacon Burst attack는 파일에 나열된 각 ESSID에 대해 비콘 프레임을 빠르게 방송하는 것을 포함합니다. 이는 가짜 네트워크의 밀집된 환경을 생성하여 장치가 악성 AP에 연결될 가능성을 크게 높이며, 특히 MANA 공격과 결합될 때 더욱 그렇습니다. 이 기술은 속도와 양을 활용하여 장치의 네트워크 선택 메커니즘을 압도합니다.
Wi-Fi Direct는 전통적인 무선 액세스 포인트 없이 Wi-Fi를 사용하여 장치들이 서로 직접 연결할 수 있도록 하는 프로토콜입니다. 이 기능은 프린터와 텔레비전과 같은 다양한 사물인터넷(IoT) 장치에 통합되어 있어 장치 간의 직접 통신을 용이하게 합니다. Wi-Fi Direct의 주목할 만한 특징은 하나의 장치가 그룹 소유자라는 액세스 포인트 역할을 하여 연결을 관리한다는 점입니다.
Wi-Fi Direct 연결의 보안은 **Wi-Fi Protected Setup (WPS)**를 통해 설정되며, 안전한 페어링을 위한 여러 방법을 지원합니다:
푸시 버튼 구성 (PBC)
PIN 입력
근거리 통신 (NFC)
이 방법들은 특히 PIN 입력이 전통적인 Wi-Fi 네트워크의 WPS와 동일한 취약점에 노출되어 있어 유사한 공격 벡터의 표적이 됩니다.
EvilDirect Hijacking은 Wi-Fi Direct에 특정한 공격입니다. 이는 Evil Twin 공격의 개념을 반영하지만 Wi-Fi Direct 연결을 목표로 합니다. 이 시나리오에서 공격자는 합법적인 그룹 소유자를 가장하여 장치들이 악의적인 엔티티에 연결하도록 속이는 것을 목표로 합니다. 이 방법은 airbase-ng
와 같은 도구를 사용하여 채널, ESSID 및 가장한 장치의 MAC 주소를 지정하여 실행할 수 있습니다.
TODO: https://github.com/wifiphisher/wifiphisher를 확인하세요 (페이스북으로 로그인하고 포털에서 WPA를 모방)
경험이 풍부한 해커 및 버그 바운티 헌터와 소통하기 위해 HackenProof Discord 서버에 참여하세요!
Hacking Insights 해킹의 스릴과 도전에 대해 깊이 있는 콘텐츠에 참여하세요.
Real-Time Hack News 실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 최신 상태로 유지하세요.
Latest Announcements 새로운 버그 바운티와 중요한 플랫폼 업데이트에 대한 정보를 유지하세요.
오늘 Discord에 참여하여 최고의 해커들과 협업을 시작하세요!
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)