모바일 악성코드 분석 실무 요약(공개버전)_미완성 참고버전

16
0100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000110010010000100100010010 0000100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000100001110001010100011 0100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000110010010000100100010010 0000100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000100001110001010100011 | 정보보호 전문가(모의해킹) 과정| ㈜타이거팀아카데미 Andorid 악성앱(Kaokao.apk) 코드 분석

Upload: -

Post on 15-Apr-2017

2.369 views

Category:

Education


12 download

TRANSCRIPT

01000011100010101000110010100101000111000000000011110011000000111110000000011101110111000111000110111001110001100100100001001000100100000100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000100001110001010100011

01000011100010101000110010100101000111000000000011110011000000111110000000011101110111000111000110111001110001100100100001001000100100000100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000100001110001010100011

| 정보보호 전문가(모의해킹) 과정|

㈜타이거팀아카데미

Andorid 악성앱(Kaokao.apk) 코드 분석

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

2

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

3

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

4

AndroidMenifest.xml (설치시 요청할 권한 내역)

권한 내용ACCESS_WIFI_STATE WIFI 상태 접근 권한

CHANGE_WIFI_STATE WIFI 상태 변경(인터넷 권한)

WAKE_LOCK 알람

WRITE_EXTERNAL_STORAGE 외부 저장장치에 쓰기 권한

READ_PHONE_STATE 폰 상태 관련 권한

SEND_SMS SMS 문자 보내기 권한

RECEIVE_SMS SMS 문자 수신 관련 권한

READ_CONTACTS 주소록 읽기 권한

WRITE_CONTACTS 주소록 쓰기 관련 권한

RECEIVE_BOOT_COMPLETED 부팅 완료 관련 권한

MODIFY_PHONE_STATE 폰상태 변경시 접근 권한

CALL_PHONE 전화 통화 권한

INSTALL_SHORTCUT 바로가기 버튼 생성 권한

UNINSTALL_SHORTCUT 바로가기 버튼 삭제 권한

RECEIVE_BOOT_COMPLETED 부팅 완료 관련 권한

RESTART_PACKAGES 특정 패키지 실행 종료 및 알림 권한(API Level 8에서 제거된 권한)

GET_TASKS 테스크 관련 권한

KILL_BACKGROUND_PROCESSES백그라운드 프로세스 종료 권한RESTART_PACKAGE와 차이점은 중요도에따라 선별적 종료

SYSTEM_ALERT_WINDOW 시스템 알림창 표시등의 권한

READ_LOGS 로그 읽기 권한

VIBRATE 진동 관련 권한

MODIFY_AUDIO_SETTINGS 오디오 설정 변경 권한

INTERNET 인터넷 권한

ACCESS_NETWORK_STATE 네트워크 상태 접근 권한

서비스 기능 대비 과도한 권한을 요구할 경우악성적인 기능의 존재 여부를 의심할 수 있음

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

5

첫 시작 Activity로 분석 시작 클래스가 됨

SMS 수신시에 동작하는 코드(클래스)

폰 상태에 따라 대응하는 코드(클래스)

패키지 추가, 삭제시에 대응하는 코드 (클래스)cn.gx3.notify 인턴트 발생시디바이스가 부팅됐다고 알려주는 메시지로 시스템에서만보냄

디바이스 관리자 권한 획득시 처리 코드ADMIN 권한 처리할 내용 정의(화면잠금 권한)

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

6

실행시 클래스의 시작지점그 외 생성자 지점 분석

디바이스 관리자 권한 체크 및 강제 락걸기악성행위 방해 금지를 위해서 차단시키고아래 무한루프로 현 상황유지(wipeData(0)는 모든 데이터 삭제 명령)

CoreService 클래스 코드 실행

아이콘 숨기기 함수

인턴테를 통해서 추가 정보 설정관리자 권한 획득 및 카카오톡으로 보이도록 설정

핸드폰 번호 가져옴

Activity 종료 함수

윈도우 프레임에 대한 타이틀 제거

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

7

새로운 쓰레드를 생성시켜서 전화번호 특정 서버로 전달

인턴트 추가 등록. 다음과 같은 메시지 발생시 MyBroadcastReceiver()를 호출 등록

2011년에 나온 안드로이드 3.0으로 허니콤 버전 이상을 말함

안드로이드 3.0부터 네트워크 통신등을 쓰레드로 지원하는데 시간 지연등의 문제 발생시이를 처리해 주기 위함 (이는 메인 쓰레드 성능 향상 등의 이유로 지원),해당 쓰레드의 권한을 설정하는 코드임

새로운 설정값 등록

새로운 쓰레드 두개 실행. CoreService 핵심 동작

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

