Yandex DZEN.

Co jest exploit i jak go hakerzy

Pozdrowienia. Kim są hakerzy i to, co już omówili. Nie będziemy powtórzyć, oprócz, jest otwarcie pokryty w sieci i kino. Metody hakerów i typy ataków hakerowych są zatem liczne, aby nie tworzyć z artykułu "Vinaigrette", podkreślamy jeden, który jest popularny wśród czarnych hakerów i 2020 roku. Nie spróbuję "oszczędzać intrygi", opiszemy: "Exploits".

W przypadku znajomych wprowadzających rozumiemy, że eksploaty są częścią kodu komputerowego (lub skompilowanego programu i nie tylko ...), który wykorzystuje "lukę ofiary", a następnie cele są rozgałęzione do: uzyskania dostępu; serwer "wiszący"; Zakłócenie. Jeśli czytelnik natknął na słowa "DOS ATAK", a potem wiem, że 85%, hakerzy użyli "Exploits". Właściwie nazwa, jeśli tłumacząc z języka angielskiego, oznacza: "Korzystanie z czegoś". Lub wykorzystywanie, stąd korzenie słowa "Exploit".

Programy te (zadzwonimy do eksploatacji przez programy, Chociaż nie jest prawdą ) są podzielone na miejsca docelowe: dla Windows, Linuksa i innych obsługiwanych operatorów; Dla innych programów i tak dalej. Itp.

Myślę, że czytelnicy chcą dążyć do zrozumienia, w jaki sposób ten magiczny program, w stanie zaangażować, zawiesić i zapewnić dostępem "Master" na serwerze "Dziwny". Najpierw zrozummy, dlaczego Umowa nazywa się programem, nie prawdą. Faktem jest, że jest on wykorzystywany nie tylko skompilowany plik, ale także tekst (nawet notatnik z opisem, jak hack "system" jest już wykorzystywany). Rozumiem najłatwiejsze nieporozumienie czytania, ale to: Jeśli otworzysz notebook i w formie tekstu, aby napisać, jak "cieszyć się" dowolnym serwerem, będzie również exploitemm. Ale co przynajmniej podobne, dywersyfikować artykuł, przynajmniej czasami piszę słowo: program. Ponadto takie exploity spotykają się w formie programu "dowolnego" języka. Hakerzy, to byli programiści, którzy w przeszłości szukali błędów w programach Dlatego takie osoby łatwo posiadają języki C / C ++, Perl i TD. Zadanie takich programów jest zredukowane do przelewu bufora, rekordy SQL, żądania "Linden" dla witryny i tak dalej.

Co jest exploit i jak go hakerzy

Zdarza się, że korzystanie z sekwencji programów, na wypadek, gdy zadanie ma być "skomplikowane".

Znajdź i pobierz gotowe wyzyski w otwartym Internecie nie jest legalne. I oczywiście autor nie zaleca poszukiwania takich programów w DarkNet.

Tak więc, kiedy zrozumienie exploitów zdeponowanych w głowie, przejdź do "Wirtualnej praktyki". Przypuśćmy, że sytuacja: w mieście Woronezh, mężczyzna żyje, który regularnie leci do Moskwy i tam "nasza" mężatką. Sprawiedliwiony małżonek, niezdolny do złapania kochanka, zdecyduje się zemścić się, ale zdalnie. Aby to zrobić, twój mąż jest potrzebny dostęp do komputera "Scounding". Nie wchodźmy do szczegółów, ale stwierdzamy fakt: stał się znany, jak przeglądarka używa "sprytnego rywala". Na szczęście dla zaawansowanego męża w tej przeglądarce znajduje się "luka". Pozostaje tylko zmusić kochanka "Kod Run", który bez znajomości użytkownika ładuje złośliwe oprogramowanie "z boku". Wtedy mąż pisze list, w imieniu żony i wysyła kochanka pocztą. Wynik jest zrozumiały (otwiera list, a kod jest już "w przypadku").

