관리 메뉴


Kinesis´s Open Document

안드로이드(Android) : drozer를 이용한 App 동적분석 배치(bat) 파일 본문

MEMO/기술 자료/Security

안드로이드(Android) : drozer를 이용한 App 동적분석 배치(bat) 파일

Kinesis 2016. 11. 22. 17:27

※ 배치파일은 직접 작성한 것으로 GPL 라이센스를 따릅니다.

- 출처를 남겨주셔야 합니다. 수정하시면 수정하신 소스를 공개시 원본 그대로 공개하셔야 합니다.

- 상업적 목적으로 배치파일을 이용할 수 없습니다.(설마 그런 생각을 하실 분이 있으리라고는 생각하지 않습니다만)


MWR Lab 에서 공개한 drozer(홈페이지 바로가기) 라는 진단도구가 있다. 안드로이드에 에이전트(Agent, 명령을 전달받아 수행하는 일종의 명령수행자)를 설치하고 해당 에이전트(Agent)에게 명령을 내리므로서 동적환경에서 진단할 수 있게 도와주는 도구이다.


동적진단하는 방법이야 다양하겠지만, 이 프로그램을 통해서 간단하게 얻을 수 있는 정보는 참고하면 간단한 정보 확인을 위한 시간을 자동화하여 줄이고 다른 취약점을 찾는데 시간을 확보할 수 있지 않을까 라는 판단에 배치파일(Bat)을 작성했다.


간단하게 어떠한 정보를 수집할 수 있는지 정리하면 다음과 같다.


- 공격이 가능한 표면정보 확인

-- 몇 개의 Activity가 exported 되어 있는지 (외부에서 호출 할 수 있도록 되어 있는 상태)

-- 몇 개의 broadcast가 exported 되어 있는지

-- 몇 개의 content providers가 exported 되어 있는지

-- 몇 개의 service 가 exported 되어 있는지

- 프로바이더(provider)의 정보

- 접근가능한 컨텐츠 URI 정보

- Contents View 및 Content Injection 등


이러한 정보를 확인 할 수 있어 APK 자체의 취약점 일부를 간단하게 확인가능하다. 본래 CMD 창에서 명령을 입력해야 하겠으나 cmd 기반의 프로그램들은 대부분 txt 파일 형태로 출력시킬 수 있는바, 간단한 텍스트파일 형태의 레포트를 생성시키도록 배치가 작성되었다.


사용을 위한 전제조건

이 배치파일을 사용하려면 기본적으로 다음과 같은 전제조건 환경이 충족이 되어야 한다.


- Windows 기반 환경

- ADB Tool 설치 및 Path 등록 (Console 화면에서 adb 라고 입력하고 엔터 쳤을 때, 명령이 수행될 수 있는 상태)

- WIndows 기반의 drozer 설치

- Bat 파일을 drozer가 설치된 파일에 복사

- Android 기기에 Agent 가 설치되어 있는 상태 (Rooting이 필요하다, 정확히는 Rooting된 기기에서밖에 테스트하지 않았다)

- Android 기기에 Agent 실행


이후 사용은 복사한 bat 파일을 실행하면 된다.


다운로드

필요한 사람이 있을까 싶어 별도의 설치프로그램과 함께 BAT를 올려둔다.


drozer-installer-2.3.4.zip.001

drozer-installer-2.3.4.zip.002

drozer-installer-2.3.4.zip.003

drozer-installer-2.3.4.zip.004

dz_analysis.bat


사용과정 및 결과 살펴보기



최초실행시 기존의 연결(Connection)을 종료하고 다시 연결하여 Android 기기와의 연결(Connection)을 확보하고, 에이전트(Agent)와의 통신을 위해 31415 Port를 포워딩(Forwarding) 하도록 설정 후, Drozer 에이전트(Agent)와 연결을 맺는다.


연결이 성공적으로 맺히면 뒤와 같이 0~5번까지의 메뉴가 나타난다.



1번을 선택하면 모든 패키지 메뉴를 검색하고나서 메모장으로 출력시킨다. 이 때는 한글이여도 깨지지 않으나, 시간이 오래걸린다는 단점이 있어서 특정한 앱의 패키지명을 알고 있다면 2번의 Found를 통해 검색하는 편이 좋다.


2번을 선택하고 검색하고자하는 특정 패키지의 일부명칭을 입력하고 엔터를 치면 그에 따른 결과가 출력되게 된다. 이 때는 Console에 출력되므로 멀티바이트 문자(한글 등)는 깨지는 현상이 나타날 수 있다.



검색된 패키지명 중 내가 분석하고자 하는 대상의 패키지명이 확인되면 4번을 골르고 엔터한 뒤 대상 패키지명을 넣어준다. 이 때는 전체 패키지 명을 모두 적어주어야 한다. (Console 상에서 복사하기 붙여넣기 기능을 이용하는 것을 추천한다)



이 후, 5번을 선택하면 미리 정해놓은 몇가지 정보를 추출할 수 있도록 동작하며 레포트를 위한 결과파일을 생성한다.



결과가 나오면 위와 같이 별도의 메모창에 진단결과가 출력된다.


Comments