Android APK 체크리스트
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Android 기초 학습
- 기초
- Dalvik & Smali
- 엔트리 포인트(Entry points) (android-app-pentesting/index.html#application-entry-points)
- Activities(액티비티)(android-app-pentesting/index.html#launcher-activity)
- URL Schemes(링크 스킴)(android-app-pentesting/index.html#url-schemes)
- Content Providers(콘텐츠 프로바이더)(android-app-pentesting/index.html#services)
- Services(서비스)(android-app-pentesting/index.html#services-1)
- Broadcast Receivers(브로드캐스트 리시버)(android-app-pentesting/index.html#broadcast-receivers)
- Intents(인텐트)(android-app-pentesting/index.html#intents)
- Intent Filter(인텐트 필터)(android-app-pentesting/index.html#intent-filter)
- 기타 컴포넌트(Other components)(android-app-pentesting/index.html#other-app-components)
- ADB 사용 방법(How to use ADB)(android-app-pentesting/index.html#adb-android-debug-bridge)
- Smali 수정 방법(How to modify Smali)(android-app-pentesting/index.html#smali)
정적 분석
- obfuscation 사용 여부 확인, 기기가 루팅되었는지, 에뮬레이터 사용 여부 및 안티탬퍼링 체크 확인. 자세한 내용은 여기 참조.
- 금융 앱과 같은 민감한 애플리케이션은 기기가 루팅되었는지 확인하고 그에 따라 동작해야 합니다.
- 흥미로운 문자열 검색(비밀번호, URLs, API, 암호화 정보, 백도어, 토큰, Bluetooth UUID 등).
- firebase API에 특별 주의.
- 매니페스트 읽기:
- 애플리케이션이 debug 모드인지 확인하고 가능하면 이를 “exploit” 해보세요.
- APK가 백업을 허용하는지 확인
- Exported Activities 확인
- Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity가
unityCLI extras bridge와 함께 노출되어 있는지 확인. 사전 초기화(pre-init)dlopen()RCE를 위해-xrsdk-pre-init-library <abs-path>를 테스트하세요. 자세한 내용은 Intent Injection → Unity Runtime를 참고하세요. - Content Providers 확인
- 노출된 서비스 확인
- Broadcast Receivers 확인
- URL Schemes 확인
- 애플리케이션이 내부 또는 외부에 데이터를 안전하지 않게 저장하고 있는지 확인하세요.
- 디스크에 하드코딩된 비밀번호가 있거나 저장되어 있는지 확인하세요. 앱이 안전하지 않은 암호화 알고리즘을 사용하는지도 확인하세요.
- 모든 네이티브 라이브러리가 PIE 플래그로 컴파일되었는가?
- 이 단계에서 많은 도움이 되는 정적 Android 분석기들이 있다는 것을 잊지 마세요.
-
android:exportedAndroid 12+에서 필수 – 잘못 구성된 exported 컴포넌트는 외부 intent 호출로 이어질 수 있습니다. -
cleartextTrafficPermitted="true"또는 도메인별 오버라이드가 있는지 Network Security Config(networkSecurityConfigXML)를 검토하세요. - Play Integrity / SafetyNet / DeviceCheck 호출을 찾아 맞춤 attestation이 훅/우회 가능한지 판단하세요.
- App Links / Deep Links(
android:autoVerify)를 검사하여 intent 리다이렉션 또는 open-redirect 문제를 찾으세요. - 앱 내부에서 RCE / XSS로 이어질 수 있는 WebView.addJavascriptInterface 사용 또는
loadData*()호출을 식별하세요. - 크로스-플랫폼 번들(Flutter
libapp.so, React-Native JS bundles, Capacitor/Ionic assets) 분석. 전용 도구: flutter-packer,fluttersign,rn-differ- 타사 네이티브 라이브러리에 대해 알려진 CVE(예: libwebp CVE-2023-4863, libpng 등)를 스캔하세요.
- 추가 발견을 위해 SEMgrep Mobile rules, Pithus, 최신 MobSF ≥ 3.9 AI 보조 스캔 결과를 평가하세요.
- OEM ROM 확장팩(OxygenOS/ColorOS/MIUI/OneUI)에서 권한을 우회하는 추가 exported ContentProviders가 있는지 확인;
READ_SMS없이content query --uri content://com.android.providers.telephony/ServiceNumberProvider를 시도해보세요(예: OnePlus CVE-2025-10184).
동적 분석
- 환경 준비 (온라인, 로컬 VM 또는 물리 디바이스)
- 예상치 못한 데이터 유출이 있는가? (로깅, 복사/붙여넣기, 크래시 로그 등)
- SQLite db에 기밀 정보가 저장되어 있는가? (android-app-pentesting/index.html#sqlite-dbs)
- 악용 가능한 exported Activities가 있는가?
- 악용 가능한 Content Providers가 있는가?
- 악용 가능한 노출된 Services가 있는가?
- 악용 가능한 Broadcast Receivers가 있는가?
- 애플리케이션이 정보를 평문으로 전송하거나 약한 알고리즘을 사용하는가(android-app-pentesting/index.html#insufficient-transport-layer-protection)? MitM이 가능한가?
- HTTP/HTTPS 트래픽 검사(android-app-pentesting/index.html#inspecting-http-traffic)
- HTTP 트래픽을 캡처할 수 있다면 일반적인 웹 취약점을 검색할 수 있으므로 매우 중요합니다(Hacktricks에 많은 정보 있음).
- 가능한 Android Client Side Injections 체크(정적 코드 분석이 도움이 될 수 있음)
- Frida: Frida를 사용해 애플리케이션에서 흥미로운 동적 데이터를 얻으세요(비밀번호 등).
- Tapjacking / Animation-driven attacks (TapTrap 2025) 테스트 — Android 15+에서도(overlay 권한 불필요) 주의.
- overlay / SYSTEM_ALERT_WINDOW clickjacking과 Accessibility Service 악용을 통한 권한 상승 시도.
-
adb backup/bmgr backupnow로 여전히 앱 데이터를 덤프할 수 있는지 확인(allowBackup를 비활성화하지 않은 앱). - Binder-level LPEs 탐색(예: CVE-2023-20963, CVE-2023-20928) – 허용되는 경우 커널 퍼저 또는 PoC 사용.
- Play Integrity / SafetyNet이 적용되어 있다면 런타임 훅(예:
Frida Gadget,MagiskIntegrityFix,Integrity-faker) 또는 네트워크 레벨 리플레이를 시도하세요. 최근 Play Integrity Fix 포크(≥17.x)는playcurl을 포함 — DEVICE/STRONG 판정 복구를 위해 ZygiskNext + PIF + ZygiskAssistant/TrickyStore 조합에 집중하세요. - 최신 도구로 계측:
- Objection > 2.0, Frida 17+ (Android 16 지원, ART offset 수정), NowSecure-Tracer (2024)
- 시스템 전역 동적 추적:
perfetto/simpleperf. - OEM 통신/프로바이더 버그(예: OxygenOS CVE-2025-10184)의 경우
contentCLI 또는 앱 내ContentResolver를 통해 권한 없이 SMS 읽기/전송 시도;update()에서 블라인드 SQLi를 테스트하여 행을 탈취해 보세요.
일부 obfuscation/Deobfuscation 정보
참고 자료
- CVE-2025-59489 – Unity Runtime에서 Arbitrary Code Execution (블로그)
- Rapid7: CVE-2025-10184 OnePlus OxygenOS Telephony provider permission bypass
- TapTrap 애니메이션 기반 tapjacking 연구 (TU Wien)
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.


