E-book details

Cyberwojna. Metody działania hakerów

Cyberwojna. Metody działania hakerów

Dawid Farbaniec

Ebook

Uczyń Twój system twierdzą nie do zdobycia!

  • Architektura procesorów x86(-64) i systemów z rodziny Windows NT(R)
  • Narzędzia używane do cyberataków
  • Ochrona systemu Windows(R), dane i prywatność w sieci

Z różnych mediów napływają informacje o tym, że hakerzy (tzw. black hats) przeprowadzają ataki DDoS blokujące dostęp do ważnych usług, publikują wykradzione bazy danych, niszczą witryny internetowe, szantażują firmy i instytucje, okradają konta bankowe i infekują wiele urządzeń, skutecznie paraliżując ich działanie.

Media wciąż donoszą o sensacyjnych atakach hakerów i kolejnych kradzieżach danych, próbując ostrzec przeciętnych użytkowników przed próbami oszustwa. Tylko nieliczne portale związane z bezpieczeństwem IT podają nieco szczegółów technicznych na temat cyberataków - te szczegóły mogą pomóc zwłaszcza administratorom systemów. Tymczasem ta wiedza powinna być ogólnodostępna!

Jeśli odpowiadasz za bezpieczeństwo sieci i danych, w tej książce znajdziesz:

  • Informacje o działaniu procesora opartego na architekturze x86(-64) oraz systemów Windows NT(R)
  • Przyjazny opis najważniejszych instrukcji Asemblera x86(-64)
  • Przewodnik po dialekcie MASM64 Asemblera x86(-64) umożliwiający zrozumienie "języka wirusów"
  • Szczegółową prezentację aplikacji typu backdoor, virus, file binder, keylogger, ransomware i trojan horse w formie laboratorium oraz wielu innych zagrożeń w postaci technicznego opisu
  • Przewodnik po możliwościach zwiększania poziomu bezpieczeństwa pracy w systemach Windows(R)
  • Wprowadzenie do inżynierii odwrotnej kodu (ang. reverse code engineering)

Bądź zawsze przygotowany na wojnę cybernetyczną!

Słowem wstępu (11)

Rozdział 1. Hacking - wprowadzenie (15)

  • 1.1. Na czym polega działalność hakerów (15)
  • 1.2. Subkultura hakerów (15)
  • 1.3. Wojna cybernetyczna (16)

Rozdział 2. Pakiety MASM32 i MASM64 (17)

  • 2.1. Przygotowanie środowiska pracy MASM32 (17)
    • 2.1.1. Program "Witaj, 32-bitowy świecie!" (17)
  • 2.2. Przygotowanie środowiska pracy MASM64 (18)
    • 2.2.1. Program "Witaj, 64-bitowy świecie!" (21)

Rozdział 3. Architektura procesorów z rodziny x86(-64) (23)

  • 3.1. Organizacja pamięci (23)
  • 3.2. Rejestry procesora (26)
  • 3.3. Stos (38)
  • 3.4. Tryby pracy (40)
  • 3.5. Tryby adresowania (41)
  • 3.6. Zestawy instrukcji (42)
  • 3.7. Format instrukcji procesora (45)
    • 3.7.1. Rozkodowanie instrukcji (45)

Rozdział 4. Architektura systemów z rodziny Windows NT (49)

  • 4.1. Procesy i wątki (49)
  • 4.2. Poziomy uprawnień (52)
  • 4.3. Format plików wykonywalnych Portable Executable (PE/PE32+) (53)
  • 4.4. System plików (55)
    • 4.4.1. Wybrane funkcje Windows API do operacji na plikach (55)
  • 4.5. Wiersz polecenia (60)
  • 4.6. Windows PowerShell (60)
    • 4.6.1. Przykład. Liczenie linii, słów i znaków w plikach w określonym katalogu (61)

