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

23 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕

iOS рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реБрд▓рдн рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдореЗрдВ рдПрдХ рднреЗрдж рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧ mobile рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдХреЗ рддрд╣рдд рдЪрд▓рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ root рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдПрдХ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдХрдбрд╝реЗ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реЛрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдпрд╛ рдЙрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (private/var/mobile/Applications/{random ID}) рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ, рдЬреИрд╕реЗ SMS рдФрд░ рдлреЛрди рдХреЙрд▓, рддрдХ рд╕реАрдорд┐рдд рдкрдврд╝рдиреЗ рдХреА рдкрд╣реБрдБрдЪ рд╣реЛрддреА рд╣реИред рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдк-рдЕрдк рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛

iOS рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдиреНрдХреНрд▓реЗрд╡ рдкреНрд░реЛрд╕реЗрд╕рд░ (SEP) рдХреЗ рдКрдкрд░ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВ тАФ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ред SEP рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрдХрд░рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдВрдЬреА, рдЙрдкрдХрд░рдг UID, рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рднреАрддрд░ рдПрдореНрдмреЗрдбреЗрдб рд╣реЛрддрд╛ рд╣реИред

рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп, рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп 256-рдмрд┐рдЯ AES рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдЬреЛ рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА, рдПрдХ рд╡рд░реНрдЧ ID рдХреЗ рд╕рд╛рде, рдлрд┐рд░ рдПрдХ рд╡рд░реНрдЧ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд╛рдЗрд▓ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рдгрд╛рд▓реА рдХреА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рд╡рд░реНрдЧ ID рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рдХреБрдВрдЬреА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдФрд░ рдлрд┐рд░ рдлрд╛рдЗрд▓ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

iOS рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХрдм рдФрд░ рдХреИрд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ (NSFileProtectionComplete): рдбреЗрдЯрд╛ рддрдм рддрдХ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ рдЬрдм рддрдХ рдЙрдкрдХрд░рдг рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдирд▓реЙрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред
  • рдЦреБрд▓рд╛ рд╣реЛрдиреЗ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд (NSFileProtectionCompleteUnlessOpen): рдЙрдкрдХрд░рдг рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдлрд╛рдЗрд▓ рддрдХ рдкрд╣реБрдБрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдлрд╛рдЗрд▓ рдХреЛ рдЙрдкрдХрд░рдг рдХреЗ рдЕрдирд▓реЙрдХ рд╣реЛрдиреЗ рдкрд░ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реЛред
  • рдкрд╣рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд (NSFileProtectionCompleteUntilFirstUserAuthentication): рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреВрдЯ рдХреЗ рдмрд╛рдж рдЕрдирд▓реЙрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реБрд▓рдн рд╣реИ, рднрд▓реЗ рд╣реА рдЙрдкрдХрд░рдг рдлрд┐рд░ рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рдПред
  • рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ (NSFileProtectionNone): рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдЙрдкрдХрд░рдг UID рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддреНрд╡рд░рд┐рдд рджреВрд░рд╕реНрде рдбреЗрдЯрд╛ рдорд┐рдЯрд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИред

рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди, NSFileProtectionNone рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдПрдХ рдХреБрдВрдЬреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдХрд░рдг UID рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕рдХреЛрдб рджреЛрдиреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗрд╡рд▓ рд╕рд╣реА рдкрд╛рд╕рдХреЛрдб рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рдкрд░ рд╕рдВрднрд╡ рд╣реИред iOS 7 рд╕реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд░реНрдЧ "рдкрд╣рд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд" рд╣реИред

рдбреЗрд╡рд▓рдкрд░реНрд╕ FileDP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ iPhone рдкрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред

# Example code to use FileDP for checking file protection class
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
# Installation and usage of FileDP:
git clone https://github.com/abjurato/FileDp-Source
cd FileDp-Source
python filedp.py /path/to/check

The Keychain

iOS рдореЗрдВ, рдПрдХ Keychain рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рд╡рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╛рд╕рд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдордЬрдмреВрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ iOS рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдпрдВ AES рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реИред рдпрд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ PBKDF2 рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕рдХреЛрдб рдХреЛ рдПрдХ рдирдордХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреА рд╣реИ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ UID рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдШрдЯрдХ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдиреНрдХреНрд▓реЗрд╡ рдЪрд┐рдкрд╕реЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рднрд▓реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд╛рд╕рдХреЛрдб рдЬреНрдЮрд╛рдд рд╣реЛ, Keychain рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд┐рд╕реА рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрдиреБрдкрд▓рдмреНрдз рд░рд╣рддреА рд╣реИ рд╕рд┐рд╡рд╛рдп рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Keychain рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рдПрдХреНрд╕реЗрд╕ securityd рдбреЗрдорди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдРрдк рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдЬреИрд╕реЗ Keychain-access-groups рдФрд░ application-identifier рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

Keychain API Operations

Keychain API, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг Apple рдХреЗ Keychain Services рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • SecItemAdd: Keychain рдореЗрдВ рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • SecItemUpdate: Keychain рдореЗрдВ рдПрдХ рдореМрдЬреВрджрд╛ рдЖрдЗрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред
  • SecItemCopyMatching: Keychain рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  • SecItemDelete: Keychain рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рд╣рдЯрд╛рддрд╛ рд╣реИред

Keychain рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░рдирд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХреБрдВрдЬреА рдкрд░ рд╕реАрдзреЗ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд╛рд╕рдХреЛрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмреАрдЪ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдиреНрдХреНрд▓реЗрд╡ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рджреЗрд░реА рд╕реЗ рдХрд╛рдлреА рд╣рдж рддрдХ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Configuring Keychain Item Data Protection

