Hack4S3cur1ty
Lab #9 Analyze Malicious Android Application 본문
실습 목표
1. 여러 가지 분석 방법을 통해 APK 파일 내 악성 코드를 찾아내고 분석하고 이해한다.
필수 구성 요소
1. dex2jar
2. jd-gui
3. sample apk
실습 과정
안드로이드 애플리케이션은 APK 파일의 형대로 배포된다.
APK파일은 ZIP과 같은 PE구조이므로 그냥 압축 해제하면 구성파일을 확인할 수 있다.
구성파일은 대표적으로 assets, res, libs 폴더와 AndroidManifest.xml, classes.dex 파일들로 구성된다.
[그림1]
특히 classes.dex파일에는 달빅 바이트코드가 담긴다. 여기에 담긴 코드는 4가지의 주요 컴포넌트로 나뉜다.
[그림2]
Activity -
사용자가 앱 아이콘을 터치할 때 실행되어 보이는 UI화면을 뜻한다. 가장 흔히 쓰이는 클래스고 onCreate 함수는 Activity가 실행되었을 때 가장 먼저 실행되기 때문에 대부분 여기에 악성코드를 작성한다.
Broadcast / Intent Receiver -
해당 채널의 접근권한이 있을때 발생하는 Broadcast를 수신하는 역할을 한다. 예를 들어 Notification을 이용하여 진동, 사운드 재생, 상태바 알림 등에 이용된다.
Content Provider -
앱 자신의 데이터, 특히 SQLite DB 데이터를 공유할 때 주로 쓰인다. 카카오톡이 대화 내용을 암호화 시킨후 db형태로 저장시키는데 이로 인해 데이터 유출이 일어나는 사례가 많다.
Service -
Content Provider와 비슷하지만 Service는 함수를 공유하는데 목적이 있다.
어플리케이션 분석 방법은 달빅 바이트코드가 담긴 classes.dex를 dex2dar로 디컴파일해서 jd-gui로 분석한다.
먼저 분석에 이용할 악성 어플리케이션 샘플을 구한다.
http://rogunix.com/docs/Android/Malware/
[그림3]
악성 어플리케이션 샘플을 모아둔 사이트도 있지만 나는 지인들로부터 직접 구했다.
내가 구한 어플리케이션은 스카이프를 이용한 몸캠사기에 이용됬던 어플리케이션 이다.
먼저 어플리케이션을 압축해제 해보자.
[그림4]
[그림1]과 비슷한 내용이 들어있다.
여기서 classes.dex파일을 dex2jar로 디컴파일을 진행 할 것이다.
dex2jar을 다운로드 받고 압축을 풀다
[그림5]
압축을 푼 dex2jar폴더에 [그림4]에서 추출한 classes.dex 파일을 같이 넣는다.
CMD를 실행시켜 classes.dex가 들어있는 폴더로 이동한 후
> dex2jar.bat classes.dex
를 입력하여 classes.dex파일을 디컴파일 한다.
[그림6]
[그림7]
classes_dex2jar.jar파일이 생성되었다.
이제 이 파일을 jd-gui툴에서 불러들여서 앱의 구조를 확인해보자
[그림8]
대부분 앱의 실행경로인 MainActivity.class를 찾아간다.
[그림9]
MainActivity에는 특별한 내용이 없어보인다. SecretView를 클릭해서 다음 실행으로 넘어간다.
[그림10]
recvMail이라는 정의에서 이메일이 노출되었다. GMailSender이라는 정의도 보인다. 좀 더 정확하게 찾기 위해 스크롤을 내려서 천천히 살펴본다.
[그림11]
스크롤을 다 내렸을 때 쯤 이메일과 비밀번호가 노출되었다. 아마 메일을 발송할 때 필요한 계정인거같다. gmail이니 로그인을 시도해 보자.
[그림12]
아쉽게도 계정이 정지되어있다. 아마 구글측에서 차단을 했거나 누군가 분석하여 이미 신고를 한 상태인거같다.
-----
이 어플리케이션은 몇 개월이 지난 어플리케이션이라서 작동을 멈춘거같다.
그래서 최신 악성코드를 찾아내어 분석했다.
분석도중 전화번호와 SMS가 저장되는 URL을 발견했고, admin으로 sql injection을 시도해보았지만 잘 되지 않았다.
최신 악성코드 샘플을 첨부(악성코드 디컴파일.jar)해놨으니 연습용으로 분석을 시도해보는것도 나쁘지 않을거같다.
'DoubleS 1405 > 개인발표' 카테고리의 다른 글
BadUSB 취약점과 시연동영상 (0) | 2020.08.12 |
---|---|
Volatility Plugins (0) | 2020.08.12 |
라즈베리파이를 이용한 RC카 만들기 (WII Remote) (0) | 2020.08.12 |
pfSense 방화벽 (0) | 2020.08.12 |
Lab #2 Making Malware using SFX Archive (0) | 2016.12.28 |
Comments