14
POCZĄTKI
HAKIN9 2/2010
A
plikacje internetowe przeznaczone
do zakupów on-line, uwierzytelnienia
użytkowników lub stosujących po prostu
wszystkie rodzaje zawartości dynamicznej
umożliwiają użytkownikom na interakcję z danymi
zgromadzonymi w bazie danych. W niektórych
aplikacjach dane te mogą być osobiste, więc
zastrzeżone. Jeśli te aplikacje internetowe nie są
zabezpieczone, cała baza danych z poufnymi
informacjami jest naprawdę narażona na
niebezpieczeństwo. Aplikacja internetowa, tak jak
wszystkie systemy informatyczne, musi mieć trzy
cechy charakterystyczne:
• poufność,
• dyspozycyjność,
• integralność.
Zabezpieczenie sieci oraz instalacja zapory
ogniowej nie stanowi ochrony przed atakami
z Internetu, gdyż są one uruchamiane na
porcie 80 (jest to domyślny port dla stron
internetowych), który musi być otwarty.
Regularny audyt aplikacji internetowych, w
celu znalezienia słabych punktów, które mogą
być wykorzystane przez hakerów, jest naglącą
sprawą dla kompletnej strategii ochronnej.
Dlaczego atakować aplikację
internetową?
Dziury w zabezpieczeniu internetowym
umożliwiają wykonanie coraz poważniejszych
RÉGIS SENET
Z ARTYKUŁU
DOWIESZ SIĘ
jak korzystać z w3af,
jak odzyskać i używać
informacji.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy działania stron
internetowych,
znać podstawy działania
ataków internetowych (SQL
Injection/ Code Injection/
wczytanie pliku).
działań przez piratów informatycznych. Czasy,
kiedy pirat strony internetowej zadowalał się
wyświetleniem prostego okna na stronie
użytkownika lub kradzież ciasteczka, już dawno
minęły.
W obecnych czasach piractwo
aplikacji internetowych jest o wiele
niebezpieczniejsze:
• całkowite lub częściowe usunięcie strony
internetowej,
• dostęp do poufnych danych użytkowników.
Jakie są powody takich działań? Piraci
informatyczni są głównie motywowani dwoma
powodami – sławą i pieniędzmi.
Sława
Usunięcie strony wchodzi często w zakres
tej kategorii piractwa. Usunięcie strony może
stanowić oznaczenie swojego terytorium
lub po prostu chęć bycia rozpoznanym
w środowisku piratów poprzez zmiany
naniesione na docelowej stronie WWW.
Pieniądze
Piratów przyciąga często chęć zysku
bezpośredniego lub pośredniego. Bezpośredni
zysk to dochód, który otrzymują dla siebie,
a zysk pośredni określany jest jako strata
dla wybranego przedsiębiorstwa. Kradzież
poufnych informacji, takich jak numery karty
Stopień trudności
Wstęp
do w3af
Piraci informatyczni skupiają coraz częściej swoje wysiłki na
aplikacjach internetowych, aby uzyskać poufne informacje i
wykorzystać wrażliwe dane, takie jak szczegółowe informacje
dotyczące klientów czy numery kart kredytowych.
15
WSTĘP DO W3AF
HAKIN9
2/2010
bankowej, przynosi coraz więcej korzyści
w Sieci.
Jako przykład pośredniego zysku
przypomnijmy wydarzenie z 2006r., kiedy
to ChoicePoint zapłacił 10 milionów
dolarów na skutek kar cywilnych oraz 5
milionów dolarów odszkodowania dla
klientów po tym, jak osobiste katalogi
finansowe ponad 163 000 klientów
zostały skradzione z jego bazy danych.
A w lutym 2003 roku pewien pirat
informatyczny uzyskał ponad pięć
milionów numerów kart kredytowych
dzięki atakowi na aplikacje internetowe.
Jest już najwyższy czas włączenia
stron internetowych do polityki ochronnej
przedsiębiorstw, i to w sposób drakoński.
W tym celu przedstawimy naszym
czytelnikom w3af.
Czym jest w3af?
W3af, skrót od Web Application Attack
and Audit Framework, jest, jak jego
nazwa wskazuje, frameworkiem
umożliwiającym automatyzację audytu
oraz ataków na aplikacje internetowe.
Dla czytelników, którzy znają Métasploit,
możemy porównać w3af do niego
w kwestii testów penetracyjnych na
aplikacjach internetowych.
W3af jest kompletnym frameworkiem
rozprowadzanym w licencji GPL (General
Public License) napisanym w całości
w Pythonie. Jego kod zawiera bardzo
dobre komentarze, umożliwiające
wszystkim potencjalnym deweloperom
utworzenie własnych modułów/
eksploitów.
Ogólnie w3af może być podzielony
na trzy kategorie:
• odkrycie,
• audyt,
• atak.
Pluginy odkrycia mają na celu
wyszukiwanie formularzy, url lub ogólnie
wszelkich potencjalnych punktów
wstrzyknięcia złośliwego kodu. Pająk
jest klasycznym przykładem pluginu
odkrycia. Plugin ten bierze przy wejściu
adres URL i zwraca jeden lub kilka
punktów wstrzyknięcia.
Pluginy audytu oczekują na punkty
wstrzykiwania znalezione przez pluginy
odkrycia i wysyłają specjalnie utworzone
dane do tych ostatnich, aby znaleźć
słabe punkty. Klasycznym przykładem
pluginu audytu jest plugin, który
wyszukuje słabe punkty wstrzyknięcia
SQL.
Pluginy ataku mają na celu
wykorzystanie słabych punktów
znalezionych przez pluginy audytu i
odkrycia. Zwracają one zazwyczaj Shell
na zdalnym serwerze lub zrzut pamięci
zdalnych tabeli w przypadku eksploitów
wstrzyknięcia SQL.
Początek projektu
Projekt w3af narodził się na początku
2007 r. (koniec stycznia, początek
lutego), dzięki pracom jego jedynego
dewelopera Andrés Riancho. Jest
on znanym badaczem w świecie
informatycznym, szczególnie w strefie
aplikacji internetowych. W3af istnieje
obecnie w wersji 1.0-rc1.
Jego głównym celem jest
sprawienie, aby Internet stał się jak
najbezpieczniejszy ze względu na
wszystkie transmisje, które są obecnie tu
dokonywane.
Framework w3af jest przenośny
i może być stosowany na dowolnej
platformie, jeśli obsługuje ona Python
(Linux, WinXP, Vista, OpenBSD, itp.)
W przypadku, gdy środowisko Python
znajduje się na komputerze z w3af, istnieją
trzy sposoby, aby z niego korzystać:
• pobranie i instalacja pakietów
(rozwiązanie w Linuksie),
• pobranie i uruchomienie plików
binarnych (rozwiązanie w Windows),
• użycie zawartości w3af w LiveCD
Samurai.
W naszym artykule użyjemy więc LiveCD
Samurai Web Testing Framework do
korzystania z w3af, w możliwie jak
najlepszych warunkach.
Dla informacji, Samurai Web
Testing Framework jest wstępnie
skonfigurowaną LiveCD przeznaczoną
do testów penetracyjnych stron
internetowych. Ta płyta LiveCD zawiera
najlepsze narzędzia z tej kategorii, czy to
open source czy też bezpłatne. Jest ona
dostępna pod następującym adresem
http://samurai.inguardians.com/.
Cel
Po sukcesie w3af w testach
penetracyjnych Internetu, celem Andrésa
Rysunek 1.
Zakładka Wyszukiwanie zaawansowane
Rysunek 2.
Precyzyjne informacje na temat dziury w zabezpieczeniu
Rysunek 3.
Linia poleceń W3AF
16
POCZATKI
HAKIN9 2/2010
WSTĘP DO W3AF
17
HAKIN9
2/2010
Riancho jest zrobienie z w3af najlepszego
skanera aplikacji internetowych Open
Source oraz najlepszego framework
przeszukiwania słabych punktów
aplikacji internetowych. Według jego
własnych słów, chciałby, aby w3af stał
się nmap Internetu, to znaczy całkowicie
nieodzownym narzędziem.
W3AF i jego możliwości
Zanim zapoznamy się ze szczegółami
technicznymi oferowanymi przez w3af,
musimy sprecyzować, że istnieją dwa
różne sposoby korzystania z w3af:
• poprzez graficzny interfejs,
• z linii poleceń.
Interfejs graficzny w3af jest szczególnie
starannie wykonany i łatwy w użyciu.
Opiera się na bibliotece GTK. Używanie
interfejsu graficznego nie jest
ograniczone i pozwala na korzystanie ze
100% możliwości w3af.
Można także stosować linię
poleceń, aby korzystać z w3af. Linia ta
umożliwia wykonywanie tych samych
poleceń, co poprzez interfejs
graficzny.
Ze strony technicznej w3af dzieli
się na dwie części: rdzeń zarządzający
całością procesów oraz komunikacją
między pluginami. Powiedzieliśmy
wcześniej, że w3af składa się ogólnie z
trzech części: odkrycia, audytu i ataku.
Teraz spróbujemy poznać w3af
bardziej szczegółowo, prezentując
8 oddzielnych kategorii, którymi
dysponuje:
• odkrycie,
• audyt,
• ataki,
• Grep,
• zmiany zapytania,
• unikanie,
• metoda siłowa,
• wyświetlenie.
Jak już wspomnieliśmy celem pluginów
odkrycie jest wyszukiwanie punktów
wstrzykiwania na stronie internetowej (url,
formularze, strony uwierzytelnienia).
Pluginy audytu przejmują punkty
wstrzykiwania znalezione przez pluginy
odkrycia i próbują znaleźć specyficzne
słabe punkty.
Pluginy ataku analizują słabe
punkty znalezione przez pluginy audytu.
Zwracają one zazwyczaj Shell na
zdalnym serwerze lub zrzut pamięci
zdalnych tabeli w przypadku eksploitów
wstrzyknięcia SQL.
Pluginy typu grep analizują zawartość
wszystkich stron i próbują znaleźć słabe
punkty na analizowanych stronach.
Niektóre pluginy będą na przykład
próbowały uzyskać komentarze na
stronach HTML ze słowami kluczowymi,
takimi jak password, admin itp.
Pluginy zmiany zapytań
umożliwiają, zgodnie ze swoją nazwą,
wprowadzenie zmian w zapytaniach
oraz odpowiedziach serwera przed ich
przekierowaniem. Należy zrozumieć, że
dzięki takim narzędziom, można łatwo
obejść kontrole wprowadzone po stronie
klienta przez JavaScript, na przykład,
zarządzanie maksymalnymi długościami
pola dzięki atrybutowi maxlength.
Pluginy unikania próbują obejść
wszystkie zasady określone przez IDS
(Intrusion Detection System) lub IPS
Rysunek 4.
Lista dostępnych poleceń
Rysunek 5.
Analiza wyników w przestrzeni Log
Rysunek 6.
Listing potencjalnych
niebezpieczeństw
16
POCZATKI
HAKIN9 2/2010
WSTĘP DO W3AF
17
HAKIN9
2/2010
(Intrusion Prevention System), aby nie
zostały odkryte.
Pluginy metody siłowej umożliwiają
wykonanie ataków metodą siłową
na przykład na formularzach
identyfikacyjnych.
I wreszcie pluginy wyświetlenia to
sposób w jaki pluginy komunikują z
użytkownikiem. Pluginy wyświetlenia
zapisują dane w pliku tekstowym lub HTML.
Oficjalna dokumentacja
przygotowana przez Andresa Riancho
pokrywa głównie stosowanie w3af z linii
poleceń. Dokumentacja ta jest dostępna
pod następującym adresem: http:
//w3af.sourceforge.net/#documentation.
Aby nie powielać tej doskonałej
pracy, w której wyjaśniono prawie
wszystko, zaprezentujemy po prostu cały
atak via interfejs graficzny.
Zanim przejdziemy do konkretnego
przypadku wykonamy niewyczerpującą
listę kilku pluginów ułożonych kategoriami.
Audyt:
• SQL injection detection,
• XSS detection,
• SSI detection,
• Local file include detection,
• Remote file include detection,
• Buffer Overflow detection,
• OS Commanding detection,
• Response Splitting detection.
Odkrycie:
• Pykto,
• Hmap,
• fingerGoogle,
• googleSpider,
• webSpider.
Grep:
• collectCookies,
• directoryIndexing,
• findComments,
• pathDisclosure,
• strangeHeaders.
Wyświetlenie:
• konsola,
• htmlFile,
• textFile.
Zmiany zapytań:
• sed, edytor zapytań http.
Unikanie:
• reversedSlashes,
• rndCase,
• rndHexEncode.
Atak:
• davShell,
• fileUploadShell,
• googleProxy,
• localFileReader,
• mysqlWebShell.
A teraz wykonamy atak na stronę WWW,
prezentującą artykuły, do których można
dodawać komentarze.
W3AF w praktyce
Aby uzyskać możliwie najbardziej
precyzyjne wyniki, należy dobrze wybrać
opcje oraz pluginy, których zamierzamy
użyć. W naszym przypadku użyjemy
skonfigurowanych profilów do wykonania
naszego skanu.
W3af zawiera cztery domyślne
profile:
• OWASP Top 10 zawiera pluginy
audytu, odkrycia oraz grep,
• Fast Scan zawiera pluginy audytu i
odkrycia,
• Full Audit zawiera pluginy audytu,
metody siłowej, odkrycia i grep,
• Full audit manual disc zawiera
pluginy audytu, metody siłowej,
odkrycia i grep.
Aby uzyskać jasny i precyzyjny wynik,
rozpoczniemy od Full Audit. Należy
po prostu kliknąć Full Audit w menu
Profile, podać adres wybranej strony
internetowej oraz rozpocząć analizę
klikając Start. Teraz wszystkie
pluginy znajdujące się w różnych
wybranych kategoriach uruchomią
się jeden po drugim, aby uzyskać jak
najwięcej wyników. Dzięki zakładce
Log można wykonać szybki podgląd
punktów znalezionych przez w3af
takich jak informacje, błędy lub słabe
punkty.
Można na przykład zobaczyć, że
strona comment.php jest podatna na
Rysunek 7.
Wstrzyknięcie XSS powiodło się
Rysunek 8.
Listing modułów umożliwiających znalezienie różnych dziur
18
POCZATKI
HAKIN9 2/2010
WSTĘP DO W3AF
19
HAKIN9
2/2010
ataki typu wstrzykiwania SQL. Strona ta
będzie więc analizowana w późniejszym
czasie.
W tym samym okienku co
poprzednio można również uzyskać
interpretację graficzną bieżących
analiz, przypominającą schemat na
Rysunku 10. Grafika ta pokazuje nam
wiele szczegółów na przykład czas
(w sekundach) analizy wykonanej
przez w3af lub moduły, które będą
wykonane w czasie rzeczywistym
(audyt.bufferOverflow w momencie
wykonania zrzutu ekranu).
Po kilku minutach analiza wybranej
strony jest zakończona i można
nareszcie analizować wyniki, które
nam proponuje w3af. Dzięki głównemu
paskowi można wykonać szybko
pierwszą prostą analizę na temat
rodzaju informacji przekazanych przez
w3af. Można wybrać Słabe punkty i/lub
Informacja i/lub Błąd.
Możemy także wykonać bardziej
precyzyjne wyszukiwanie dzięki części
ukazanej na Rysunku 5, umożliwiającej
wyszukiwanie słów lub fragmentów
słów w dostępnych informacjach.
Po analizie dzienników log możesz
przejść do zakładki Wyniki, aby uzyskać
bardziej wyczerpujące informacje
na temat poprzednio znalezionych
informacji.
Dzięki temu interfejsowi można
streścić wszystkie informacje
znalezione przez w3af w całej
zawartości wybranej strony internetowej.
Łatwo jest na przykład dzięki niemu
zidentyfikować słabe punkty typu
Wstrzyknięcie XSS, SQL Injection.
Tak jak dla dzienników log można
analizować wyniki w zależności od ich
rodzajów (Słabe punkty, informacje
i problem z konfiguracją), aby mieć
możliwość szybkiego rzucenia okiem
na potencjalne problemy.
Obszerniejsze informacje są
przedstawione w części po prawej
stronie, aby zrozumieć, które strony są
podatne i na jaki rodzaj ataku. Można
także zobaczyć zapytania wysłane do
serwera oraz jego odpowiedzi, aby
wprowadzić możliwe zmiany poprzez
przewidziane do tego pluginy.
Zakładka Eksploit przekazuje
nam informacje o pluginie, któremu
udało się znaleźć słaby punkt do
wykorzystania.
Rysunek 8. pozwala nam zrozumieć,
że słaby punkt umożliwiający
wykorzystanie ataku typu SQL Injection
został znaleziony przez dwa pluginy
mysqlWebShell i sqlmap.
Sprawdzimy więc, czy to co mówi
się o w3af jest prawdą i wykonamy
Rysunek 9.
Zakładka Wyszukiwanie
Rysunek 10.
Interpretacja graficzna bieżących analiz
Rysunek 11.
Wybrana aplikacja internetowa
Rysunek 12.
Interfejs graficzny W3AF
18
POCZATKI
HAKIN9 2/2010
WSTĘP DO W3AF
19
HAKIN9
2/2010
testy ręczne. Według w3af, strona
add_comment.php jest podatna na
ataki typu Wstrzyknięcie XSS, teraz to
udowodnimy.
Komentarz jest podstawowym
wstrzyknięciem XSS, który precyzuje po
prostu, że okno dialogowe otworzy się,
jeśli strona jest naprawdę podatna na
tego typu atak. Zapiszmy komentarz i
wyświetlmy go na Rysunku 15.
Na stronie umożliwiającej
wyświetlenie komentarzy widzimy, że
nasze okienko dialogowe wyświetliło
się, udowadniając, że wstrzyknięcie
XSS zadziałało i że w3af wykonał
dobrze swoją pracę.
Podsumowanie
Jako podsumowanie musimy
powiedzieć, że Web Application Attack
and Audit Framework jest naprawdę
kompletnym, praktycznym i łatwym w
użyciu frameworkiem audytu i analizy
podatności aplikacji internetowych.
Zarówno jego interfejs graficzny,
jak i linia poleceń są kompletne
i umożliwiają precyzyjne audyty
o wysokiej jakości osobom
odpowiedzialnym za bezpieczeństwo
systemów informacyjnych.
Zauważmy również, że w3af
znajduje się także w doskonałej
dystrybucji przeznaczonej w całości
testom penetracyjnym aplikacji
internetowych: Samurai Web Testing
Framework.
Na płycie CD dołączonej do
magazynu dołączony został program
W3AF.
Rysunek 13.
Pierwsza analiza wykonana przez W3AF
Rysunek 14.
Zrzut ekranu
Rysunek 15.
Komentarz do analizy XSS
Régis Senet
Régis Senet jest obecnie studentem czwartego
roku w Wyższej Szkole Informatycznej Supinfo.
Ten pasjonat testów penetracyjnych oraz słabych
punktów w Internecie próbuje odkryć bezpieczeństwo
informatyczne z punktu widzenia przedsiębiorstwa.
Obecnie chce się poświęcić kierunkowi CEH
(etyczny haker), LPT (licencjonowany tester testów
penetracyjnych) i Offensive Security.
Kontakt z autorem: regis.senet@supinfo.com.
Strona domowa: http://w3af.sourceforge.net/.