적외선

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

적외선 작동 원리

적외선은 인간에게 보이지 않습니다. IR 파장은 0.7에서 1000 마이크론입니다. 가정용 리모컨은 데이터 전송을 위해 IR 신호를 사용하며, 0.75..1.4 마이크론의 파장 범위에서 작동합니다. 리모컨의 마이크로컨트롤러는 특정 주파수로 적외선 LED를 깜박이게 하여 디지털 신호를 IR 신호로 변환합니다.

IR 신호를 수신하기 위해 포토리시버가 사용됩니다. 이는 IR 빛을 전압 펄스로 변환하며, 이는 이미 디지털 신호입니다. 일반적으로 수신기 내부에는 어두운 빛 필터가 있어 원하는 파장만 통과시키고 잡음을 차단합니다.

다양한 IR 프로토콜

IR 프로토콜은 3가지 요소에서 다릅니다:

  • 비트 인코딩
  • 데이터 구조
  • 반송 주파수 — 일반적으로 36..38 kHz 범위

비트 인코딩 방식

1. 펄스 간격 인코딩

비트는 펄스 간의 간격 지속 시간을 변조하여 인코딩됩니다. 펄스 자체의 너비는 일정합니다.

2. 펄스 폭 인코딩

비트는 펄스 폭의 변조로 인코딩됩니다. 펄스 폭 후의 간격 너비는 일정합니다.

3. 위상 인코딩

맨체스터 인코딩으로도 알려져 있습니다. 논리 값은 펄스 폭과 간격 사이의 전환의 극성에 의해 정의됩니다. "간격에서 펄스 폭"은 논리 "0"을 나타내고, "펄스 폭에서 간격"은 논리 "1"을 나타냅니다.

4. 이전 방식과 기타 이국적인 조합

tip

여러 유형의 장치에 대해 보편적이 되려고 하는 IR 프로토콜이 있습니다. 가장 유명한 것은 RC5와 NEC입니다. 불행히도, 가장 유명하다고 해서 가장 일반적이라는 의미는 아닙니다. 제 환경에서는 NEC 리모컨 두 개만 보았고 RC5는 없었습니다.

제조업체는 동일한 장치 범위 내에서도 고유한 IR 프로토콜을 사용하는 것을 좋아합니다(예: TV 박스). 따라서 서로 다른 회사의 리모컨이나 때로는 동일한 회사의 서로 다른 모델의 리모컨은 동일한 유형의 다른 장치와 작동할 수 없습니다.

IR 신호 탐색

리모컨의 IR 신호가 어떻게 생겼는지 확인하는 가장 신뢰할 수 있는 방법은 오실로스코프를 사용하는 것입니다. 이는 수신된 신호를 복조하거나 반전하지 않고 "있는 그대로" 표시합니다. 이는 테스트 및 디버깅에 유용합니다. NEC IR 프로토콜의 예를 통해 예상 신호를 보여드리겠습니다.

일반적으로 인코딩된 패킷의 시작 부분에는 프리앰블이 있습니다. 이는 수신기가 이득 수준과 배경을 결정할 수 있게 해줍니다. 프리앰블이 없는 프로토콜도 있으며, 예를 들어 Sharp가 있습니다.

그런 다음 데이터가 전송됩니다. 구조, 프리앰블 및 비트 인코딩 방법은 특정 프로토콜에 의해 결정됩니다.

NEC IR 프로토콜은 짧은 명령과 반복 코드를 포함하며, 버튼이 눌리는 동안 전송됩니다. 명령과 반복 코드 모두 시작 부분에 동일한 프리앰블을 가지고 있습니다.

NEC 명령은 프리앰블 외에도 장치가 수행해야 할 작업을 이해할 수 있도록 주소 바이트와 명령 번호 바이트로 구성됩니다. 주소 및 명령 번호 바이트는 전송의 무결성을 확인하기 위해 역값으로 중복됩니다. 명령의 끝에는 추가적인 정지 비트가 있습니다.

반복 코드는 프리앰블 뒤에 "1"이 있으며, 이는 정지 비트입니다.

**논리 "0"과 "1"**에 대해 NEC는 펄스 간격 인코딩을 사용합니다: 먼저 펄스 폭이 전송된 후 그 뒤에 간격이 있으며, 그 길이가 비트의 값을 설정합니다.

에어컨

다른 리모컨과 달리 에어컨은 눌린 버튼의 코드만 전송하지 않습니다. 버튼이 눌리면 모든 정보를 전송하여 에어컨과 리모컨이 동기화되도록 합니다.
이렇게 하면 20ºC로 설정된 기계가 한 리모컨으로 21ºC로 증가하고, 이후 20ºC로 온도가 설정된 다른 리모컨을 사용하여 온도를 더 높이면 21ºC로 "증가"하게 됩니다(21ºC에 있다고 생각하지 않고 22ºC로).


