2010.08_Testy penetracyjne – wprowadzenie.pdf

(1162 KB) Pobierz
439750502 UNPDF
ATAK
Testy penetracyjne –
Michael Heinzl
To, co w USA jest już bardzo rozpowszechnione,
ogólnodostępne, także w innych krajach wysuwa się na
pierwszy plan i zyskuje na znaczeniu. Mowa o tak zwanych
„testach penetracyjnych“.
Dowiesz się:
• czym jest test penetracyjny oraz w jaki sposób może on być
przeprowadzany;
• jakimi zasadami należy się kierować przeprowadzając test pe-
netracyjny
• jakich programów można w tym celu użyć
Powinieneś wiedzieć:
• że wykonywanie testów penetracyjnych bez pisemnego ze-
zwolenia właściciela systemu jest karane
• podstawowa wiedza z zakresu bezpieczeństwa komputero-
wego
test penetracyjny i w oparciu o jakie wytyczne
może być przeprowadzany. Wszystko to zostanie
objaśnione na przykładowym scenariuszu działań.
Test penetracyjny to sprawdzian poziomu bezpieczeń-
stwa systemu albo jego poszczególnych komponentów.
Celem takiego testu jest symulacja ataku hakera, który
chciałby uzyskać nieautoryzowany dostęp do systemu.
Następnie powinna być przygotowana odpowiednia do-
kumentacja, a w razie potrzeby przedstawiona prezen-
tacja, które zawiera zarówno przegląd znalezionych luk
bezpieczeństwa, jak i propozycje możliwych rozwiązań,
które pozwalają na zwiększenie poziomu bezpieczeń-
stwa. Należy zróżnicować swoje działania w zależno-
ści od tego, komu prezentuje się osiągnięte wyniki testu.
Technik wykaże inny poziom ich zrozumienia niż szef
działu. Wysokiej jakości test powinien zawierać nie tyl-
ko techniczne propozycje możliwych ulepszeń, ale tak-
że ich organizację.
Pentesterzy albo konsultanci ds. bezpieczeństwa czyli
osoby, które przeprowadzają taką symulację, muszą na
samym początku, zanim rozpoczną właściwe wykonywa-
nie testu, określić, co dokładnie chcą przetestować, o ja-
ki rodzaj tekstów właściwie chodzi ( Black- , White- czy
Graybox ) i na ile mogą być agresywni w działaniu.
Służy to potem jako ochrona dla konsultanta ponie-
waż otrzymał on pisemne zezwolenie, aby poddać sys-
tem danemu testowi. Także okres trwania i godzina roz-
poczęcia testu muszą zostać określone. Nawet jeśli
wszystko będzie odbywać się bardzo ostrożnie, może
dojść do nieoczekiwanych wypadków czy szkodliwych
oddziaływań testu na system. Z tego względu w prak-
tyce jest przyjęte, by zleceniodawcy wskazać czas roz-
poczęcia testu, by mógł przygotować odpowiednie kopie
zapasowe systemów.
Konsultant ds. bezpieczeństwa musi ściśle trzymać się
pewnych uwarunkowań prawnych, podczas gdy hakerzy
często je ignorują albo traktują wręcz jako zaproszenie
do działania. Prawdziwy pentester pracuje tylko z odpo-
wiednim zezwoleniem zleceniodawcy ( out of law card ),
może poruszać się jedynie w wyznaczonych ramach
i musi utrwalić skutki wszystkich swoich działań.
������������
��������
�����������
�����������
Rysunek 1. Pierwszy projekt działania
20
8/2010
wprowadzenie
A rtykuł ten ma unaocznić, jakie zadania spełnia
439750502.017.png
 
