Drozer – narzędzie do analizy aplikacji mobilnych [Android]

14 stycznia 2016, 22:55 | Teksty | Komentarze: 5
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

Artykuł poświęcony jest narzędziu Drozer, które służy do analizy bezpieczeństwa aplikacji mobilnych na platformie Android. Drozer zbudowany jest w układzie klient-serwer i składa się z dwóch elementów:

  • serwer instalowany jako aplikacja mobilna (APK) na urządzeniu/emulatorze Android – agent.apk
  • klient napisany w języku Python instalowany na lokalnym komputerze – drozer-2.3.4-py2.7.egg

W artykule zostało przedstawione podstawowe użycie Drozera do rozpoznania aplikacji mobilnej i określenia wektorów ataku.

Instalacja

1. pobranie Drozer (Python .egg)  (może istnieć potrzeba zmiany numerów wersji, a aktualne pliki znajdziemy tu https://www.mwrinfosecurity.com/products/drozer/community-edition/ )

2.  pobranie agenta Drozer, który będzie instalowany na urzadzeniu z systemem Android lub na emulatorze

3. pobranie przykładowej podatnej aplikacji – Sieve

inna dziurawa aplikacja z cyklu Damn Vulnerable Android App znajduje się tutaj:

4. pobranie i instalacja zależności Pythona potrzebnych do instalacji Drozera

instalacja Drozer

Drozer posiada dwie zależności w pliku requires.txt (w paczce .egg w katalogu EGG-INFO)

Sprawdźmy jaką wersję pyopenssl mamy zainstalowaną w systemie:

Jeżeli nasza wersja jest nowsza niż w pliku requires.txt, należy w nim zmienić numer wersji danego modułu w celu zakończenia procesu instalacji bez błędów. Alternatywnie można wykonać downgrade modułu pyopenssl.

Uruchomienie Drozer

W pierwszym kroku instalujemy aplikację agenta Drozer na emulatorze android.

Uruchamiamy serwer Drozer, który nasłuchuje na polecenia od aplikacji klienckiej Drozer na porcie 31415 TCP na urządzeniu lub emulatorze Android.

Uruchomienie agenta Drozer (serwer nasłuchuje na polcenia na porcie 31415)

Uruchomienie agenta Drozer (serwer nasłuchuje na polcenia na porcie 31415)

Za pomocą adb – Android Debugging Bridge włączamy przekierowanie ruchu TCP z portu 31415 lokalnego komputera na port TCP 31415 emulatora. W ten sposób zestawiamy komunikację pomiędzy klientem Drozer (napisanym w Pythonie), a serwerem Drozer (agentem zainstalowanym na urządzeniu/emulatorze Androida).

Teraz możemy połączyć się z agentem za pomocą polecenia:

Praca z Drozer

Agent Drozer pracuje jako aplikacja mobilna z minimalnymi uprawnieniami (android.permission.INTERNET) niezbędnymi do odbioru poleceń z konsoli. Takie podejście służy do testowania odporności innych aplikacji mobilnych na ataki ze strony agenta Drozer, który ma ograniczone możliwości i symuluje złośliwą aplikację. W trakcie przeprowadzania pentestu aplikacji mobilnej może przekompilować agenta Drozer dodając do niego dodatkowe uprawnienia.

Uprawnienia agenta możemy sprawdzić:

Za pomocą połączenia z agentem możemy również przejść bezpośrednio do wiersza poleceń systemu Android i wykonywać polecenia z ograniczonymi uprawnieniami użytkownika przydzielonego dla aplikacji agent Drozer. Jest to oczekiwane z uwagi na taki przyjęty model architektury platformy Android, gdzie każde aplikacji przydzielany jest osobny sandbox z odseparowanym od innych aplikacji użytkownikiem-właścicielem plików aplikacji oraz oddzielnym procesem wirtualnej maszyny.

Za pomocą polecenia list wyświetlamy listę poleceń, które służą do testowania bezpieczeństwa aplikacji mobilnych. Polecenia te pogrupowane są w zbioru z kilku grup:

  • app – podstawowe polecenia do pentestu aplikacji (rozpoznanie i złośliwe użycie)
  • scanner – narzędzia do skanowania urządzenia lub zasobów aplikacji w poszukiwaniu podatności
  • tools – dodatkowe narzędzia (m.in. md5sum, upload plików itp.)
  • exploit – użycie publicznie znanych exploitów na znane podatności w platformie Android
  • shell – użycie powłoki systemu operacyjnego
  • information – uzyskanie dodatkowych informacji o testowanym urządzeniu/systemie
  • auxilary – interakcja z innymi narzędziami współpracującymi z Drozer

Najbardziej interesujące do testowania aplikacji będą polecenia z pierwszej grupy app:

Podstawowa analiza aplikacji za pomocą Drozer

Pierwsze testy warto przeprowadzić na przygotowanej przez twórców Drozera aplikacji Sieve – prosty menadżer haseł. Poniżej kilka poleceń przeprowadzanych w fazie rekonesansu aplikacji.

1. Wylistowanie zainstalowanych aplikacji i pobrania pełnych ścieżek nazw, filtracja za pomocą przełącznika -f

2. Podstawowe informacje o zainstalowanej aplikacji m.in. uprawnienia wymagane i definiowane przez aplikację, lokalizację pliku aplikacji APK i danych aplikacji

3.Określenie podstawowej powierzchni ataku (wylistowanie jawnie wyeksportowanych komponentów aplikacji i sprawdzenie czy aplikacja jest w trybie debug)

4. Uzyskanie bardziej szczegółowych informacji o komponentach np. dostawcach treści (content providers)

5. Wyszukanie na urządzeniu aplikacji, które posiadają krytyczne z punktu widzenia bezpieczeństwa uprawnienia

6. Warto w czasie wstępnej analizy aplikacji użyć 2 przełączników:

  • u – wylistowanie niewyeksportowanych komponentów
  • i – wyświetlenie informacje o filtrach intencji

Dzięki tym przełącznikom jesteśmy w stanie szybko wyfiltrować komponenty niejawnie wyeksportowane, czyli takie do których możemy uzyskać dostęp poprzez spreparowanie i wysłanie odpowiedniej intencji (intent). O atakach typu Intent spoofing, Intent Sniffing w kolejnych artykułach na temat atakowania komponentów aplikacji mobilnych.

Co dalej?

1.Drozer jest narzędziem rozszerzalnym, który pozwala na pisanie własnych modułów w języku Python i za pomocą mechanizmu refleksji Javy mamy możliwość odwołań do tworzonych i uruchamianych w wirtualnej maszynie obiektów.

2. Drozer zawiera zbiór podstawowych modułów, jednakże możemy pobrać i zainstalować dodatkowe moduły z repozytorium, które nie zostały dołączone do pakietu instalacyjnego Drozer

listowanie dodatkowych modułów wraz z opisem:

instalacja dodatkowego modułu urls

3. Drozer, oprócz funkcji do testowania bezpieczeństwa aplikacji mobilnych, posiada również możliwości typowo ofensywne, które służą do przygotowywania exploitów na urządzenia Android. Aplikacja Drozer zainstalowana na komputerze służy jako serwer C&C do którego łączą się agenci na podatnych i zainfekowanych urządzeniach. Drozer wykorzystywany w ten sposób może pomóc w określeniu poziomu bezpieczeństwa stosowanych w firmie/instytucji służbowych smartfonów.

Podsumowanie

W artykule przedstawiono podstawowe wykorzystanie narzędzia do testowania aplikacji mobilnych na platformie Drozer. Narzędzie to świetnie symuluje złośliwą aplikację, która wykorzystując podatności w zainstalowanych na urządzeniu aplikacjach pozwala pentesterowi na wskazanie słabych punktów. W kolejnych artykułach poświęconych bezpieczeństwu aplikacji mobilnych zostaną przedstawione bardziej zaawansowane przykłady użycia tego narzędzia do atakowania poszczególnych komponentów aplikacji Android.

Bartek Jerzman

 

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



Komentarze

  1. oiup

    Łączymy się z tel. po Wi Fi, GSM czy po kablu?

    Odpowiedz
  2. Maar

    Czy testowaliście Drozera na Nethunterze (wczoraj zainstalowałem na OnePlus One)?

    Odpowiedz
  3. rip rat

    W temacie infekowania andka – atak na włączone wi fi smartfona, instalacja szkodliwego oprogramowania /rat?/, które zaczyna działać po fizycznym restarcie smrtfona /np: pad baterii/ – tel. nie był rotowany.
    Gdzie to „coś” się instaluje / pliki, foldery. Jak to znaleźć? Takiego artykułu / opisu nawet u konkurencji / z3z, niebezpiecznik / jeszcze nie było.

    Odpowiedz
  4. asas

    @rip rat, typowy Antek Kowalski akurat słowo konkurencja jest rażąco nie na miejscu :p u look deeper

    Odpowiedz

Odpowiedz