iOS Extracting Entitlements From Compiled Application

Support HackTricks

Summary of the page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary

Extracting Entitlements and Mobile Provision Files

рдЬрдм рдПрдХ рдРрдк рдХреЗ IPA рдпрд╛ рдЬреЗрд▓рдмреНрд░реЛрдХрди рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдРрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддреЛ рд╕реАрдзреЗ .entitlements рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ embedded.mobileprovision рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрдк рдмрд╛рдЗрдирд░реА рд╕реЗ рдПрдВрдЯрд╛рдЗрдЯрд▓рдореЗрдВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рд▓рд┐рд╕реНрдЯ рдХреЛ рдЕрднреА рднреА рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, "iOS Basic Security Testing" рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "Acquiring the App Binary" рдЕрдиреБрднрд╛рдЧред

рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рднреА, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрджрдо рдЙрдард╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпреЗ рдХрджрдо рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ Clutch (рдпрджрд┐ iOS рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ), frida-ios-dump, рдпрд╛ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдРрдк рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

Extracting the Entitlements Plist from the App Binary

рдЬрдм рдРрдк рдмрд╛рдЗрдирд░реА рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реБрд▓рдн рд╣реЛ, рддреЛ binwalk рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

$ binwalk -e -y=xml ./Telegram\ X

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
1430180       0x15D2A4        XML document, version: "1.0"
1458814       0x16427E        XML document, version: "1.0"

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, radare2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪреБрдкрдЪрд╛рдк рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдРрдк рдмрд╛рдЗрдирд░реА рдореЗрдВ "PropertyList" рд╡рд╛рд▓реЗ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реБрдП:

$ r2 -qc 'izz~PropertyList' ./Telegram\ X

0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...

рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ, binwalk рдФрд░ radare2, plist рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ (0x0015d2a4) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░ Telegram рд╕реЗ рдореВрд▓ рдЕрдзрд┐рдХрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдлрд▓ рд╡рд╕реВрд▓реА рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред

рдЬреЗрд▓рдмреНрд░реЛрдХрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд╣реБрдБрдЪреА рдЧрдИ рдРрдк рдмрд╛рдЗрдирд░реАрдЬрд╝ (рдЬреИрд╕реЗ, SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд▓рд┐рдП, grep рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде -a, --text рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ ASCII рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

-A num, --after-context=num рдлреНрд▓реИрдЧ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдРрдк рдмрд╛рдЗрдирд░реА рдХреЗ рд▓рд┐рдП рднреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдИ рдРрдк рд╕реНрдЯреЛрд░ рдРрдкреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЗрд▓рдмреНрд░реЛрдХрди iOS рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдиреЛрдЯ: рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП strings рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╛рдЗрдирд░реА рдкрд░ -a рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП radare2 (izz)/rabin2 (-zz) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред

Last updated