439750502.018.png 439750502.019.png 439750502.001.png 439750502.002.png 439750502.003.png 439750502.004.png
Testy penetracyjne – wprowadzenie
Czarny czy biały? Szary!
Czarny czy biały, jajko czy kura? Ta-
kich jednoznacznych podziałów te-
stów penetracyjnych niestety nie
ma. Zasadniczo rozróżnia się po-
między testami typu Blackbox i Whi-
tebox.
W teście typu Blackbox audytor
nie posiada żadnej wiedzy na temat
wewnętrznej struktury systemu. Ko-
dy albo interfejsy są mu nieznane.
Przy zastosowaniu rozmaitych
technik działania wszystkie inne in-
formacje musi pozyskać, działając
na własną rękę. Może to zrobić, np
wysyłając zapytania do rozmaitych
usług, choćby do WHOIS i DNS,
ale możliwe są także: atak socjo-
techniczny, Dumpster Diving (prze-
szukiwanie kosza) i wyszukiwanie
ofert pracy w dziale IT firmy, w celu
stwierdzenia, jakie systemy informa-
tyczne są w niej wykorzystywane.
Na ile daleko można się posunąć
i jak bardzo agresywnie można dzia-
łać – te kwestie również powinny zo-
stać wcześniej ustalone. Atak socjo-
techniczny przy sprawdzianach po-
ziomu bezpieczeństwa zawsze na-
leży jednak przeprowadzić.
Pozytywny rezultat testu może po
jego zakończeniu wywołać niepokój
wśród pracowników.
Z tego powodu należy na przy-
kład wyjść z założenia, że większa
firma daje poważniejsze szanse na
skutecznie przeprowadzony atak
niż mniejsza oraz zrezygnować
z praktycznego jego przeprowa-
dzania. Zależnie od tego, czy sce-
nariusz zostanie rozegrany czy też
nie, w komunikowaniu jego skutków
należy zachować dużą ostrożność
i nie wolno angażować w to kon-
kretnych osób.
Test typu Whitebox stanowi prze-
ciwieństwo wyżej opisanego. Przed
wykonaniem testu pentesterowi do-
starczanych jest tutaj możliwie naj-
więcej informacji na temat systemu,
tak że możliwa jest symulacja ataku
ze strony intruza (eks)– pracownika,
partnera; teoretycznie każdego, kto
posiada odpowiedni dostęp do sie-
ci danej firmy.
Rysunek 2. Strona internetowa Kart00 daje pierwszy ogląd sytuacji
Rysunek 3. Fragment zapytania Whois
www.hakin9.org
21
 
 
439750502.005.png 439750502.006.png 439750502.007.png
 
ATAK
W tych informacjach może chodzić o kody źródłowe,
dokumentację, organigramy etc.
Test typu Graybox stanowi połączenie dwóch wyżej
wymienionych typów testów. Udostępnia się penteste-
rowi niektóre informacje, ale nie wszystkie możliwe, po
czym dalsze działania prowadzi on sam. Ten rodzaj au-
dytu powinien udowodnić, że istniała możliwość pozy-
skania udostępnionych informacji w inny sposób.
Zaletą tego testu jest to, że może zostać zaoszczę-
dzony czas, z czym często wiąże się także oszczędność
kosztów. Konsultant nie musi już tak długo przeprowa-
dzać rekonesansu (pozyskiwanie informacji), kiedy na
przykład wie, jakie oprogramowanie zostało użyte.
Przynajmniej administratorzy sieci, niezależnie od te-
go, w jaki sposób test zostanie przeprowadzony, powinni
zostać powiadomieni o czekającej system kontroli.
Może on mieć formę tekstową, ale bardziej wyraźnie
pozwoli unaocznić to wykres. Pierwszym celem jest zdo-
bycie niezbędnych informacji (Rysunek 1).
Dla testera interesujące w pierwszej kolejności jest to,
kto jest administratorem danego systemu, jakie systemy
zostały zastosowane (można uzyskać te informacje np.
przeglądając aktualne oferty pracy w dziale IT danej fir-
my), jaką liczbę pracowników zatrudnia firma (duże firmy
są znacznie bardziej podatne na ataki socjotechniczne),
czy pomoc IT jest zapewniana przez zewnętrzną firmę,
jakie serwery i usługi są osiągalne przez Internet itp.
Jest wiele możliwości aby wejść w posiadanie takich
informacji. Być może możliwe jest na przykład bezpro-
blemowe wejście do firmy i dokładny ogląd jej sieci. Być
może w dalszych działaniach pomogą pracownicy, jeśli
odegra się rolę zainteresowanego firmą klienta?
Wiele informacji można pozyskać poprzez Internet:
serwer DNS (Domain Name Service), wyszukiwarki tak-
że z oficjalnej strony internetowej danej firmy można po-
zyskać wiele cennych informacji.
Rozróżnia się aktywne i pasywne pozyskiwanie infor-
macji. Podczas pasywnego pozyskiwania informacji cel
testu nie jest wyraźnie określony, podczas gdy aktyw-
ne pozyskiwanie informacji zakłada uważny wybór celu
przeprowadzanego testu.
Aby uzyskać pierwszy ogląd pozostałych subdomen
danego przedsiębiorstwa, można posłużyć się kart00
( www.kartoo.com ).
Przykład – w dziesięciu krokach
do konta-root i dalej
Po tym, jak wyjaśniliśmy, czym w ogóle jest test penetra-
cyjny i jakie są jego formy, chciałbym pokazać na przy-
kładzie, jak taki test przebiega. Zaprezentujemy kilka
scenariuszy działania oraz pokażemy kilka programów,
jakie mogą być zastosowane do wykonania testu pene-
tracyjnego.
Wykonałem odpowiednie otoczenie, za pomocą VMWa-
re. Najpierw należy bowiem zawsze dążyć do tego, by uzy-
skać ogólny ogląd zadania, które zamierza się wykonać.
Rysunek 4. Skan portów i detekcja OS testowanego systemu
22
8/2010
439750502.008.png
 
