Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Xiaomi-C200-Firmware-Analysis — UART에서 루트까지: U-Boot를 통해 샤오미 C200 침투하기 | Kitploit
도구/GitHubGitHub/h3xdum/xiaomi-c200-firmware-analysis
Embedded Systems SecurityPrivilege EscalationIoT SecurityExploitationReverse EngineeringData RecoveryHardware HackingHardware SecurityFirmware Analysis
GitHubh3xdum/xiaomi-c200-firmware-analysis

Xiaomi-C200-Firmware-Analysis

UART에서 루트까지: U-Boot를 통해 샤오미 C200 침투하기

11128개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

범위

이 저장소에서 저는 일반적인 노출 핀/테스트 패드 세트 없이도 UART 인터페이스에 접근한 방법을 보여드리겠습니다.
U-Boot와 여러 트릭을 사용하여 초기 단계에서 루트 권한을 얻고,
최종적으로 펌웨어를 덤프하는 방법입니다.

초기 정찰

pcb PCB에서 몇 가지 핵심 사항이 분명하게 보입니다.

  • 칩 → T31 Ingenic 프로세서
  • 플래시 메모리 → SOIC-8 SPI NOR 타입
  • 잠재적 UART 테스트 패드

먼저 UART에 바로 접근할 수 있을 만한 명백한 후보들을 확인했습니다.
Tx, Rx, GND, 전원으로 보이는 테스트 패드 4개가 일렬로 있었지만,
멀티미터로 테스트해 보니 사진에서 보이는 것처럼 잘못된 측정값이 나왔습니다.
나머지 테스트 패드들도 대부분 시도해 보았지만 올바른 측정값을 찾을 수 없어서
전략을 바꿔야 했습니다.

발판 확보

보드에는 더 이상 커넥터가 없고 도움이 될 테스트 패드도 없기 때문에,
프로세서 핀에 직접 연결하여 UART 셸을 얻는 방식으로 가기로 했습니다.
그 프로세서의 데이터시트를 확인하여 UART 프로토콜 핀을 식별했습니다.
T31

이제 보드에서 접지(GND)만 찾으면 다음과 같이 연결하면 됩니다.

  • Tx → Rx
  • Rx → Tx
  • GND → GND

이 설정에는 PCBite 프로브와 USB 2 TTL 어댑터를 사용했습니다. pcb_uart

U-Boot 및 루트

이제 picocom을 사용하여 원하는 UART 셸을 얻을 수 있습니다.

root@kitploit:~
sudo picocom -b 115200 /dev/ttyUSB0

아무 것도 하지 않으면 부팅 로그만 표시되고 부팅 프로세스가 끝난 후에는 셸이 나오지 않았습니다.
그래서 즉시 Enter 키를 눌러 U-Boot를 중단해야 했습니다.
U-Boot 셸에 진입한 후 먼저 환경 변수(environment args)를 출력했습니다.
U-Boot_1 우리에게 중요한 항목은 다음과 같습니다.

  • bootargs → init 명령이 linuxrc 바이너리를 실행하도록 지정하며, 펌웨어 레이아웃(파티션과 용도/크기/슬롯)을 보여줌
  • bootcmd → 플래시에서 RAM으로 메모리를 로드하고 장치를 부팅하는 명령

빠르게 루트 접근 권한을 얻기 위해 setenv로 init 명령을 변경하는 트릭을 사용할 수 있습니다.
그러면 linuxrc 바이너리를 실행하는 대신 셸을 얻을 수 있고, 그런 다음 직접 메모리를 로드하여
장치를 부팅할 수 있습니다(사실상 bootcmd 명령을 복사하는 것). U-Boot_1 이제 부팅이 완료되면 시스템에서 아무것도 실행되지 않는 초기 셸로 떨어지게 됩니다.
그래서 원래 linuxrc 바이너리를 백그라운드로 실행하고 이 시스템에서 열려 있는 포트가 있는지 확인했습니다. root_netstat 운이 없었습니다! 카메라는 " 47.237.75.249 "의 클라우드와만 통신하며, 만져볼 수 있는 노출된 웹 인터페이스가 없습니다. 클라우드 통신 바이너리 리버싱은 제 연구 범위를 벗어나기 때문에,
여기서 연구를 마치기로 결정했습니다 :)

펌웨어 추출

펌웨어를 가지고 놀고 싶은 사람들을 위한 약간의 추가 팁입니다.
기존과 동일하게 UART로 설정하되, 이번에는 부팅 없이 플래시에서 RAM으로
메모리를 프로빙하고 로드하기만 하면 됩니다.
그런 다음 RAM 메모리에서 데이터를 출력하고 터미널 출력을 기록합니다
(이번에는 minicom 사용). 이를 파일로 저장한 후 python으로 약간 정리하면
펌웨어를 얻을 수 있습니다. 각 섹션의 이름을 지정할 때 binwalk와 bootargs 정보가 도움이 됩니다. Firmware

도구 다운로드