iOS Pentesting Checklist
Reading time: 4 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Preparation
- Read iOS Basics
- Prepare your environment reading iOS Testing Environment
- Read all the sections of iOS Initial Analysis to learn common actions to pentest an iOS application
Data Storage
- Plist files can be used to store sensitive information.
- Core Data (SQLite 데이터베이스)는 민감한 정보를 저장할 수 있습니다.
- YapDatabases (SQLite 데이터베이스)는 민감한 정보를 저장할 수 있습니다.
- Firebase 잘못된 구성.
- Realm databases는 민감한 정보를 저장할 수 있습니다.
- Couchbase Lite databases는 민감한 정보를 저장할 수 있습니다.
- Binary cookies는 민감한 정보를 저장할 수 있습니다.
- Cache data는 민감한 정보를 저장할 수 있습니다.
- Automatic snapshots는 시각적 민감한 정보를 저장할 수 있습니다.
- Keychain은 일반적으로 전화기를 재판매할 때 남길 수 있는 민감한 정보를 저장하는 데 사용됩니다.
- 요약하자면, 파일 시스템에 저장된 애플리케이션의 민감한 정보를 확인하세요.
Keyboards
- 애플리케이션이 사용자 정의 키보드 사용을 허용하는지 확인하세요.
- 민감한 정보가 키보드 캐시 파일에 저장되어 있는지 확인하세요.
Logs
- 민감한 정보가 기록되고 있는지 확인하세요.
Backups
- Backups는 파일 시스템에 저장된 민감한 정보에 접근하는 데 사용될 수 있습니다 (이 체크리스트의 초기 포인트를 확인하세요).
- 또한, backups는 애플리케이션의 일부 구성을 수정하는 데 사용될 수 있으며, 그런 다음 백업을 전화기에 복원하면 수정된 구성이 로드되어 일부 (보안) 기능이 우회될 수 있습니다.
Applications Memory
- 애플리케이션의 메모리 내에서 민감한 정보를 확인하세요.
Broken Cryptography
- 암호화에 사용된 비밀번호를 찾을 수 있는지 확인하세요.
- 민감한 데이터를 전송/저장하기 위해 사용된 알고리즘이 구식/약한지 확인하세요.
- 암호화 함수 후킹 및 모니터링.
Local Authentication
- 애플리케이션에서 로컬 인증을 사용하는 경우, 인증이 어떻게 작동하는지 확인해야 합니다.
- 로컬 인증 프레임워크를 사용하는 경우 쉽게 우회될 수 있습니다.
- 동적으로 우회할 수 있는 함수를 사용하는 경우, 사용자 정의 frida 스크립트를 생성할 수 있습니다.
Sensitive Functionality Exposure Through IPC
- Custom URI Handlers / Deeplinks / Custom Schemes
- 애플리케이션이 프로토콜/스킴을 등록하고 있는지 확인하세요.
- 애플리케이션이 프로토콜/스킴을 사용하기 위해 등록하고 있는지 확인하세요.
- 애플리케이션이 다른 애플리케이션이 동일한 스킴을 등록하여 가로챌 수 있는 민감한 정보를 수신할 것으로 예상하는지 확인하세요.
- 애플리케이션이 사용자 입력을 확인하고 정리하지 않는지 확인하고, 일부 취약점이 악용될 수 있는지 확인하세요.
- 애플리케이션이 어디서든 호출할 수 있는 민감한 작업을 노출하는지 확인하세요.
- Universal Links
- 애플리케이션이 유니버설 프로토콜/스킴을 등록하고 있는지 확인하세요.
-
apple-app-site-association
파일을 확인하세요. - 애플리케이션이 사용자 입력을 확인하고 정리하지 않는지 확인하고, 일부 취약점이 악용될 수 있는지 확인하세요.
- 애플리케이션이 어디서든 호출할 수 있는 민감한 작업을 노출하는지 확인하세요.
- UIActivity Sharing
- 애플리케이션이 UIActivities를 수신할 수 있는지 확인하고, 특별히 제작된 활동으로 어떤 취약점을 악용할 수 있는지 확인하세요.
- UIPasteboard
- 애플리케이션이 일반 클립보드에 무엇인가를 복사하고 있는지 확인하세요.
- 애플리케이션이 일반 클립보드의 데이터를 사용하는지 확인하세요.
- 클립보드를 모니터링하여 민감한 데이터가 복사되는지 확인하세요.
- App Extensions
- 애플리케이션이 어떤 확장을 사용하고 있는지 확인하세요.
- WebViews
- 어떤 종류의 웹뷰가 사용되고 있는지 확인하세요.
-
javaScriptEnabled
,JavaScriptCanOpenWindowsAutomatically
, **hasOnlySecureContent
**의 상태를 확인하세요. -
웹뷰가 file:// 프로토콜로 로컬 파일에 접근할 수 있는지 확인하세요 (
allowFileAccessFromFileURLs
,allowUniversalAccessFromFileURLs
). -
Javascript가 Native 메서드에 접근할 수 있는지 확인하세요 (
JSContext
,postMessage
).
Network Communication
- MitM 공격을 수행하여 통신을 분석하고 웹 취약점을 검색하세요.
- 인증서의 호스트 이름이 확인되는지 확인하세요.
- 인증서 고정을 확인/우회하세요.
Misc
- 자동 패치/업데이트 메커니즘을 확인하세요.
- 악성 제3자 라이브러리를 확인하세요.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.