439750502.009.png 439750502.010.png 439750502.011.png
 
Testy penetracyjne – wprowadzenie
Ta usługa internetowa przedstawia plan, który umożli-
wia stworzenie pierwszego ogólnego projektu ataku oraz
stanowi punkt wyjścia do dalszych poszukiwań (Rysu-
nek 2).
Innym źródłem, z którego można pozyskać wymagane
informacje są zapytania DNS i Whois.
Można stamtąd pozyskać wiele cennych informacji, jak
na przykład dane kontaktowe, numery telefoniczne, ad-
resy e-mail, pozostałe domeny (Rysunek 3).
Do aktywnego pozyskiwania informacji zalicza się na
przykład skanowanie portów oraz analizy DNS. Jeśli
idzie o skanowanie portów, to szczególnie dobrze radzi
sobie z tym zadaniem Nmap ( http://nmap.org )
Podczas skanowania portów sprawdza się które por-
ty są otwarte, przez co można wnioskować o działaniu
określonych usług. Port 21 jest na przykład przypisany
do FTP ( File Transfer Protocol ), przy czym mogą być
przez niego wykonywane także inne usługi.
Nmap posiada także wiele innych funkcji, jak choćby
detekcja systemu OS – za pomocą odcisków palca ( fin-
gerprint ), z których mogą z pożytkiem skorzystać pente-
sterzy.
Warte polecenia przy przeprowadzaniu testu jest ko-
rzystanie z różnych programow dla tego samego zada-
nia, ponieważ w ten sposób prawdopobieństwo zaistnie-
������������
��������
�����������
�����������
���
��������������������
�����������������
������������
���������
Rysunek 5. Drugi plan testu penetracyjnego
nia przypadku False Positive lub False Negative może
zostać znacznie zmniejszone. Alternatywami do Nmap
mogą być na przykład hping2 i SuperScan (Rysunek 4).
Rysunek 6. Widok exploitów
www.hakin9.org
23
 
 
439750502.012.png 439750502.013.png
 
ATAK
Dalsze możliwości uzyskania dokładniejszych infor-
macji o zastosowanym systemie bądź usługach, jest tak
zwany banner grabbing (zbieranie wyświetlanych bane-
rów) albo wymuszanie komunikatów o błędach.
Często dostarczane są w ten sposób ważne informa-
cje, takie jak numer wersji czy uptime (czas, określający
nieprzerwaną pracę systemy, bez restartu). Znając upti-
me można znów dowiedzieć się, jak długo system nie był
updatowany oraz poczynić inne podobne obserwacje.
Kiedy wszystkie istotne informacje na temat testowa-
nego systemu zostaną zebrane, można przystąpić do
właściwej penetracji (Rysunek 5).
Kiedy wiadomo, jakie oprogramowanie zostało użyte,
można przeszukiwać dostępne exploity albo testować
system manualnie.
Celem ataku jest podniesienie poziomu swoich upraw-
nień (Root, Admin) lub wykonanie szkodliwego dla sys-
temu kodu.
Przytaczany w naszym przykładzie system został za-
atakowany za pomocą Metasploit Framework ( www.me-
tasploit.com ), platformy opensource umożliwiającej roz-
wój I wykonywanie exploitów. Metasploit działa zarówno
w systemie Linux/Unix, jak i w Windows i stanowi bardzo
dobrą alternatywę do obydwu produktów komercyjnych:
CANVAS i Core-Impact.
Po tym jak Metasploit zostanie uruchomiony (w tym
przypadku przez interfejs sieciowy; może on jednak rów-
nież zostać wygenerowany za pomocą shella), wybrany
zostaje i skonfigurowany właściwy exploit (zob. Rysunek
6 na poprzedniej stronie).
W naszym scenariuszu wybrany został exploit Micro-
soft RPC DCOM MS03-026. Wykorzystuje on wady RPC
(Remote Procedure Call – zdalne wywołanie procedu-
ry), która jest potrzebna do komunikacji pomiędzy dwo-
ma komputerami.
Dzięki temu jest możliwe to, że program, który użyty
zostanie na komputerze lokalnym, wykona kod na kom-
puterze zdalnym.
Exploit, poprzez specjalnie sformułowane zapytania
powoduje przeciążenie bufora I umożliwia w ten sposób
wykonanie szkodliwego kodu, (wirus Blaster również wy-
korzystywał tą samą lukę bezpieczeństwa) (Rysunek 7).
Dla uproszczenia nie instalowano na testowanym
systemie żadnych aktualizacji czy patchów, przez co
Rysunek 7. Kod źródłowy exploita "Microsoft RPC DCOM MS03-026 "
24
8/2010
439750502.014.png
 
439750502.015.png 439750502.016.png
 
Zgłoś jeśli naruszono regulamin