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

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가 unity CLI 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:exported Android 12+에서 필수 – 잘못 구성된 exported 컴포넌트는 외부 intent 호출로 이어질 수 있습니다.
  • cleartextTrafficPermitted="true" 또는 도메인별 오버라이드가 있는지 Network Security Config(networkSecurityConfig XML)를 검토하세요.
  • 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)의 경우 content CLI 또는 앱 내 ContentResolver를 통해 권한 없이 SMS 읽기/전송 시도; update()에서 블라인드 SQLi를 테스트하여 행을 탈취해 보세요.

일부 obfuscation/Deobfuscation 정보

참고 자료

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