1. 하드웨어 공격 벡터 분류

물리적 모의해킹에서 공격자가 활용하는 벡터는 크게 5가지 카테고리로 구분된다.

각 벡터는 독립적으로 사용되거나 공격 체인(Attack Chain) 을 이루어 복합 공격을 형성한다.

공격 벡터 주요 대상 핵심 도구 난이도
RFID/NFC 접근 통제 우회 출입문, 사원증, 주차 시스템 Proxmark3, ChameleonUltra
무선 주파수(RF) 공격 차량 스마트키, 리모컨, IoT HackRF One, Flipper Zero 중~고
물리적 HID 인젝션 업무용 PC, 서버 O.MG Cable, Rubber Ducky
Wi-Fi / 네트워크 공격 기업 무선 인프라 WiFi Pineapple, Alfa 어댑터
IoT / 임베디드 하드웨어 산업용 기기, 스마트 기기 Bus Pirate 5, JTAGulator

2. RFID / NFC 접근 통제 공격

RFID/NFC 기반 출입 통제는 기업 환경에서 가장 광범위하게 사용되지만, 동시에 가장 많이 취약하게 세팅되는 영역이다. 공격은 크게 카드 분석 → 키 크래킹 → 에뮬레이션 세 단계로 구성된다.

2.1 카드 타입별 보안 등급 및 공격 가능성

카드 타입 주파수 암호화 공격 난이도 비고
EM4100 / HID 125kHz 125kHz 없음 (UID 평문 전송) ⬛ 매우 쉬움 Flipper Zero로도 즉시 복제 가능
MIFARE Classic 1K/4K 13.56MHz Crypto1 (설계 결함) 🟥 쉬움 Darkside / Nested 공격 가능
MIFARE Plus SL1 13.56MHz Crypto1 하위호환 🟥 쉬움 SL1 모드 시 Classic과 동일 취약
MIFARE Plus SL3 13.56MHz AES-128 🟧 어려움 AES 완전 활성화 시 현실적 불가
MIFARE DESFire EV1/EV2 (UID 모드) 13.56MHz 사실상 없음 ⬛ 매우 쉬움 UID만 읽는 잘못된 세팅 — 현실에서 빈번
MIFARE DESFire EV2/EV3 (AES 모드) 13.56MHz AES-128 + 상호인증 🟩 현실적 불가 암호 키 없이 정면 돌파 불가
HID iCLASS SE 13.56MHz AES 🟧 어려움 다운그레이드 공격 일부 가능
HID iCLASS (구형 Standard) 13.56MHz 독자 알고리즘 🟥 중간 키 추출 후 복제 가능 (Loclass)

💡 핵심
DESFire EV2/EV3 같은 고보안 카드도 출입문 리더기가 UID만 확인하도록 잘못 세팅된 경우가 현실에서 매우 광범위하게 존재한다. 카드 자체의 보안 등급보다 세팅 방식이 실질적 보안 수준을 결정한다.


2.2 RFID/NFC 공격 기법 상세

사전 준비: PRNG 유형 탐지

공격 기법을 선택하기 전에 반드시 카드의 PRNG 유형을 확인한다.

pm3 --> hf search

UID : xx xx xx xx
ATQA : 00 04
SAK  : 08
TYPE : NXP MIFARE CLASSIC 1k
Prng detection: WEAK        ← Darkside / Nested 공격 가능
Prng detection: HARDENED    ← Hardnested 공격 필요

① 다크사이드 공격 (Darkside Attack)

  • 대상: MIFARE Classic — WEAK PRNG 카드 (2011년 이전 구형 또는 패치 미적용)
  • 원리: Crypto1 인증 프로토콜의 두 가지 구현 버그를 악용한다. 카드는 패리티 비트가 맞고 키가 틀린 인증 요청에 대해 암호화된 4비트 NACK 코드를 응답한다. 공격자는 이 NACK를 XOR 연산으로 분석해 키스트림 비트를 추출하고, 이를 반복해 첫 번째 섹터 키를 복구한다. (PRNG 예측은 공격 가속의 보조 수단이며, 핵심 원리는 NACK 누출 버그이다.)
공격 흐름:
1. 반복 인증 시도 — 패리티 비트 OK, 키 틀린 조합으로 전송
2. 카드가 암호화된 NACK(4비트) 응답
3. NACK XOR 연산 → 키스트림 비트 추출 (약 1,536회 시도)
4. 키스트림 누적 → 첫 번째 섹터 키 복구
5. 소요 시간: 약 5~25초

