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 지원하기

Learn Android fundamentals

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와 unity CLI extras bridge. pre-init dlopen() 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:exported Android 12+에서 필수 – 잘못 구성된 exported 컴포넌트는 외부 intent 호출로 이어질 수 있습니다.
  • Network Security Config (networkSecurityConfig XML)를 검토하여 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 지원하기