rootkity. sabotowanie jądra systemu windows ebook.pdf
(
11712 KB
)
Pobierz
6
Rootkity. Sabotowanie jądra systemu Windows
Rozdział 2.
Sabotowanie jądra .......................................................................... 37
Ważne składniki jądra systemu ........................................................................................38
Projekt rootkitu .................................................................................................................38
Wprowadzenie kodu do jądra ...........................................................................................41
Tworzenie sterownika urządzeń dla systemów Windows ................................................42
Device Driver Development Kit ................................................................................43
Środowisko kompilacji ..............................................................................................43
Pliki ............................................................................................................................43
Uruchamianie narzędzia Build ...................................................................................45
Procedura usuwania sterownika .................................................................................45
Ładowanie i usuwanie sterownika ...................................................................................46
Zapisywanie komunikatów debugowania do dziennika ...................................................47
Rootkity łączące tryb użytkownika z trybem jądra ..........................................................48
Pakiety żądań wejścia-wyjścia ...................................................................................48
Tworzenie uchwytu pliku ..........................................................................................51
Dodawanie dowiązania symbolicznego .....................................................................53
Ładowanie rootkitu ..........................................................................................................54
Szybka i nieładna metoda ładowania sterownika ......................................................54
Jedyna słuszna metoda ładowania sterownika ...........................................................56
Dekompresowanie pliku .sys z zasobów ...........................................................................57
Ponowne uruchomienie ....................................................................................................59
Wnioski ............................................................................................................................61
Rozdział 3.
Połączenia sprzętowe ...................................................................... 63
Pierścień zerowy ..............................................................................................................64
Tablice, tablice i jeszcze więcej tablic .............................................................................66
Strony pamięci ..................................................................................................................67
Szczegóły kontroli dostępu do pamięci .....................................................................68
Stronicowanie i przekształcanie adresów ..................................................................69
Przeszukiwanie tablic stron ........................................................................................70
Pozycje katalogu stron ...............................................................................................72
Pozycja tablicy stron ..................................................................................................72
Do pewnych ważnych tablic dostęp możliwy jest wyłącznie
w trybie tylko do odczytu ........................................................................................73
Wiele procesów, wiele katalogów stron ....................................................................73
Procesy i wątki ...........................................................................................................74
Tablice deskryptorów pamięci .........................................................................................75
Globalna tablica deskryptorów ..................................................................................75
Lokalna tablica deskryptorów ....................................................................................75
Segmenty kodu ...........................................................................................................75
Bramki wywołań ........................................................................................................76
Tablica deskryptorów przerwań .......................................................................................76
Inne typy bram ...........................................................................................................79
Tablica rozdziału usług systemowych ..............................................................................79
Rejestry sterujące .............................................................................................................80
Zerowy rejestr sterujący (CR0) ..................................................................................80
Pozostałe rejestry sterujące ........................................................................................80
Rejestr EFlags ............................................................................................................81
Systemy wieloprocesorowe ..............................................................................................81
Wnioski ............................................................................................................................82
Spis treści
7
Rozdział 4.
Prastara sztuka tworzenia punktów zaczepienia ................................ 85
Punkty zaczepienia w przestrzeni użytkownika ...............................................................85
Punkty zaczepienia w tablicy importowanych adresów .................................................87
Punkty zaczepienia wbudowane w funkcje ...............................................................88
Wstrzykiwanie biblioteki DLL do procesu działającego w przestrzeni użytkownika .......90
Punkty zaczepienia w jądrze systemu ..............................................................................94
Tworzenie punktów zaczepienia w tablicy deskryptorów usług systemowych .........95
Tworzenie punktów zaczepienia w tablicy deskryptorów przerwań .......................102
Tworzenie punktów zaczepienia w głównej tablicy funkcji pakietów IRP
w ramach obiektu sterownika urządzenia .............................................................106
Hybrydowe punkty zaczepienia .....................................................................................115
Dostęp do przestrzeni adresowej procesu ................................................................115
Pamięć dla punktów zaczepienia .............................................................................119
Wnioski ..........................................................................................................................120
Rozdział 5.
Wprowadzanie poprawek w trakcie pracy ...................................... 121
Tworzenie łatek obejścia ................................................................................................122
Zmiana przepływu kodu wykonana za pomocą rootkitu MigBot ............................123
Sprawdzanie bajtów funkcji .....................................................................................124
Zapamiętywanie nadpisywanych instrukcji .............................................................126
Używanie pamięci ze zbioru niestronicowanego .....................................................128
Poprawianie adresu w czasie pracy ..........................................................................128
Szablony skoków ............................................................................................................131
Przykład z punktem zaczepienia w tablicy przerwań ..............................................132
Różne wersje podanej metody ........................................................................................137
Wnioski ..........................................................................................................................138
Rozdział 6.
Sterowniki warstwowe .................................................................. 141
Podsłuchiwanie klawiatury ............................................................................................142
Pakiety IRP i umiejscowienie na stosie ...................................................................144
Rootkit KLOG — analiza ..............................................................................................146
Sterownik filtra plików ...................................................................................................156
Wnioski ..........................................................................................................................167
Rozdział 7.
Bezpośrednie manipulacje na obiektach jądra ................................. 169
Zalety i wady metodologii DKOM ................................................................................170
Określanie wersji systemu operacyjnego .......................................................................171
Określanie wersji systemu w trybie użytkownika ...................................................172
Określanie wersji systemu w trybie jądra ................................................................173
Odczytywanie wersji systemu operacyjnego z rejestru .............................................174
Komunikacja ze sterownikiem z przestrzeni użytkownika ............................................175
Ukrywanie się za pomocą metodologii DKOM .............................................................178
Ukrywanie procesów ...............................................................................................179
Ukrywanie sterowników ..........................................................................................183
Problemy z synchronizacją ......................................................................................186
Uprzywilejowanie tokena i podnoszenie grupy .............................................................190
Modyfikowanie tokena procesu ...............................................................................191
Oszukiwanie podglądu zdarzeń systemu Windows .................................................202
Wnioski ..........................................................................................................................205
Rozdział 8.
Manipulacje na sprzęcie ................................................................ 207
Po co nam sprzęt? ...........................................................................................................209
Modyfikowanie firmware’u ...........................................................................................210
Dostęp do sprzętu ...........................................................................................................211
Adresy sprzętowe .....................................................................................................211
Dostęp do sprzętu to coś innego niż dostęp do pamięci ..........................................212
Problemy z czasem ..................................................................................................212
8
Rootkity. Sabotowanie jądra systemu Windows
Magistrala wejścia-wyjścia ......................................................................................213
Dostęp do BIOS-u ....................................................................................................214
Adresowanie urządzeń PCI i PCMCIA ...................................................................215
Przykład: Dostęp do kontrolera klawiatury ....................................................................216
Układ kontrolera klawiatury 8259 ...........................................................................216
Zmiana ustawień diod LED .....................................................................................217
Twardy restart ..........................................................................................................221
Monitor klawiatury ..................................................................................................222
Jak daleko można się posunąć? Aktualizacja mikrokodu ..............................................227
Wnioski ..........................................................................................................................228
Rozdział 9. Tajne kanały komunikacji .............................................................. 231
Zdalne sterowanie, kontrola i wydobywanie danych .....................................................232
Zmienione protokoły TCP/IP .........................................................................................233
Strzeż się wzorców ruchu sieciowego .....................................................................234
Nie wysyłaj danych „jawnie” ...................................................................................235
Niech czas pracuje na Twoją korzyść ......................................................................236
Ukrywaj się w żądaniach DNS ................................................................................236
Używaj steganografii w komunikatach ASCII ........................................................236
Używaj innych kanałów TCP/IP ..............................................................................237
Wykorzystanie w rootkicie interfejsu TDI ........................................................................238
Tworzenie struktury adresu ......................................................................................239
Tworzenie obiektu adresu lokalnego .......................................................................240
Tworzenie punktu końcowego TDI z kontekstem ...................................................243
Łączenie punktu końcowego z adresem lokalnym ..................................................245
Łączenie z serwerem zdalnym (wysyłanie potwierdzeń TCP) ................................247
Wysyłanie danych do serwera zdalnego ..................................................................248
Manipulacje dokonywane na sieci .................................................................................250
Implementowanie „surowych” gniazd sieciowych w systemie Windows XP .........251
Wiązanie z interfejsem .............................................................................................252
Podglądanie pakietów za pomocą surowego gniazda ..............................................252
Rozbudowane podglądanie z wykorzystaniem surowych gniazd ............................253
Wysyłanie pakietów przez surowe gniazdo .............................................................254
Wykuwanie źródeł ...................................................................................................254
Pakiety odbijane .......................................................................................................254
Wykorzystanie w rootkicie interfejsu NDIS ..................................................................255
Rejestrowanie protokołu ..........................................................................................256
Wywołania zwrotne sterownika protokołu ..............................................................260
Przenoszenie całych pakietów .................................................................................263
Emulacja komputera .......................................................................................................268
Tworzenie własnego adresu MAC ...........................................................................269
Obsługa protokołu ARP ...........................................................................................269
Brama IP ..................................................................................................................271
Wysyłanie pakietu ....................................................................................................272
Wnioski ..........................................................................................................................275
Rozdział 10. Wykrywanie rootkitów .................................................................. 277
Wykrywanie obecności ..................................................................................................278
Straże u bram ...........................................................................................................278
Przeszukiwanie „pokoi” ...........................................................................................280
Poszukiwanie punktów zaczepienia .........................................................................281
Wykrywanie zachowania ...............................................................................................289
Wykrywanie ukrytych plików i kluczy Rejestru .....................................................290
Wykrywanie procesów ukrytych .............................................................................290
Wnioski ..........................................................................................................................293
Skorowidz ..................................................................................... 295
Rozdział 1.
Subtelny i dyskretny, ekspert nie zostawia śladów;
bosko tajemniczy, jest niesłyszalny.
Jest zatem władcą losu swego przeciwnika.
— Sun Tzu
Wiele książek omawia sposoby penetracji systemów komputerowych i oprogramowania.
Liczni autorzy zajmowali się się już kwestiami uruchamiania złośliwych skryptów, two-
rzenia przepełnień bufora i ciekawych skryptów powłoki. Do najważniejszych przykła-
dów takich książek zaliczyć można:
Exploiting Software
1
,
The Shellcoder’s Handbook
2
i
Hacking Exposed
3
.
Ta książka jest inna. Zamiast zajmować się w niej technikami ataków, opisywać bę-
dziemy sposoby atakujących na pozostanie w naszych systemach
po
udanym włamaniu.
Ten temat omawiany jest w bardzo niewielu publikacjach, z wyjątkiem tych zajmujących
się analizą przejętych systemów. W przypadku tych ostatnich najczęściej opisywane
są metody defensywne, czyli wykrywanie obecności włamywacza i wsteczna inżynieria
złośliwego kodu. W tej książce zajmiemy się znacznie bardziej agresywnymi zachowa-
niami. Omawiać będziemy sposoby penetrowania systemu komputerowego uniemożli-
wiające wykrycie tego zdarzenia. W końcu udana penetracja systemu nie może zostać
wykryta.
W niniejszym rozdziale wprowadzimy Czytelnika w świat technologii rootkitów i ogól-
nych zasad ich działania. Rootkity stanowią tylko jeden z elementów spektrum zagro-
żeń dla naszego komputera, ale są one niezbędnym elementem wielu typów ataków.
Rootkity nie są złośliwe same z siebie, ale mogą być używane w ramach złośliwych
programów. Poznanie technologii rootkitów jest niezbędne każdemu, kto chce ochronić
swój system przed nowoczesnymi technikami ataków.
1
G. Hoglund i G. McGraw,
Exploiting Software: How to Break Code
, Boston, Addison-Wesley, 2004.
Proszę zajrzeć również na stronę
www.exploitingsoftware.com
.
2
J. Koziol, D. Lichtfield, D. Aitel, C. Anley, S. Eren, N. Mehta i R. Hassell,
The Shellcoder’s Handbook
,
Nowy Jork, John Wiley & Sons, 2004.
3
S. McClure, J. Scambray i G. Kurtz,
Hacking Exposed
, Nowy Jork, McGraw-Hill, 2003.
Plik z chomika:
basia1995x
Inne pliki z tego folderu:
autocad 2005 i 2005 pl full.pdf
(22413 KB)
intensywny kurs przywództwa. szybki program rozwoju zdolności przywódczych full.pdf
(9732 KB)
płytki umysł. jak internet wpływa na nasz mózg helion.pdf
(34503 KB)
analiza statystyczna. microsoft excel 2010 pl cała książka.pdf
(27781 KB)
matematyczne-szkielko-i-oko.-mniej-i-bardziej-powazne-zastosowania-matmy full scan.pdf
(28897 KB)
Inne foldery tego chomika:
ebooki(1)moooooooo
ebooki(1)moooooooo(1)
ebooki(1)moooooooo(10)
ebooki(1)moooooooo(11)
ebooki(1)moooooooo(12)
Zgłoś jeśli
naruszono regulamin