Samouczek hakowania Linuksa: Ubuntu Polecenia i narzędzia
⚡ Inteligentne podsumowanie
Hakowanie systemu Linux polega na znajdowaniu i wykorzystywaniu słabości w systemach Linux. Na tej stronie opisano luki, na które polują atakujący, narzędzia audytowe wykorzystywane w tym celu oraz mechanizmy kontroli, które zapewniają ochronę serwera.
Linux to najpopularniejszy system operacyjny dla serwerów, zwłaszcza serwerów WWW. Jest to system open source, co oznacza, że każdy może zapoznać się z jego kodem źródłowym. Ta transparentność działa w obie strony: administratorzy używają go do szybkiego znajdowania i naprawiania błędów, podczas gdy atakujący analizują ten sam kod w poszukiwaniu luk, które mogą wykorzystać. Hackowanie Linuksa to praktyka wykorzystywania tych luk w celu uzyskania nieautoryzowanego dostępu do systemu.
Poniższe sekcje obejmują informacje o tym, czym jest Linux, luki w zabezpieczeniach, które go dotyczą, praktyczne spojrzenie na hakowanie za pomocą Ubuntui środki zaradcze, które możesz wdrożyć.
Szybka notatka na temat Linuksa
Linux to system operacyjny o otwartym kodzie źródłowym. Wiele dystrybucji jest na nim opartych, w tym Red Hat Enterprise Linux, Fedora, Debian i UbuntuPonieważ kod źródłowy jest opublikowany, badacze, dostawcy i atakujący mogą go przeglądać. Atakujący wykorzystują ten dostęp do wyszukiwania luk, które można wykorzystać, a ta sama przejrzystość pozwala administratorom na szybsze wdrażanie poprawek niż często robią to zamknięte platformy. Linux działa jako system operacyjny serwera, komputera stacjonarnego, tabletu lub urządzenia mobilnego.
Programy Linux można obsługiwać za pomocą interfejsu graficznego lub wiersza poleceń. Praca z wierszem poleceń jest szybsza i bardziej precyzyjna niż klikanie w interfejs graficzny, dlatego testerzy bezpieczeństwa pracujący nad dystrybucjami takimi jak Kali Linux Spędzają prawie cały czas w terminalu. Znajomość podstawowych poleceń jest zatem warunkiem praktycznym.
Odnieś się do tego Poradnik dotyczący Linuksa dla podstaw i dla Kali Linux Tutorial dla dystrybucji skoncentrowanej na bezpieczeństwie zbudowanej na nich.
Typowe luki w zabezpieczeniach systemu Linux i wektory ataków
Ataki na Linuksa rzadko opierają się na egzotycznych exploitach. Dane telemetryczne opublikowane w latach 2025 i 2026 pokazują, że większość ataków tracWracamy do niewielkiego zestawu powtarzających się słabości, a ich znajomość podpowie Ci, gdzie w pierwszej kolejności powinieneś skupić wysiłki obronne.
- Słabe lub ponownie użyte dane uwierzytelniające SSH — próby siłowego ataku i włamania się do protokołu SSH podłączonego do Internetu stanowią przyczynę większości wrogiej aktywności zaobserwowanej na punktach końcowych systemu Linux.
- Niezałatane luki w jądrze i pakietach — zespół zajmujący się jądrem Linuxa stał się w 2024 r. organizacją zajmującą się numeracją CVE, a liczba zgłoszonych numerów CVE w jądrze wzrosła z ok. 290 w 2023 r. do ponad 3,500 w roku następnym, w związku z czym zaległości w zakresie poprawek szybko się piętrzą.
- Błędna konfiguracja — domyślne konta, niepotrzebne demony, pliki z prawem zapisu dla każdego oraz liberalne reguły sudo przyznają uprawnienia, których uzyskanie nie wymaga użycia exploita.
- Podatne na ataki aplikacje internetowe — wady takie jak SQL injection Ataki typu cross-site scripting umożliwiają atakującemu dotarcie do serwera za pośrednictwem aplikacji, a nie systemu operacyjnego. Powłoki internetowe to najczęściej spotykany złośliwy artefakt znajdowany na zainfekowanych serwerach Linux.
- Błędy eskalacji uprawnień — lokalne błędy, które zamieniają ograniczone konto w konto root. Niektóre z nich przetrwały niewykryte w jądrze przez ponad dekadę, zanim zostały ujawnione.
- Ryzyko łańcucha dostaw i zależności — pakiety stron trzecich, biblioteki językowe i obrazy kontenerów pobierają kod, którego nikt z zespołu operacyjnego nie przejrzał.
Żadne z nich nie wymaga od atakującego pokonania samego Linuksa. Analizy włamań z 2025 roku wykazały, że około cztery na pięć włamań nie wiązało się ze złośliwym oprogramowaniem, a zamiast tego polegało na błędnej konfiguracji i skradzionych danych uwierzytelniających.
Narzędzia hakerskie dla Linuksa
Testerzy bezpieczeństwa i administratorzy systemów korzystają z tych samych skanerów: z jednej strony, aby wykryć luki w zabezpieczeniach, zanim zrobi to atakujący, a z drugiej, aby potwierdzić skuteczność poprawek. Poniższe narzędzia są najczęściej używane do audytu hosta Linux.
| Narzędzie | Typ | Licencja | Typowe zastosowanie w systemie Linux |
| Nessus | Skaner narażenia na atak | Komercyjne | Skanuje ustawienia konfiguracji, brakujące poprawki i usługi sieciowe w środowiskach mieszanych. |
| Nmap | Skaner sieciowy i portowy | Otwarte źródło | Identyfikuje hosty działające na serwerze, udostępniane przez nie usługi i otwarte porty. |
| Lynis | Audyt i wzmacnianie hosta | Otwarte źródło | Przeprowadza audyt działającego systemu pod kątem zaostrzonych kryteriów i raportuje konkretne kroki naprawcze. |
| OpenVAS | Skaner narażenia na atak | Otwarte źródło | Skanowanie pod kątem luk w zabezpieczeniach sieci, przeprowadzane przez Greenbone w ramach Community Edition. |
Lista nie jest wyczerpująca, daje jedynie pojęcie o dostępnych narzędziach do audytu Ubuntu i innych systemach Linux. Starsze przewodniki nadal zalecają SARA, Security Auditor's Research Assistant, ale jego ostateczna wersja pochodzi z 2009 roku, a strona projektu jest niedostępna, więc Lynis i OpenVAS są utrzymanymi alternatywami.
Aktywność hakerska: Hakowanie a Ubuntu System Linux korzystający z PHP
W tym praktycznym scenariuszu przyjrzymy się, jak można dotrzeć do hosta Linux za pośrednictwem aplikacji webowej, wykorzystując PHP jako przykład. Nie jest to atak na żywą ofiarę. Jeśli chcesz to wypróbować, zainstaluj LAMPP, linuksową wersję XAMPP, na swoim komputerze.
PHP Zawiera dwie funkcje, których można używać do uruchamiania poleceń systemu operacyjnego: exec() i shell_exec(). Funkcja exec() zwraca ostatni wiersz wyniku polecenia, natomiast shell_exec() zwraca cały wynik polecenia jako ciąg znaków.
Dla celów demonstracyjnych załóżmy, że atakującemu uda się przesłać poniższy plik na serwer WWW.
<?php $cmd = isset($_GET['cmd']) ? $_GET['cmd'] : 'ls -l'; echo "executing shell command:-> $cmd</br>"; $output = shell_exec($cmd); echo "<pre>$output</pre>"; ?>
TUTAJ,
Powyższy skrypt pobiera polecenie ze zmiennej GET o nazwie cmd. Polecenie jest wykonywane za pomocą shell_exec(), a wynik jest zwracany w przeglądarce.
Powyższy kod można wykorzystać, używając następującego kodu: URL
http://localhost/cp/konsole.php?cmd=ls%20-l
TUTAJ,
- „…konsole.php?cmd=ls%20-l” przypisuje wartość ls –l zmiennej cmd.
Polecenie na Ubuntu serwer jest zatem wykonywany jako
shell_exec('ls -l') ;
Wykonanie powyższego kodu na serwerze WWW daje wynik podobny do poniższego.
Na wyjściu wyświetlane są jedynie pliki w bieżącym katalogu i ich uprawnienia.
Załóżmy teraz, że atakujący przekaże następujące polecenie.
rm -rf /
TUTAJ,
- „rm” usuwa pliki.
- „rf” powoduje, że polecenie rm jest uruchamiane w trybie rekurencyjnym, usuwając wszystkie foldery i pliki.
- „/” powoduje, że polecenie rozpocznie usuwanie od katalogu głównego.
Atak URL wyglądałoby to mniej więcej tak
http://localhost/cp/konsole.php?cmd=rm%20-rf%20/
Jeden niezweryfikowany parametr wystarczy zatem, aby przekazać atakującemu wszystkie uprawnienia, jakie posiada konto serwera WWW. Dwie poniższe sekcje mają na celu zapobieganie takim sytuacjom i wykrywanie ich, gdy środki zapobiegawcze zawiodą.
Jak zapobiegać atakom hakerskim na Linuksa
Hackowanie Linuksa wykorzystuje luki w zabezpieczeniach systemu operacyjnego i oprogramowania na nim działającego. Organizacja może zastosować poniższe środki kontroli, stosowane łącznie, aby wyeliminować większość luk opisanych powyżej.
- Zarządzanie poprawkami — poprawki naprawiają błędy, które atakujący wykorzystują do naruszenia bezpieczeństwa systemu. Zdefiniowana polityka zapewnia, że odpowiednie aktualizacje są instalowane natychmiast, a nie wtedy, gdy ktoś sobie o nich przypomni.
- Prawidłowa konfiguracja systemu operacyjnego — wyłącz nieaktywne konta użytkowników i niepotrzebne demony. Zmień ustawienia domyślne, w tym domyślne nazwy użytkowników, hasła do współdzielonych aplikacji i domyślne numery portów.
- Utwardzanie SSH — wyłącz uwierzytelnianie użytkownika root i hasła, zezwalaj tylko na nazwanych użytkowników lub grupy i ogranicz liczbę ponownych prób uwierzytelnienia. To zamyka najbardziej narażony na ataki punkt wejścia w systemie Linux.
- Najmniejszy przywilej — przyznawaj kontom i usługom tylko niezbędne uprawnienia i ograniczaj sudo do konkretnych poleceń zamiast udzielać ogólnego dostępu administracyjnego.
- Obowiązkowa kontrola dostępu — zachowaj SELinux (rodzina Red Hat) lub AppArmor (Debian i Ubuntu) w trybie wymuszania, tak aby zagrożona usługa nie mogła dotrzeć do reszty systemu.
- Walidacja danych wejściowych — powyższa demonstracja działa tylko dlatego, że dane żądania docierają do funkcji powłoki. Nigdy nie przekazuj danych wejściowych użytkownika do exec() ani shell_exec().
- Zapory sieciowe i segmentacja — udostępniaj tylko te porty, których usługa naprawdę potrzebuje, korzystając z zapora i segmentacja sieci w celu ograniczenia dostępu zagrożonego hosta.
- Systemy wykrywania włamań — narzędzia te mogą być używane do wykrywania nieautoryzowanego dostępu do systemu, a niektóre z nich mogą nawet blokować takie próby.
- Przetestowane kopie zapasowe — kopie zapasowe offline, które można przywrócić, zamieniają destrukcyjne polecenie, takie jak powyższe, w awarię, a nie trwałą stratę.
Jak wykryć zainfekowany system Linux
Zapobieganie w końcu zawodzi, więc drugie pytanie brzmi, jak szybko można to zauważyć. Wykrywanie w Linuksie opiera się na zebraniu odpowiednich dowodów przed incydentem, a nie po nim.
- Rejestrowanie audytów — framework audytu jądra, auditd, rejestruje użycie uprawnień, dostęp do plików i wywołania systemowe w formie, której zainfekowany proces nie może po cichu przepisać. Przekazuj te logi z hosta do centralnego kolektora.
- Dzienniki uwierzytelniania — seria niepowodzeń, po których następuje pojedynczy sukces w /var/log/auth.log lub /var/log/secure, to klasyczny podpis siłowy.
- Nieoczekiwane procesy i połączenia — usługa podsłuchowa lub połączenie wychodzące, z którym nikt nie potrafi się skontaktować, wymagają natychmiastowego zbadania.
- Monitorowanie integralności plików — narzędzia, które haszują pliki binarne systemu i pliki konfiguracyjne, sygnalizując zmiany w plikach, które nigdy nie powinny zostać zmienione.
- Zaplanowane zadania i elementy startowe — trwałość zwykle znajduje odzwierciedlenie w zadaniach cron, jednostkach systemd lub skryptach profilu powłoki.
- Nowe lub zmodyfikowane konta — sprawdź, czy nie ma nieznanych użytkowników, drugiego konta z UID 0 i kluczy SSH, których nikt nie dodał.
- Katalogi serwera WWW — ponieważ powłoki internetowe są najczęściej spotykanymi złośliwymi plikami na serwerach Linux, nieoczekiwane pliki skryptów w katalogu głównym witryny internetowej zasługują na szczególną uwagę.
- Zaplanowane audyty — uruchom narzędzie do audytu hosta, np. Lynis, zgodnie z harmonogramem i traktuj każdy raport jako listę zadań, a nie jednorazowe ćwiczenie.
Jeśli znajdziesz dowody na naruszenie bezpieczeństwa, odizoluj hosta, zachowaj logi i obraz dysku przed wprowadzeniem jakichkolwiek zmian i odbuduj system ze znanego, sprawnego nośnika, zamiast próbować czyścić działający system. Aspekt obsługi dowodów w tym zakresie został omówiony w cyfrowy kryminalistyki.
Granice prawne i etyczne hakowania Linuksa
Każda technika opisana na tej stronie jest legalna w systemach, których jesteś właścicielem lub na których testowanie masz pisemne pozwolenie, a niemal wszędzie indziej jest nielegalna. Powyższe ćwiczenie celowo uruchamia się na instalacji lokalnej właśnie z tego powodu.
- Pisemne upoważnienie — podpisany zakres, uzgodniony termin testu i wyznaczona osoba kontaktowa odróżniają test penetracyjny od ataku. Ustne zatwierdzenie nie wystarczy.
- Pozostań w zasięgu — hosty, zakresy adresów i techniki, które nie są wymienione, nie są dozwolone, nawet jeśli są osiągalne.
- Ostrożnie obchodź się z danymi — dowody zebrane podczas testu nadal zawierają prawdziwe dane osobowe i muszą być bezpiecznie przechowywane, a następnie zniszczone.
- Zgłaszaj odpowiedzialnie — ujawnij ustalenia właścicielowi i daj czas na ich rozwiązanie przed opublikowaniem czegokolwiek.
Ryzyko prawne jest realne: nieautoryzowany dostęp do systemu komputerowego jest przestępstwem na mocy przepisów takich jak amerykańska ustawa o oszustwach i nadużyciach komputerowych oraz brytyjska ustawa o nadużyciach komputerowych. Jeśli chcesz budować karierę w oparciu o te umiejętności, wybierz uznaną ścieżkę — certyfikacja bezpieczeństwa oraz laboratorium, którego jesteś właścicielem, a nie serwera kogoś innego.


