hacktricks/mobile-pentesting/android-checklist.md

85 lines
6.9 KiB
Markdown

# Android APK Checklist
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
</details>
{% endhint %}
### [안드로이드 기초 배우기](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [기초](android-app-pentesting/#fundamentals-review)
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
* [ ] [진입점](android-app-pentesting/#application-entry-points)
* [ ] [액티비티](android-app-pentesting/#launcher-activity)
* [ ] [URL 스킴](android-app-pentesting/#url-schemes)
* [ ] [콘텐츠 제공자](android-app-pentesting/#services)
* [ ] [서비스](android-app-pentesting/#services-1)
* [ ] [브로드캐스트 수신기](android-app-pentesting/#broadcast-receivers)
* [ ] [인텐트](android-app-pentesting/#intents)
* [ ] [인텐트 필터](android-app-pentesting/#intent-filter)
* [ ] [기타 구성 요소](android-app-pentesting/#other-app-components)
* [ ] [ADB 사용 방법](android-app-pentesting/#adb-android-debug-bridge)
* [ ] [Smali 수정 방법](android-app-pentesting/#smali)
### [정적 분석](android-app-pentesting/#static-analysis)
* [ ] [난독화](android-checklist.md#some-obfuscation-deobfuscation-information) 사용 여부 확인, 모바일이 루팅되었는지, 에뮬레이터가 사용 중인지 및 변조 방지 확인. [자세한 정보는 여기에서 읽기](android-app-pentesting/#other-checks).
* [ ] 민감한 애플리케이션(예: 은행 앱)은 모바일이 루팅되었는지 확인하고 그에 따라 조치를 취해야 합니다.
* [ ] [흥미로운 문자열](android-app-pentesting/#looking-for-interesting-info) 검색 (비밀번호, URL, API, 암호화, 백도어, 토큰, Bluetooth UUID 등).
* [ ] [파이어베이스](android-app-pentesting/#firebase) API에 특별한 주의.
* [ ] [매니페스트 읽기:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] 애플리케이션이 디버그 모드인지 확인하고 "악용" 시도
* [ ] APK가 백업을 허용하는지 확인
* [ ] 내보낸 액티비티
* [ ] 콘텐츠 제공자
* [ ] 노출된 서비스
* [ ] 브로드캐스트 수신기
* [ ] URL 스킴
* [ ] 애플리케이션이 [내부 또는 외부에 데이터를 안전하지 않게 저장하고 있는지](android-app-pentesting/#insecure-data-storage)?
* [ ] [하드코딩된 비밀번호 또는 디스크에 저장된 비밀번호가 있는지](android-app-pentesting/#poorkeymanagementprocesses)? 애플리케이션이 [안전하지 않은 암호화 알고리즘을 사용하고 있는지](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
* [ ] 모든 라이브러리가 PIE 플래그를 사용하여 컴파일되었는가?
* [ ] 이 단계에서 많은 도움이 될 수 있는 [정적 Android 분석기](android-app-pentesting/#automatic-analysis)가 있다는 것을 잊지 마세요.
### [동적 분석](android-app-pentesting/#dynamic-analysis)
* [ ] 환경 준비하기 ([온라인](android-app-pentesting/#online-dynamic-analysis), [로컬 VM 또는 물리적](android-app-pentesting/#local-dynamic-analysis))
* [ ] [의도치 않은 데이터 유출](android-app-pentesting/#unintended-data-leakage) (로깅, 복사/붙여넣기, 크래시 로그) 여부 확인?
* [ ] [SQLite DB에 저장된 기밀 정보](android-app-pentesting/#sqlite-dbs)?
* [ ] [악용 가능한 노출된 액티비티](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [악용 가능한 콘텐츠 제공자](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [악용 가능한 노출된 서비스](android-app-pentesting/#exploiting-services)?
* [ ] [악용 가능한 브로드캐스트 수신기](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] 애플리케이션이 [정보를 평문으로 전송하거나 약한 알고리즘을 사용하고 있는지](android-app-pentesting/#insufficient-transport-layer-protection)? MitM가 가능한가?
* [ ] [HTTP/HTTPS 트래픽 검사](android-app-pentesting/#inspecting-http-traffic)
* [ ] 이 부분은 정말 중요합니다. HTTP 트래픽을 캡처할 수 있다면 일반적인 웹 취약점을 검색할 수 있습니다 (Hacktricks에는 웹 취약점에 대한 많은 정보가 있습니다).
* [ ] 가능한 [안드로이드 클라이언트 측 주입](android-app-pentesting/#android-client-side-injections-and-others) 확인 (아마도 일부 정적 코드 분석이 도움이 될 것입니다)
* [ ] [Frida](android-app-pentesting/#frida): Frida만 사용하여 애플리케이션에서 흥미로운 동적 데이터를 얻으세요 (아마도 비밀번호...)
### 일부 난독화/디난독화 정보
* [ ] [여기에서 읽기](android-app-pentesting/#obfuscating-deobfuscating-code)
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
</details>
{% endhint %}