Bezpieczeństwo Windows od środka. Kompleksowe spojrzenie na uwierzytelnianie, autoryzację i audyt systemu - ebook
Bezpieczeństwo Windows od środka. Kompleksowe spojrzenie na uwierzytelnianie, autoryzację i audyt systemu - ebook
W czasach zaawansowanych cyberataków na maszyny pracujące pod kontrolą Windows opanowanie złożonych mechanizmów zabezpieczeń systemu operacyjnego to kluczowa umiejętność. Zrozumienie zasad działania niskopoziomowych implementacji systemu Windows jest konieczne, jeśli chcesz odkrywać nieznane luki w zabezpieczeniach lub chronić się przed już znanymi zagrożeniami.
Tę książkę docenią projektanci, specjaliści z zakresu metodyki DevOps i badacze zajmujący się bezpieczeństwem, którzy znajdą w niej niezrównane źródło wiedzy o kluczowych elementach systemu operacyjnego i jego słabych punktach. Poszczególne zagadnienia zilustrowano za pomocą starannie przygotowanych przykładów bazujących na narzędziu PowerShell. Przykłady te można testować i dostosowywać. Obejmują one zarówno podstawową analizę zabezpieczeń zasobów, jak i techniki zaawansowane, takie jak uwierzytelnianie sieciowe. Dzięki tej praktycznej książce przyswoisz wiedzę o tym, jak system Windows zabezpiecza pliki i rejestr, jak implementuje uwierzytelnianie lokalnie i za pośrednictwem sieci, a także od podstaw przeanalizujesz zagadnienia udzielania dostępu do zasobu.
Ciekawsze zagadnienia:
- architektura zabezpieczeń systemu Windows
- monitor SRM systemu Windows
- tokeny dostępu, deskryptory zabezpieczeń zasobu, kontrola dostępu i audyt
- uwierzytelnianie interaktywne i Security Account Manager
- protokoły uwierzytelniania sieciowego, w tym NTLM i Kerberos
...a zatem twierdzisz, że rozumiesz, jak działają zabezpieczenia Windows?
Spis treści
Słowo wstępne
Podziękowania
Wprowadzenie
Część I. Przegląd systemu operacyjnego Windows
- 1. Konfigurowanie środowiska testowego narzędzia PowerShell
- Wybór wersji narzędzia PowerShell
- Konfigurowanie narzędzia PowerShell
- Przegląd języka narzędzia PowerShell
- Typy, zmienne i wyrażenia
- Wykonywanie poleceń
- Znajdowanie poleceń i uzyskiwanie pomocy
- Definiowanie funkcji
- Wyświetlanie i modyfikowanie obiektów
- Filtrowanie, sortowanie i grupowanie obiektów
- Eksportowanie danych
- Podsumowanie
- 2. Jądro systemu Windows
- Obszar wykonawczy jądra systemu Windows
- Monitor referencyjny zabezpieczeń
- Menedżer obiektów
- Typy obiektów
- Przestrzeń nazw menedżera obiektów
- Wywołania systemowe
- Kody NTSTATUS
- Uchwyty obiektów
- Informacyjne wywołania systemowe Query i Set
- Menedżer operacji wejścia-wyjścia
- Menedżer procesów i wątków
- Menedżer pamięci
- Polecenia NtVirtualMemory
- Obiekty Section
- Integralność kodu
- Zaawansowane lokalne wywoływanie procedur
- Menedżer konfiguracji
- Praktyczne przykłady
- Znajdowanie otwartych uchwytów na podstawie nazwy
- Znajdowanie współużytkowanych obiektów
- Modyfikowanie mapowanej sekcji
- Znajdowanie pamięci umożliwiającej zapis i wykonywanie
- Podsumowanie
- 3. Aplikacje trybu użytkownika
- Interfejsy API podsystemu Win32 i trybu użytkownika systemu Windows
- Ładowanie nowej biblioteki
- Wyświetlanie zaimportowanych interfejsów API
- Wyszukiwanie bibliotek DLL
- Graficzny interfejs użytkownika podsystemu Win32
- Zasoby jądra związane z graficznym interfejsem użytkownika
- Komunikaty okien
- Sesje konsoli
- Porównanie interfejsów API i wywołań systemowych podsystemu Win32
- Ścieżki rejestru podsystemu Win32
- Otwieranie kluczy
- Wyświetlanie zawartości rejestru
- Ścieżki urządzeń systemu DOS
- Typy ścieżek
- Maksymalne długości ścieżki
- Tworzenie procesów
- Analizowanie wiersza poleceń
- Interfejsy API powłoki
- Procesy systemowe
- Menedżer sesji
- Proces logowania w systemie Windows
- Podsystem autoryzacji LSASS
- Menedżer kontroli usług
- Praktyczne przykłady
- Znajdowanie plików wykonywalnych importujących konkretne interfejsy API
- Znajdowanie ukrytych kluczy lub wartości rejestru
- Podsumowanie
- Interfejsy API podsystemu Win32 i trybu użytkownika systemu Windows
Część II. Monitor SRM
- 4. Tokeny dostępu bezpieczeństwa
- Tokeny podstawowe
- Tokeny personifikacji
- Opcja SQoS
- Jawna personifikacja tokena
- Przekształcanie typów tokenów
- Pseudouchwyty tokenów
- Grupy tokenów
- Flagi Enabled, EnabledByDefault i Mandatory
- Flaga LogonId
- Flaga Owner
- Flaga UseForDenyOnly
- Flagi Integrity i IntegrityEnabled
- Flaga Resource
- Grupy urządzeń
- Uprawnienia
- Tokeny "piaskownicy"
- Tokeny ograniczone
- Tokeny z ograniczeniem zapisu
- AppContainer i tokeny lowbox
- Co czyni użytkownika administratorem?
- Kontrola konta użytkownika
- Tokeny powiązane i typ zwiększania uprawnień
- Dostęp do interfejsu użytkownika
- Wirtualizacja
- Atrybuty zabezpieczeń
- Tworzenie tokenów
- Przypisywanie tokena
- Przypisywanie tokena podstawowego
- Przypisywanie tokena personifikacji
- Praktyczne przykłady
- Znajdowanie procesów z dostępem do interfejsu użytkownika
- Znajdowanie uchwytów tokenów poddawanych personifikacji
- Usuwanie uprawnień administratora
- Podsumowanie
- 5. Deskryptory zabezpieczeń
- Struktura deskryptora zabezpieczeń
- Struktura identyfikatora SID
- Bezwzględne i względne deskryptory zabezpieczeń
- Nagłówki i wpisy listy kontroli dostępu
- Nagłówek
- Lista wpisów ACE
- Tworzenie deskryptorów zabezpieczeń i modyfikowanie ich
- Tworzenie nowego deskryptora zabezpieczeń
- Uporządkowanie wpisów ACE
- Formatowanie deskryptorów zabezpieczeń
- Przekształcanie dotyczące względnego deskryptora zabezpieczeń
- Język SDDL
- Praktyczne przykłady
- Ręczne analizowanie binarnego identyfikatora SID
- Wyliczanie identyfikatorów SID
- Podsumowanie
- 6. Odczytywanie i przypisywanie deskryptorów zabezpieczeń
- Odczytywanie deskryptorów zabezpieczeń
- Przypisywanie deskryptorów zabezpieczeń
- Przypisywanie deskryptora zabezpieczeń podczas tworzenia zasobu
- Przypisywanie deskryptora zabezpieczeń do istniejącego zasobu
- Interfejsy API zabezpieczeń podsystemu Win32
- Deskryptory zabezpieczeń serwera i złożone wpisy ACE
- Podsumowanie sposobu dziedziczenia
- Praktyczne przykłady
- Znajdowanie właścicieli zasobów menedżera obiektów
- Zmiana właściciela zasobu
- Podsumowanie
- 7. Proces kontroli dostępu
- Przeprowadzanie kontroli dostępu
- Kontrole dostępu w trybie jądra
- Kontrole dostępu w trybie użytkownika
- Polecenie Get-NtGrantedAccess narzędzia PowerShell
- Proces kontroli dostępu w narzędziu PowerShell
- Definiowanie funkcji kontroli dostępu
- Przeprowadzanie obowiązkowej kontroli dostępu
- Wykonywanie kontroli dostępu tokena
- Przeprowadzanie uznaniowej kontroli dostępu
- Izolowanie w "piaskownicy"
- Tokeny ograniczone
- Tokeny lowbox
- Kontrole dostępu w przedsiębiorstwach
- Kontrola dostępu dotycząca typu obiektu
- Centralna zasada dostępu
- Praktyczne przykłady
- Zastosowanie funkcji Get-PSGrantedAccess
- Obliczanie przyznanego poziomu dostępu dla zasobów
- Podsumowanie
- Przeprowadzanie kontroli dostępu
- 8. Inne przypadki zastosowania kontroli dostępu
- Kontrola z przechodzeniem
- Uprawnienie SeChangeNotifyPrivilege
- Ograniczone kontrole
- Kontrole dostępu podczas duplikowania uchwytów
- Kontrole tokenów "piaskownicy"
- Automatyzowanie kontroli dostępu
- Praktyczne przykłady
- Uproszczenie kontroli dostępu dla obiektu
- Znajdowanie obiektów Section z możliwością zapisu
- Podsumowanie
- Kontrola z przechodzeniem
- 9. Audyt zabezpieczeń
- Dziennik zdarzeń zabezpieczeń
- Konfigurowanie systemowej zasady audytu
- Konfigurowanie zasady audytu dla poszczególnych użytkowników
- Zabezpieczenia zasad audytu
- Konfigurowanie listy SACL zasobu
- Konfigurowanie globalnej listy SACL
- Praktyczne przykłady
- Weryfikowanie zabezpieczeń zasady audytu
- Znajdowanie zasobów z wpisami ACE typu Audit
- Podsumowanie
- Dziennik zdarzeń zabezpieczeń
Część III. Uwierzytelnianie i autoryzacja w ramach zabezpieczeń lokalnych
- 10. Uwierzytelnianie w systemie Windows
- Uwierzytelnianie domenowe
- Uwierzytelnianie lokalne
- Domena sieci korporacyjnej
- Lasy domen
- Konfiguracja domeny lokalnej
- Baza danych użytkowników
- Baza danych zasad jednostki autoryzacji LSA
- Zdalne usługi LSA
- Zdalna usługa menedżera SAM
- Usługa zdalna zasady domeny
- Baza danych menedżera SAM i baza SECURITY
- Uzyskiwanie dostępu do bazy danych menedżera SAM za pośrednictwem rejestru
- Inspekcja bazy danych SECURITY
- Praktyczne przykłady
- Cykliczne stosowanie identyfikatorów RID
- Wymuszanie zmiany hasła użytkownika
- Wyodrębnianie skrótów wszystkich użytkowników lokalnych
- Podsumowanie
- Uwierzytelnianie domenowe
- 11. Usługa Active Directory
- Krótka historia usługi Active Directory
- Eksploracja domeny usługi Active Directory za pomocą narzędzia PowerShell
- Narzędzia administracji zdalnej serwera
- Podstawowe informacje o lesie i domenie
- Użytkownicy
- Grupy
- Komputery
- Obiekty i nazwy wyróżniające
- Wyliczanie obiektów katalogu
- Uzyskiwanie dostępu do obiektów w innych domenach
- Schemat
- Inspekcja schematu
- Uzyskiwanie dostępu do atrybutów zabezpieczeń
- Deskryptory zabezpieczeń
- Tworzenie zapytań dotyczących deskryptorów zabezpieczeń obiektów katalogu
- Przypisywanie deskryptorów zabezpieczeń nowym obiektom katalogu
- Przypisywanie deskryptorów zabezpieczeń istniejącym obiektom
- Inspekcja odziedziczonych zabezpieczeń deskryptora
- Kontrole dostępu
- Tworzenie obiektów
- Usuwanie obiektów
- Wyszczególnianie obiektów
- Odczyt i zapis atrybutów
- Sprawdzanie wielu atrybutów
- Analizowanie zestawów właściwości
- Inspekcja praw dostępu kontroli
- Analizowanie praw dostępu z potwierdzonym zapisem
- Uzyskiwanie dostępu do identyfikatora SID konta SELF
- Wykonywanie dodatkowych kontroli zabezpieczeń
- Oświadczenia i centralne zasady dostępu
- Zasady grup
- Praktyczny przykład
- Budowanie kontekstu autoryzacji
- Zbieranie informacji o obiekcie
- Wykonywanie kontroli dostępu
- Podsumowanie
- 12. Uwierzytelnianie interaktywne
- Tworzenie pulpitu użytkownika
- Interfejs API LsaLogonUser
- Uwierzytelnianie lokalne
- Uwierzytelnianie w domenie
- Sesje logowania i konsoli
- Tworzenie tokena
- Użycie interfejsu API LsaLogonUser z poziomu narzędzia PowerShell
- Tworzenie nowego procesu za pomocą tokena
- Typ logowania Service
- Praktyczne przykłady
- Testowanie uprawnień i praw kont logowania
- Tworzenie procesu w innej sesji konsoli
- Uwierzytelnianie kont wirtualnych
- Podsumowanie
- 13. Uwierzytelnianie sieciowe
- Uwierzytelnianie sieciowe za pomocą protokołu NTLM
- Uwierzytelnianie oparte na protokole NTLM z wykorzystaniem narzędzia PowerShell
- Proces przekształcania kryptograficznego
- Uwierzytelnianie z przekazywaniem
- Uwierzytelnianie z użyciem lokalnej pętli zwrotnej
- Alternatywne dane uwierzytelniające klienta
- Atak NTLM Relay
- Schemat ataku
- Aktywne wyzwania serwera
- Podpisywanie i uszczelnianie
- Nazwy elementów docelowych
- Powiązanie kanału
- Praktyczny przykład
- Przegląd
- Moduł kodu
- Implementacja serwera
- Implementacja klienta
- Test uwierzytelniania za pomocą protokołu NTLM
- Podsumowanie
- Uwierzytelnianie sieciowe za pomocą protokołu NTLM
- 14. Protokół Kerberos
- Uwierzytelnianie interaktywne z użyciem protokołu Kerberos
- Początkowe uwierzytelnianie użytkownika
- Uwierzytelnianie w usługach sieciowych
- Realizowanie w narzędziu PowerShell procesu uwierzytelniania protokołu Kerberos
- Odszyfrowywanie komunikatu żądania AP-REQ
- Odszyfrowywanie komunikatu odpowiedzi AP-REP
- Uwierzytelnianie między domenami
- Delegowanie w protokole Kerberos
- Delegowanie bez ograniczeń
- Delegowanie ograniczone
- Wzajemne uwierzytelnianie użytkowników za pomocą protokołu Kerberos
- Praktyczne przykłady
- Sprawdzanie pamięci podręcznej biletów protokołu Kerberos
- Prosty atak Kerberoasting
- Podsumowanie
- Uwierzytelnianie interaktywne z użyciem protokołu Kerberos
- 15. Pakiet uwierzytelniania Negotiate oraz inne pakiety zabezpieczeń
- Bufory zabezpieczeń
- Zastosowanie buforów z kontekstem uwierzytelniania
- Zastosowanie buforów podczas podpisywania i zabezpieczania
- Protokół Negotiate
- Mniej popularne pakiety zabezpieczeń
- Bezpieczny kanał
- Pakiet protokołu CredSSP
- Opcja Remote Credential Guard i tryb ograniczony administratora
- Menedżer danych uwierzytelniających
- Dodatkowe flagi atrybutów żądania
- Sesje anonimowe
- Tokeny tożsamości
- Uwierzytelnianie sieciowe z użyciem tokena lowbox
- Uwierzytelnianie z wykorzystaniem możliwości uwierzytelniania korporacyjnego
- Uwierzytelnianie w znanej sieciowej usłudze proxy
- Uwierzytelnianie z użyciem jawnych danych uwierzytelniających
- Dziennik zdarzeń audytu uwierzytelniania
- Praktyczne przykłady
- Identyfikowanie przyczyny nieudanego uwierzytelniania
- Zastosowanie bezpiecznego kanału do wyodrębnienia certyfikatu protokołu TLS serwera
- Podsumowanie
- Końcowe wnioski
- Bufory zabezpieczeń
Dodatek A. Budowanie sieci domen systemu Windows do testów
- Sieć domen
- Instalowanie i konfigurowanie oprogramowania Hyper-V systemu Windows
- Tworzenie maszyn wirtualnych
- Serwer PRIMARYDC
- Stacja robocza GRAPHITE
- Serwer SALESDC
Dodatek B. Odwzorowywanie aliasów identyfikatorów SID formatu SDDL
Skorowidz
| Kategoria: | Hacking |
| Zabezpieczenie: |
Watermark
|
| ISBN: | 978-83-289-2066-8 |
| Rozmiar pliku: | 8,6 MB |