Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń - Helion
Tytuł oryginału: Gray Hat C#: Creating and Automating Security Tools
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-4064-0
stron: 336, Format: ebook
Data wydania: 2018-02-01
Księgarnia: Helion
Cena książki: 44,25 zł (poprzednio: 59,00 zł)
Oszczędzasz: 25% (-14,75 zł)
C# to nowoczesny jÄ™zyk programowania, który zostaÅ‚ od podstaw zaprojektowany jako obiektowy. Ta dojrzaÅ‚a technologia jest czÄ™sto wybierana przez twórców oprogramowania, również tego sÅ‚użącego do pokonywania zabezpieczeÅ„ systemów. DziÄ™ki temu, że platforma .NET jest oprogramowaniem open source, w C# można pisać kod, który bez problemu bÄ™dzie dziaÅ‚aÅ‚ w każdym systemie operacyjnym. Co prawda jÄ™zyk ten jest prosty i Å‚atwy do nauczenia siÄ™, jednak dopiero gruntowna znajomość C# umożliwia efektywne tworzenie narzÄ™dzi zwiÄ…zanych z bezpieczeÅ„stwem, sÅ‚użących choćby do wyszukiwania luk w infrastrukturze czy prowadzenia testów penetracyjnych.
Ta książka jest przeznaczona dla specjalistów ds. bezpieczeÅ„stwa, którzy chcÄ… korzystać z jÄ™zyka C# do takich zadaÅ„ jak fuzzowanie, skanowanie w poszukiwaniu luk zabezpieczeÅ„ i analiza zÅ‚oÅ›liwego oprogramowania. Opisano tu zarówno podstawy jÄ™zyka C#, jak i jego dość zaawansowane funkcje. Przedstawiono szereg bibliotek dostÄ™pnych dla tego jÄ™zyka. Pokazano, jak pisać kod wyszukujÄ…cy luki w zabezpieczeniach i jak tworzyć eksploity. Przedstawiono sposoby korzystania z takich narzÄ™dzi jak Nessus, sqlmap i Cuckoo Sandbox. DziÄ™ki technikom zaprezentowanym w książce administrator bezpieczeÅ„stwa bez problemu zautomatyzuje nawet najbardziej żmudne codzienne zadania!
W tej książce między innymi:
- Podstawowe i zaawansowane funkcjonalności języka C#
- Generowanie kodu Å‚adunków, również wieloplatformowych
- Skanery, w tym OpenVAS, Nessus i Nexpose
- Automatyczna identyfikacja luk umożliwiających wstrzyknięcie kodu SQL
- Tworzenie w C# narzędzi do inżynierii wstecznej
C#. Sprawdź swój system zabezpieczeÅ„!
Brandon Perry jest programistÄ… i gorÄ…cym zwolennikiem idei open source. OdkÄ…d pojawiÅ‚o siÄ™ Å›rodowisko Mono, pisze aplikacje w jÄ™zyku C#. Tworzy też moduÅ‚y dla frameworka Metasploit, analizuje pliki binarne i zarzÄ…dza ciekawymi projektami (https://volatileminds.net/). Fascynuje siÄ™ badaniami nad bezpieczeÅ„stwem systemów informatycznych. ChÄ™tnie dzieli siÄ™ swojÄ… wiedzÄ…, pisze książki i pomaga innym w tworzeniu solidniejszego oprogramowania.
Osoby które kupowały "Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń", wybierały także:
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core 179,00 zł, (71,60 zł -60%)
- Testowanie automatyczne w .NET. Kurs video. Zastosowania frameworka nUnit 169,00 zł, (76,05 zł -55%)
- Programowanie asynchroniczne i równoległe w C#. Kurs video. Poziom podstawowy 69,00 zł, (31,05 zł -55%)
- Technologia LINQ. Kurs video. Warsztat pracy z danymi z różnych źródeł 59,00 zł, (26,55 zł -55%)
Spis treści
Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń eBook -- spis treści
Słowo wstępne (11)
Przedmowa (15)
- Dlaczego należy ufać Mono? (16)
- Dla kogo jest ta książka? (16)
- Organizacja tej książki (17)
- Podziękowania (19)
- Ostatnia uwaga (19)
1. Błyskawiczny kurs języka C# (21)
- Wybór Å›rodowiska IDE (22)
- Prosty przykład (22)
- Wprowadzenie do klas i interfejsów (24)
- Tworzenie klasy (24)
- Tworzenie interfejsu (25)
- Tworzenie podklas klasy abstrakcyjnej i implementacja interfejsu (26)
- PowiÄ…zanie wszystkiego z metodÄ… Main() (28)
- Uruchamianie metody Main() (30)
- Metody anonimowe (30)
- Przypisywanie delegata do metody (30)
- Aktualizacja klasy Firefighter (31)
- Tworzenie argumentów opcjonalnych (31)
- Aktualizacja metody Main() (32)
- Uruchomienie zaktualizowanej metody Main() (33)
- Integracja z bibliotekami natywnymi (34)
- Podsumowanie (35)
2. Fuzzing. Wykorzystanie XSS oraz iniekcji SQL (37)
- Konfigurowanie maszyny wirtualnej (38)
- Dodawanie sieci wirtualnej "tylko do hosta" (38)
- Tworzenie maszyny wirtualnej (39)
- Uruchamianie maszyny wirtualnej z obrazu ISO z systemem BadStore (39)
- Iniekcje SQL (41)
- Skrypty krzyżowe (43)
- Fuzzing żądań GET z wykorzystaniem fuzzera mutacyjnego (45)
- Preparowanie parametrów i testowanie luk (46)
- Budowanie żądań HTTP (47)
- Testowanie fuzzowanego kodu (48)
- Fuzzowanie żądań POST (49)
- Pisanie fuzzera żądania POST (50)
- Rozpoczyna siÄ™ fuzzing (52)
- Fuzzowanie parametrów (54)
- Fuzzowanie danych w formacie JSON (56)
- Konfigurowanie wrażliwego urządzenia (56)
- Przechwytywanie wrażliwych żądań JSON (56)
- Tworzenie fuzzera JSON (57)
- Testowanie fuzzera JSON (62)
- Wykorzystywanie iniekcji SQL (63)
- Wykorzystywanie eksploita bazującego na instrukcji UNION ręcznie (64)
- Wykorzystywanie eksploita bazujÄ…cego na instrukcji UNION programowo (66)
- Wykorzystywanie luk SQL typu Boolean-blind (70)
- Podsumowanie (79)
3. Fuzzowanie punktów koÅ„cowych SOAP (81)
- Konfiguracja wrażliwych punktów koÅ„cowych (82)
- Parsowanie pliku WSDL (83)
- Tworzenie klasy dla dokumentu WSDL (84)
- Podstawowe metody parsowania (85)
- Klasy dla typu SOAP i parametrów (87)
- Tworzenie klasy SoapMessage definiującej przesyłane dane (90)
- Implementacja klasy reprezentującej części komunikatu (90)
- Definiowanie operacji portu za pomocÄ… klasy SoapPortType (91)
- Implementacja klasy zawierajÄ…cej operacje na porcie (93)
- Definiowanie protokoÅ‚ów używanych w powiÄ…zaniach SOAP (93)
- Kompilacja listy operacji wÄ™zÅ‚ów potomnych (95)
- Znajdowanie usług SOAP w portach (96)
- Automatyczne fuzzowanie punktów koÅ„cowych SOAP pod kÄ…tem wrażliwoÅ›ci na iniekcje SQL (98)
- Fuzzowanie pojedynczych usług SOAP (99)
- Fuzzowanie portów SOAP HTTP POST (103)
- Fuzzowanie portu XML usługi SOAP (106)
- Uruchomienie fuzzera (110)
- Podsumowanie (111)
4. Pisanie Å‚adunków typu connect-back, bind i metasploit (113)
- Tworzenie Å‚adunku Connect-Back (114)
- Strumień sieci (114)
- Uruchomienie polecenia (116)
- Uruchomienie Å‚adunku (117)
- WiÄ…zanie Å‚adunku (118)
- Odbieranie danych, uruchamianie poleceÅ„ i zwracanie wyników (119)
- Uruchamianie poleceń ze strumienia (120)
- Wykorzystanie protokołu UDP do ataku na sieć (121)
- Kod dla komputera docelowego (122)
- Kod napastnika (125)
- Uruchamianie Å‚adunków typu Metasploit x86 i x86-64 za pomocÄ… jÄ™zyka C# (128)
- Konfigurowanie frameworka Metasploit (128)
- Generowanie Å‚adunków (130)
- Wykonywanie natywnych Å‚adunków systemu Windows jako kodu niezarzÄ…dzanego (131)
- Uruchamianie natywnych Å‚adunków w systemie Linux (133)
- Podsumowanie (137)
5. Automatyzacja skanera Nessus (139)
- REST i API systemu Nessus (140)
- Klasa NessusSession (141)
- Wykonywanie żądań HTTP (142)
- Wylogowanie i sprzÄ…tanie (144)
- Testowanie klasy NessusSession (145)
- Klasa NessusManager (146)
- Wykonywanie skanowania Nessus (148)
- Podsumowanie (150)
6. Automatyzacja Nexpose (153)
- Instalacja Nexpose (154)
- Aktywacja i testowanie (155)
- Żargon Nexpose (156)
- Klasa NexposeSession (157)
- Metoda ExecuteCommand() (158)
- Wylogowanie i zniszczenie sesji (161)
- Znajdowanie wersji interfejsu API (162)
- Korzystanie z Nexpose API (163)
- Klasa NexposeManager (163)
- Automatyzacja skanowania sÅ‚abych punktów (165)
- Tworzenie lokalizacji z aktywami (165)
- Rozpoczynanie skanowania (166)
- Tworzenie raportu na temat lokalizacji w formacie PDF i usuwanie lokalizacji (167)
- Kompletowanie rozwiÄ…zania (168)
- Rozpoczęcie skanowania (169)
- Generowanie raportu i usuwanie lokalizacji (170)
- Uruchamianie automatyzacji (170)
- Podsumowanie (171)
7. Automatyzacja OpenVas (173)
- Instalacja systemu OpenVAS (173)
- Budowanie klas (174)
- Klasa OpenVaSSession (175)
- Uwierzytelnianie na serwerze OpenVAS (176)
- Tworzenie metody do uruchamiania poleceń OpenVAS (177)
- Odczytywanie komunikatu z serwera (177)
- Konfiguracja strumienia TCP do wysyłania i odbierania poleceń (178)
- Walidacja certyfikatów i odÅ›miecanie (179)
- Odczytywanie wersji OpenVAS (180)
- Klasa OpenVASManager (181)
- Pobieranie konfiguracji skanowania i tworzenie celów (182)
- Opakowanie automatyzacji (186)
- Uruchamianie automatyzacji (187)
- Podsumowanie (187)
8. Automatyzowanie programu Cuckoo Sandbox (189)
- Konfigurowanie Cuckoo Sandbox (190)
- Ręczne uruchamianie API systemu Cuckoo Sandbox (190)
- Uruchamianie API (191)
- Sprawdzanie stanu środowiska Cuckoo (192)
- Tworzenie klasy CuckooSession (193)
- Metody ExecuteCommand() do obsługi żądań HTTP (194)
- Tworzenie wieloczęściowych danych HTTP za pomocą metody GetMultipartFormData() (196)
- Przetwarzanie danych z pliku za pomocÄ… klasy FileParameter (198)
- Testowanie klasy CuckooSession i klas pomocniczych (199)
- Klasa CuckooManager (201)
- Metoda CreateTask() (201)
- SzczegóÅ‚y zadania i metody tworzenia raportów (203)
- Tworzenie abstrakcyjnej klasy Task (204)
- Sortowanie i tworzenie różnych typów klas (205)
- PoÅ‚Ä…czenie elementów ze sobÄ… (207)
- Testowanie aplikacji (209)
- Podsumowanie (211)
9. Automatyzacja sqlmap (213)
- Uruchamianie sqlmap (214)
- Interfejs API REST programu sqlmap (215)
- Testowanie API programu sqlmap za pomocÄ… curl (216)
- Tworzenie sesji dla programu sqlmap (220)
- Tworzenie metody do wykonywania żądań GET (221)
- Wykonywanie żądania POST (222)
- Testowanie klasy obsługi sesji (223)
- Klasa SqlmapManager (225)
- Lista opcji sqlmap (227)
- Tworzenie metod realizujÄ…cych skanowanie (229)
- Nowa metoda Main() (230)
- Raport ze skanowania (231)
- Automatyzowanie pełnego skanu sqlmap (232)
- Integracja sqlmap z fuzzerem SOAP (234)
- Dodanie obsługi żądań GET do fuzzera SOAP (235)
- Dodanie obsługi żądań POST do programu sqlmap (236)
- Wywoływanie nowych metod (238)
- Podsumowanie (240)
10. Automatyzacja ClamAV (241)
- Instalacja programu ClamAV (242)
- Natywna biblioteka ClamaAV kontra demon sieciowy clamd (243)
- Automatyzacja z wykorzystaniem natywnych bibliotek ClamAV (244)
- Pomocnicze enumeracje i klasy (244)
- Dostęp do funkcji natywnej biblioteki ClamAV (247)
- Kompilacja silnika programu ClamAV (248)
- Skanowanie plików (250)
- SprzÄ…tanie (252)
- Testowanie programu przez skanowanie pliku EICAR (252)
- Automatyzacja z wykorzystaniem demona clamd (254)
- Instalacja demona clamd (254)
- Uruchamianie demona clamd (255)
- Tworzenie klasy obsługi sesji dla demona clamd (255)
- Tworzenie klasy menedżera demona clamd (257)
- Testowanie z wykorzystaniem demona clamd (258)
- Podsumowanie (259)
11. Automatyzacja Metasploit (261)
- Uruchamianie serwera RPC (262)
- Instalacja Metasploitable (263)
- Pobranie biblioteki MSGPACK (264)
- Instalowanie menedżera pakietów NuGet w Å›rodowisku MonoDevelop (264)
- Instalacja biblioteki MSGPACK (265)
- Dodanie referencji do biblioteki MSGPACK (266)
- Klasa MetasploitSession (267)
- Tworzenie metody Execute() dla żądań HTTP i interakcje z biblioteką MSGPACK (268)
- Przekształcanie danych odpowiedzi z formatu MSGPACK (270)
- Testowanie klasy sesji (272)
- Klasa MetasploitManager (273)
- Scalamy komponenty w całość (275)
- Uruchamianie eksploita (276)
- Interakcje z powłoką (277)
- Pobieranie powłok (278)
- Podsumowanie (279)
12. Automatyzacja Arachni (281)
- Instalacja Arachni (281)
- Interfejs API REST systemu Arachni (282)
- Tworzenie klasy ArachniHTTPSession (284)
- Tworzenie klasy ArachniHTTPManager (285)
- Połączenie klas sesji i menedżera (286)
- RPC systemu Arachni (287)
- Ręczne uruchamianie mechanizmu RPC (288)
- Klasa ArachniRPCSession (290)
- Metody pomocnicze operacji ExecuteCommand() (292)
- Metoda ExecuteCommand() (293)
- Klasa ArachniRPCManager (296)
- Scalamy komponenty w całość (297)
- Podsumowanie (300)
13. Dekompilacja i inżynieria wsteczna zarzÄ…dzanych zestawów (301)
- Dekompilacja zestawów zarzÄ…dzanych (302)
- Testowanie dekompilatora (305)
- Wykorzystanie narzędzia monodis do analizowania zestawu (306)
- Podsumowanie (309)
14. Czytanie gałęzi rejestru w trybie offline (311)
- Struktura gałęzi rejestru (312)
- Pobieranie gałęzi rejestru (313)
- Czytanie gałęzi rejestru (314)
- Klasa do parsowania pliku gałęzi rejestru (315)
- Tworzenie klasy reprezentujÄ…cej klucze wÄ™zÅ‚ów (316)
- Implementacja klasy do przechowywania kluczy wartości (321)
- Testowanie biblioteki (322)
- Zrzucanie klucza Boot (323)
- Metoda GetBootKey() (323)
- Metoda GetValueKey() (325)
- Metoda GetNodeKey() (325)
- Metoda StringToByteArray() (326)
- Uzyskanie klucza rozruchowego (327)
- Weryfikacja klucza rozruchowego (327)
- Podsumowanie (328)
Skorowidz (331)