macOS XPC Authorization
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
XPC Authorization
Apple рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдХреНрд╕рдкреЛрдЬрд╝реНрдб XPC рдореЗрдердб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рдЬрдм рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдПрдБ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ HelperTool рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ XPC рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЙрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
ShouldAcceptNewConnection рд╣рдореЗрд╢рд╛ YES
рдПрдХ рдЙрджрд╛рд╣рд░рдг EvenBetterAuthorizationSample рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред App/AppDelegate.m
рдореЗрдВ рдпрд╣ HelperTool рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдФрд░ HelperTool/HelperTool.m
рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди shouldAcceptNewConnection
рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╣рдореЗрд╢рд╛ YES рд▓реМрдЯрд╛рдПрдЧрд╛:
For more information about how to properly configure this check:
macOS XPC Connecting Process CheckApplication rights
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм HelperTool рд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВред
App/AppDelegate.m
рд╕реЗ applicationDidFinishLaunching
рдлрд╝рдВрдХреНрд╢рди рдРрдк рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЦрд╛рд▓реА рдЕрдзрд┐рдХрд╛рд░ рд╕рдВрджрд░реНрдн рдмрдирд╛рдПрдЧрд╛ред рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд░, рдпрд╣ рдЙрд╕ рдЕрдзрд┐рдХрд╛рд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ setupAuthorizationRights
рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ:
рдлрдВрдХреНрд╢рди setupAuthorizationRights
рд╕реЗ Common/Common.m
рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдСрде рдбреЗрдЯрд╛рдмреЗрд╕ /var/db/auth.db
рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдЧрд╛ рдЬреЛ рдЕрднреА рддрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ:
рдлрдВрдХреНрд╢рди enumerateRightsUsingBlock
рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ commandInfo
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ:
рдпрд╣ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, commandInfo
рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ /var/db/auth.db
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдБрдЧреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╣рд╛рдБ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЕрдиреБрдорддрд┐ рдирд╛рдо рдФрд░ kCommandKeyAuthRightDefault
ред рдмрд╛рдж рд╡рд╛рд▓рд╛ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рдЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЕрдзрд┐рдХрд╛рд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рджрд╛рдпрд░реЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ AuthorizationDB.h рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ (рдЖрдк рдпрд╣рд╛рдБ рд╕рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
рдирд╛рдо | рдорд╛рди | рд╡рд┐рд╡рд░рдг |
---|---|---|
kAuthorizationRuleClassAllow | allow | рдХреЛрдИ рднреА |
kAuthorizationRuleClassDeny | deny | рдХреЛрдИ рдирд╣реАрдВ |
kAuthorizationRuleIsAdmin | is-admin | рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕рдореВрд╣ рдХреЗ рдЕрдВрджрд░) |
kAuthorizationRuleAuthenticateAsSessionUser | authenticate-session-owner | рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред |
kAuthorizationRuleAuthenticateAsAdmin | authenticate-admin | рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред рдЙрд╕реЗ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕рдореВрд╣ рдХреЗ рдЕрдВрджрд░) |
kAuthorizationRightRule | rule | рдирд┐рдпрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ |
kAuthorizationComment | comment | рдЕрдзрд┐рдХрд╛рд░ рдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ |
рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рд╕рддреНрдпрд╛рдкрди
HelperTool/HelperTool.m
рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди readLicenseKeyAuthorization
рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЙрд▓рд░ рдХреЛ рдРрд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди checkAuthorization
рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдпрд╣ рдЬрд╛рдВрдЪреЗрдЧрд╛ рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ authData рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рдЬрд╛рдВрдЪреЗрдЧрд╛ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рддреЛ рд╡рд╛рдкрд╕реА error
nil
рд╣реЛрдЧреА:
рдиреЛрдЯ рдХрд░реЗрдВ рдХрд┐ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди authorizationRightForCommand
рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ commandInfo
рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдлрд┐рд░, рдпрд╣ AuthorizationCopyRights
рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдиреЛрдЯ рдХрд░реЗрдВ рдХрд┐ рдлреНрд▓реИрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ)ред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди readLicenseKeyAuthorization
рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kCommandKeyAuthRightDefault
рдХреЛ @kAuthorizationRuleClassAllow
рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдХреЛрдИ рднреА рдЗрд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
DB рдЬрд╛рдирдХрд╛рд░реА
рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА /var/db/auth.db
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЖрдк рд╕рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдлрд┐рд░, рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реЗ рдЕрдзрд┐рдХрд╛рд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ:
Permissive rights
рдЖрдк рд╕рднреА рдЕрдиреБрдорддрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдпреЛрдЬрди рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рд╡реЗ рд╣реИрдВ:
'authenticate-user': 'false'
рдпрд╣ рд╕рдмрд╕реЗ рд╕реАрдзрд╛ рдХреБрдВрдЬреА рд╣реИред рдпрджрд┐ рдЗрд╕реЗ
false
рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредрдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП 2 рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
'allow-root': 'true'
рдпрджрд┐ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ рдЕрдиреБрдорддрд┐ рд╣реИ), рдФрд░ рдпрд╣ рдХреБрдВрдЬреА
true
рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдорддреМрд░ рдкрд░, рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдХреЛрдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдирд╣реАрдВ" рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИред
'session-owner': 'true'
рдпрджрд┐ рдЗрд╕реЗ
true
рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рддреНрд░ рдХрд╛ рдорд╛рд▓рд┐рдХ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рд╣реБрдЖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЙрдЧ рдЗрди рд╣реИ рддреЛ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
'shared': 'true'
рдпрд╣ рдХреБрдВрдЬреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрджрд┐ рдЗрд╕реЗ
true
рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрджрд╛рди рдЕрднреА рднреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ'authenticate-user': 'false'
рдЬреИрд╕реЗ рдЕрдиреНрдп рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
Reversing Authorization
Checking if EvenBetterAuthorization is used
рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди: [HelperTool checkAuthorization:command:]
рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╕реНрдХреАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИ:
рдпрджрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди AuthorizationCreateFromExternalForm
, authorizationRightForCommand
, AuthorizationCopyRights
, AuhtorizationFree
рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ EvenBetterAuthorizationSample рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП /var/db/auth.db
рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
Protocol Communication
рдлрд┐рд░, рдЖрдкрдХреЛ XPC рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрдХреАрдорд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди shouldAcceptNewConnection
рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ EvenBetterAuthorizationSample рдореЗрдВ рд╡рд╣реА рд╣реИ, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдирд╛рдо рдЬрд╛рдирдиреЗ рдкрд░, рдЖрдк рдЗрд╕рдХреЗ рд╣реЗрдбрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдбрдВрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкреНрд░рдХрдЯ Mach рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:
[HelperTool init]
рдореЗрдВ рдЬрд╣рд╛рдБ рдЖрдк Mach рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рд▓реЙрдиреНрдЪрдб plist рдореЗрдВ:
Exploit Example
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА auth рдЬреЛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ
XPC рд╕реЗрд╡рд╛ рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди
рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рд╕рдлрд▓ рдерд╛ рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
рдЕрдиреНрдп XPC рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рд╣рд╛рдпрдХ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ
рд╕рдВрджрд░реНрдн
AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)
Last updated