⚠️ 주의: 2011년 이후 NXP가 NACK 버그 및 PRNG를 패치한 'hardened' 카드(MIFARE Classic EV1 등)는 Darkside에 면역이다. Prng detection: HARDENED 확인 시 Hardnested로 전환한다.


② 중첩 공격 (Nested Attack)

  • 대상: MIFARE Classic 전반 — 하나 이상의 키를 보유한 경우
  • 전제 조건: 최소 1개 섹터의 키 A 또는 B를 알고 있어야 한다. (Darkside로 먼저 획득 가능)
  • 원리: 알고 있는 섹터 키로 인증 후, 다른 섹터 인증을 연쇄 시도한다. WEAK PRNG 카드는 nonce가 예측 가능한 패턴을 가지므로 암호화된 nonce 쌍을 분석해 나머지 섹터 키를 연쇄 추출한다.
공격 흐름:
1. 알려진 키로 섹터 0 인증
2. 인증 세션 유지 상태에서 미지 섹터 인증 시도
3. 암호화된 nonce 쌍 수집 (2~3회 반복으로 충분)
4. nonce 간 "거리" 계산으로 다음 섹터 키 추출
5. MIFARE Classic 1K 기준 16개 섹터 × 키 A/B = 32개 키 전체 획득
6. 소요 시간: 최악의 경우(완전 랜덤 키) 약 5분 이내

③ 하드네스티드 공격 (Hardnested Attack)

  • 대상: PRNG 패치된 MIFARE Classic (MIFARE Classic EV1 등, Prng detection: HARDENED)
  • 전제 조건: 최소 1개 섹터의 키를 알고 있어야 한다. 키가 전혀 없는 경우 Darkside로 먼저 획득 시도. Hardened 카드에 Darkside가 통하지 않으면 리더기 공격(④)을 사용한다.
  • 원리: 패치된 카드는 진정한 32비트 랜덤 nonce를 생성하므로 Nested 방식이 통하지 않는다. 대신 대량의 암호화된 nonce를 수집하고 패리티 비트 누출(Crypto1의 고유 취약점)을 이용한 암호문 전용 공격으로 키를 추출한다.
공격 흐름:
1. 알려진 섹터 키로 인증 후 미지 섹터 nonce 대량 수집
2. PC CPU (AVX2 SIMD 활용)로 키 공간 탐색
3. 패리티 비트 누출 정보로 후보 키 필터링
4. 소요 시간: 섹터당 수 분 ~ 수십 분 (PC 성능에 따라 가변)
5. 전체 자동화: hf mf autopwn 명령 사용 권장

pm3 --> hf mf hardnested 0 A FFFFFFFFFFFF 4 A

⚠️ 하드웨어 주의: Proxmark3 RDV2, Easy 클론 등 구형 기기는 Hardnested를 지원하지 않는다. RDV4 이상을 사용해야 한다.


④ 리더기 대상 공격 (Reader Attack / Mfkey32 · Mfkey64)

  • 대상: MIFARE Classic 기반 출입문 리더기 — 카드 없이 리더기만 있어도 공격 가능
  • 원리: 빈 에뮬레이터 카드를 출입문 리더기에 접촉시키면 리더기가 인증을 시도하며 nonce를 포함한 챌린지를 전송한다. ChameleonUltra 또는 Proxmark3가 이 nonce 쌍을 캡처하여 오프라인에서 리더기 마스터 키를 복구한다.
공격 흐름:
1. ChameleonUltra / Proxmark3를 빈 카드처럼 세팅
2. 출입문 리더기에 접촉 → 리더기가 인증 챌린지(nonce) 전송
3. nonce 쌍 수집 후 오프라인 분석
   - 2쌍 수집 → mfkey32 사용
   - 1쌍만 수집 → mfkey64 사용
4. 리더기의 마스터 인증 키 복구 완료

💡 핵심: 피해자 카드가 전혀 필요 없다. 리더기가 있는 환경이라면 카드 없이도 키 추출이 가능하다.


⑤ UID 에뮬레이션 공격 (UID-only Bypass)

  • 대상: 암호화 인증 없이 UID만 확인하는 시스템 — DESFire 고보안 카드에도 잘못된 세팅으로 광범위하게 존재
  • 원리: 리더기가 UID만 확인하도록 세팅된 경우, 7바이트 UID만 복사한 에뮬레이터 카드로 즉시 출입 가능하다.
공격 흐름:
1. Proxmark3로 타깃 카드 UID 스캔 (0.1초)
2. Magic 카드 또는 ChameleonUltra에 UID 주입
3. 출입문 리더기 접촉 → UID만 확인하므로 출입 허가

