macOS PID Reuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kada XPC servis na macOS-u proverava pozvani proces na osnovu PID-a a ne na osnovu audit token-a, ranjiv je na napad ponovne upotrebe PID-a. Ovaj napad se zasniva na trci gde će eksploit slati poruke XPC servisu zloupotrebljavajući funkcionalnost i tek nakon toga izvršiti posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)
sa dozvoljenim binarnim fajlom.
Ova funkcija će učiniti da dozvoljeni binarni fajl preuzme PID, ali bi maliciozna XPC poruka bila poslata neposredno pre toga. Dakle, ako XPC servis koristi PID za autentifikaciju pošiljaoca i proverava ga Nakon izvršenja posix_spawn
, misliće da dolazi iz ovlašćenog procesa.
Ako pronađete funkciju shouldAcceptNewConnection
ili funkciju koju ona poziva koja poziva processIdentifier
i ne poziva auditToken
. To verovatno znači da proverava PID procesa a ne audit token.
Kao na primer na ovoj slici (uzeta iz reference):
Proverite ovaj primer eksploita (ponovo, uzet iz reference) da vidite 2 dela eksploita:
Jedan koji generiše nekoliko forkova
Svaki fork će poslati payload XPC servisu dok izvršava posix_spawn
odmah nakon slanja poruke.
Za rad eksploita važno je export`` ``
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
ili staviti unutar eksploita:
Prva opcija koristi NSTasks
i argument za pokretanje dece kako bi iskoristila RC
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)