Rozdział 5. Asembler x86(-64) - instrukcje ogólnego przeznaczenia (63)

  • 5.1. Instrukcje transferu danych (63)
    • 5.1.1. Instrukcja MOV (63)
    • 5.1.2. Instrukcje kopiowania warunkowego CMOVcc (64)
    • 5.1.3. Instrukcja XCHG (66)
    • 5.1.4. Instrukcja BSWAP (67)
    • 5.1.5. Instrukcja XADD (68)
    • 5.1.6. Instrukcja CMPXCHG (69)
    • 5.1.7. Instrukcje CMPXCHG8B/CMPXCHG16B (69)
    • 5.1.8. Instrukcja PUSH (70)
    • 5.1.9. Instrukcja POP (71)
    • 5.1.10. Instrukcje PUSHA/PUSHAD (71)
    • 5.1.11. Instrukcje POPA/POPAD (72)
    • 5.1.12. Instrukcje CWD/CDQ/CQO (72)
    • 5.1.13. Instrukcje CBW/CWDE/CDQE (73)
    • 5.1.14. Instrukcja MOVSX/MOVSXD (73)
    • 5.1.15. Instrukcja MOVZX (74)
  • 5.2. Instrukcje arytmetyczne (75)
    • 5.2.1. Instrukcja ADCX (75)
    • 5.2.2. Instrukcja ADOX (76)
    • 5.2.3. Instrukcja ADD (76)
    • 5.2.4. Instrukcja ADC (77)
    • 5.2.5. Instrukcja SUB (77)
    • 5.2.6. Instrukcja SBB (78)
    • 5.2.7. Instrukcja IMUL (79)
    • 5.2.8. Instrukcja MUL (79)
    • 5.2.9. Instrukcja IDIV (80)
    • 5.2.10. Instrukcja DIV (80)
    • 5.2.11. Instrukcja INC (81)
    • 5.2.12. Instrukcja DEC (81)
    • 5.2.13. Instrukcja NEG (81)
    • 5.2.14. Instrukcja CMP (82)
  • 5.3. Instrukcje logiczne (82)
    • 5.3.1. Instrukcja AND (82)
    • 5.3.2. Instrukcja OR (82)
    • 5.3.3. Instrukcja XOR (83)
    • 5.3.4. Instrukcja NOT (83)
  • 5.4. Instrukcje przesunięć i obrotów (84)
    • 5.4.1. Instrukcje SAL/SHL (84)
    • 5.4.2. Instrukcja SAR (85)
    • 5.4.3. Instrukcja SHR (85)
    • 5.4.4. Instrukcja RCL (86)
    • 5.4.5. Instrukcja RCR (87)
    • 5.4.6. Instrukcja ROL (88)
    • 5.4.7. Instrukcja ROR (89)
    • 5.4.8. Instrukcja SHRD (89)
    • 5.4.9. Instrukcja SHLD (90)
  • 5.5. Instrukcje do operacji na bitach i bajtach (91)
    • 5.5.1. Instrukcja BT (91)
    • 5.5.2. Instrukcja BTS (92)
    • 5.5.3. Instrukcja BTR (92)
    • 5.5.4. Instrukcja BTC (92)
    • 5.5.5. Instrukcja BSF (93)
    • 5.5.6. Instrukcja BSR (93)
    • 5.5.7. Instrukcje SETcc (94)
    • 5.5.8. Instrukcja TEST (96)
    • 5.5.9. Instrukcja CRC32 (96)
    • 5.5.10. Instrukcja POPCNT (97)
  • 5.6. Instrukcje manipulacji bitowych (97)
    • 5.6.1. Instrukcja ANDN (97)
    • 5.6.2. Instrukcja BEXTR (97)
    • 5.6.3. Instrukcja BLSI (98)
    • 5.6.4. Instrukcja BLSMSK (98)
    • 5.6.5. Instrukcja BLSR (99)
    • 5.6.6. Instrukcja BZHI (99)
    • 5.6.7. Instrukcja LZCNT (99)
    • 5.6.8. Instrukcja MULX (100)
    • 5.6.9. Instrukcja PDEP (100)
    • 5.6.10. Instrukcja PEXT (101)
    • 5.6.11. Instrukcja RORX (101)
    • 5.6.12 Instrukcje SARX, SHLX, SHRX (102)
    • 5.6.13. Instrukcja TZCNT (102)
  • 5.7. Instrukcje kontroli przepływu (103)
    • 5.7.1. Instrukcja JMP (103)
    • 5.7.2. Instrukcje Jcc (103)
    • 5.7.3. Instrukcje LOOP/LOOPcc (105)
    • 5.7.4. Instrukcja CALL (106)
    • 5.7.5. Instrukcja RET (106)
  • 5.8. Instrukcje do operacji na napisach (106)
    • 5.8.1. Instrukcje MOVS* (106)
    • 5.8.2. Instrukcje CMPS* (107)
    • 5.8.3. Instrukcje LODS* (108)
    • 5.8.4. Instrukcje STOS* (109)
    • 5.8.5. Instrukcje SCAS* (110)
  • 5.9. Instrukcje wejścia/wyjścia (111)
    • 5.9.1. Instrukcja IN (111)
    • 5.9.2. Instrukcja OUT (111)
    • 5.9.3. Instrukcje INS* (111)
    • 5.9.4. Instrukcje OUTS* (112)
  • 5.10. Instrukcje kontroli flag (112)
  • 5.11. Instrukcje różne (113)
    • 5.11.1. Instrukcja LEA (113)
    • 5.11.2. Instrukcja NOP (113)
    • 5.11.3. Instrukcja UD2 (113)
    • 5.11.4. Instrukcja CPUID (114)
    • 5.11.5. Instrukcja MOVBE (114)

