Wiedząc już jak wygląda zdobywanie informacji o celu, warto teraz pokazać, co można z nimi zrobić w praktyce. 

Pamiętać należy, że każda zmiana konfiguracji, kodu aplikacji czy innych tego typu elementów może powodować powstawanie luk bezpieczeństwa, które są do namierzenia poprzez umiejętne zbieranie informacji o celu. Dodatkowo są sytuacje, gdzie wdrożenie poprawki bezpieczeństwa na jedną lukę w systemie może powodować otwarcie się nowej luki w innym miejscu. 

Dlatego rozsądnym wydaje się podejście, gdzie cyklicznym testom bezpieczeństwa podlegają systemy, które z punktu widzenia organizacji narażone są na największe ryzyko, mimo że żadna zmiana funkcjonalna nie została wdrożona na tym systemie. 

W przypadku, gdy istotna zmiana została zaimplementowana w danym systemie, naturalnym jest wykonanie odpowiednich testów bezpieczeństwa, aby zweryfikować jaki profil ryzyka reprezentuje system po wprowadzeniu owej zmiany. 

Z punktu widzenia atakującego, bazując na wersjach oprogramowania czy też na zdobytej wiedzy o konfiguracji celu, można próbować stworzyć potencjalne scenariusze ataku.  

Aby sprawdzić, który z tych potencjalnych ataków jest rzeczywiście skuteczny, należy przejść do fazy eksploitacji (ang. Exploiting). 

Wykorzystywanie luk w systemie 

Eksploitacja polega na wykorzystaniu luki bezpieczeństwa, aby zdobyć nieautoryzowany dostęp do informacji czy systemu ofiary. Najczęściej eksploitacja odbywa się z użyciem dedykowanych narzędzi czy też znanych technik ataku. 

Przydatnym narzędziem pomagającym w eksploitacji jest Metasploit Framework, który jest wbudowany w darmowy system operacyjny Kali Linux. Dystrybucja ta jest przeznaczona do wykonywania testów penetracyjnych, ponieważ zawiera wiele natywnie zainstalowanych narzędzi pentesterskich, takich jak wspomniany Metasploit Framework, sqlmap, XSS Beef czy nmap (czytelnik pozna każde z tych narzędzi w następnych artykułach). 

Wykorzystywanie luk w systemie z użyciem automatycznych narzędzi 

Zanim zostanie obrana ścieżka ataku, jeszcze raz należy zweryfikować jakiego typu usługi są hostowane na maszynie, która będzie służyła jako cel. 

Biorąc pierwszy z brzegu cel, jakim jest port TCP o numerze 21, można łatwo zweryfikować czy istnieje publicznie dostępny kod, który jest w stanie sprawdzić czy usługa vsftpd w wersji 2.3.4 posiada luki bezpieczeństwa. 

Uruchamiając Metasploit Framework atakujący jest w stanie przeszukać dostępną bazę eksploitów, aby sprawdzić czy jest jakiś dostępny do odpowiedniej wersji usługi, którą chce zaatakować. 

Jak widać na powyższym zrzucie istnieje taki publicznie dostępny eksploit. Jak zatem go uruchomić aby sprawdzić jego skuteczność? 

Mając „załadowany” eksploit, należy sprawdzić jakiego typu informacje potrzeba skonfigurować, aby móc go użyć przeciwko obranemu celowi. 

Parametry, które należy podać to adres IP celu oraz port, na którym hostuje on usługę vsftp w wersji 2.3.4 

Jak widać w Current Setting adres IP oraz numer portu zostały wprowadzone poprawnie. 

Uruchamiając eksploit, atakujący otrzymuje nieautoryzowaną sesję pomiędzy maszyną ofiary a swoją na uprawnieniach administrator systemu, czyli w przypadku systemu Linux, na użytkownika root

Komendy systemowe id, uname -a czy ifconfig eth0 zostały wykonane na maszynie ofiary z uprawnieniami root przez atakującego. 

Jak łatwo się domyślić, atakujący może wywołać na systemie ofiary, każdą komendę, która jest możliwa z poziomu uprawnień root

Taka sytuacja ma miejsce, ponieważ usługa vsftpd jest hostowana na uprawnieniach root na maszynie, która została obrana jako cel. 

W następnym artykule czytelnik dowie się, co to jest tzw. restricted shell oraz w jaki sposób przejść co nielimitowanego shell a także czego atakujący może szukać po udanym włamaniu się do systemu ofiary?