O Greenbone słów kilka. Tak można byłoby zatytułować wstęp do tego narzędzia, dzięki któremu można przeprowadzić skanowanie podatności. Przyznam, że mógłbym pisać dość dużo, ponieważ uważam go za jedno z lepszych, które w sposób rzeczywisty pomaga w utrzymaniu bezpieczeństwa urządzeń i to za darmo. Większość osób zajmujących się wyszukiwaniem podatności lub wykonujących skanowania najprawdopodobniej zna program Nexus (https://www.sonatype.com/products/vulnerability-scanner), który jest świetnym narzędziem służącym temu samemu, co prezentowane w tym artykule. Jednak funkcje Nexusa w większej mierze są płatne, natomiast w Greenbone Community Edition jedynie biblioteki luk są opóźnione o dwa tygodnie względem wersji płatnej. Można by powiedzieć, tylko lub aż, zależy od skanowanego środowiska.
Prezentowany materiał ma zachęcić do korzystania z Greenbone, dzięki któremu można przeprowadzić skanowanie podatności. Posiada wiele funkcji, które w wielu innych są płatne. Natomiast nie mam na celu podjąć się jakiejkolwiek próby wskazania wyższości tego oprogramowania nad Nexusem, czy też jakimkolwiek innym narzędziem. Jeszcze nie tak w odległym czasie korzystałem z niego i też uważam, że jest warty swojej ceny. Niemniej jednak zawsze daję szansę programom, które ktoś mi poleci, bądź które znajdę sam. Szczególnie jeżeli chodzi o narzędzia z zakresu bezpieczeństwa systemów informatycznych.
Wypróbowanie szczególnie polecam osobom korzystających z innych narzędzi, takich jak wspomniany Nexus. Osobiście, na mnie wywarł duże wrażenie. Dlatego postaram się ułatwić Tobie zadanie, pisząc ten artykuł w formie mini poradnika. Jednak nadal forma w jakiej chcę go zaprezentować nie może zawierać wszystkiego. Dlatego po zapoznaniu się z prezentowanym materiałem poznasz tylko sposób wykonania skanowania urządzenia w twojej sieci.
Ostatni webinar w tym roku!
Zapraszamy na bezpłatny webinar poświęcony roli sztucznej inteligencji w zarządzaniu infrastrukturą IT, zarówno w dużych serwerowniach, jak i w środowiskach homelab.
W trakcie wydarzenia dowiesz się, jak AI może wspierać codzienną pracę administratora, pomagając w automatyzacji procesów, monitorowaniu zasobów, analizie danych oraz zwiększaniu efektywności operacyjnej.
Zapisy na: https://asdevops.pl/warsztaty/
Skanowanie podatności – sokumentacja i poradniki
Pomimo tego, że to w pewnym sensie konkurencja do tego co piszę w tym artykule, to nie wybaczyłbym sobie gdybym nie pokazał w jaki sposób sami twórcy podeszli do tematu dokumentacji. Otóż, jeżeli chodzi o poradniki przyznaje, że jest ich bardzo duża ilość. Niemniej jednak wszystkie są w języku angielskim.
Pod adresem https://www.greenbone.net/en/selflearning-courses/ odnajdziesz sporą liczbę takich. Nie posiadają ograniczeń czasowych, dlatego uczyć możesz się w swoim tempie i w wolnym czasie. Wymienione materiały są bardzo profesjonalnie przygotowane i dostęp do nich otrzymujesz całkowicie za darmo. Nie jest to kurs napisany tak jak na przykład ten artykuł. Dzięki platformie https://tryhackme.com/ otrzymujesz dostęp do tak zwanych pokojów, w których znajdują się materiały edukacyjne. Występują one zarówno w formie pisemnej jak i praktycznej!
Przyznam, że gdy pierwszy raz przeglądałem stronę tego narzędzia byłem pod wrażeniem tego, co znalazłem. Podejście do klientów ze strony producenta jest bardzo profesjonalne, wykraczające normy jakie się przyjęły.
Nie jest to jednak wszystko. Pomimo opisywanych powyżej kursów, Greenbone posiada obszerną dokumentację dostępną pod adresem https://www.greenbone.net/en/documents/. Znajdziesz w niej szczegółowy opis dostępnych wersji.
Możesz się zastanowić po co to wszystko pokazuję. Otóż, mam nadzieję, że po zapoznaniu się z treścią tego artykułu zechcesz poznać Greenbone bardziej szczegółowo. Dlatego podaję miejsca, w których możesz to zrobić.
Skanowanie podatności urządzenia
Jak wiemy prezentowane narzędzie służy do skanowania podatności w systemach. Jednak najprawdopodobniej tych podatności nie znajdziemy przy skanowaniu naszych domowych urządzeń. Oczywiście to dobrze i polecam przeskanować całą swoją infrastrukturę. Jednak chciałbym w tym artykule pokazać jak wygląda wykrycie takiej podatności. Nie chcę jednak narażać swojego sprzętu. W związku z tym skorzystam z wirtualnych maszyn.
Do tego wirtualizacji będzie służył mi VirtualBox. Natomiast maszyny jakie użyję to Kali Linux, Windows 10 oraz Metasploitable2. O dwóch pierwszych wydaje mi się, że nie muszę nic pisać. Natomiast w przypadku ostatniego. Metasploitable2 jest to dystrybucja Ubuntu zawierająca ogromną ilość luk. Dlatego w tym zestawie się pojawił. Skanując go uzyskamy bardzo długą listę. Jednak musisz wiedzieć, że Metasploitable2 nie może pojawić się w twojej sieci. W związku z tym przed jego uruchomieniem polecam stworzyć sieć NAT i umieścić w niej wszystkie trzy maszyny wirtualne. Dzięki temu znajdować się będą w odseparowanej sieci. Czyli wszystko co tam wykonasz nie będzie widoczne, ani nie będzie miało wpływu na twoją lokalną sieć jak i również urządzenia znajdujące się w niej.
Wszystkie wspomniane elementy możesz pobrać z:
- VirtualBox: https://www.virtualbox.org/
- Kali Linux: https://www.kali.org/get-kali/#kali-virtual-machines
- Windows 10: https://developer.microsoft.com/en-US/microsoft-edge/tools/vms/
- Metasploitable2: https://sourceforge.net/projects/metasploitable/
Każdy z obrazów jest dostępny za darmo. Wystarczy zainstalować VirtualBox i podpiąć maszyny do niego. Na samym końcu każdą z nich dodajemy do wcześniej stworzonej sieci NAT. O czym już wspominałem. Ułatwi to wykonanie skanowania.
Instalacja
Wiele opisywanych sposobów instalacji aplikacji znajduje się pod adresem https://greenbone.github.io/docs/latest/22.4/source-build/index.html. Dlatego jeżeli korzystasz z innej dystrybucji, kompletne instrukcje odnajdziesz pod wskazanym adresem.
W tym artykule jednak chcę przeprowadzić instalację w systemie Kali Linux. Pierwsze co należy zrobić, to zainstalować odpowiednie paczki. Robimy to w następujący sposób:
sudo apt update && sudo apt install gvm openvas
Dzięki instalacji wymienionych w przykładzie pakietów, pobierzemy niezbędne narzędzia, dzięki którym przeprowadzimy skanowania wybranych przez nas maszyny. Pobranie oraz instalacja pakietów może chwilę zająć, dlatego uzbrój się w cierpliwość.
Po pobraniu oraz instalacji paczek należy wykonać podstawową konfigurację:
sudo gvm-setup
Jeżeli otrzymasz błąd w postaci:
[>] Starting PostgreSQL service
[-] ERROR: The default PostgreSQL version (14) is not 15 that is required by libgvmd
[-] ERROR: Use pg_upgradecluster to update your PostgreSQL cluster
Oznacza to, że obecnie używaną bazą PostgreSQL jest wersja 14, a nie 15. W Kali Linux zainstalowane są obie wersje. Aby sprawić by zadziałała nasza aplikacja musimy zmienić porty w bazach. Wykonujemy to edytując plik konfiguracyjny wersji 14:
sudo nano -w /etc/postgresql/14/main/postgresql.conf
Przy pomocy skrótu klawiszowego CTRL+W wpisujemy słowo port i zamieniamy z 5432 na 5433. Następnie edytujemy plik konfiguracyjny wersji 15:
sudo nano -w /etc/postgresql/15/main/postgresql.conf
Tak jak w poprzednim przypadku, korzystamy ze skrótu klawiszowego CTRL+W i wpisujemy port. W tym wypadku zamieniamy 5433 na 5432 i oczywiście zapisujemy.
Po wykonaniu tych dwóch czynności restartujemy usługę odpowiedzialną za PostgreSQL:
sudo systemctl restart postgresql
Następnie ponownie wpisujemy polecenie do konfiguracji:
sudo gvm-setup
Po jego wpisaniu musisz uzbroić się w cierpliwość. Pobranie wszystkich baz może zająć nawet i godzinę. U mnie trwało tak około półtorej godziny.
Po pewnym czasie aktualizacja się wreszcie kończy i otrzymujemy informację:
[+] GVM feeds updated
[*] Checking Default scanner
[*] Modifying Default Scanner
Scanner modified.
[+] Done
[*] Please note the password for the admin user
[*] User created with password '71914a30-b289-430d-8fb9-e639d508d668'.
[>] You can now run gvm-check-setup to make sure everything is correctly configured
Zgodnie z zaleceniem programu sprawdźmy czy wszystko zostało właściwie skonfigurowane:
sudo gvm-check-setup
Sprawdzenie wszystkiego zajmie chwilę, ale nie tyle co pobranie baz. Jeżeli instalacja zakończyła się sukcesem otrzymasz informację:
It seems like your GVM-22.4.0 installation is OK.
Po wykonaniu powyższych czynności musimy zrestartować GVM w następujący sposób:
sudo gvm-stop
sudo gvm-start
Jednak nie zawsze. Jeżeli nie będziesz w stanie dostać się do panelu pod adresem https://127.0.0.1:9392 wymagane będzie wykonanie powyższych dwóch czynności. Jednak jeżeli od razu możesz uruchomić panel pod wskazanym adresem będzie to niepotrzebne.
Po uruchomieniu strony powinieneś otrzymać dostęp do panelu logowania tak jak na poniższym obrazku:
Jako login podajesz admin natomiast jako hasło to które wygenerowane zostało przy instalacji. W moim przypadku jest to 71914a30-b289-430d-8fb9-e639d508d668. Po wprowadzeniu prawidłowych danych otrzymasz dostęp do wszystkiego co oferuje aplikacja:
Na razie dane wykresy są puste, zajmiemy się teraz ich uzupełnieniem.
Przygotowania do wykonania skanowania
Pobraliśmy dwie maszyny które będziemy chcieli zeskanować. Jedna to wspomniany system Windows 10, drugi jest to Metasploitable2. W dalszej części skonfigurujemy skaner tak aby móc jednocześnie przeskanować zarówno jeden jak i drugi system. Jeżeli przyjrzałeś się panelowi to na pewno zauważyłeś bardzo dużo funkcji. Niech Cię to nie przerazi, program na samym początku wydaje się bardzo skomplikowany. Jednak po przeprowadzeniu pierwszego skanowania już taki nie będzie.
Pierwszą czynnością jaką musimy wykonać, to poznać adresy IP maszyn, które uruchomiliśmy. Jeżeli chcesz poczuć się jak haker możesz skorzystać z narzędzia netdiscover lub/i nmap. Przyznam, że nie tak dawno temu zajmowałem się tym tematem dlatego jeżeli chcesz zapoznać się ze szczegółami zerknij pod adres https://blog.askomputer.pl/bezpieczenstwo-sieci/. Znajdziesz w nim więcej szczegółów.
Drugim sposobem jaki wykorzystam w tym artykule jest zalogowanie się do linii poleceń zarówno systemu Windows jak i Metasploitable2.
IP Windows
Aby zalogować się do wspomnianej maszyny musisz wpisać hasło Passw0rd!. O tym zapewne wiesz, ale gdybyś gdzieś na stronie nie doczytał pozwoliłem sobie i tu o taką informację. Po zalogowaniu się do systemu Windows najszybciej będzie wpisać cmd w polu wyszukiwania znajdujący się po lewej stronie i kliknąć enter. Pojawi się konsola w której wprowadzamy następujące polecenie:
W ten sposób poznaliśmy IP pierwszego urządzenia, 10.0.2.15.
IP Metasploitable2
W celu zalogowania się podajemy zarówno login jak i hasło msfadmin. Dostaniemy się do powłoki bash. Wpisujemy w niej następujące polecenie:
I w tym wypadku, adres IP to 10.0.2.8.
Ustawienie skanowanych maszyn
Poznaliśmy już adresy IP maszyn, które chcemy przeskanować. Teraz przejdźmy ponownie do panelu https://127.0.0.1:9392/, zalogujmy się o ile już nie jesteśmy. Następnie przechodzimy do menu Configuration i wybieramy Targets. Tak jak to prezentuje na poniższym obrazku:
Powinno pojawić się nowe okno, w którym znajduje się lista w twoim wypadku pusta. Teraz zerknij w lewy górny róg. Powinieneś zobaczyć ikonę kartki z gwiazdką, tak jak poniżej:
Po kliknięciu powinno pojawić się nowe okno:
W prezentowanym przykładzie zostały wprowadzone ustawienia służące do skanowania maszyny Metasploitable2. W name podajemy nazwę pod jaką ma występować skanowany obiekt, a w Host dodajemy adres IP obiektu. Poniżej mamy możliwość wykonania różnych rodzajów skanów oraz dodatkowej konfiguracji. My przeprowadzimy standardowy skan portów TCP. Jeżeli jednak rozwiniesz menu zauważysz, że możliwości jest kilka. Możesz skanować zarówno porty TCP i UDP jednocześnie lecz wiedz, że takie skanowanie może trwać nawet 3 godzin jak nie i więcej. Natomiast jeżeli chodzi o menu Alive test, skaner wykona sprawdzenia czy urządzenie istnieje. Jeżeli jesteś pewny, że tak jest to z menu wybierz opcje Consider Alive. Pominiesz wykonanie tego sprawdzenia co delikatnie przyspiesza skanowanie i może wpłynąć na reakcje oprogramowania zabezpieczającego, a raczej na brak reakcji z jego strony.
Po wykonaniu powyższej konfiguracji wciskamy save. Na liście pojawi się pierwsza maszyna. Teraz wykonajmy ten sam krok, ale skonfigurujemy tak aby skanowanie było ukierunkowane na system Windows:
Jedyna różnica pomiędzy poprzednią, a obecną konfiguracją jest w nazwie oraz adresie IP. Wszystko wykonywać będzie w identyczny sposób dlatego opis pozwolę sobie pominąć. Tak jak poprzednio po ustawieniu klikamy save. Teraz na naszej liście pojawić się powinny dwa cele:
Po ich przygotowaniu zbliżamy się do przeprowadzenia skanowań.
Skanowanie podatności – konfiguracja
Następnym krokiem jaki należy wykonać, to z menu górnego najechać kursorem myszki na scans. Po jego rozwinięciu wybrać tasks. Tak samo jak w przypadku poprzedniego kroku, w lewym górnym rogu najechać na ikonę kartki z gwiazdką i z menu które zostanie wyświetlone wybrać New Task.
Konfiguracja skanowania Metasploitable2
Konfiguracja wygląda następująco:
Tak samo jak w przypadku ustawienia celu, określasz nazwę skanowania jakie chcesz przeprowadzić. Możesz dodać jakiś swój komentarz. Przyznam, że gdy przeprowadzam skanowania często bardziej opisuje w tym miejscu czego szukam i dlaczego. Jakieś swoje spostrzeżenia i tak dalej. Pomaga to, gdy po jakimś czasie to samo urządzenie skanuje ponownie. W Scan Targets wybieramy cel jaki wcześniej stworzyliśmy. Tak naprawdę w tym miejscu jesteś w stanie stworzyć cel. Nie musisz robić tego w prezentowany wcześniej sposób. Jednak od zawsze wykonywałem to w tej kolejności co pokazałem i jest to dla mnie najwygodniejsze. Wprowadza pewien ład w tym zakresie. Natomiast jak dla Ciebie będzie wygodniej ustalić musisz to sam. Inne elementy pozostawiamy bez zmian. Warto jednak na nie zerknąć jak i bardziej się z nimi zapoznać. O tym wszystkim możesz poczytać w dokumentacjach o których wspomniałem na początku tego materiału.
Po wprowadzeniu wszystkich ustawień zapisujemy je klikając Save.
Konfiguracja skanowania Windows 10
Konfiguracja skanowania systemu Windows nie różni się od poprzednika. Jedynie co zmieniłem to nazwę i cel:
Wszystko wygląda tak samo jak poprzednio z drobnymi różnicami, o których wspominałem.
Skanowanie podatności – uruchomienie
Mając przygotowane dwa skanowania pozostaje je tylko uruchomić. Robimy to przy pomocy przycisku start znajdującego się z prawej strony stworzonego skanowania:
Wystarczy, że klikniesz ikonę często rozpoznawaną pod nazwą play. Natomiast uruchom dwa skanowania w tym samym czasie. System Windows zeskanowało mi w 28 minut natomiast Metasploitable2 w godzinę i 24 minuty, dlatego warto wykonać obydwa w tym samym czasie.
Czas trwania skanowania wynika również z tego, że korzystam z maszyny wirtualnej, do której nie mam przydzielonych wszystkich dostępnych zasobów. Natomiast pamiętaj, że robię to ze względów bezpieczeństwa. Metasploitable2 nie można uruchamiać w sieci lokalnej!
Zakończenie skanowania oraz analiza
Po dłuższej chwili otrzymamy dość obszerny raport. Aby się do niego dostać z menu górnego wybieramy Scans -> Reports. Następnie na liście wybieramy jeden z dwóch. Bardziej obszerny będzie raport Metasploitable2 i to go poddajmy krótkiej analizie.
Posiadamy kilka zakładek w których znajdują się połączone w pewnym sensie z sobą informacje. Wyniki ze szczegółowymi lukami jakie wykrył skaner znajdują się w zakładce Results. Sama lista jest bardzo obszerna:
Jeżeli klikniesz na którąkolwiek zostaniesz przeniesiony do strony z dodatkowymi informacjami. Często nawet z sposobem rozwiązania problemu lub też w jakiś sposób dana luka jest wykorzystywana. Sam raport jest bardzo obszerny, i wymagałby bardzo wielu stron opisu. Dlatego jeżeli chcesz dowiedzieć się więcej zajrzyj do wspomnianych wcześniej dokumentacji oraz szkoleń.
Podsumowanie – skanowanie podatności
Greenbone Community Edition jest oprogramowaniem wartym uwagi, co udowodniłem w tym materiale. Dzięki niemu możemy wykonać skanowanie podatności wszystkich urządzeń w naszej sieci. Pomimo różnicy dwutygodniowej w aktualizacjach bibliotek skanowanie z jego użyciem jest bardzo przydatne. Niemniej jednak musisz zrozumieć, że on czy też każdy inny skaner tego typu wykryje prawdopodobieństwo wystąpienia danej luki. Czy ona tak naprawdę znajduje się w skanowanym systemie musi zostać dodatkowo sprawdzone. Nie istnieje oprogramowanie nieomylne, a dana luka najczęściej występuje tylko w określonej wersji oprogramowania. W związku z tym wynik może błędnie wykazywać jej wystąpienie.
Mam nadzieję, że tym materiałem zachęciłem Cię do korzystania z tytułowego programu. Moim zdaniem warto poświęcić czas na wykonanie takich skanowań. Szczególnie, że po skonfigurowaniu go skanowanie polega jedynie na kilku kliknięciach.