Rozdział 6. Asembler x86(-64) - zrozumieć język wirusów (115)

  • 6.1. Struktura programu MASM64 (115)
  • 6.2. Zmienne i stałe (115)
    • 6.2.1. Stałe (116)
    • 6.2.2. Zmienne o rozmiarze bajta lub ciągu bajtów (116)
    • 6.2.3. Zmienne o rozmiarze słowa (ang. word) (116)
    • 6.2.4. Zmienne o rozmiarze podwójnego słowa (ang. doubleword) (116)
    • 6.2.5. Zmienne o rozmiarze poczwórnego słowa (ang. quadword) (117)
    • 6.2.6. Zmienne o rozmiarze 6 bajtów (117)
    • 6.2.7. Zmienne o rozmiarze 10 bajtów (117)
    • 6.2.8. Zmienne o rozmiarze 16 bajtów (117)
    • 6.2.9. Zmienne do przechowywania liczb zmiennoprzecinkowych (117)
    • 6.2.10. Zmienne używane przy instrukcjach rozszerzeń MMX i SSE (118)
  • 6.3. Adresowanie argumentów (118)
    • 6.3.1. Operator offset (118)
    • 6.3.2. Instrukcja LEA (119)
    • 6.3.3. Dereferencja (operator [ ]) (119)
  • 6.4. Wywoływanie funkcji Windows API (120)
  • 6.5. Program not-virus.CDJoke.Win64 (121)
  • 6.6. Program not-virus.MonitorOFF.Win64 (122)
  • 6.7. Program TrojanBanker.AsmKlip.Win64 (124)
  • 6.8. Program BitcoinStealer.AsmKlip.Win64 (128)

Rozdział 7. Backdoor - tylne drzwi do systemu (135)

  • 7.1. Backdoor w języku C# dla pulpitu Windows (136)
    • 7.1.1. Panel kontrolny (136)
    • 7.1.2. Program infekujący (140)
    • 7.1.3. Podsumowanie (146)
  • 7.2. Hybrydowy backdoor w 7 kilobajtach (147)
    • 7.2.1. Połączenie odwrotne (ang. reverse connection) (147)
    • 7.2.2. Panel kontrolny (148)
    • 7.2.3. Program infekujący (155)

Rozdział 8. Wirus komputerowy - infekcja plików (163)

  • 8.1. Informacje ogólne (163)
  • 8.2. Infekcja plików wykonywalnych (164)
    • 8.2.1. Dołączanie kodu wirusa do pliku wykonywalnego (168)
    • 8.2.2. Tworzenie "ładunku", którym będą infekowane pliki (172)
    • 8.2.3. Payload Detonator - aplikacja do testowania kodu typu payload i shellcode (175)

Rozdział 9. File Binder - złośliwy kod "doklejony" do pliku (177)

  • 9.1. Ukrywanie plików w zasobach programu (177)
  • 9.2. Implementacja podstawowej funkcjonalności aplikacji Stub (178)

Rozdział 10. Keylogger - monitoring działań w systemie (185)

  • 10.1. Funkcja SetWindowsHookEx (185)
  • 10.2. Monitorowanie wciskanych klawiszy w 4 kilobajtach (187)
  • 10.3. Pobieranie nazwy aktywnego okna (193)
  • 10.4. Przesyłanie raportów (195)

Rozdział 11. Ransomware - szantażowanie użytkownika (199)

  • 11.1. Ogólna zasada działania (199)
  • 11.2. Atak WannaCry - paraliż ponad 200 tys. komputerów (199)
  • 11.3. Każdy może stworzyć ransomware (201)

Rozdział 12. Koń trojański - zdalne sterowanie zainfekowanym komputerem (205)

  • 12.1. Trochę historii (205)
    • 12.1.1. Najpopularniejsze konie trojańskie z lat 1990 - 2010 stworzone w Polsce (205)
  • 12.2. Pobieranie informacji o systemie (208)
  • 12.3. Zdalny menedżer plików (209)
    • 12.3.1. Listowanie, usuwanie i uruchamianie plików (210)
    • 12.3.2. Przesyłanie plików przez gniazdo (211)
  • 12.4. Podgląd kamerki internetowej (213)
  • 12.5. Zrzuty ekranu (ang. screenshots) (216)
  • 12.6. Dodatkowe funkcjonalności (217)

