Access Tokens
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)
Każdy użytkownik zalogowany do systemu posiada token dostępu z informacjami o bezpieczeństwie dla tej sesji logowania. System tworzy token dostępu, gdy użytkownik się loguje. Każdy proces wykonywany w imieniu użytkownika ma kopię tokena dostępu. Token identyfikuje użytkownika, grupy użytkownika oraz uprawnienia użytkownika. Token zawiera również SID logowania (Identifikator Bezpieczeństwa), który identyfikuje bieżącą sesję logowania.
Możesz zobaczyć te informacje, wykonując whoami /all
or using Process Explorer from Sysinternals (select process and access"Security" tab):
Gdy lokalny administrator się loguje, tworzone są dwa tokeny dostępu: jeden z uprawnieniami administratora i drugi z normalnymi uprawnieniami. Domyślnie, gdy ten użytkownik uruchamia proces, używany jest ten z zwykłymi (nie-administratorskimi) uprawnieniami. Gdy ten użytkownik próbuje wykonać cokolwiek jako administrator ("Uruchom jako administrator" na przykład), UAC zostanie użyty do zapytania o pozwolenie. Jeśli chcesz dowiedzieć się więcej o UAC, przeczytaj tę stronę.
Jeśli masz ważne dane uwierzytelniające innego użytkownika, możesz utworzyć nową sesję logowania z tymi danymi:
Token dostępu ma również referencję sesji logowania wewnątrz LSASS, co jest przydatne, jeśli proces musi uzyskać dostęp do niektórych obiektów w sieci. Możesz uruchomić proces, który używa różnych poświadczeń do uzyskiwania dostępu do usług sieciowych za pomocą:
To jest przydatne, jeśli masz użyteczne poświadczenia do uzyskania dostępu do obiektów w sieci, ale te poświadczenia nie są ważne w bieżącym hoście, ponieważ będą używane tylko w sieci (w bieżącym hoście będą używane uprawnienia bieżącego użytkownika).
Dostępne są dwa typy tokenów:
Token główny: Służy jako reprezentacja poświadczeń bezpieczeństwa procesu. Tworzenie i przypisywanie tokenów głównych do procesów to działania wymagające podwyższonych uprawnień, co podkreśla zasadę separacji uprawnień. Zazwyczaj usługa uwierzytelniania jest odpowiedzialna za tworzenie tokenów, podczas gdy usługa logowania zajmuje się ich przypisaniem do powłoki systemu operacyjnego użytkownika. Warto zauważyć, że procesy dziedziczą token główny swojego procesu macierzystego w momencie tworzenia.
Token impersonacji: Umożliwia aplikacji serwerowej tymczasowe przyjęcie tożsamości klienta w celu uzyskania dostępu do zabezpieczonych obiektów. Mechanizm ten jest podzielony na cztery poziomy działania:
Anonimowy: Przyznaje dostęp serwera podobny do tego, który ma nieznany użytkownik.
Identyfikacja: Pozwala serwerowi zweryfikować tożsamość klienta bez wykorzystania jej do uzyskania dostępu do obiektów.
Impersonacja: Umożliwia serwerowi działanie pod tożsamością klienta.
Delegacja: Podobna do impersonacji, ale obejmuje możliwość rozszerzenia tej tożsamości na zdalne systemy, z którymi serwer wchodzi w interakcje, zapewniając zachowanie poświadczeń.
Używając modułu incognito w metasploit, jeśli masz wystarczające uprawnienia, możesz łatwo wylistować i imponować innymi tokenami. Może to być przydatne do wykonywania działań tak, jakbyś był innym użytkownikiem. Możesz również eskalować uprawnienia za pomocą tej techniki.
Dowiedz się, które uprawnienia tokenów mogą być nadużywane do eskalacji uprawnień:
Abusing TokensZobacz wszystkie możliwe uprawnienia tokenów i niektóre definicje na tej zewnętrznej stronie.
Dowiedz się więcej o tokenach w tych samouczkach: https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa i https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)