📘
Hacktricks
  • GitHub: Welcome to the page where you will find each trick/technique/whatev
  • About the author
  • Getting Started in Hacking
  • Pentesting Methodology
  • External Recon Methodology
  • Phishing Methodology
  • Exfiltration
  • Tunneling and Port Forwarding
  • Brute Force - CheatSheet
  • Search Exploits
  • shells
    • Shells (Linux, Windows, MSFVenom)
  • linux-unix
    • Checklist - Linux Privilege Escalation
    • Linux Privilege Escalation
    • Useful Linux Commands
    • Linux Environment Variables
  • macos
    • MacOS Security & Privilege Escalation
  • windows
    • Checklist - Local Windows Privilege Escalation
    • Windows Local Privilege Escalation
    • Active Directory Methodology
    • NTLM
    • Stealing Credentials
    • Authentication, Credentials, UAC and EFS
    • Basic CMD for Pentesters
    • Basic PowerShell for Pentesters
    • AV Bypass
  • mobile-apps-pentesting
    • Android APK Checklist
    • Android Applications Pentesting
    • iOS Pentesting Checklist
    • iOS Pentesting
  • pentesting
    • Pentesting Network
  • Stargazers
  • blob
    • master
      • hacktricks/LICENSE.md at master
  • network
    • Forks
  • Issues
  • Pull requests
  • Actions
  • Projects
  • GitHub: Welcome to the page where you will find each trick/technique/whatev
  • Build software better, together
  • Pulse
  • tree
    • Build software better, together
    • GitHub at 1e46f267c2ce5c79bb9a8a146f468f214419f708
    • master
      • .gitbook
        • hacktricks/.gitbook/assets at master
      • hacktricks/.github at master
      • a.i.-exploiting
        • hacktricks/a.i.-exploiting/bra.i.nsmasher-presentation at master
      • hacktricks/backdoors at master
      • hacktricks/blockchain at master
      • hacktricks/cloud-security at master
  • Branches
  • Releases
  • Commits
    • Commits
  • Commits
  • commit
    • GitBook: [master] one page modified@1e46f26
    • GitBook: [master] 3 pages and 6 assets modified@e741d40
    • Update FUNDING.yml@c7e5a37
    • GitBook: [master] one page modified@5b5b28a
    • GitBook: [master] 511 pages and one asset modified@73a4b96
Powered by GitBook
On this page
  • Preparation
  • Data Storage
  • Keyboards
  • Logs
  • Backups
  • Applications Memory
  • Broken Cryptography
  • Local Authentication
  • Sensitive Functionality Exposure Through IPC
  • Network Communication
  • Misc

Was this helpful?

  1. mobile-apps-pentesting

iOS Pentesting Checklist

PreviousAndroid Applications PentestingNextiOS Pentesting

Last updated 3 years ago

Was this helpful?

Do you use Hacktricks every day? Did you find the book very useful? Would you like to receive extra help with cybersecurity questions? Would you like to find more and higher quality content on Hacktricks? so we can dedicate more time to it and also get access to the Hacktricks private group where you will get the help you need and much more!

If you want to know about my latest modifications/additions or you have any suggestion for HackTricks or PEASS, join the ​, or follow me on Twitter ​. If you want to share some tricks with the community you can also submit pull requests to that will be reflected in this book and don't forget to give ⭐ on github to motivate me to continue developing this book.

Preparation

  • Prepare your environment reading ​

  • Read all the sections of to learn common actions to pentest an iOS application

Data Storage

  • ​ can be used to store sensitive information.

  • ​ (SQLite database) can store sensitive information.

  • ​ (SQLite database) can store sensitive information.

  • ​ miss-configuration.

  • ​ can store sensitive information.

  • ​ can store sensitive information.

  • ​ can store sensitive information

  • ​ can store sensitive information

  • ​ can save visual sensitive information

  • ​ is usually used to store sensitive information that can be left when reselling the phone.

  • In summary, just check for sensitive information saved by the application in the filesystem

Keyboards

Logs

Backups

Applications Memory

Broken Cryptography

Local Authentication

Sensitive Functionality Exposure Through IPC

    • Check if the application is registering any protocol/scheme

    • Check if the application is registering to use any protocol/scheme

    • Check if the application expects to receive any kind of sensitive information from the custom scheme that can be intercepted by the another application registering the same scheme

    • Check if the application isn't checking and sanitizing users input via the custom scheme and some vulnerability can be exploited

    • Check if the application exposes any sensitive action that can be called from anywhere via the custom scheme

    • Check if the application is registering any universal protocol/scheme

    • Check the apple-app-site-association file

    • Check if the application isn't checking and sanitizing users input via the custom scheme and some vulnerability can be exploited

    • Check if the application exposes any sensitive action that can be called from anywhere via the custom scheme

    • Check if the application can receive UIActivities and if it's possible to exploit any vulnerability with specially crafted activity

    • Check if the application if copying anything to the general pasteboard

    • Check if the application if using the data from the general pasteboard for anything

    • Monitor the pasteboard to see if any sensitive data is copied

    • Is the application using any extension?

    • Check which kind of webviews are being used

    • Check the status of javaScriptEnabled, JavaScriptCanOpenWindowsAutomatically, hasOnlySecureContent

    • Check if the webview can access local files with the protocol file:// (allowFileAccessFromFileURLs, allowUniversalAccessFromFileURLs)

    • Check if Javascript can access Native methods (JSContext, postMessage)

Network Communication

Misc

Check if sensitive information is saved in the ​

​ can be used to access the sensitive information saved in the file system (check the initial point of this checklist)

Also, can be used to modify some configurations of the application, then restore the backup on the phone, and the as the modified configuration is loaded some (security) functionality may be bypassed

Check for sensitive information inside the ​

Check for the use of to send/store sensitive data

If a is used in the application, you should check how the authentication is working.

If it's using the it could be easily bypassed

If it's using a you could create a custom frida script

​​

​​

​​

​​

​​

​​

Perform a and search for web vulnerabilities.

Support Hacktricks through github sponsors
💬
telegram group
🐦
@carlospolopm
https://github.com/carlospolop/hacktricks
iOS Testing Environment
iOS Initial Analysis
Plist files
Core Data
YapDatabases
Firebase
Realm databases
Couchbase Lite databases
Binary cookies
Cache data
Automatic snapshots
Keychain
keyboards cache files
Backups
backups
application's memory
deprecated/weak algorithms
local authentication
Local Authentication Framework
function that can dynamically bypassed
Custom URI Handlers / Deeplinks / Custom Schemes
Universal Links
UIActivity Sharing
UIPasteboard
App Extensions
WebViews
MitM to the communication