스마트 홈 디바이스 해킹 (2024)

8 hours ago 2

  • ESP32 기반 스마트 홈 기기를 리버스 엔지니어링하여 Home Assistant와 통합함
  • 모바일 앱을 분석하여 클라우드 서버와의 연결을 확인함
  • 네트워크 트래픽을 가로채어 기기 제어를 시도함
  • ESP32 플래시를 덤프하고 분석하여 펌웨어 수정을 시도함
  • 패킷 구조를 분석하여 암호화 및 체크섬을 이해함

소개

  • 최근 Home Assistant에 모든 기기를 연결하려는 시도를 하고 있음
  • 특정 공기청정기가 자체 앱 외에는 연결되지 않아 이를 해킹하여 통합하려고 함
  • 인터넷 연결클라우드 계정에 의존하는 제품의 문제점을 지적함

계획

  • 모바일 앱이 클라우드 서버와 연결되어 원격 제어가 가능함을 확인함
  • 네트워크 트래픽을 가로채어 기기를 제어할 수 있는 방법을 모색함

모바일 앱 분석

  • Android 앱을 분석하여 React Native로 개발되었음을 확인함
  • WebSocket을 통해 클라우드 서버와 연결됨을 발견함

네트워크 검사

  • Pi-hole을 사용하여 DNS 쿼리를 확인하고 Wireshark로 트래픽을 분석함
  • UDP 패킷을 통해 기기와 서버 간의 통신을 확인함

패킷 분석

  • UDP 프록시를 사용하여 기기와 클라우드 서버 간의 트래픽을 중계함
  • Wireshark를 통해 패킷 구조를 분석하고 암호화 가능성을 확인함

물리적 분해

  • ESP32 기반의 기기를 분해하여 플래시 칩에서 펌웨어를 덤프함
  • esptool을 사용하여 시리얼 연결을 통해 데이터를 읽어옴

플래시 분석

  • esp32knife를 사용하여 플래시 데이터를 분석하고 파티션 테이블을 확인함
  • FAT 파일 시스템에서 중요한 파일들을 발견함

초기 정적 분석

  • Ghidra를 사용하여 펌웨어의 문자열을 분석하고 암호화 라이브러리 사용을 확인함
  • mbedtls 라이브러리를 사용하여 ECDHHKDF 알고리듬을 구현함

펌웨어 수정

  • Ghidra를 통해 CapSense 기능을 비활성화하고 펌웨어를 수정하여 기기를 부팅함
  • 체크섬 문제를 해결하여 수정된 펌웨어를 성공적으로 플래시함

패킷 헤더

  • 패킷 헤더의 구조를 분석하여 시리얼 번호메시지 식별자를 확인함
  • 클라이언트 요청서버 응답의 패턴을 파악함

패킷 체크섬

  • CRC 체크섬을 확인하여 패킷 데이터의 무결성을 검증함

Read Entire Article