Słynne programy to: "wędkarz" (kompleksowy zestaw (pracuje w Ram)); "Neutrino" (rosyjski Brainchild w Javie, koszt 34 tys. Dolarów); "Kit Blackhole" (bije przeglądarek Chrome ", Oslik", "Firefox" ).

Komentarz ("negatywny dodatni"). Subskrybuj. Lubić. Do widzenia.

Cześć, Habrowsk. W oczekiwaniu na początek kursu "Administrator Linux. Profesjonalny » Nasz ekspert - Alexander Kolesnikov przygotował ciekawy artykuł, który chętnie podzielamy z tobą. Zaproś także przyszłych uczniów i wszystkich, którzy chcą odwiedzić otwartą lekcję na ten temat "Metody i zdolność do debugowania skryptów skorupy bash."

System operacyjny Linux udowodnił świat całą mocą projektów open source - dzisiaj dzisiaj, mamy okazję zajrzeć do kodu źródłowego operacyjnego systemu operacyjnego i na podstawie go, aby zmontować własny system do rozwiązania pewnych celów. Ze względu na swoją otwartość Linux miał stać się najbezpieczniejszym systemem operacyjnym na świecie, ponieważ Kod Open Source pozwala na rozwijać i poprawić podsystemy ochrony przed atakami w systemie operacyjnym i poprawić sam system operacyjny. W tej chwili utworzono dużą liczbę wspólnotowych ochrony: dziś nie jest już tak łatwo przetwarzać luki typu przepełnienia bufora, aby uzyskać podwyższone przywileje zaledwie 20 lat temu. Jednak dziś można znaleźć exploits w domenie publicznej, co nawet na najnowszych wersjach jądra mogą zwiększyć uprawnienia użytkownika. Rozważ w tym artykule, jak działa i dlaczego się okazuje. Przechodzimy przez główne elementy Exploit i rozważmy, jak niektóre z nich działają.

Wszystkie dostarczone informacje zostały zebrane wyłącznie do celów informacyjnych.

Rodzaje Exploit.

Wybierz ogólny termin, że oznaczymy, co jest Wykorzystać - Algorytm naruszający normalne funkcjonowanie systemu operacyjnego, a mianowicie mechanizmy oddzielenia dostępu. Przedstawimy również koncepcję Luki - Jest to niedoskonałość oprogramowania, która może być używana przez algorytm Exploit. Bez luki istnienie exploita jest niemożliwe.

Wprowadzamy klasyfikację exploitów. Podstawowa separacja wykorzystych do podgrupów dla każdego systemu operacyjnego rozpoczyna się na poziomie architektury. Obecnie systemy operacyjne obejmują co najmniej 2 poziomy przywilejów, które są używane do ich pracy. Poniżej znajduje się zdjęcie, które wyraźnie pokazuje oddzielenie przywilejów. Zdjęcie zrobione Stąd .

Obraz bardzo wyraźnie pokazuje, że jądro (przestrzeń jądra) jest obecna w systemie operacyjnym, zazwyczaj jest to najbardziej uprzywilejowany tryb, jest tutaj, że nazywamy system operacyjny. A drugi poziom jest niestandardowy (przestrzeń użytkownika): regularne aplikacje i usługi, których używamy każdego dnia, zostają uruchomione tutaj.

Historycznie rozwinęło się, że dla każdego z powyższych poziomów można znaleźć luki, dla których można utworzyć exploit, ale exploit dla każdego poziomu ma swoje ograniczenia.

Na poziomie użytkownika każdy exploit, który wpływa na wniosek, będzie miał dokładnie te przywileje używane przez użytkownika, który uruchomił wrażliwy wniosek. Dlatego ten typ Exploit pozwala uzyskać pełną kontrolę nad systemem operacyjnym tylko wtedy, gdy aplikacja zostanie uruchomiona przez administratora systemu. W przeciwieństwie do poziomu użytkownika, poziom jądra Jeśli zawiera kodeks wrażliwy, może natychmiast włączyć system operacyjny z maksymalnym przywilejami. Poniżej skupi się na badaniu tych exploitów.