2.3 LF(125kHz) 카드 공격

125kHz 저주파 카드는 주차장, 구형 공장 출입문, 일부 아파트에서 여전히 광범위하게 사용된다. 암호화가 전무하여 공격이 단순하고 즉각적이다.

카드 타입 공격 방법 필요 도구 소요 시간
EM4100 UID 직접 읽기 → T5577 카드에 복사 Proxmark3 / Flipper Zero 1초
HID Prox UID 읽기 → T5577에 HID 포맷으로 복사 Proxmark3 수 초
Indala UID 읽기 → T5577에 Indala 포맷으로 복사 Proxmark3 수 초
T5577 (복제 가능 카드) 직접 데이터 쓰기 Proxmark3 즉시

3. 무선 주파수(RF) 공격 — SDR 기반

소프트웨어 정의 라디오(SDR)는 하드웨어 변경 없이 소프트웨어만으로 주파수·변조 방식·프로토콜을 자유롭게 변경할 수 있는 플랫폼이다. HackRF One(1MHz~6GHz) 은 사실상 모든 실용적 무선 신호를 다룰 수 있다.

3.1 고정 코드 리플레이 공격 (Fixed-Code Replay)

  • 대상: 구형 차고문 리모컨, 구형 경보 시스템, 일부 주차 게이트
  • 원리: 매번 동일한 RF 신호를 전송하는 장치의 신호를 캡처 후 그대로 재전송하여 인증 없이 제어한다.
공격 흐름:
1. HackRF One으로 타깃 주파수(315 / 433 / 868MHz 등)에서 신호 캡처
2. URH(Universal Radio Hacker) 또는 GNU Radio로 신호 분석·디코딩
3. 캡처된 IQ 샘플 파일 그대로 재전송
4. Portapack H2/H4M 결합 시 PC 없이 현장 독립 운용 가능

ℹ️ 참고: 현대 차량 대부분은 롤링 코드(Rolling Code / KeeLoq)를 사용하므로 단순 리플레이는 통하지 않는다. 이 경우 아래 Jam-and-Replay 기법이 필요하다.


3.2 Jam-and-Replay 공격

  • 대상: 롤링 코드를 사용하는 차량, 현대 리모컨 시스템
  • 원리: 리모컨 주파수를 재밍(Jamming)하여 첫 번째 신호가 차량에 도달하지 못하게 막으면서 동시에 캡처한다. 피해자가 두 번째로 버튼을 누르면 그 신호도 캡처한 후, 첫 번째 신호를 재전송하여 차량을 개방한다.
공격 흐름:
1. 재밍 신호 전송과 동시에 첫 번째 리모컨 신호 캡처
2. 피해자 재시도 → 두 번째 신호도 캡처
3. 피해자가 이동한 뒤 첫 번째 신호 재전송 → 차량 개방

3.3 GPS 스푸핑 (GPS Spoofing)

  • 대상: 드론, 선박 항법 시스템, GPS 기반 자산 추적 장치
  • 원리: GPS 위성 신호(L1 밴드, 1575.42MHz)와 동일한 형식의 위조 신호를 생성·송출하여 타깃 수신기가 잘못된 위치를 계산하게 만든다.
공격 흐름:
1. HackRF One + GPS-SDR-SIM으로 위조 GPS 신호 생성
2. 실제 위성 신호보다 강한 전력으로 송출 → 타깃 수신기 덮어씌기
3. 드론 강제 착륙 / 선박 경로 이탈 / 자산 추적 회피

3.4 Sub-GHz 프로토콜 역공학 (Reverse Engineering)

  • 대상: 스마트홈 기기, 산업용 센서, 무선 경보 시스템
  • 원리: 독자적 RF 프로토콜을 사용하는 기기의 신호를 SDR로 캡처하고, URH/GNU Radio로 변조 방식(OOK/FSK/GFSK 등)과 비트 인코딩을 역공학하여 커스텀 명령 패킷을 생성한다.
공격 흐름:
1. RTL-SDR로 대역 스캔 → 타깃 주파수 확인
2. HackRF One으로 정밀 캡처 (IQ 샘플 수집)
3. URH로 변조 방식 자동 감지 및 디코딩
4. 프로토콜 구조 파악 → 커스텀 명령 패킷 생성·전송

4. Wi-Fi 네트워크 공격

기업 무선 인프라는 물리적 침투와 결합될 때 강력한 공격 벡터가 된다.

