macOS Authorizations DB & Authd
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)
Baza danych znajdująca się w /var/db/auth.db
jest używana do przechowywania uprawnień do wykonywania wrażliwych operacji. Operacje te są wykonywane całkowicie w przestrzeni użytkownika i zazwyczaj są używane przez usługi XPC, które muszą sprawdzić czy wywołujący klient jest uprawniony do wykonania określonej akcji, sprawdzając tę bazę danych.
Początkowo ta baza danych jest tworzona na podstawie zawartości /System/Library/Security/authorization.plist
. Następnie niektóre usługi mogą dodać lub zmodyfikować tę bazę danych, aby dodać do niej inne uprawnienia.
Reguły są przechowywane w tabeli rules
wewnątrz bazy danych i zawierają następujące kolumny:
id: Unikalny identyfikator dla każdej reguły, automatycznie inkrementowany i służący jako klucz główny.
name: Unikalna nazwa reguły używana do identyfikacji i odniesienia się do niej w systemie autoryzacji.
type: Określa typ reguły, ograniczony do wartości 1 lub 2 w celu zdefiniowania jej logiki autoryzacji.
class: Kategoruje regułę do określonej klasy, zapewniając, że jest to liczba całkowita dodatnia.
"allow" dla zezwolenia, "deny" dla odmowy, "user" jeśli właściwość grupy wskazuje na grupę, której członkostwo umożliwia dostęp, "rule" wskazuje w tablicy regułę do spełnienia, "evaluate-mechanisms" po którym następuje tablica mechanisms
, która jest albo wbudowana, albo nazwą pakietu w /System/Library/CoreServices/SecurityAgentPlugins/
lub /Library/Security//SecurityAgentPlugins
group: Wskazuje grupę użytkowników związaną z regułą dla autoryzacji opartej na grupach.
kofn: Reprezentuje parametr "k-of-n", określający, ile subreguł musi być spełnionych z całkowitej liczby.
timeout: Określa czas w sekundach, po którym autoryzacja przyznana przez regułę wygasa.
flags: Zawiera różne flagi, które modyfikują zachowanie i cechy reguły.
tries: Ogranicza liczbę dozwolonych prób autoryzacji w celu zwiększenia bezpieczeństwa.
version: Śledzi wersję reguły dla kontroli wersji i aktualizacji.
created: Rejestruje znacznik czasu, kiedy reguła została utworzona w celach audytowych.
modified: Przechowuje znacznik czasu ostatniej modyfikacji dokonanej w regule.
hash: Przechowuje wartość hasha reguły, aby zapewnić jej integralność i wykryć manipulacje.
identifier: Dostarcza unikalny identyfikator w postaci ciągu, taki jak UUID, dla zewnętrznych odniesień do reguły.
requirement: Zawiera zserializowane dane definiujące specyficzne wymagania autoryzacji i mechanizmy reguły.
comment: Oferuje opis lub komentarz w formie czytelnej dla człowieka dotyczący reguły w celach dokumentacyjnych i jasności.
Ponadto w https://www.dssw.co.uk/reference/authorization-rights/authenticate-admin-nonshared/ można zobaczyć znaczenie authenticate-admin-nonshared
:
To demon, który odbiera żądania autoryzacji klientów do wykonywania wrażliwych działań. Działa jako usługa XPC zdefiniowana w folderze XPCServices/
i używa do zapisywania swoich logów w /var/log/authd.log
.
Ponadto, korzystając z narzędzia security, można testować wiele interfejsów API Security.framework
. Na przykład AuthorizationExecuteWithPrivileges
uruchamiając: security execute-with-privileges /bin/ls
To spowoduje fork i exec /usr/libexec/security_authtrampoline /bin/ls
jako root, co poprosi o uprawnienia w oknie dialogowym, aby wykonać ls jako root:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)