Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

OWASP Offensive Web Testing Framework (OWTF)

01 marca 2017, 19:22 | Teksty | 1 komentarz

Wstęp

Jak to się dzieje, że mimo iż organizacje wydają duże pieniądze, by zapewnić sobie bezpieczeństwo i angażują wielu specjalistów którzy o to bezpieczeństwo dbają, to cały czas mamy do czynienia z włamaniami i kradzieżami? Jak to się dzieje, że pentesterzy nie są w stanie znaleźć podatności, które znajdują hakerzy?

Na początek, zastanówmy się jaka jest metodyka ataku. Haker zwraca uwagę na jakąś firmę, szuka czegoś, co byłoby dla niego wartościowe, następnie robi co trzeba i kradnie to co chce. Brzmi prosto, przynajmniej w teorii.

A teraz pomyślmy o niedogodnościach, które napotyka pentester zatrudniony przez tę właśnie firmę. Nim zacznie działać, musi ustalić z klientem szczegóły testu, ramy czasowe, zakres zadań. Jest również przez te czynniki ograniczony, musi też sporządzić raport. Systemy są coraz bardziej skomplikowane, więc potrzebuje jeszcze więcej czasu, by przeprowadzić test poprawnie, a to wymaga większych nakładów finansowych, co z kolei nie odpowiada klientowi. Jest to walka nierówna, dlatego, musimy – jako pentesterzy – znaleźć sposób, aby nie zostać w tyle za naszymi przeciwnikami.

Rys.1 Etap testu, w którym negocjujemy z klientem jest dłuższy od tego w którym faktycznie atakujemy aplikację, źródło

Czym jest OWASP OWTF?

OWASP OWTF (Offensive Web Testing Framework) jest projektem, który ma za zadanie sprawić, że testy penetracyjne będą bardziej efektywne i wszechstronne, a (niejednokrotnie) żmudna praca zminimalizowana. Specjaliści powinni mieć więcej czasu, aby wydajniej znajdować i weryfikować podatności, móc zbadać te bardziej skomplikowane, a do obszarów widocznie ryzykownych podejść w sposób bardziej taktyczny i ukierunkowany.
OWTF jest frameworkiem, który gromadzi wszystkie informacje uzyskane z różnych narzędzi, a następnie łączy je, dzieli i podlinkowuje w sposób ułatwiający pentesterowi analizę, exploitację oraz pisanie raportu. Całość ma podążać za wzorcami wyznaczanymi przez standardy, takie jak: The OWASP Testing Guide, PTES (The Penetration Testing Execution Standard) oraz NIST (National Institute of Standards and Technology).

OWTF opiera się na trzech rodzajach rozszerzeń: NET, AUX oraz WEB. To ostatnie jest najlepiej rozwinięte, i to na nim skupimy naszą uwagę.

Rozszerzenia typu WEB możemy podzielić na:

  • Pasywne (ang. Passive) – używają stron trzecich, nie wysyłamy żadnych pakietów do ofiary,
  • Półpasywne (ang. Semi-passive) – wysyłamy pakiety, ale ruch wygląda na normalny, tak, jakby stronę odwiedzał zwykły użytkownik,
  •  Aktywne (ang. Active) – szukają podatności i próbują je wyeksploitować generując niestandardowe zapytania,
  • Grep – mają stanowić dopełnienie półpasywnych, przeszukują zawartość odpowiedzi,
  • Zewnętrzne (ang. External) – ułatwiają eksploitowanie podatności i sporządzenie raportu.

OWTF w swoich rozszerzeniach, posługuje się tymi samymi znanymi narzędziami, do których przyzwyczajeni są pentesterzy – na przykład hydrą, SET’em, metasploitem, metagoofil’em, dnsrecon’em, skipfish’em i wieloma innymi. Nie wprowadza on więc nic przełomowego, ma jedynie za zadanie usprawnić cały proces przeprowadzania testu.

Więcej o frameworku

OWTF ma bardzo przyjemny interfejs graficzny, w którym wydzielone zostało kilka zakładek. W pierwszej z nich, definiujemy adresy które będą testowane. Możemy uruchomić wiele sesji grupujących nasze cele i wygodnie przełączać się pomiędzy nimi.