Eksplantować

Wyobraź sobie małe statystyki dotyczące ujawnienia luk dla jądra dystrybucji systemu operacyjnego Debiana, Suse, Ubuntu, Arch Linux z ostatnich 4 lat.

Dane podjęte Stąd . Obraz nie udawaj, że jest kompletny, ale pokazuje, że istnieje wiele luk, a nawet dzisiaj jest z tego, co wybór wybudowania exploita. Spróbujmy opisać, co jest exploit.

Wszelkie wykorzystywanie jakiegokolwiek poziomu systemu operacyjnego składa się z części, które muszą być realizowane w swoim kodzie:

  1. Operacje przygotowawcze:

    1) Poruszaj się na niezbędnym wyświetlaczu pamięci

    2) Tworzenie niezbędnych obiektów w OS

    3) omijanie mechanizmów ochrony OS dla luki

  2. Zadzwoń do wrażliwej części.

  3. Wykonuje ładunek:

    1) Aby otworzyć dostęp do systemu operacyjnego

    2) Aby zmienić konfigurację systemu operacyjnego

    3) dla wyjścia systemu

Podczas wykonywania wszystkich elementów, które są wskazane powyżej, możesz napisać wykorzystywanie czynnościową. Weź kilka wykorzystywania ostatnich lat i spróbuj dowiedzieć się, czy można znaleźć niektóre prawidłowości lub pożyczki, które są wykorzystywane do naruszenia oddzielenia dostępu w systemie operacyjnym Linux. Jako obiekty badania bierzemy wykorzystanie następujących luk z identyfikatorami CVE:

CVE-2020-8835.

CV-2020-27194.

Exploit katastrofy

CVE-2020-8835. рAspassy jądra systemu Linux z wersji 5.5.0. Luka jest w zakresie wdrażania technologii EBPF. . Technologia została zaprojektowana, aby zapewnić, że użytkownik może utworzyć niestandardowe ładowarki do filtrowania ruchu sieciowego. Jako główny komponent do filtrowania używany jest maszyna wirtualna z własnym zestawem poleceń. Kod, który jest wykonywany przez maszynę wirtualną mieszkę w jądrze: błąd w tym kodzie przynosi atakujący do pracy z pamięcią o maksymalnych przywilejach. W przypadku opisanej lukę problemem było to, że operacje przetwarzania operacji 32 bitów nie były prawidłowo przetwarzane, a maszyna wirtualna może pisać i odczytać dane w pamięci nuklearnej.

Ponieważ autor Exploit wykorzystuje tę lukę i co jest wykonywane ładunek, rozważ dalej.

Etap przygotowawczy

Na tym etapie jest odpowiedzialna część kodu.

Wiersz 394 - Tworzenie obiektu w pamięci, która przechowuje dane na poleceniach EBPF. . Wiersz 400 obciążenia do kodu pamięci, który zostanie wykonany w maszynie wirtualnej i naruszy warunki przetwarzania komend 32-bitowych. Przygotowanie pamięci jest zakończone, następujące linie utworzą obiekt gniazda, który zostanie nazwany Przesłane polecenia BPF. . Po tym rozpocznie się komora luki.

Zadzwoń do kodu wrażliwych

Dzwoniąc do kodu wrażliwych, a raczej, pracując z poleceniami maszyny wirtualnej odbywa się z linii 423 do 441. Głównym zadaniem tego kodu jest uzyskanie podstawowego adresu struktury, która jest w pamięci, w tym przypadku jest to Proces sterty (sterty). Gdy tylko te polecenia są wykonywane, Exploit będzie w stanie wykryć dane używane przez system operacyjny do kontrolowania rozdzielania dostępu. W systemie operacyjnym Linux dane te są przechowywane w strukturze Zaskarki. .