공격 및 공격적 연구

Flipper Zero로 적외선을 공격할 수 있습니다:

{{#ref}} flipper-zero/fz-infrared.md {{#endref}}

스마트-TV / 셋톱 박스 탈취 (EvilScreen)

최근의 학술 연구(EvilScreen, 2022)는 적외선과 블루투스 또는 Wi-Fi를 결합한 다채널 리모컨이 현대 스마트-TV를 완전히 탈취하는 데 악용될 수 있음을 보여주었습니다. 이 공격은 높은 권한의 IR 서비스 코드를 인증된 블루투스 패킷과 연결하여 채널 격리를 우회하고 임의의 앱 실행, 마이크 활성화 또는 물리적 접근 없이 공장 초기화를 허용합니다. 삼성 모델을 포함한 8개의 주요 TV가 취약한 것으로 확인되었습니다. 완화 조치는 공급업체의 펌웨어 수정 또는 사용하지 않는 IR 수신기를 완전히 비활성화하는 것을 요구합니다.

IR LED를 통한 공기 간섭 데이터 유출 (aIR-Jumper 패밀리)

보안 카메라, 라우터 또는 악성 USB 스틱은 종종 야간 시야 IR LED를 포함합니다. 연구에 따르면 맬웨어는 이러한 LED를 변조하여 (<10–20 kbit/s의 간단한 OOK) 벽과 창을 통해 비밀을 외부 카메라로 유출할 수 있습니다. 빛이 가시 스펙트럼 밖에 있기 때문에 운영자는 거의 알아차리지 못합니다. 대응 조치:

  • 민감한 지역에서 IR LED를 물리적으로 차폐하거나 제거
  • 카메라 LED 듀티 사이클 및 펌웨어 무결성 모니터링
  • 창문과 감시 카메라에 IR 컷 필터 배치

공격자는 또한 강력한 IR 프로젝터를 사용하여 명령을 침투시켜 불안전한 카메라로 데이터를 플래시할 수 있습니다.

Flipper Zero 1.0을 통한 장거리 무차별 대입 및 확장 프로토콜

펌웨어 1.0(2024년 9월)은 수십 개의 추가 IR 프로토콜 및 선택적 외부 증폭기 모듈을 추가했습니다. 보편적 리모컨 무차별 대입 모드와 결합하여 Flipper는 고출력 다이오드를 사용하여 최대 30m 거리에서 대부분의 공공 TV/에어컨을 비활성화하거나 재구성할 수 있습니다.


도구 및 실용적인 예

하드웨어

  • Flipper Zero – 학습, 재생 및 사전 정의된 무차별 대입 모드를 갖춘 휴대용 송수신기(위 참조).
  • Arduino / ESP32 + IR LED / TSOP38xx 수신기 – 저렴한 DIY 분석기/송신기. Arduino-IRremote 라이브러리와 결합(버전 4.x는 >40 프로토콜 지원).
  • 로직 분석기 (Saleae/FX2) – 프로토콜이 알려지지 않았을 때 원시 타이밍 캡처.
  • IR 블래스터가 있는 스마트폰 (예: Xiaomi) – 빠른 현장 테스트지만 범위가 제한적입니다.

소프트웨어

  • Arduino-IRremote – 적극적으로 유지 관리되는 C++ 라이브러리:
cpp
#include <IRremote.hpp>
IRsend sender;
void setup(){ sender.begin(); }
void loop(){
sender.sendNEC(0x20DF10EF, 32); // 삼성 TV 전원
delay(5000);
}
  • IRscrutinizer / AnalysIR – 원시 캡처를 가져오고 프로토콜을 자동으로 식별 + Pronto/Arduino 코드를 생성하는 GUI 디코더.
  • LIRC / ir-keytable (Linux) – 명령줄에서 IR 수신 및 주입:
bash
sudo ir-keytable -p nec,rc5 -t   # 실시간 덤프 디코드된 스캔 코드
irsend SEND_ONCE samsung KEY_POWER

방어 조치

  • 필요하지 않을 때 공공 장소에 배치된 장치의 IR 수신기를 비활성화하거나 덮습니다.
  • 스마트-TV와 리모컨 간의 페어링 또는 암호화 검사를 시행하고, 특권 "서비스" 코드를 격리합니다.
  • 기밀 지역 주변에 IR 컷 필터 또는 연속파 감지기를 배치하여 광학 은밀한 채널을 차단합니다.
  • 제어 가능한 IR LED를 노출하는 카메라/IoT 기기의 펌웨어 무결성을 모니터링합니다.

참고 문헌

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기