8

전화번호 가져오기

가져온 전화번호 내용이 있다면 추가 쓰레드 생성시킴무한 루프를 돌면서 해당 번호가 끝날때까지 실행시킴

전화번호와 IMSI(GSM/UMTS 유저) 값을 서버로 전달아마도 IMSI 값을 기반으로 전화번호를 분류하기 위함인 것으로 판단

Config 클래스를 보면 관련 내용이 하드코딩되어 있음SERVER_HOST = "http://kakapx.jetos.com";SERVER_ADDRESS = "/kbs.php?m=Api&a=";

관련 내용 전달

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

9

MyBroadcastReciver Class #1

CoreService 에서 등록한 인텐트 필터 정보가 수신되면 코드 동작

인자로 전달된 인텐트값 alert의 값을 받음

인텐트로 전달된 info 값을 받아서 URL로 저장

다운로드할 APK 값으로 저장(URL)코드상 “#”을 구분으로 다운로드 이름, URL, 삭제패키지

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

10

MyBroadcastReciver Class #2

Config에 등록된 은행 이름 길이만큼 무한루프 동작

다운로드 경로 및 다운받을 앱 이름으로 파일 다운로드 실행

다운로드 종료시 업데이트 알림 메시지로 해당 파일 설치 유도

다이얼로그 창 띄움. 설치 강제 유도 화면BtnClick시 “app.download.complete” 인텐트 메시지 브로드캐스팅

BtnClick 날라온 인텐트 처리 로직, 패키지 삭제 명령

Config 클래스에 있던 은행명과 패키지명이 동일할 경우 아이콘 변수값 등록

App.auto.install 인텐트 메시지 수신시 autoChangeApk 호출해당 메쏘드에서 apk 파일을 다운로드하고 설치 유도를 하는데, 위의 코드와매우 유사함 (앱이 업데이트 되었을때를 대비한 코드로 판단됨)

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

11

MyBroadcastReciver Class #2

Config에 등록된 은행 이름 길이만큼 무한루프 동작

다운로드 및 저장

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

12

5초간 슬립

무한루프이므로, 약 120초마다 반복 실행되는 코드

패키지명을 읽어서 설치하고자 하는 악성앱이 없다면 설치 유도하는 메소드

Bank, upbank 배열 은행이 설치됐다면 관련 앱 패키지 정보

WIFI 모드라면, if 구문 내에서 수집한 정보를 인자값으로 포함하여 HTTP로 데이터 전달SERVER_HOST = "http://kakapx.jetos.com"; //Config클래스 참조

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

13

WIFI 모드가 아니면 아무것도 하지 않고, 속성값만 설정함.아마도 안전한 WIFI 통신일때 데이터를 송신하도록 한 것으로 추정됨

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

14

5초간 슬립

무한루프이므로, 약 120초마다 반복 실행되는 코드

패키지 관리자 권한 획득설치된 패키지 정보 모두 가져오기Iterator()로 처리하여 hasNext() 쉽게 사용할 수 있음

설치된 패키지가 하나도 없거나 마지막이라면~

다음 패키지를 읽어서, 아래 플래그가 아닐때까지 루프돌면서 패키지 정보 저장Flags 0x01 à FLAG_SYSTEM (시스템 이미지에 설치)Flags 0x80 à FLAG_PERSISTENT

검색된 패키지라벨 + # + 패키지이름 + |

은행명 배열 카운트만큼 동작

기 설치된 내역에 bank 패키명 존재여부 확인

upbank 배열 패키지명이 존재하는지 체크

autoChangeApk() 함수 호출시 1로 설정즉, 설치된적 없음을 말함

앱 설치 인텐트 설정 및 브로드케스팅으로 전달CoreService에서 해당 인텐트 필터를 등록했으며,MyBroadcastReceiver 클래스를 호출하도록 되어 있음해당 클래스에서는 CoreService.autoChanageApk 메쏘드를 호출하도록 되어 있음

Config 클래스에 정의된 배열 정보

2. [사례1] 악성코드 분석 악성앱 코드 분석

© 2015 TigerTeamAcademy, Inc. All rights reserved.

15

2초 슬립

디컴파일된 소스코드 상으로는 모두 주석처리 상태로동작되는 내용이 없음

0100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000110010010000100100010010000010000111000101010001100101001010001110000000000111100110000001111100000000111011101110001110001101110011100

0100001110001010100011001010010100011100000000001111001100000011111000000001110111011100011100011011100111000110010010000100100010010000010000111000101010001100101001010001110000000000111100110000001111100000000111011101110001110001101110011100

| 정보보호 컨설팅(모의해킹 분야) 전문가 과정 |