Płatność

Przydatnym ładunkiem tego wykorzystania jest to, że po jego wykonaniu możesz uruchomić proces z prawami użytkownika korzeń . W tym celu kod Exploit wytwarza modyfikację pola pola jądra operacyjnego systemu Linux - Kreda. Jest to struktura, która wchodzi do struktury Zaskarki. . Struktura kodu źródłowego Kreda. Może być znaleziony tutaj .

Akcje modyfikacji pola Struktura. można zobaczyć na rzędach 472,473,474. . Oznacza to, że ta akcja jest resetowana wartość UID, GID, SGID Proces utworzony. Z punktu widzenia jest ustawiony na wartości identyfikacyjne, które zwykle używają korzeń . Metoda jest bardzo podobna do tego, który jest używany do ataków w systemie operacyjnym Windows.

Możesz się zabezpieczyć bez aktualizacji systemu operacyjnego, jeśli wprowadzisz następujące zmiany w konfiguracji: sudo sysctl kernel.unprivileged_bpf_disabled = 1

CV-2020-27194. - znowu podatność EBPF. . Istnieje wersje wersji 5.8. *. Twórcy tej technologii żartują BPF. - To jest javascript dla jądra. W rzeczywistości ten osąd nie jest daleko od prawdy. Maszyna wirtualna naprawdę prowadzi manipulacje nad drużynami przy użyciu technologii JIT, która sama prowadzi wszystkie luki typowe przeglądarek w jądrze systemu operacyjnego, to jest trudne do skonfigurowania podsystemu zabezpieczającego do ochrony kodu. Zgodnie z uwzględnieniem luki jest to, że z kodu maszyny wirtualnej można modyfikować dowolny obszar pamięci RAM. Być może wynika to z faktu, że maszyna wirtualna jest niebezpieczna praca z operacjami o długości 64-bitowej. W pełni podobna luka tego, którego uważaliśmy powyżej.

Exploit, który jest przeznaczony do użycia opisanej luki, wykonuje te same operacje, co Exploit CVE-2020-8835. Exploit Algorytm Dalej:

  1. Pobierz kod z przetwarzaniem 64-bitowymi operatorami

  2. Utwórz gniazdo i wysyłaj dane, aby połączyć polecenia EBPF.

    1. Znajdź adres struktury Zaskarki. Wykonując polecenia w maszynie wirtualnej

  3. Zmodyfikuj wartości UID, GID, SGID i uruchom interaktywna skorupa.

Autor napisał kod źródłowy z nowymi frytkami i dodatkowymi funkcjami. Oferujemy czytelnikowi patrzeć na kod samodzielnie. Wymienione etapy pracy exploit powyżej nie będą się mylić.

Ochrona przed tym luką bez użycia aktualizacji jest taka sama: sudo sysctl kernel.unprivileged_bpf_disabled = 1

Jaki jest wynik?

Na podstawie dwóch exploits, które zostały uwzględnione w artykule, można założyć, że zwiększenie przywilejów w nowoczesnym systemie operacyjnym Linux nie jest już ciemną magią programowania, ale w pełni naładowany proces szablonu, który obejmuje ponowne wykorzystanie funkcji i obiektów w pamięci RAM. Jednocześnie nie jest to konieczne do zapisu kodu zależnego od podstawy (Shellcode), który będzie działał większość działań. Wystarczy po prostu zmienić identyfikatory, które są używane do przypisywania uprawnień dla użytkowników.

Dowiedz się więcej o kursie "Administrator Linux. Profesjonalny. "

Zarejestruj się na otwartą lekcję "Metody i zdolność do debugowania skryptów skorupy bash."

Czytaj więcej:

Co to jest exploit?