Keychain рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрддрд░реЛрдВ рдХреЛ рдЖрдЗрдЯрдо рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди kSecAttrAccessible рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╕реНрддрд░, Apple рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ Keychain рдЖрдЗрдЯрдо рдХрдм рдФрд░ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

  • kSecAttrAccessibleAlways: рдХрд┐рд╕реА рднреА рд╕рдордп рдЙрдкрд▓рдмреНрдз, рдбрд┐рд╡рд╛рдЗрд╕ рд▓реЙрдХ рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред
  • kSecAttrAccessibleAlwaysThisDeviceOnly: рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз, рд▓реЗрдХрд┐рди рдмреИрдХрдЕрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВред
  • kSecAttrAccessibleAfterFirstUnlock: рдкрд╣рд▓реЗ рдЕрдирд▓реЙрдХ рдХреЗ рдмрд╛рдж рдЙрдкрд▓рдмреНрдзред
  • kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: рдКрдкрд░ рдЬреИрд╕рд╛ рд╣реА, рд▓реЗрдХрд┐рди рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред
  • kSecAttrAccessibleWhenUnlocked: рдХреЗрд╡рд▓ рддрдм рдЙрдкрд▓рдмреНрдз рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдЕрдирд▓реЙрдХ рд╣реЛред
  • kSecAttrAccessibleWhenUnlockedThisDeviceOnly: рдЕрдирд▓реЙрдХ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз, рдмреИрдХрдЕрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВред
  • kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly: рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╛рд╕рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛, рдмреИрдХрдЕрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВред

AccessControlFlags рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдФрд░ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╛ рдкрд╛рд╕рдХреЛрдб рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

Jailbroken Devices Warning

{% hint style="warning" %} рдЬреЗрд▓рдмреНрд░реЛрдХрди рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдкрд░, Keychain рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред {% endhint %}

Persistence of Keychain Data

рдРрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛ рдРрдк рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, Keychain рдбреЗрдЯрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рд╕реЗрдХрдВрдб-рд╣реИрдВрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдирдП рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рдорд╛рд▓рд┐рдХ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛ рд╕рдХрддреА рд╣реИ, рдмрд╕ рдРрдкреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдХреЗред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдпрд╛ рд▓реЙрдЧрдЖрдЙрдЯ рдХреЗ рджреМрд░рд╛рди Keychain рдбреЗрдЯрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ Swift рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдРрдк рд▓реЙрдиреНрдЪ рдкрд░ Keychain рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ:

let userDefaults = UserDefaults.standard

if userDefaults.bool(forKey: "hasRunBefore") == false {
// Remove Keychain items here

// Update the flag indicator
userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // Forces the app to update UserDefaults
}

рдРрдк рдХреНрд╖рдорддрд╛рдПрдБ

рдРрдк рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, sandboxing рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдЕрдкрдиреЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдЕрдиреНрдп рдРрдкреНрд╕ рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп Trusted BSD (MAC) Mandatory Access Control Framework рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреНрд╖рдорддрд╛рдПрдБ рдпрд╛ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ Data Protection рдпрд╛ Keychain Sharingред рдпреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдРрдк рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрддреЗ рд╣реА рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдлрд┐рд░ рднреА, рдХреБрдЫ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдРрдк рдХреЛ рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╕рд╣рдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реЛрддреА рд╣реИред рдпрд╣ purpose strings рдпрд╛ usage description strings рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рдЕрдиреБрд░реЛрдз рдЕрд▓рд░реНрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╕реНрд░реЛрдд рдХреЛрдб рддрдХ рдкрд╣реБрдБрдЪ рд╣реИ, рд╡реЗ Info.plist рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред
  2. Info.plist рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдЦреЛрд▓реЗрдВред
  3. рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП "Privacy -" рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рдХрдЪреНрдЪреЗ рдХреБрдВрдЬреА/рдорд╛рди рджреЗрдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рдеред

IPA рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. IPA рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред
  2. Payload/<appname>.app/ рдХреЗ рднреАрддрд░ Info.plist рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬреЗрдВред
  3. рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Info.plist рдлрд╝рд╛рдЗрд▓ рдореЗрдВ purpose strings рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is used to provide turn-by-turn directions to your destination.</string>

Device Capabilities

The Info.plist рдлрд╝рд╛рдЗрд▓ рдПрдХ рдРрдк рдХреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд╖рдорддрд╛рдПрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ рдЬреЛ рдРрдк рд╕реНрдЯреЛрд░ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдРрдкреНрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред рдпреЗ UIRequiredDeviceCapabilities рдХреБрдВрдЬреА рдХреЗ рддрд╣рдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдРрдк armv7 рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ nfc рдЬреИрд╕реА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЙрдирдХрд╛ рдРрдк рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬреЛ NFC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдЕрдзрд┐рдХрд╛рд░

рдЕрдзрд┐рдХрд╛рд░ iOS рдРрдк рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реВ рд╣реИрдВ, рдЬреЛ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдРрдкреНрд╕ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдВрдЪреЛрдВ рд╕реЗ рдкрд░реЗ рдХреБрдЫ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдРрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдлрд┐рд░ рдРрдк рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдпрд╛ IPAs рдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбреЗрдб рдореЛрдмрд╛рдЗрд▓ рдкреНрд░рд╛рд╡рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}