4.1 Evil Twin / Rogue AP 공격

  • 대상: 기업 또는 공용 Wi-Fi 사용자
  • 원리: 정상 AP와 동일한 SSID를 가진 가짜 AP를 더 강한 신호로 구동하여 클라이언트를 유인하고, 모든 트래픽을 가로채는 중간자 공격(MITM) 을 수행한다.
단계 동작 도구
1. 정찰 타깃 AP의 SSID, BSSID, 채널, 보안 방식 수집 airodump-ng, WiFi Pineapple
2. AP 생성 동일 SSID로 Rogue AP 구동 (더 강한 신호) WiFi Pineapple, hostapd
3. 강제 연결 정상 AP에 Deauth 패킷 전송 → 클라이언트 재연결 유도 aireplay-ng
4. MITM 연결된 클라이언트의 HTTP 트래픽 가로채기 Wireshark, Bettercap
5. HTTPS 다운그레이드 SSLstrip으로 HTTPS를 HTTP로 강제 다운그레이드 SSLstrip, Bettercap

4.2 WPA2 PMKID 공격 (2018년 이후 주류)

  • 원리: 클라이언트 연결을 기다리지 않고 AP로부터 PMKID를 직접 수집하여 오프라인 딕셔너리/브루트포스 공격을 수행한다. 기존 4-Way Handshake 캡처 방식보다 훨씬 빠르다.
# 1. 인터페이스 모니터 모드 활성화
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up

# 2. AP에서 PMKID 수집 (클라이언트 연결 불필요)
hcxdumptool -i wlan0 -w capture.pcapng --enable_status=1

# 3. hashcat 포맷으로 변환 (-o 옵션이 먼저, 입력 파일이 뒤)
hcxpcapngtool -o hash.hc22000 capture.pcapng

# 4. GPU 기반 오프라인 크래킹 (hashcat -m 22000)
hashcat -m 22000 hash.hc22000 wordlist.txt

# ※ 구 포맷(-m 2500, .hccapx)은 폐기됨. 반드시 -m 22000 사용

ℹ️ 조건: 약한 패스워드(8자리 이하, 사전어 기반) 환경에서 효과적이다. 강한 랜덤 패스워드에는 현실적으로 불가하다.


4.3 WPA3 및 최신 방어 우회 동향

WPA3는 SAE(Simultaneous Authentication of Equals) 핸드셰이크로 기존 PMKID/4-Way Handshake 공격을 원천 차단한다. 현재 실무에서는 WPA3를 직접 공격하기보다 다음 우회 경로가 더 효과적이다.

  • Transition Mode 다운그레이드: WPA3/WPA2 혼합 모드 세팅 시 WPA2로 강제 다운그레이드 유도
  • Dragonblood 취약점: 패치 전 구형 펌웨어에서 SAE 핸드셰이크 결함 악용
  • 소셜 엔지니어링: 클라이언트 측에서 자격 증명 직접 탈취 (Evil Twin 캡티브 포털 활용)

5. BadUSB / 물리적 HID 인젝션 공격

악성 USB 기기를 키보드(HID)로 위장시켜 타깃 시스템에 미리 프로그래밍된 키 입력을 자동으로 주입하는 기법이다. OS가 키보드 입력으로 신뢰하므로 대부분의 보안 소프트웨어를 우회한다.

5.1 O.MG Cable

외형은 일반 충전 케이블과 완전히 동일하지만, 내부에 초소형 Wi-Fi 서버가 내장되어 있다. 타깃 PC 연결 순간 키보드로 인식되며, 공격자는 Wi-Fi로 원격에서 페이로드를 주입한다.

단계 설명
1. 배치 타깃 책상의 기존 케이블과 교체 또는 "선물" 형태로 제공
2. 연결 타깃이 PC에 연결 → OS가 키보드(HID)로 자동 인식
3. 원격 제어 공격자가 O.MG 내장 Wi-Fi에 연결 → 웹 인터페이스 접근
4. 페이로드 실행 PowerShell/Bash로 리버스 셸, 백도어, 자격 증명 탈취 스크립트 주입
5. 흔적 제거 히스토리 삭제, 케이블 회수

5.2 USB Rubber Ducky

DuckyScript 언어로 작성된 페이로드를 수천 타/초 속도로 주입한다. USB 드라이브 형태이며 연결 즉시 자동 실행된다.

주요 페이로드 시나리오:
- 관리자 권한 PowerShell 실행 (UAC 우회 포함)
- LSASS 메모리 덤프 → 자격 증명 추출 (Mimikatz)
- 원격 접속 백도어 설치 (Netcat, Metasploit Meterpreter)
- 시스템 정보 수집 → C2 서버로 자동 전송

