.. | ||
README.md |
Wykorzystywanie tokenów
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć reklamę swojej firmy na HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium hacktricks i hacktricks-cloud.
Tokeny
Jeśli nie wiesz, czym są tokeny dostępu w systemie Windows, przeczytaj tę stronę, zanim przejdziesz dalej:
{% content-ref url="../access-tokens.md" %} access-tokens.md {% endcontent-ref %}
Możliwe, że będziesz w stanie podnieść uprawnienia, wykorzystując już posiadane tokeny
SeImpersonatePrivilege
To uprawnienie, które posiada każdy proces, umożliwia podmianę (ale nie tworzenie) dowolnego tokenu, pod warunkiem, że można uzyskać do niego uchwyt. Uprawniony token można uzyskać z usługi systemu Windows (DCOM), wywołując uwierzytelnianie NTLM przeciwko wykorzystaniu, co umożliwia wykonanie procesu z uprawnieniami SYSTEM. Tę podatność można wykorzystać za pomocą różnych narzędzi, takich jak juicy-potato, RogueWinRM (które wymaga wyłączenia winrm), SweetPotato i PrintSpoofer.
{% content-ref url="../roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
{% content-ref url="../juicypotato.md" %} juicypotato.md {% endcontent-ref %}
SeAssignPrimaryPrivilege
Jest bardzo podobne do SeImpersonatePrivilege, użyje tej samej metody do uzyskania uprzywilejowanego tokenu.
Następnie, to uprawnienie pozwala przypisać podstawowy token do nowego/zawieszonego procesu. Z uprzywilejowanego tokenu impersonacji można utworzyć podstawowy token (DuplicateTokenEx).
Z tym tokenem można utworzyć nowy proces za pomocą 'CreateProcessAsUser' lub utworzyć proces zawieszony i ustawić token (zazwyczaj nie można modyfikować podstawowego tokenu działającego procesu).
SeTcbPrivilege
Jeśli masz włączone to uprawnienie, możesz użyć KERB_S4U_LOGON, aby uzyskać token impersonacji dla dowolnego innego użytkownika, nie znając poświadczeń, dodać dowolną grupę (administratorzy) do tokenu, ustawić poziom integralności tokenu na "średni" i przypisać ten token do bieżącego wątku (SetThreadToken).
SeBackupPrivilege
System jest zmuszony do udzielenia wszystkim plikom (ograniczone do operacji odczytu) kontroli dostępu do odczytu za pomocą tego uprawnienia. Jest ono wykorzystywane do odczytywania skrótów haseł kont lokalnych Administratora z rejestru, a następnie można użyć narzędzi takich jak "psexec" lub "wmicexec" z tym skrótem (technika Pass-the-Hash). Jednak ta technika nie działa w dwóch przypadkach: gdy konto lokalnego Administratora jest wyłączone lub gdy obowiązuje zasada, która usuwa prawa administracyjne od Administratorów lokalnych łączących się zdalnie.
Możesz wykorzystać to uprawnienie za pomocą:
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- śledząc IppSec w https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
- lub zgodnie z wyjaśnieniem w sekcji podnoszenie uprawnień z operatorami kopii zapasowych w:
{% content-ref url="../../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}
SeRestorePrivilege
To uprawnienie umożliwia zapis do dowolnego pliku systemowego, niezależnie od listy kontroli dostępu (ACL) pliku. Otwiera to wiele możliwości eskalacji, w tym możliwość modyfikacji usług, wykonywania DLL Hijackingu i ustawiania debuggerów za pomocą Image File Execution Options oraz wiele innych technik.
SeCreateTokenPrivilege
SeCreateTokenPrivilege to potężne uprawnienie, szczególnie przydatne, gdy użytkownik ma możliwość podmiany tokenów, ale także w przypadku braku uprawnienia SeImpersonatePrivilege. Ta zdolność opiera się na możliwości podmiany tokenu, który reprezentuje tego samego użytkownika i którego poziom integralności nie przekracza poziomu integralności bieżącego procesu.
Kluczowe punkty:
- Podmiana tożsamości bez uprawnienia SeImpersonatePrivilege: Możliwe jest wykorzystanie uprawnienia SeCreateTokenPrivilege do podniesienia uprawnień poprzez podmianę tokenów w określonych warunkach.
- Warunki podmiany tokenów: Aby podmiana była udana, token docelowy musi należeć do tego samego użytkownika i mieć poziom integralności mniejszy lub równy poziomowi integralności procesu próbującego dokonać podmiany.
- Tworzenie i modyfikacja tokenów podmiany: Użytkownicy mogą tworzyć token podmiany i ulepszać go, dodając identyfikator zabezpieczeń (SID) uprzywilejowanej grupy.
SeLoadDriverPrivilege
To uprawnienie umożliwia ładowanie i usuwanie sterowników urządzeń
# Example Python code to set the registry values
import winreg as reg
# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)
Więcej sposobów na wykorzystanie tej uprzywilejowanej roli znajduje się na stronie https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
To jest podobne do SeRestorePrivilege. Jego główna funkcja pozwala procesowi przejmować własność obiektu, omijając wymaganie udzielania jawnego dostępu dyskrecjonalnego poprzez zapewnienie praw dostępu WRITE_OWNER. Proces polega na najpierw zabezpieczeniu własności zamierzonego klucza rejestru w celu zapisu, a następnie zmianie DACL w celu umożliwienia operacji zapisu.
takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config
SeDebugPrivilege
Ta uprawnienie umożliwia debugowanie innych procesów, w tym odczyt i zapis w pamięci. Można zastosować różne strategie wstrzykiwania pamięci, które są w stanie uniknąć większości programów antywirusowych i rozwiązań do zapobiegania intruzji na hosta.
Zrzut pamięci
Możesz użyć ProcDump z SysInternals Suite, aby przechwycić pamięć procesu. W szczególności dotyczy to procesu Local Security Authority Subsystem Service (LSASS), który jest odpowiedzialny za przechowywanie poświadczeń użytkownika po pomyślnym zalogowaniu do systemu.
Następnie możesz załadować ten zrzut do mimikatz, aby uzyskać hasła:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
RCE
Jeśli chcesz uzyskać powłokę NT SYSTEM
, możesz użyć:
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
Sprawdź uprawnienia
To determine the privileges of the current user, you can use the following methods:
1. Whoami
The whoami
command displays the username and group membership of the current user.
whoami
2. Net user
The net user
command provides detailed information about user accounts, including their group memberships and privileges.
net user <username>
Replace <username>
with the name of the user you want to check.
3. Systeminfo
The systeminfo
command displays detailed information about the system, including the privileges of the current user.
systeminfo
4. PowerShell
You can also use PowerShell to check the privileges of the current user. Run the following command:
whoami /priv
This will display a list of privileges assigned to the current user.
Remember that these methods will only show the privileges of the current user. To check the privileges of other users, you may need administrative access or specific permissions.
whoami /priv
Tokeny, które są wyłączone, można włączyć, a tak naprawdę można nadużywać tokenów Włączonych i Wyłączonych.
Włącz wszystkie tokeny
Jeśli masz wyłączone tokeny, możesz użyć skryptu EnableAllTokenPrivs.ps1, aby włączyć wszystkie tokeny:
.\EnableAllTokenPrivs.ps1
whoami /priv
Lub skrypt osadzony w tym poście.
Tabela
Pełna ściąga uprawnień tokenów dostępna pod adresem https://github.com/gtworek/Priv2Admin, poniżej znajdują się tylko bezpośrednie sposoby wykorzystania uprawnień w celu uzyskania sesji administratora lub odczytu poufnych plików.
Uprawnienie | Wpływ | Narzędzie | Ścieżka wykonania | Uwagi |
---|---|---|---|---|
SeAssignPrimaryToken |
Admin | Narzędzie firm trzecich | "Pozwala użytkownikowi na podszywanie się pod tokeny i eskalację uprawnień do nt system przy użyciu narzędzi takich jak potato.exe, rottenpotato.exe i juicypotato.exe" | Dziękuję Aurélienowi Chalot za aktualizację. Postaram się wkrótce przepisać to na coś bardziej przypominającego przepis. |
SeBackup |
Zagrożenie | Wbudowane polecenia | Odczytaj poufne pliki za pomocą robocopy /b |
- Może być bardziej interesujące, jeśli można odczytać %WINDIR%\MEMORY.DMP |
SeCreateToken |
Admin | Narzędzie firm trzecich | Utwórz dowolny token, w tym z lokalnymi uprawnieniami administratora za pomocą NtCreateToken . |
|
SeDebug |
Admin | PowerShell | Zduplikuj token lsass.exe . |
Skrypt można znaleźć pod adresem FuzzySecurity |
SeLoadDriver |
Admin | Narzędzie firm trzecich | 1. Załaduj wadliwy sterownik jądra, tak jak |
1. Podatność |
SeRestore |
Admin | PowerShell | 1. Uruchom PowerShell/ISE z obecnością uprawnienia SeRestore. |
Atak może być wykryty przez niektóre oprogramowanie antywirusowe. Alternatywna metoda polega na zastąpieniu binarnych plików usług przechowywanych w "Program Files" przy użyciu tego samego uprawnienia |
SeTakeOwnership |
Admin | Wbudowane polecenia | 1. |
Atak może być wykryty przez niektóre oprogramowanie antywirusowe. Alternatywna metoda polega na zastąpieniu binarnych plików usług przechowywanych w "Program Files" przy użyciu tego samego uprawnienia. |
SeTcb |
Admin | Narzędzie firm trzecich | Zmieniaj tokeny, aby zawierały lokalne uprawnienia administratora. Może wymagać SeImpersonate. Do weryfikacji. |
Odnośniki
- Zapoznaj się z tą tabelą definiującą tokeny systemu Windows: https://github.com/gtworek/Priv2Admin
- Przeczytaj ten artykuł na temat eskalacji uprawnień za pomocą tokenów.
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć reklamę swojej firmy w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi trikami hakerskimi, przesyłając PR do repozytorium hacktricks i hacktricks-cloud.