56
Android App Reversing NewHeart 전성윤(roland)

Android App Reversing

Embed Size (px)

Citation preview

Page 1: Android App Reversing

Android App ReversingNewHeart 전성윤(roland)

Page 2: Android App Reversing

Case Study!2013. 8. 27 ~ 2014. 1. 16

5 smishing apps

Page 3: Android App Reversing

Goals?

• 안드로이드 앱 설치 파일이 갖는 주요 특징을 이해한다

• Case Study를 통해 앱의 매커니즘과 특히, 스미싱 앱의 목표를 파악해본다

• Case Study를 통해 앱의 분석과정을 논리적으로 이해해본다

• 분석 중에 필요한 프로그램에 대해서 아이디어를 공유한다

Page 4: Android App Reversing

APK(Android aPplication pacKage)

• ZIP 압축

• ZIP 압축 포맷을 그대로 따르고 있음

• 확장자만 다른것일뿐….

010 Editor

Page 5: Android App Reversing

APK(Android aPplication pacKage)

• META-INF : Manifest, 인증서, 등 리버싱과 no 관련

• AndroidManifest.xml :앱 권한, 구성요소 설정 관련

• class.dex :dex(dalvik executable)

• resources.arsc : 미리 컴파일된 바이너리를 담고있다고 함

Page 6: Android App Reversing

APK(Android aPplication pacKage)

• res/drawble : 아이콘, 각종 이미지. 자세한 설명 생략.

• res/layout : 액티비티별 레이아웃(xml)들을 저장

안드로이드 레이아웃 xml파일을 입력으로 주면 렌더링해서 보여주는 stand-

alone 프로그램 개발?

Page 7: Android App Reversing

AndroidManifest.xml

Page 8: Android App Reversing

AndroidManifest.xml

Page 9: Android App Reversing

Dalvik EXacutable

• 소스코드들이 이래 됨

• dex2jar, java decompiler(GUI)

• baksmali, smali

Page 10: Android App Reversing

Target?• 지금까지 개인적으로 확보해둔 스미싱 앱들

• up.apk

• 2013. 8. 27 - 모바일 돌잔치 초대장(oa.to/PJazvb)

• cckun.apk

• 2013. 9. 25 - www.667803.com

• aaa.apk

• 2013. 10. 1 - 955.cc

• App.apk

• 2013. 12. 29 - 12월달 교통위반 청구서( ? )

Page 11: Android App Reversing

[혐]

Page 12: Android App Reversing

up.apk• AndroidManifest.xml

permission

MainActivity

Page 13: Android App Reversing

up.apk• res/ * : 우리은행, 국민은행, 농협 이미지

• class.dex : 먼저, dex2jar&jd-gui 시도

Page 14: Android App Reversing

up.apk

Page 15: Android App Reversing

up.apk

Page 16: Android App Reversing

up.apk

Page 17: Android App Reversing

up.apk

myThread -> myHandler -> download() -> downloadFile()

Page 18: Android App Reversing

up.apk

Page 19: Android App Reversing

cckun.apkpermission

MainActivity

Page 20: Android App Reversing

cckun.apk

• broadcastreceiver

• permission

Page 21: Android App Reversing

cckun.apk

Page 22: Android App Reversing

cckun.apk

Emulator check

Page 23: Android App Reversing

cckun.apk

Page 24: Android App Reversing

cckun.apk

Page 25: Android App Reversing

cckun.apk

Page 26: Android App Reversing

cckun.apk

체인지업

Page 27: Android App Reversing

cckun.apk

Page 28: Android App Reversing

cckun.apk

Page 29: Android App Reversing

cckun.apk

Page 30: Android App Reversing

cckun.apk

Page 31: Android App Reversing

cckun.apk

Page 32: Android App Reversing

cckun.apk

Page 33: Android App Reversing

cckun.apk

Page 34: Android App Reversing

cckun.apk

Page 35: Android App Reversing

cckun.apk

Page 36: Android App Reversing

cckun.apk

Page 37: Android App Reversing

aaa.apk• “[주의]APK 암호화 기법을 도입한 스미싱 악성앱 출현”

Page 38: Android App Reversing

aaa.apk0000 1000 0000 1001 (Lit.)->0000 1000 0000 1000(Lit.)

Page 39: Android App Reversing

aaa.apk

Page 40: Android App Reversing

aaa.apkpermission

Main Activity

Page 41: Android App Reversing

aaa.apk

Page 42: Android App Reversing

aaa.apk

Page 43: Android App Reversing

aaa.apk

Page 44: Android App Reversing

aaa.apk

Page 45: Android App Reversing

App.apk

Page 46: Android App Reversing

App.apk

Page 47: Android App Reversing

App.apk

Page 48: Android App Reversing

App.apk

Page 49: Android App Reversing

App.apk

Page 50: Android App Reversing

App.apk

Page 51: Android App Reversing

App.apk

Page 52: Android App Reversing

Conclusion• up.apk

• 무작위 SMS 전송 + wuri.apk, KB.apk, NH.apk 를 받기 위한 드롭퍼(Dropper)

• cckun.apk

• 무작위 SMS 전송 + 드롭퍼 + 보안(?)(에뮬레이터 체크, SMS흔적 삭제)

• aaa.apk

• APK 암호화 기법 + 드롭퍼 + 전화번호부 탈취

• App.apk

• 원격 피 조종 클라이언트(좀비 SmartPhone) + 무작위 SMS 전송

Page 53: Android App Reversing

Conclusion

• dex 를 분석하여 클래스 간의 관계도를 UML처럼 그려주는 툴…….

• 은 있었다. ㅠ_ㅠ Google God.

• http://dexter.dexlabs.org

Page 54: Android App Reversing

dex분석과 향후전망

• dex2jar - java decompiler : java로 디컴파일. dex에 아무런 난독화 기법이 적용되지 않을 경우 사용 가능.

• baksmali - smali로 디스어셈블. 디스어셈블이기 때문에, 난독화, 암호화 또는 파일 헤더 조작 등으로만 막을 수 있음.

• ART VM - dalvik의 시한부 선고

Page 55: Android App Reversing

baksmali 예제

• 시연잼

Page 56: Android App Reversing

-END- with dalvik