6. IoT / 임베디드 하드웨어 해킹

IoT 기기는 소프트웨어 취약점 외에도 하드웨어 인터페이스를 통한 펌웨어 추출·분석이 핵심 공격 방법이다.

6.1 UART 디버그 쉘 탈취

많은 IoT 기기 PCB에는 제조 과정에서 사용된 UART 디버그 포트가 그대로 노출되어 있다. 이를 통해 루트 셸을 획득할 수 있다.

단계 동작 도구
1. 포트 탐색 PCB에서 TX/RX/GND 핀 위치 식별 JTAGulator, 멀티미터
2. 전압 확인 3.3V 또는 5V 레벨 측정 → 적절한 레벨 시프터 연결 멀티미터, Bus Pirate 5
3. 보드레이트 탐지 9600 / 115200 등 일반 보드레이트 자동 탐색 Bus Pirate 5
4. 콘솔 접속 시리얼 터미널 연결 minicom, screen
5. 루트 쉘 획득 U-Boot 카운트다운 중 키 입력으로 부트로더 인터럽트, 또는 로그인 우회 수동

6.2 SPI/I2C 플래시 메모리 덤프

UART 쉘이 비활성화된 경우, PCB의 SPI/I2C 플래시 칩에 직접 접속하여 펌웨어를 추출한다.

# Bus Pirate 5 또는 CH341A를 SPI 플래시 칩에 연결
# flashrom으로 전체 플래시 덤프
flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -r firmware_dump.bin

# binwalk으로 구조 분석 (파일시스템, 설정 파일, 하드코딩 자격 증명 추출)
binwalk -e firmware_dump.bin

# Ghidra 또는 IDA Pro로 바이너리 역공학

6.3 JTAG을 통한 펌웨어 디버깅

JTAG은 반도체 테스트용 표준 인터페이스이지만, 많은 기기에서 비활성화되지 않아 메모리 읽기/쓰기, 브레이크포인트 설정 등 전 레벨 제어가 가능하다.

공격 흐름:
1. JTAGulator로 PCB에서 JTAG 핀 자동 탐색 (TCK/TMS/TDI/TDO/TRST)
2. OpenOCD + Bus Pirate 5로 JTAG 연결
3. GDB 원격 디버깅으로 실시간 메모리 분석
4. 암호화 키, 세션 토큰 등 런타임 메모리에서 민감 데이터 추출

7. 실전 공격 체인 시나리오

실제 물리적 모의해킹에서는 단일 기법이 아닌 여러 벡터를 조합한 공격 체인이 사용된다.

시나리오 A: 기업 사무실 침투

[1. 정찰]
  건물 외부 배회 → Wi-Fi SSID 수집, 사원증 유형 파악 (HID/MIFARE 로고)
        ↓
[2. 카드 스캔]
  커피숍·엘리베이터에서 타깃 직원 근접 → Proxmark3 슬리브 안테나로 RFID 스캔
        ↓
[3. PRNG 탐지 및 키 크래킹]
  hf search로 PRNG 유형 확인 → WEAK: autopwn / HARDENED: Reader Attack
        ↓
[4. 에뮬레이션 준비]
  덤프 파일을 BLE로 ChameleonUltra 슬롯에 로드
        ↓
[5. 침투]
  직원 출입증으로 위장하여 건물 내부 진입, 다중 슬롯으로 여러 구역 접근
        ↓
[6. 내부 공격]
  빈 PC에 O.MG Cable 연결 / 내부 Wi-Fi에 Rogue AP 구동
        ↓
[7. 보고]
  취약점 경로 문서화 및 권고사항 작성

시나리오 B: 산업시설 IoT 취약점 평가

[1. RF 정찰]
  HackRF One + RTL-SDR로 산업용 ISM 대역 스캔
        ↓
[2. 프로토콜 역공학]
  URH / GNU Radio로 알 수 없는 산업 프로토콜 신호 분석
        ↓
[3. 기기 접근]
  JTAGulator로 PLC/RTU 장치 UART/JTAG 포트 탐색
        ↓
[4. 펌웨어 추출]
  Bus Pirate 5 + flashrom으로 SPI 플래시 덤프
        ↓
[5. 취약점 분석]
  binwalk으로 파일시스템 추출 → 하드코딩 자격 증명, 취약 API 분석
        ↓
[6. 보고]
  취약점 및 영향도 평가

+ Recent posts