macOS XPC Connecting Process Check
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat dit gewoonlik sal uitvoer:
Kyk of die verbindende proses onderteken is met 'n Apple-ondertekende sertifikaat (slegs deur Apple gegee).
As dit nie geverifieer is nie, kan 'n aanvaller 'n valse sertifikaat skep om aan enige ander kontrole te voldoen.
Kyk of die verbindende proses onderteken is met die organisasie se sertifikaat, (span ID verifikasie).
As dit nie geverifieer is nie, kan enige ontwikkelaar sertifikaat van Apple gebruik word om te onderteken, en met die diens te verbind.
Kyk of die verbindende proses 'n behoorlike bundel ID bevat.
As dit nie geverifieer is nie, kan enige hulpmiddel onderteken deur dieselfde org gebruik word om met die XPC-diens te kommunikeer.
(4 of 5) Kyk of die verbindende proses 'n behoorlike sagteware weergawe nommer het.
As dit nie geverifieer is nie, kan 'n ou, onveilige kliënt, kwesbaar vir proses inspuiting, gebruik word om met die XPC-diens te verbind, selfs met die ander kontroles in plek.
(4 of 5) Kyk of die verbindende proses 'n geharde tydperk het sonder gevaarlike regte (soos dié wat toelaat om arbitrêre biblioteke te laai of DYLD omgewings veranderlikes te gebruik).
As dit nie geverifieer is nie, mag die kliënt kwesbaar wees vir kode inspuiting.
Kyk of die verbindende proses 'n regte het wat dit toelaat om met die diens te verbind. Dit is van toepassing op Apple binêre.
Die verifikasie moet gebaseer wees op die verbindende kliënt se oudit token in plaas van sy proses ID (PID) aangesien die eerste PID hergebruik aanvalle voorkom.
Ontwikkelaars gebruik selde die oudit token API-oproep aangesien dit privaat is, so Apple kan dit enige tyd verander. Boonop is privaat API gebruik nie toegelaat in Mac App Store toepassings nie.
As die metode processIdentifier
gebruik word, mag dit kwesbaar wees.
xpc_dictionary_get_audit_token
moet gebruik word in plaas van xpc_connection_get_audit_token
, aangesien laasgenoemde ook kwesbaar kan wees in sekere situasies.
Vir meer inligting oor die PID hergebruik aanval, kyk:
macOS PID ReuseVir meer inligting oor xpc_connection_get_audit_token
aanval, kyk:
Trustcache is 'n defensiewe metode wat in Apple Silicon masjiene bekendgestel is wat 'n databasis van CDHSAH van Apple binêre stoor sodat slegs toegelate nie-gemodifiseerde binêre uitgevoer kan word. Dit voorkom die uitvoering van downgrade weergawes.
Die bediener sal hierdie verifikasie in 'n funksie genaamd shouldAcceptNewConnection
implementeer.
Die objek NSXPCConnection het 'n private eiendom auditToken
(die een wat gebruik moet word maar kan verander) en 'n public eiendom processIdentifier
(die een wat nie gebruik moet word nie).
Die verbindingsproses kan verifieer word met iets soos:
As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan dat die kliënt nie kwesbaar is vir prosesinspuiting nie:
Leer en oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer en oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)