Drozer Tutorial
Wskazówka dotycząca bug bounty: zarejestruj się w Intigriti, premium platformie bug bounty stworzonej przez hackerów, dla hackerów! Dołącz do nas na https://go.intigriti.com/hacktricks już dziś i zacznij zarabiać nagrody do 100 000 $!
APKs do testowania
Sieve (od mrwlabs)
Części tego samouczka zostały wyciągnięte z dokumentacji Drozer pdf.
Instalacja
Zainstaluj klienta Drozer na swoim hoście. Pobierz go z najnowszych wydań.
Pobierz i zainstaluj APK drozer z najnowszych wydań. W tej chwili jest to to.
Uruchamianie serwera
Agent działa na porcie 31415, musimy przekierować port, aby nawiązać komunikację między klientem Drozer a agentem, oto polecenie, aby to zrobić:
Na koniec, uruchom aplikację i naciśnij przycisk "ON"
I połącz się z nią:
Ciekawe Komendy
Komendy | Opis |
Help MODULE | Pokazuje pomoc dla wybranego modułu |
list | Pokazuje listę wszystkich modułów drozer, które można wykonać w bieżącej sesji. Ukrywa moduły, do których nie masz odpowiednich uprawnień. |
shell | Uruchamia interaktywną powłokę Linux na urządzeniu, w kontekście Agenta. |
clean | Usuwa tymczasowe pliki przechowywane przez drozer na urządzeniu z Androidem. |
load | Ładuje plik zawierający polecenia drozer i wykonuje je w kolejności. |
module | Znajduje i instaluje dodatkowe moduły drozer z Internetu. |
unset | Usuwa nazwaną zmienną, którą drozer przekazuje do wszelkich powłok Linux, które uruchamia. |
set | Przechowuje wartość w zmiennej, która zostanie przekazana jako zmienna środowiskowa do wszelkich powłok Linux uruchamianych przez drozer. |
shell | Uruchamia interaktywną powłokę Linux na urządzeniu, w kontekście Agenta |
run MODULE | Wykonuje moduł drozer |
exploit | Drozer może tworzyć exploity do wykonania na urządzeniu. |
payload | Exploity potrzebują ładunku. |
Pakiet
Znajdź nazwę pakietu filtrując według części nazwy:
Podstawowe informacje o pakiecie:
Przeczytaj Manifest:
Powierzchnia ataku pakietu:
Aktywności: Może uda ci się uruchomić aktywność i obejść jakiś rodzaj autoryzacji, która powinna uniemożliwić jej uruchomienie.
Dostawcy treści: Może uda ci się uzyskać dostęp do prywatnych danych lub wykorzystać jakąś lukę (SQL Injection lub Path Traversal).
Usługi:
is debuggable: Dowiedz się więcej
Aktywności
Wartość komponentu aktywności eksportowanej “android:exported” jest ustawiona na “true” w pliku AndroidManifest.xml:
Lista wyeksportowanych aktywności:
Rozpocznij aktywność:
Możesz rozpocząć aktywność i obejść pewnego rodzaju autoryzację, która powinna uniemożliwić jej uruchomienie.
Możesz również uruchomić wyeksportowaną aktywność z adb:
PackageName to com.example.demo
Exported ActivityName to com.example.test.MainActivity
Content Providers
Ten post był zbyt duży, aby tutaj go umieścić, więc możesz uzyskać do niego dostęp na osobnej stronie tutaj.
Services
Eksportowana usługa jest zadeklarowana w pliku Manifest.xml:
Wewnątrz kodu sprawdź funkcję **handleMessage
**, która otrzyma wiadomość:
Lista usług
Interakcja z usługą
Przykład
Zobacz pomoc drozer dla app.service.send
:
Zauważ, że najpierw wyślesz dane wewnątrz "msg.what", następnie "msg.arg1" i "msg.arg2", powinieneś sprawdzić w kodzie jakie informacje są używane i gdzie.
Używając opcji --extra
, możesz wysłać coś interpretowanego przez "msg.replyTo", a używając --bundle-as-obj
, tworzysz obiekt z podanymi szczegółami.
W następującym przykładzie:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
Odbiorniki rozgłoszeniowe
W sekcji podstawowych informacji o Androidzie możesz zobaczyć, czym jest Odbiornik rozgłoszeniowy.
Po odkryciu tych Odbiorników rozgłoszeniowych powinieneś sprawdzić kod ich. Zwróć szczególną uwagę na funkcję onReceive
, ponieważ będzie ona obsługiwać otrzymane wiadomości.
Wykryj wszystkie odbiorniki rozgłoszeniowe
Sprawdź odbiorniki rozgłoszeniowe aplikacji
Broadcast Interakcje
Wyślij wiadomość
W tym przykładzie wykorzystując FourGoats apk Content Provider możesz wysłać dowolny SMS do dowolnego niepremium miejsca bez pytania użytkownika o pozwolenie.
Jeśli przeczytasz kod, parametry "phoneNumber" i "message" muszą być wysłane do Content Provider.
Is debuggeable
A prodduction APK should never be debuggeable. To oznacza, że możesz przyłączyć debuger java do działającej aplikacji, sprawdzić ją w czasie rzeczywistym, ustawić punkty przerwania, przechodzić krok po kroku, zbierać wartości zmiennych, a nawet je zmieniać. Instytut InfoSec ma doskonały artykuł na temat głębszego badania, gdy twoja aplikacja jest debugowalna i wstrzykiwania kodu w czasie rzeczywistym.
When an application is debuggable, it will appear in the Manifest:
Możesz znaleźć wszystkie aplikacje z możliwością debugowania za pomocą Drozer:
Tutorials
Więcej informacji
Wskazówka dotycząca bug bounty: zarejestruj się w Intigriti, premium platformie bug bounty stworzonej przez hakerów, dla hakerów! Dołącz do nas na https://go.intigriti.com/hacktricks już dziś i zacznij zarabiać nagrody do 100 000 USD!
Last updated