hacktricks/mobile-pentesting/ios-pentesting-checklist.md

146 lines
10 KiB
Markdown

# iOS Pentesting Checklist
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)를 사용하여 세계에서 가장 **고급** 커뮤니티 도구로 **자동화된 워크플로우**를 쉽게 구축하세요.\
오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)로부터 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사가 HackTricks에 광고**를 하거나 **PDF 형식의 HackTricks를 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소로 **PR 제출**하여 **해킹 트릭을 공유**하세요.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### 준비
* [ ] [**iOS 기본 사항**](ios-pentesting/ios-basics.md)을 읽으세요
* [ ] [**iOS 테스트 환경**](ios-pentesting/ios-testing-environment.md)을 읽어 환경을 준비하세요
* [ ] [**iOS 초기 분석**](ios-pentesting/#initial-analysis)의 모든 섹션을 읽어 iOS 애플리케이션을 펜테스트하는 일반적인 작업을 배우세요
### 데이터 저장
* [ ] [**Plist 파일**](ios-pentesting/#plist)은 민감한 정보를 저장하는 데 사용될 수 있습니다.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite 데이터베이스)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite 데이터베이스)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) 구성 오류.
* [ ] [**Realm 데이터베이스**](ios-pentesting/#realm-databases)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**Couchbase Lite 데이터베이스**](ios-pentesting/#couchbase-lite-databases)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**바이너리 쿠키**](ios-pentesting/#cookies)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**캐시 데이터**](ios-pentesting/#cache)는 민감한 정보를 저장할 수 있습니다.
* [ ] [**자동 스냅샷**](ios-pentesting/#snapshots)은 시각적으로 민감한 정보를 저장할 수 있습니다.
* [ ] [**키체인**](ios-pentesting/#keychain)은 일반적으로 전화기를 재판매할 때 남을 수 있는 민감한 정보를 저장하는 데 사용됩니다.
* [ ] 요약하면, **파일 시스템에 응용 프로그램에 의해 저장된 민감한 정보를 확인**하세요
### 키보드
* [ ] 응용 프로그램이 [**사용자 정의 키보드를 사용할 수 있게 허용**](ios-pentesting/#custom-keyboards-keyboard-cache)하는지 확인하세요.
* [ ] 민감한 정보가 [**키보드 캐시 파일에 저장**](ios-pentesting/#custom-keyboards-keyboard-cache)되었는지 확인하세요
### **로그**
* [ ] [**민감한 정보가 기록되고 있는지**](ios-pentesting/#logs) 확인하세요
### 백업
* [ ] [**백업**](ios-pentesting/#backups)은 파일 시스템에 저장된 민감한 정보에 **액세스**하는 데 사용될 수 있습니다 (이 체크리스트의 초기 지점을 확인하세요)
* [ ] 또한, [**백업**](ios-pentesting/#backups)은 일부 구성을 **수정**하고, 그 **수정된 구성**이 **로드**될 때 일부 (보안) **기능**이 **우회**될 수 있도록 **응용 프로그램의 구성을 변경**할 수 있습니다
### **응용 프로그램 메모리**
* [ ] [**응용 프로그램의 메모리**](ios-pentesting/#testing-memory-for-sensitive-data) 내에 민감한 정보가 있는지 확인하세요
### **암호화 깨짐**
* [ ] **암호화에 사용된 비밀번호**를 찾을 수 있는지 확인하세요
* [ ] 민감한 데이터를 전송/저장하기 위해 **폐기된/약한 알고리즘**을 사용하는지 확인하세요
* [ ] **암호화 함수를 후킹하고 모니터링**하는지 확인하세요
### **로컬 인증**
* [ ] 응용 프로그램에서 [**로컬 인증**](ios-pentesting/#local-authentication)을 사용하는 경우, 인증이 어떻게 작동하는지 확인하세요.
* [ ] [**로컬 인증 프레임워크**](ios-pentesting/#local-authentication-framework)를 사용하는 경우 쉽게 우회될 수 있습니다
* [ ] [**동적으로 우회할 수 있는 함수**](ios-pentesting/#local-authentication-using-keychain)를 사용하는 경우 사용자 지정 frida 스크립트를 만들 수 있습니다
### IPC를 통한 민감한 기능 노출
* [**사용자 지정 URI 핸들러 / 딥링크 / 사용자 지정 스키마**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] 응용 프로그램이 **어떤 프로토콜/스키마를 등록**하는지 확인하세요
* [ ] 응용 프로그램이 **사용하기 위해 등록**하는지 확인하세요 어떤 프로토콜/스키마
* [ ] 응용 프로그램이 사용자 지정 스키마를 통해 **수신할 예정인 민감한 정보**를 다른 응용 프로그램이 동일한 스키마를 등록하여 **가로챌 수 있는지** 확인하세요
* [ ] 응용 프로그램이 사용자 입력을 **확인하고 정리하지 않는지** 확인하고 일부 **취약점을 악용**할 수 있는지 확인하세요
* [ ] 응용 프로그램이 사용자 지정 스키마를 통해 **어디서든 호출할 수 있는 민감한 작업**을 노출하는지 확인하세요
* [**Universal Links**](ios-pentesting/#universal-links)
* [ ] 응용 프로그램이 **어떤 유니버설 프로토콜/스키마를 등록**하는지 확인하세요
* [ ] `apple-app-site-association` 파일을 확인하세요
* [ ] 응용 프로그램이 사용자 입력을 **확인하고 정리하지 않는지** 확인하고 일부 **취약점을 악용**할 수 있는지 확인하세요
* [ ] 응용 프로그램이 사용자 지정 스키마를 통해 **어디서든 호출할 수 있는 민감한 작업**을 노출하는지 확인하세요
* [**UIActivity 공유**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] 응용 프로그램이 UIActivities를 수신할 수 있는지 확인하고 특별히 설계된 활동으로 **취약점을 악용**할 수 있는지 확인하세요
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] 응용 프로그램이 **일반 붙여넣기**에 무언가를 **복사**하는지 확인하세요
* [ ] 응용 프로그램이 일반 붙여넣기에서 **데이터를 사용**하는지 확인하세요
* [ ] 민감한 데이터가 복사되었는지 확인하기 위해 붙여넣기를 모니터링하세요
* [**앱 확장**](ios-pentesting/ios-app-extensions.md)
* [ ] 응용 프로그램이 **확장을 사용**하는지 확인하세요
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] 사용 중인 웹뷰 종류를 확인하세요
* [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**의 상태를 확인하세요
* [ ] 웹뷰가 **`file://` 프로토콜로 로컬 파일에 액세스**할 수 있는지 확인하세요 (**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Javascript가 **Native 메서드에 액세스**할 수 있는지 확인하세요 (`JSContext`, `postMessage`)
### 네트워크 통신
* [ ] [**통신에 대한 MitM**](ios-pentesting/#network-communication)을 수행하고 웹 취약점을 검색합니다.
* [ ] [**인증서의 호스트 이름**](ios-pentesting/#hostname-check)이 확인되었는지 확인합니다.
* [ ] [**인증서 핀닝**](ios-pentesting/#certificate-pinning)을 확인하거나 우회합니다.
### **기타**
* [ ] [**자동 패치/업데이트**](ios-pentesting/#hot-patching-enforced-updateing) 메커니즘을 확인합니다.
* [ ] [**악의적인 제3자 라이브러리**](ios-pentesting/#third-parties)를 확인합니다.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 **제로부터 영웅까지의 AWS 해킹을 배우세요**!</summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 PDF로 다운로드하려면** [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션.
* **💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나**트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 팔로우하세요.
* **HackTricks** 및 **HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)를 사용하여 세계에서 가장 **고급 커뮤니티 도구**를 활용한 **워크플로우를 쉽게 구축하고 자동화**하세요.\
오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}