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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕
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
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред
Info.plist
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдЦреЛрд▓реЗрдВред- рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП
"Privacy -"
рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рдХрдЪреНрдЪреЗ рдХреБрдВрдЬреА/рдорд╛рди рджреЗрдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рдеред
IPA рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- IPA рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред
Payload/<appname>.app/
рдХреЗ рднреАрддрд░Info.plist
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬреЗрдВред- рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ 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 рдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбреЗрдб рдореЛрдмрд╛рдЗрд▓ рдкреНрд░рд╛рд╡рдзрд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн
- https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage
- https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
{% 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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.