<summary><strong>Dowiedz się, jak hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Wskazówka dotycząca bug bounty**: **zarejestruj się** na platformie **Intigriti**, premium **platformie bug bounty stworzonej przez hakerów, dla hakerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody do **100 000 USD**!
**[Objection](https://github.com/sensepost/objection)** to narzędzie do eksploracji uruchomieniowej na urządzeniach mobilnych, oparte na [Frida](https://www.frida.re). Zostało stworzone w celu pomocy w ocenie aplikacji mobilnych i ich bezpieczeństwa bez konieczności posiadania urządzenia mobilnego z jailbreakiem lub rootem.
**Uwaga:** To nie jest forma omijania jailbreaka / roota. Korzystając z `objection`, nadal jesteś ograniczony przez wszystkie ograniczenia narzucane przez odpowiedni sandbox, z którym się spotykasz.
**Celem** narzędzia **objection** jest umożliwienie użytkownikowi wywoływania **głównych akcji oferowanych przez Fridę**. W przeciwnym razie użytkownik będzie musiał stworzyć **pojedynczy skrypt dla każdej aplikacji**, którą chce przetestować.
Frida to potężne narzędzie do dynamicznej analizy i manipulacji aplikacji mobilnych. Działa na różnych platformach, w tym na systemie Android. Frida umożliwia interakcję z aplikacją w czasie rzeczywistym, co pozwala na monitorowanie i modyfikację jej działania.
#### Objection
Objection to rozszerzenie Fridy, które dostarcza zestaw narzędzi do testowania penetracyjnego aplikacji mobilnych na platformie Android. Objection ułatwia analizę aplikacji, identyfikację podatności i manipulację zasobami aplikacji.
#### Instalacja
Aby zainstalować Objection, wykonaj następujące kroki:
Aby uruchomić Objection, wykonaj polecenie `objection`. Po uruchomieniu zostanie wyświetlone interaktywne środowisko Objection, w którym można wykonywać różne operacje.
#### Podstawowe funkcje Objection
Objection oferuje wiele przydatnych funkcji, takich jak:
- **Device**: Pozwala na interakcję z urządzeniem mobilnym, na którym działa aplikacja.
- **App**: Umożliwia manipulację aplikacją, taką jak uruchamianie, zatrzymywanie, przeładowywanie itp.
- **Explore**: Pozwala na eksplorację struktury aplikacji i identyfikację podatności.
- **Interact**: Umożliwia interakcję z aplikacją w czasie rzeczywistym, taką jak wywoływanie metod, modyfikowanie zmiennych itp.
- **Inject**: Pozwala na wstrzykiwanie kodu do aplikacji w celu manipulacji jej działaniem.
- **Watch**: Umożliwia monitorowanie zdarzeń w aplikacji, takich jak wywołania metod, zmienne itp.
#### Podsumowanie
Objection to potężne narzędzie, które w połączeniu z Fridą umożliwia penetrację aplikacji mobilnych na platformie Android. Dzięki Objection można analizować aplikacje, identyfikować podatności i manipulować ich działaniem w czasie rzeczywistym.
SSLPinning to mechanizm bezpieczeństwa, który chroni aplikacje mobilne przed atakami typu Man-in-the-Middle (MitM). Polega na sprawdzaniu i weryfikacji certyfikatów SSL podczas nawiązywania połączenia z serwerem.
W przypadku ataku MitM, gdzie atakujący przechwytuje i podszywa się pod komunikację między aplikacją a serwerem, SSLPinning uniemożliwia atakującemu podszywanie się pod serwer poprzez sprawdzenie, czy certyfikat SSL serwera jest poprawny i zaufany.
Obiekt `objection` oferuje narzędzia do obejścia mechanizmu SSLPinning w aplikacjach mobilnych. Dzięki temu możemy analizować i testować aplikacje podatne na ataki MitM.
Root detection, also known as root checking, is a technique used to determine whether a mobile device has been rooted or not. Rooting a device gives the user administrative privileges, allowing them to access and modify system files and settings that are typically restricted.
Wykrywanie roota, znane również jako sprawdzanie roota, to technika używana do określenia, czy urządzenie mobilne zostało zrootowane czy nie. Zrootowanie urządzenia daje użytkownikowi uprawnienia administratora, umożliwiając mu dostęp i modyfikację plików i ustawień systemowych, które zwykle są ograniczone.
Mobile app developers often implement root detection mechanisms in their applications to prevent them from running on rooted devices. This is done to protect the app's integrity and prevent potential security risks that may arise from running on a rooted device.
Twórcy aplikacji mobilnych często implementują mechanizmy wykrywania roota w swoich aplikacjach, aby uniemożliwić ich uruchamianie na zrootowanych urządzeniach. Robią to w celu ochrony integralności aplikacji i zapobiegania potencjalnym zagrożeniom dla bezpieczeństwa, które mogą wynikać z uruchamiania na zrootowanym urządzeniu.
Root detection techniques can vary, but they often involve checking for the presence of certain files or binaries that are commonly associated with rooting. Some apps may also use more advanced techniques, such as checking for the presence of specific system properties or using native code to perform root checks.
Techniki wykrywania roota mogą się różnić, ale często polegają na sprawdzaniu obecności określonych plików lub binarnych, które są powszechnie związane z rootowaniem. Niektóre aplikacje mogą również używać bardziej zaawansowanych technik, takich jak sprawdzanie obecności określonych właściwości systemowych lub korzystanie z kodu natywnego do wykonywania sprawdzania roota.
As a mobile penetration tester, it is important to understand and bypass root detection mechanisms in order to assess the security of an application on rooted devices. This can be done using various techniques, such as modifying the app's code or using tools like Frida or Objection to dynamically analyze and manipulate the app's behavior.
Jako tester penetracji mobilnej ważne jest zrozumienie i obejście mechanizmów wykrywania roota w celu oceny bezpieczeństwa aplikacji na zrootowanych urządzeniach. Można to zrobić za pomocą różnych technik, takich jak modyfikowanie kodu aplikacji lub korzystanie z narzędzi takich jak Frida lub Objection do dynamicznej analizy i manipulacji zachowaniem aplikacji.
The `exec` command in objection allows you to execute shell commands on the target Android device. This can be useful for various purposes during a mobile penetration test.
To use the `exec` command, you need to specify the command you want to execute as an argument. For example, to execute the `ls` command to list the files in the current directory, you can use the following syntax:
W rzeczywistej aplikacji powinniśmy znać wszystkie informacje odkryte w tej części przed użyciem objection dzięki **analizie statycznej**. W każdym razie, w ten sposób może być możliwe zobaczenie **czegoś nowego**, ponieważ tutaj będziesz mieć tylko pełną listę klas, metod i obiektów eksportowanych.
To jest bardzo przydatne, jeśli chcesz **podpiąć metodę klasy i znasz tylko nazwę klasy**. Możesz użyć tej funkcji, aby **znaleźć moduł, do którego należy klasa**, a następnie podpiąć jego metodę.
Z [kodu źródłowego](https://github.com/asvid/FridaApp/blob/master/app/src/main/java/asvid/github/io/fridaapp/MainActivity.kt) aplikacji wiemy, że **funkcja**_**sum()**_**z klasy**_**MainActivity**_ jest uruchamiana **co sekundę**. Spróbujmy **zrzucić wszystkie możliwe informacje** za każdym razem, gdy funkcja jest wywoływana (argumenty, wartość zwracana i ślad wsteczny):
Właściwie uważam, że wszystkie metody klasy MainActivity są naprawdę interesujące, więc **zahookujmy je wszystkie**. Bądź ostrożny, może to **spowodować awarię** aplikacji.
Z kodu źródłowego można zobaczyć, że funkcja _checkPin_ otrzymuje argument typu _String_ i zwraca wartość logiczną. Zmieńmy funkcję tak, aby **zawsze zwracała true**:
Wyszukaj i wyświetl **aktywne instancje określonej klasy Java**, określonej przez pełną nazwę klasy. Wynik to próba uzyskania wartości łańcuchowej dla odkrytego zarzutu, który zwykle **zawiera wartości właściwości obiektu**.
Zrzut pamięci to proces pozyskiwania zawartości pamięci urządzenia mobilnego w celu analizy. Pozwala to na odkrycie poufnych informacji, takich jak klucze szyfrowania, tokeny uwierzytelniające, dane użytkownika itp.
##### Wykorzystanie
Aby wykonać zrzut pamięci, możemy skorzystać z narzędzia Objection. Oto przykładowe polecenie:
Po wykonaniu polecenia, Objection utworzy plik zrzutu pamięci w formacie `.dmp`. Możemy następnie przeglądać ten plik przy użyciu narzędzi do analizy pamięci, takich jak Volatility.
##### Uwaga
Zrzut pamięci może być nielegalny lub naruszać prywatność, jeśli jest wykonywany na urządzeniu bez zgody właściciela. Zawsze pamiętaj o przestrzeganiu prawa i etyki podczas wykonywania zrzutów pamięci.
```bash
memory dump all <localdestination>#Dump all memory
memory dump from_base <base_address><size_to_dump><local_destination>#Dump a part
* Metody hookowania czasami powodują awarie aplikacji (to również z powodu Fridy).
* Nie można używać instancji klas do wywoływania funkcji instancji. Nie można również tworzyć nowych instancji klas i używać ich do wywoływania funkcji.
* Nie ma skrótu (podobnego do sslpinnin), który umożliwiałby hookowanie wszystkich wspólnych metod kryptograficznych używanych przez aplikację w celu zobaczenia zaszyfrowanego tekstu, tekstu jawnego, kluczy, IV i używanych algorytmów.
**Wskazówka dotycząca bug bounty**: **Zarejestruj się** na platformie **Intigriti**, premium platformie **bug bounty stworzonej przez hakerów, dla hakerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody do **100 000 USD**!
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.