Rys.2 OWTF pozwala rozszerzeniom na atak wielu celów w tym samym czasie (dokumentacja)

W tym też miejscu, mamy możliwość uruchomienia rozszerzeń. Możemy używać wszystkich metod danych rodzajów, lub wyselekcjonować te nam odpowiadające.

Rys. 3 Rozszerzenia OWTF

Postępy skanowania możemy śledzić w zakładce „Workers”, gdzie każdy cel obsługiwany jest przez osobny wątek, który możemy w dowolnym momencie zatrzymać. Jest to przydatne  na przykład podczas utraty połączenia, lub chęci zmiany kolejności skanów, jeśli nie chcemy stracić dotychczasowych wyników przy następnym uruchomieniu rozszerzenia.

OWTF wyposażony jest we własne proxy, którym posługuje się większość narzędzi uruchamianych w frameworku. Rejestruje on wszystkie transakcje wykonywane podczas pracy. Gromadzi w ten sposób bardzo dużą ilość danych, ale dzięki temu jesteśmy pewni, że nie umknie nam żaden detal.

W sekcji „Transaction log”, pentester może przeszukiwać i selekcjonować wszystkie zebrane transakcje. Może to robić, na przykład: na podstawie  zawartości zapytania, odpowiedzi lub metody, a gdy znajdzie to, czego szuka – jednym przyciskiem może wyświetlić szczegóły danej transakcji, przeanalizować je i wrócić do dalszej pracy.

Rys.4 Podgląd sekcji Transaction Log

OWTF wykorzystuje zebrane transakcje i outputy innych narzędzi (w tym narzędzi do bruteforcing’u katalogów), by odnaleźć jak najwięcej adresów URL testowanej strony, zastępując tym samym proces Spidering’u.

Rys. 5 Wszystkie istniejące adresy możemy przefiltrować, na przykład w celu znalezienia obrazów lub plików o konkretnym rozszerzeniu

Podobnie sytuacja wygląda z wszelkimi metadanymi: nazwiskami, adresami e-mail i innymi powiązanymi danymi, które mogą zostać użyte przy próbie wymierzania kolejnych ciosów, np. podczas ataku słownikowego. Framework okaże się przydatny również podczas przeszukiwania komentarzy, plików CSS lub JS. Jeśli pentester znajdzie coś interesującego, może jednym kliknięciem wyświetlić cały plik HTML w celu analizy.

Gdy rozszerzenia zakończą swoją pracę możemy wyświetlić ich wyniki w postaci indywidualnych raportów.

Rys. 6. Każde rozszerzenie po zakończeniu pracy zwraca testerowi raport.

Zebrane w jednym miejscu raporty, możemy filtrować bazując na różnych kryteriach, a także mapować na podstawie wybranego standardu.

W nich, możemy znaleźć szczegóły przeprowadzonego skanowania i odnośniki do istotnych transakcji, output’ów użytych narzędzi, lub plików zapisanych przez framework na dysku. Mamy także możliwość ponownego uruchomienia rozszerzenia, lub całkowitego zignorowania danego raportu. OWTF ma za zadanie jak najbardziej ułatwić pentesterowi zarządzanie wynikami, aby usprawnić proces tworzenia raportu końcowego. Dlatego też, przy każdym raporcie mamy link do wpisu z OWASP Testing Guide; możemy również zrobić własną notatkę i nadać rangę – oceniając, jak niebezpieczna jest znaleziona podatność.

OWTF chce ułatwić życie pentestera w każdym aspekcie, przykładowo – wpisy z pliku robot.txt są „wyciągane” i przedstawiane w przyjemniejszej formie. Możliwości jest wiele, a wszystkie możesz poznać, jedynie samodzielnie testując framework.

Podsumowanie

OWTF to framework, który ma zwiększyć naszą efektywność i poprawić jakość świadczonej przez nas usługi. Mimo, iż część pentesterów – mając już swoje ulubione narzędzia – podejdzie do tej platformy, jak do narzędzia dla Script kiddie automatyzującego wszystko, mam nadzieję, że niektórzy jednak poświęcą trochę czasu na przetestowanie możliwości OWTF.

– Michał Ogorzałek

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



Komentarze

  1. Jaram się!

    Odpowiedz

Odpowiedz