Android APK 체크리스트
Reading time: 5 minutes
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을 제출하여 해킹 트릭을 공유하세요.
Learn Android fundamentals
- Basics
- Dalvik & Smali
- Entry points
- Activities
- URL Schemes
- Content Providers
- Services
- Broadcast Receivers
- Intents
- Intent Filter
- Other components
- How to use ADB
- How to modify Smali
Static Analysis
- 다음 항목 확인: obfuscation 사용 여부, 기기가 rooted인지 여부, emulator 사용 여부, anti-tampering 체크 등. Read this for more info.
- 민감한 애플리케이션(예: bank apps)은 기기가 rooted인지 확인하고 그에 따라 동작해야 합니다.
- interesting strings 검색 (passwords, URLs, API, encryption, backdoors, tokens, Bluetooth uuids...).
- firebase 관련 APIs에 특별히 주의하세요.(firebase APIs).
- Read the manifest:
- 애플리케이션이 debug 모드인지 확인하고 'exploit' 시도해보세요.
- APK가 backups를 허용하는지 확인하세요.
- Exported Activities 확인
-
Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity와
unityCLI extras bridge. pre-initdlopen()RCE를 위해-xrsdk-pre-init-library <abs-path>테스트. 자세한 내용은 Intent Injection → Unity Runtime 참고. - Content Providers 점검
- Exposed services 점검
- Broadcast Receivers 점검
- URL Schemes 점검
- 애플리케이션이 내부 또는 외부에 데이터를 안전하지 않게 저장하고 있는가? saving data insecurely internally or externally
- 하드코딩된 패스워드 또는 디스크에 저장된 패스워드가 있는가? password hard coded or saved in disk 앱이 insecure한 crypto 알고리즘을 사용하고 있는가? using insecurely crypto algorithms
- 모든 라이브러리가 PIE 플래그로 컴파일되었는가?
- 정적 Android 분석기들(static Android Analyzers)이 이 단계에서 많은 도움을 줄 수 있다는 것을 잊지 마세요. (자동 분석 참고)
-
android:exportedAndroid 12+에서 필수 – 잘못 구성된 exported 컴포넌트는 외부 intent 호출로 이어질 수 있습니다. -
Network Security Config(networkSecurityConfigXML)를 검토하여cleartextTrafficPermitted="true"또는 도메인별 오버라이드가 있는지 확인하세요. - Play Integrity / SafetyNet / DeviceCheck 호출을 찾아서 커스텀 attestation을 훅/우회할 수 있는지 판단하세요.
-
App Links / Deep Links (
android:autoVerify)를 검사하여 intent-리디렉션 또는 open-redirect 문제가 있는지 확인하세요. -
WebView.addJavascriptInterface 또는
loadData*()호출을 찾아 앱 내부에서 RCE / XSS로 이어질 수 있는지 확인하세요. -
크로스플랫폼 번들(Flutter
libapp.so, React-Native JS bundles, Capacitor/Ionic assets)을 분석하세요. 전용 도구: flutter-packer,fluttersign,rn-differ- 제3자 네이티브 라이브러리를 스캔하여 알려진 CVE 확인(예: libwebp CVE-2023-4863, libpng 등).
- 추가 발견을 위해 SEMgrep Mobile rules, Pithus 및 최신 MobSF ≥ 3.9 AI 지원 스캔 결과 평가.
Dynamic Analysis
- 환경 준비(online, local VM or physical)
- 의도치 않은 data leak(로깅, 복사/붙여넣기, crash logs) 여부 확인
- SQLite DB에 기밀 정보가 저장되고 있는가?(Confidential information being saved in SQLite dbs)
- Exploitable exposed Activities 여부
- Exploitable Content Providers 여부
- Exploitable exposed Services 여부
- Exploitable Broadcast Receivers 여부
- 애플리케이션이 clear text로 정보를 전송하거나 약한 알고리즘을 사용하는가?(transmitting information in clear text/using weak algorithms) MitM가 가능한가?
- HTTP/HTTPS 트래픽 검사(Inspect HTTP/HTTPS traffic)
- HTTP 트래픽을 캡처할 수 있다면 일반적인 Web 취약점을 찾을 수 있으므로 매우 중요합니다(Hacktricks는 웹 취약점에 관한 많은 정보를 제공합니다).
- 가능한 Android Client Side Injections 검사(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이 강제되는 경우 runtime 훅(예:
Frida Gadget,MagiskIntegrityFix,Integrity-faker) 또는 네트워크 레벨 리플레이 시도. - 최신 툴로 계측:
- Objection > 2.0, Frida 17+, NowSecure-Tracer (2024)
- 시스템 전반의 동적 트레이싱:
perfetto/simpleperf.
Some obfuscation/Deobfuscation information
참고자료
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을 제출하여 해킹 트릭을 공유하세요.
HackTricks