Rozdział 13. Pozostałe zagrożenia (219)

  • 13.1. Adware - niechciane reklamy (219)
  • 13.2. Bakteria komputerowa - replikacja aż do wyczerpania zasobów (220)
  • 13.3. Bomba logiczna - uruchamianie złośliwego kodu po spełnieniu warunku (220)
  • 13.4. Botnet - sieć komputerów zombie (222)
  • 13.5. Chargeware - ukryte opłaty i niejasny regulamin (222)
  • 13.6. Exploit - użycie błędu w oprogramowaniu (223)
  • 13.7. Form Grabber - przechwytywanie danych z formularzy (224)
  • 13.8. Hoax - fałszywy alarm (225)
  • 13.9. Robak - rozprzestrzenianie infekcji bez nosiciela (225)
  • 13.10. Rootkit - intruz ukryty w systemie (225)
  • 13.11. Stealer - wykradanie poufnych informacji (226)

Rozdział 14. Bezpieczeństwo systemów Microsoft Windows (229)

  • 14.1. Program antywirusowy (229)
  • 14.2. Zapora ogniowa (ang. firewall) (230)
  • 14.3. Maszyna wirtualna (231)
  • 14.4. Konfiguracja systemu Windows zwiększająca bezpieczeństwo (233)
  • 14.5. Podstawowe narzędzia systemowe (234)
  • 14.6. Bezpieczeństwo danych (235)
    • 14.6.1. VPN - wirtualna sieć prywatna (235)
    • 14.6.2. Projekt Tor i przeglądarka Tor Browser (235)
    • 14.6.3. GNU Privacy Guard (236)
    • 14.6.4. Komunikacja Off-The-Record (OTR) (237)
    • 14.6.5. Szyfrowanie nośników z danymi (238)
    • 14.6.6. Zdjęcia i metadane EXIF (239)
  • 14.7. Bezpieczeństwo haseł (241)
    • 14.7.1. Tworzenie bezpiecznego hasła (241)
    • 14.7.2. Łamanie haseł do archiwum RAR, ZIP i innych (242)
    • 14.7.3. Łamanie haseł do portali internetowych (242)
    • 14.7.4. Phishing - "Haseł się nie łamie, hasła się wykrada" (243)

Rozdział 15. Bezpieczeństwo oprogramowania - wprowadzenie (245)

  • 15.1. Inżynieria odwrotna kodu (ang. Reverse Code Engineering) (245)
  • 15.2. Subkultura crackerów (246)
  • 15.3. Rodzaje zabezpieczeń w programach (247)
  • 15.4. Przegląd przydatnych narzędzi (248)
  • 15.5. Legalny cracking - aplikacje typu CrackMe (249)
    • 15.5.1. Programowanie aplikacji typu CrackMe (249)
    • 15.5.2. Analiza i łamanie wcześniej utworzonego CrackMe (250)
    • 15.5.3. Tworzenie aplikacji usuwającej zabezpieczenie, tzw. crack (250)
    • 15.5.4. Dalsza nauka (252)
  • 15.6. Podstawowe zasady analizy złośliwego oprogramowania (252)

Rozdział 16. Z pamiętnika hakera (255)

  • 16.1. "Skryptowy dzieciak" czy polityczny żołnierz (255)
  • 16.2. W schizofrenii się nie kradnie (256)
    • Podsumowując (258)

Rozdział 17. Zakończenie (259)

  • 17.1. Podsumowanie (259)

Dodatek A. Najczęściej używane funkcje logiczne (261)

Dodatek B. Leksykon pojęć używanych przez hakerów (263)

Dodatek C. Aplikacja kopiująca samą siebie do systemu - kod źródłowy (MASM64) (267)

Dodatek D. Ochrona klucza w rejestrze przed manualnym usunięciem - kod źródłowy (MASM64) (271)

Dodatek E. Opóźnione uruchomienie (ang. delayed start) - kod źródłowy (MASM64) (275)

Skorowidz (277)

  • Title: Cyberwojna. Metody działania hakerów
  • Author: Dawid Farbaniec
  • ISBN: 978-83-283-4694-9, 9788328346949
  • Date of issue: 2018-04-03
  • Format: Ebook
  • Item ID: cyberw
  • Publisher: Helion