Na etapie rozwoju we wszystkich programach i sieciach mechanizmy ochrony przed hakerami w rodzaju zamków, ostrzeżenia nieautoryzowanego nadzoru, są osadzone. Luka jest podobna do otwartego okna, aby przejść, co nie będzie zbyt trudne dla atakującego. W przypadku komputera lub sieci napastnicy mogą ustalić złośliwe oprogramowanie, wykorzystując podatność w celu uzyskania kontroli lub zainfekowania systemu do celów najemczych z odpowiednimi konsekwencjami. Miska tego wszystkiego dzieje się bez wiedzy użytkownika.

Eksplantować
Jak powstają exploit?

Exploity są spowodowane błędami w procesie tworzenia oprogramowania, w wyniku których luki są z powodzeniem stosowane w systemie ochrony programu, które są z powodzeniem stosowane przez cyberprzestępców, aby uzyskać nieograniczony dostęp do samego programu, a dzięki temu dalej do całego komputera . Eksplantów są klasyfikowane zgodnie z rodzajem podatności, który jest używany przez hakera: zero dzień, DOS, fałszowanie lub XXS. Oczywiście programistom programistów wkrótce uwolnią aktualizacje zabezpieczeń, aby wyeliminować znalezione wady, jednak do tego punktu, program jest nadal podatny na intruzów.

Jak rozpoznać Exploit?

Ponieważ Exploits wykorzystują bary w mechanizmach bezpieczeństwa programu, zwykłym użytkownikiem prawie nie ma szans na określenie ich obecności. Dlatego niezwykle ważne jest utwierdzenie aktualizowanych programów, zwłaszcza w odpowiednim czasie aktualizacji bezpieczeństwa, produkowanych przez programistów programowych. W przypadku, gdy programista oprogramowania uwalnia aktualizację zabezpieczeń w celu wyeliminowania pewnej luki w jego oprogramowaniu, ale użytkownik nie będzie go ustanowić, a następnie niestety program nie otrzyma najnowszych definicji wirusów.

Jak wyeliminować Exploit?

Ze względu na fakt, że exploity są konsekwencją popełnionych wad, ich eliminacja jest zawarta w bezpośrednich obowiązkach deweloperów, więc autorzy będą musieli przygotować i wysyłać korekcję błędów. Jednak obowiązek utrzymywania zainstalowanych programów aktualizowanych i terminowych zainstalować pakiety aktualizacji, aby nie dać szans na szanse na korzystanie z luki, klaża całkowicie na użytkowniku. Jednym z możliwych sposobów nie przegapie najnowszych aktualizacji - Użyj Menedżera aplikacji, który zapewni, że wszystkie zainstalowane programy są aktualizowane lub - co jest jeszcze lepsze - użyj narzędzia automatycznego wyszukiwania i instalacji.

Jak zatrzymać próby hakerów, aby korzystać z luki programów innych firm
  • Upewnij się, że zainstalowałeś najnowsze aktualizacje zabezpieczeń i poprawki dla wszystkich programów.
  • Aby być bezpiecznym online i bądź na bieżąco z wydarzeniami, ustaw wszystkie aktualizacje natychmiast po ich wydaniu.
  • Zainstaluj i używać premium Anti-Virus, który jest w stanie automatycznie aktualizować zainstalowane programy.
Zabezpiecz siebie przed Exploitami

Opieraj się na zdrowy rozsądek i postępuj zgodnie z podstawowymi zasadami bezpiecznej pracy w Internecie. Hakerzy mogą skorzystać tylko wrażliwości, jeśli uda się uzyskać dostęp do komputera. Nie otwieraj załączników w podejrzanych wiadomościach i nie pobieraj plików z nieznanych źródeł. Obsługa zainstalowanych programów aktualizowanych, a także aktualizuje aktualizacje zabezpieczeń. Jeśli chcesz maksymalnie uprościć to zadanie, pobierz Avast Antivirus, który nie tylko zapewni niezawodną ochronę przed wszystkimi typami złośliwego oprogramowania, ale także pomoże w instalacji najnowszych aktualizacji programów innych firm.

Добавить комментарий