mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena
This commit is contained in:
parent
a26e325ef2
commit
3a8f5e6836
@ -19,7 +19,7 @@ Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dost
|
||||
* Telefon z Androidem z obsługiwanym układem Broadcom/Cypress (np. BCM4358/59/43596/4375B1)
|
||||
* Root z Magisk ≥ 24
|
||||
* BusyBox (większość ROM-ów/NetHunter już go zawiera)
|
||||
* ZIP NexMon Magisk lub samodzielnie skompilowana łatka dostarczająca:
|
||||
* NexMon Magisk ZIP lub samodzielnie skompilowana łatka zapewniająca:
|
||||
* `/system/lib*/libnexmon.so`
|
||||
* `/system/xbin/nexutil`
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
|
||||
@ -27,7 +27,7 @@ Ta sama technika ma zastosowanie do każdego telefonu, który ma publicznie dost
|
||||
|
||||
---
|
||||
|
||||
## Flashowanie łatki NexMon (Magisk)
|
||||
## Flashowanie łaty NexMon (Magisk)
|
||||
1. Pobierz ZIP dla swojego dokładnego urządzenia/oprogramowania (przykład: `nexmon-s10.zip`).
|
||||
2. Otwórz Magisk -> Moduły -> Zainstaluj z pamięci -> wybierz ZIP i uruchom ponownie.
|
||||
Moduł kopiuje `libnexmon.so` do `/data/adb/modules/<module>/lib*/` i zapewnia, że etykiety SELinux są poprawne.
|
||||
@ -53,7 +53,7 @@ nexutil -m0; svc wifi enable
|
||||
```
|
||||
Włącz „Rozpocznij tryb monitorowania przy starcie airodump”, aby każde skanowanie Hijacker odbywało się w natywnym trybie monitorowania (`wlan0` zamiast `wlan0mon`).
|
||||
|
||||
Jeśli Hijacker wyświetla błędy przy uruchamianiu, utwórz wymaganą katalog na wspólnej pamięci i ponownie otwórz aplikację:
|
||||
Jeśli Hijacker wyświetla błędy przy uruchomieniu, utwórz wymaganą katalog na wspólnej pamięci i ponownie otwórz aplikację:
|
||||
```bash
|
||||
mkdir -p /storage/emulated/0/Hijacker
|
||||
```
|
||||
@ -69,7 +69,7 @@ airodump-ng --band abg wlan0
|
||||
```
|
||||
---
|
||||
|
||||
## Ręczny one-liner (bez Hijacker)
|
||||
## Ręczny one-liner (bez Hijackera)
|
||||
```bash
|
||||
# Enable monitor + injection
|
||||
svc wifi disable && ifconfig wlan0 up && nexutil -s0x613 -i -v2
|
||||
@ -115,7 +115,7 @@ Wydajność na Galaxy S10 jest porównywalna z zewnętrznymi NIC USB (~20 dBm TX
|
||||
## Rozwiązywanie problemów
|
||||
* `Device or resource busy` – upewnij się, że **usługa Wi-Fi Android jest wyłączona** (`svc wifi disable`) przed włączeniem trybu monitorowania.
|
||||
* `nexutil: ioctl(PRIV_MAGIC) failed` – biblioteka nie jest wstępnie załadowana; sprawdź ścieżkę `LD_PRELOAD`.
|
||||
* Wstrzykiwanie ramek działa, ale nie przechwycono pakietów – niektóre ROM-y twardo blokują kanały; spróbuj `nexutil -c <channel>` lub `iwconfig wlan0 channel <n>`.
|
||||
* Wstrzykiwanie ramek działa, ale nie przechwycono żadnych pakietów – niektóre ROM-y blokują kanały; spróbuj `nexutil -c <channel>` lub `iwconfig wlan0 channel <n>`.
|
||||
* SELinux blokuje bibliotekę – ustaw urządzenie na *Permissive* lub napraw kontekst modułu: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
|
||||
|
||||
---
|
||||
|
BIN
src/images/discount.jpeg
Normal file
BIN
src/images/discount.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 186 KiB |
@ -15,16 +15,16 @@ android-applications-basics.md
|
||||
To główne narzędzie, którego potrzebujesz, aby połączyć się z urządzeniem z Androidem (emulowanym lub fizycznym).\
|
||||
**ADB** umożliwia kontrolowanie urządzeń zarówno przez **USB**, jak i **sieć** z komputera. To narzędzie pozwala na **kopiowanie** plików w obie strony, **instalację** i **odinstalację** aplikacji, **wykonywanie** poleceń powłoki, **tworzenie kopii zapasowych** danych, **odczytywanie** logów, wśród innych funkcji.
|
||||
|
||||
Zobacz poniższą listę [**komend ADB**](adb-commands.md), aby dowiedzieć się, jak używać adb.
|
||||
Zobacz poniższą listę [**poleceń ADB**](adb-commands.md), aby dowiedzieć się, jak używać adb.
|
||||
|
||||
## Smali
|
||||
|
||||
Czasami interesujące jest **modyfikowanie kodu aplikacji**, aby uzyskać dostęp do **ukrytych informacji** (może dobrze obfuskowanych haseł lub flag). Wtedy może być interesujące dekompilowanie apk, modyfikowanie kodu i ponowne kompilowanie go.\
|
||||
[**W tym samouczku** możesz **nauczyć się, jak dekompilować APK, modyfikować kod Smali i ponownie kompilować APK** z nową funkcjonalnością](smali-changes.md). Może to być bardzo przydatne jako **alternatywa dla kilku testów podczas analizy dynamicznej**, które będą przedstawione. Następnie **zawsze miej na uwadze tę możliwość**.
|
||||
[**W tym samouczku** możesz **nauczyć się, jak dekompilować APK, modyfikować kod Smali i ponownie kompilować APK** z nową funkcjonalnością](smali-changes.md). Może to być bardzo przydatne jako **alternatywa dla kilku testów podczas analizy dynamicznej**, które będą przedstawione. Pamiętaj, **aby zawsze mieć na uwadze tę możliwość**.
|
||||
|
||||
## Inne interesujące triki
|
||||
|
||||
- [Podrabianie swojej lokalizacji w Sklepie Play](spoofing-your-location-in-play-store.md)
|
||||
- [Podrabianie lokalizacji w Sklepie Play](spoofing-your-location-in-play-store.md)
|
||||
- [Shizuku Privileged API (dostęp z uprawnieniami bez roota oparty na ADB)](shizuku-privileged-api.md)
|
||||
- **Pobieranie APK**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
||||
- Ekstrakcja APK z urządzenia:
|
||||
@ -53,7 +53,7 @@ Proszę, [**przeczytaj tutaj, aby znaleźć informacje o różnych dostępnych d
|
||||
|
||||
### Szukanie interesujących informacji
|
||||
|
||||
Samo spojrzenie na **ciągi** w APK pozwala na wyszukiwanie **haseł**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **kluczy** **api**, **szyfrowania**, **uuid bluetooth**, **tokenów** i wszystkiego, co może być interesujące... szukaj nawet **tylnych drzwi** do wykonania kodu lub tylnych drzwi uwierzytelniających (hardcodowane dane administratora w aplikacji).
|
||||
Samo spojrzenie na **ciągi** w APK pozwala na wyszukiwanie **haseł**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **kluczy** **api**, **szyfrowania**, **uuid bluetooth**, **tokenów** i wszystkiego, co może być interesujące... szukaj nawet **tylnych drzwi** do wykonania kodu lub tylnych drzwi autoryzacyjnych (hardcodowane dane administratora w aplikacji).
|
||||
|
||||
**Firebase**
|
||||
|
||||
@ -61,26 +61,26 @@ Zwróć szczególną uwagę na **adresy URL Firebase** i sprawdź, czy są źle
|
||||
|
||||
### Podstawowe zrozumienie aplikacji - Manifest.xml, strings.xml
|
||||
|
||||
**Badanie plików _Manifest.xml_ i _strings.xml_ aplikacji może ujawnić potencjalne luki w zabezpieczeniach**. Pliki te można uzyskać za pomocą dekompilatorów lub przez zmianę rozszerzenia pliku APK na .zip, a następnie rozpakowanie go.
|
||||
**Badanie plików _Manifest.xml_ i _strings.xml_ aplikacji może ujawnić potencjalne luki w zabezpieczeniach**. Pliki te można uzyskać za pomocą dekompilatorów lub przez zmianę rozszerzenia pliku APK na .zip, a następnie jego rozpakowanie.
|
||||
|
||||
**Luki** zidentyfikowane w **Manifest.xml** obejmują:
|
||||
|
||||
- **Aplikacje debugowalne**: Aplikacje ustawione jako debugowalne (`debuggable="true"`) w pliku _Manifest.xml_ stanowią ryzyko, ponieważ pozwalają na połączenia, które mogą prowadzić do wykorzystania. Aby uzyskać dalsze informacje na temat tego, jak wykorzystać aplikacje debugowalne, zapoznaj się z samouczkiem na temat znajdowania i wykorzystywania aplikacji debugowalnych na urządzeniu.
|
||||
- **Ustawienia kopii zapasowej**: Atrybut `android:allowBackup="false"` powinien być wyraźnie ustawiony dla aplikacji zajmujących się wrażliwymi informacjami, aby zapobiec nieautoryzowanym kopiom zapasowym danych za pomocą adb, szczególnie gdy debugowanie USB jest włączone.
|
||||
- **Bezpieczeństwo sieci**: Niestandardowe konfiguracje bezpieczeństwa sieci (`android:networkSecurityConfig="@xml/network_security_config"`) w _res/xml/_ mogą określać szczegóły bezpieczeństwa, takie jak przypinanie certyfikatów i ustawienia ruchu HTTP. Przykładem jest zezwolenie na ruch HTTP dla określonych domen.
|
||||
- **Eksportowane aktywności i usługi**: Identyfikacja eksportowanych aktywności i usług w manifeście może uwydatnić komponenty, które mogą być nadużywane. Dalsza analiza podczas testowania dynamicznego może ujawnić, jak wykorzystać te komponenty.
|
||||
- **Eksportowane aktywności i usługi**: Identyfikacja eksportowanych aktywności i usług w manifeście może uwydatnić komponenty, które mogą być nadużywane. Dalsza analiza podczas testów dynamicznych może ujawnić, jak wykorzystać te komponenty.
|
||||
- **Dostawcy treści i FileProviders**: Odkryte dostawcy treści mogą umożliwić nieautoryzowany dostęp lub modyfikację danych. Konfiguracja FileProviders powinna być również dokładnie sprawdzona.
|
||||
- **Odbiorniki rozgłoszeniowe i schematy URL**: Te komponenty mogą być wykorzystywane do eksploatacji, z szczególną uwagą na to, jak zarządzane są schematy URL w kontekście luk wejściowych.
|
||||
- **Odbiorniki rozgłoszeniowe i schematy URL**: Te komponenty mogą być wykorzystywane do eksploatacji, z szczególnym uwzględnieniem sposobu zarządzania schematami URL w kontekście luk wejściowych.
|
||||
- **Wersje SDK**: Atrybuty `minSdkVersion`, `targetSDKVersion` i `maxSdkVersion` wskazują obsługiwane wersje Androida, podkreślając znaczenie nieobsługiwania przestarzałych, podatnych wersji Androida z powodów bezpieczeństwa.
|
||||
|
||||
Z pliku **strings.xml** można odkryć wrażliwe informacje, takie jak klucze API, niestandardowe schematy i inne notatki dewelopera, co podkreśla potrzebę starannego przeglądu tych zasobów.
|
||||
|
||||
### Tapjacking
|
||||
|
||||
**Tapjacking** to atak, w którym **złośliwa** **aplikacja** jest uruchamiana i **pozycjonuje się na wierzchu aplikacji ofiary**. Gdy widocznie zasłania aplikację ofiary, jej interfejs użytkownika jest zaprojektowany w taki sposób, aby oszukać użytkownika, aby wchodził z nią w interakcję, podczas gdy przekazuje interakcję do aplikacji ofiary.\
|
||||
W efekcie **oślepia użytkownika, nie pozwalając mu wiedzieć, że faktycznie wykonuje działania w aplikacji ofiary**.
|
||||
**Tapjacking** to atak, w którym **złośliwa** **aplikacja** jest uruchamiana i **pozycjonuje się na wierzchu aplikacji ofiary**. Gdy widocznie zasłania aplikację ofiary, jej interfejs użytkownika jest zaprojektowany w taki sposób, aby oszukać użytkownika, aby wchodził z nią w interakcje, podczas gdy przekazuje interakcję do aplikacji ofiary.\
|
||||
W efekcie **oślepia użytkownika, nie pozwalając mu wiedzieć, że faktycznie wykonuje akcje w aplikacji ofiary**.
|
||||
|
||||
Znajdź więcej informacji w:
|
||||
Więcej informacji znajdziesz w:
|
||||
|
||||
{{#ref}}
|
||||
tapjacking.md
|
||||
@ -88,7 +88,7 @@ tapjacking.md
|
||||
|
||||
### Przechwytywanie zadań
|
||||
|
||||
**Aktywność** z ustawionym **`launchMode`** na **`singleTask` bez zdefiniowanego `taskAffinity`** jest podatna na przechwytywanie zadań. Oznacza to, że **aplikacja** może być zainstalowana i jeśli zostanie uruchomiona przed prawdziwą aplikacją, może **przechwycić zadanie prawdziwej aplikacji** (więc użytkownik będzie wchodził w interakcję z **złośliwą aplikacją, myśląc, że używa prawdziwej**).
|
||||
**Aktywność** z ustawionym **`launchMode`** na **`singleTask` bez zdefiniowanego `taskAffinity`** jest podatna na przechwytywanie zadań. Oznacza to, że **aplikacja** może być zainstalowana i jeśli zostanie uruchomiona przed prawdziwą aplikacją, może **przechwycić zadanie prawdziwej aplikacji** (więc użytkownik będzie wchodził w interakcje z **złośliwą aplikacją, myśląc, że używa prawdziwej**).
|
||||
|
||||
Więcej informacji w:
|
||||
|
||||
@ -96,7 +96,7 @@ Więcej informacji w:
|
||||
android-task-hijacking.md
|
||||
{{#endref}}
|
||||
|
||||
### Niebezpieczne przechowywanie danych
|
||||
### Niezabezpieczone przechowywanie danych
|
||||
|
||||
**Przechowywanie wewnętrzne**
|
||||
|
||||
@ -118,7 +118,7 @@ Podczas pracy z plikami na **przechowywaniu zewnętrznym**, takim jak karty SD,
|
||||
- Zewnętrzne przechowywanie może być usunięte lub dostępne przez każdą aplikację, co czyni je mniej bezpiecznym.
|
||||
3. **Obsługa danych z zewnętrznego przechowywania**:
|
||||
- Zawsze **przeprowadzaj walidację wejścia** na danych pobranych z zewnętrznego przechowywania. Jest to kluczowe, ponieważ dane pochodzą z nieznanego źródła.
|
||||
- Przechowywanie plików wykonywalnych lub plików klas na zewnętrznym przechowywaniu do dynamicznego ładowania jest zdecydowanie odradzane.
|
||||
- Przechowywanie plików wykonywalnych lub klas na zewnętrznym przechowywaniu do dynamicznego ładowania jest zdecydowanie odradzane.
|
||||
- Jeśli Twoja aplikacja musi pobrać pliki wykonywalne z zewnętrznego przechowywania, upewnij się, że te pliki są **podpisane i weryfikowane kryptograficznie** przed ich dynamicznym załadowaniem. Ten krok jest kluczowy dla utrzymania integralności bezpieczeństwa Twojej aplikacji.
|
||||
|
||||
Zewnętrzne przechowywanie można **uzyskać** w `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
@ -142,11 +142,11 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
||||
```
|
||||
Dobrą metodą na przetestowanie tego jest próba przechwycenia ruchu za pomocą jakiegoś proxy, takiego jak Burp, bez autoryzowania Burp CA na urządzeniu. Możesz również wygenerować za pomocą Burp certyfikat dla innej nazwy hosta i go użyć.
|
||||
|
||||
### Broken Cryptography
|
||||
### Uszkodzona kryptografia
|
||||
|
||||
**Słabe procesy zarządzania kluczami**
|
||||
|
||||
Niektórzy deweloperzy zapisują wrażliwe dane w lokalnej pamięci i szyfrują je kluczem zakodowanym/łatwym do przewidzenia w kodzie. Nie powinno się tego robić, ponieważ pewne odwracanie kodu może pozwolić atakującym na wydobycie poufnych informacji.
|
||||
Niektórzy deweloperzy zapisują wrażliwe dane w lokalnej pamięci i szyfrują je kluczem zakodowanym/łatwym do przewidzenia w kodzie. Nie powinno się tego robić, ponieważ pewne odwracanie może pozwolić atakującym na wydobycie poufnych informacji.
|
||||
|
||||
**Użycie niebezpiecznych i/lub przestarzałych algorytmów**
|
||||
|
||||
@ -182,7 +182,7 @@ Zgodnie z tym [**postem na blogu**](https://clearbluejar.github.io/posts/desuper
|
||||
|
||||
### Zautomatyzowana analiza statyczna kodu
|
||||
|
||||
Narzędzie [**mariana-trench**](https://github.com/facebook/mariana-trench) jest w stanie znaleźć **luki** poprzez **skanowanie** **kodu** aplikacji. To narzędzie zawiera szereg **znanych źródeł** (które wskazują narzędziu **miejsca**, gdzie **wejście** jest **kontrolowane przez użytkownika**), **sinks** (które wskazują narzędziu **niebezpieczne** **miejsca**, gdzie złośliwe dane wejściowe użytkownika mogą spowodować szkody) oraz **reguły**. Te reguły wskazują na **kombinację** **źródeł-sinków**, które wskazują na lukę.
|
||||
Narzędzie [**mariana-trench**](https://github.com/facebook/mariana-trench) jest w stanie znaleźć **luki** poprzez **skanowanie** **kodu** aplikacji. To narzędzie zawiera szereg **znanych źródeł** (które wskazują narzędziu **miejsca**, gdzie **wejście** jest **kontrolowane przez użytkownika**), **sinki** (które wskazują narzędziu **niebezpieczne** **miejsca**, gdzie złośliwe dane wejściowe użytkownika mogą spowodować szkody) oraz **reguły**. Te reguły wskazują na **kombinację** **źródeł-sinków**, która wskazuje na lukę.
|
||||
|
||||
Dzięki tej wiedzy, **mariana-trench przejrzy kod i znajdzie możliwe luki w nim**.
|
||||
|
||||
@ -219,7 +219,7 @@ content-protocol.md
|
||||
|
||||
### Analiza dynamiczna online
|
||||
|
||||
Możesz założyć **darmowe konto** na: [https://appetize.io/](https://appetize.io). Ta platforma pozwala na **przesyłanie** i **wykonywanie** APK, więc jest przydatna do zobaczenia, jak zachowuje się apk.
|
||||
Możesz założyć **darmowe konto** na: [https://appetize.io/](https://appetize.io). Ta platforma pozwala na **przesyłanie** i **wykonywanie** APK, więc jest przydatna do zobaczenia, jak apk się zachowuje.
|
||||
|
||||
Możesz nawet **zobaczyć logi swojej aplikacji** w sieci i połączyć się przez **adb**.
|
||||
|
||||
@ -260,7 +260,7 @@ Musisz aktywować opcje **debugowania**, a byłoby dobrze, gdybyś mógł je **z
|
||||
4. Naciśnij **Numer kompilacji** 7 razy.
|
||||
5. Wróć i znajdziesz **Opcje dewelopera**.
|
||||
|
||||
> Po zainstalowaniu aplikacji pierwszą rzeczą, którą powinieneś zrobić, jest jej przetestowanie i zbadanie, co robi, jak działa i zapoznanie się z nią.\
|
||||
> Po zainstalowaniu aplikacji, pierwszą rzeczą, którą powinieneś zrobić, jest jej przetestowanie i zbadanie, co robi, jak działa i zapoznanie się z nią.\
|
||||
> Sugeruję **przeprowadzenie tej początkowej analizy dynamicznej za pomocą analizy dynamicznej MobSF + pidcat**, abyśmy mogli **nauczyć się, jak działa aplikacja**, podczas gdy MobSF **zbiera** wiele **interesujących** **danych**, które możesz później przeglądać.
|
||||
|
||||
### Niezamierzony wyciek danych
|
||||
@ -270,7 +270,7 @@ Musisz aktywować opcje **debugowania**, a byłoby dobrze, gdybyś mógł je **z
|
||||
Deweloperzy powinni być ostrożni, aby nie ujawniać **informacji debugowania** publicznie, ponieważ może to prowadzić do wycieków wrażliwych danych. Narzędzia [**pidcat**](https://github.com/JakeWharton/pidcat) i `adb logcat` są zalecane do monitorowania logów aplikacji w celu identyfikacji i ochrony wrażliwych informacji. **Pidcat** jest preferowane ze względu na łatwość użycia i czytelność.
|
||||
|
||||
> [!WARNING]
|
||||
> Zauważ, że od **nowszych wersji niż Android 4.0**, **aplikacje mogą uzyskiwać dostęp tylko do swoich własnych logów**. Aplikacje nie mogą uzyskiwać dostępu do logów innych aplikacji.\
|
||||
> Zauważ, że od **nowszych wersji niż Android 4.0**, **aplikacje mogą uzyskiwać dostęp tylko do swoich własnych logów**. Tak więc aplikacje nie mogą uzyskiwać dostępu do logów innych aplikacji.\
|
||||
> Tak czy inaczej, nadal zaleca się **nie logować wrażliwych informacji**.
|
||||
|
||||
**Bufor kopiowania/wklejania**
|
||||
@ -289,7 +289,7 @@ Aplikacje często integrują usługi takie jak Google Adsense, co może nieumyś
|
||||
|
||||
### Bazy danych SQLite
|
||||
|
||||
Większość aplikacji będzie używać **wewnętrznych baz danych SQLite** do zapisywania informacji. Podczas testu penetracyjnego zwróć uwagę na **bazy danych** utworzone, nazwy **tabel** i **kolumn** oraz wszystkie **dane** zapisane, ponieważ możesz znaleźć **wrażliwe informacje** (co byłoby luką).\
|
||||
Większość aplikacji będzie używać **wewnętrznych baz danych SQLite** do zapisywania informacji. Podczas testów penetracyjnych zwróć uwagę na **bazy danych** utworzone, nazwy **tabel** i **kolumn** oraz wszystkie **dane** zapisane, ponieważ możesz znaleźć **wrażliwe informacje** (co byłoby luką).\
|
||||
Bazy danych powinny znajdować się w `/data/data/the.package.name/databases`, jak `/data/data/com.mwr.example.sieve/databases`.
|
||||
|
||||
Jeśli baza danych zapisuje poufne informacje i jest **szyfrowana**, ale możesz **znaleźć** **hasło** wewnątrz aplikacji, to nadal jest to **luka**.
|
||||
@ -298,7 +298,7 @@ Wylicz tabele używając `.tables` i wylicz kolumny tabel używając `.schema <t
|
||||
|
||||
### Drozer (Eksploatacja aktywności, dostawców treści i usług)
|
||||
|
||||
Z [Dokumentacji Drozer](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** pozwala na **przyjęcie roli aplikacji Android** i interakcję z innymi aplikacjami. Może robić **wszystko, co może zrobić zainstalowana aplikacja**, takie jak korzystanie z mechanizmu komunikacji międzyprocesowej Androida (IPC) i interakcję z systemem operacyjnym.\
|
||||
Z [Dokumentacji Drozer](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** pozwala na **przyjęcie roli aplikacji Android** i interakcję z innymi aplikacjami. Może robić **wszystko, co może zrobić zainstalowana aplikacja**, takie jak korzystanie z mechanizmu komunikacji międzyprocesowej Androida (IPC) i interakcja z systemem operacyjnym.\
|
||||
Drozer jest przydatnym narzędziem do **eksploatacji eksportowanych aktywności, eksportowanych usług i dostawców treści**, jak dowiesz się w kolejnych sekcjach.
|
||||
|
||||
### Eksploatacja eksportowanych aktywności
|
||||
@ -314,8 +314,8 @@ Gdy aktywność jest eksportowana, możesz wywołać jej ekran z zewnętrznej ap
|
||||
|
||||
Możesz również uruchomić eksportowaną aktywność z adb:
|
||||
|
||||
- PackageName to com.example.demo
|
||||
- Exported ActivityName to com.example.test.MainActivity
|
||||
- Nazwa pakietu to com.example.demo
|
||||
- Nazwa eksportowanej aktywności to com.example.test.MainActivity
|
||||
```bash
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
@ -335,7 +335,7 @@ Jeśli tapjacking nie jest zapobiegany, możesz nadużyć eksportowanej aktywno
|
||||
### Wykorzystywanie dostawców treści - Uzyskiwanie dostępu i manipulowanie wrażliwymi informacjami
|
||||
|
||||
[**Przeczytaj to, jeśli chcesz odświeżyć, czym jest dostawca treści.**](android-applications-basics.md#content-provider)\
|
||||
Dostawcy treści są zasadniczo używani do **dzielenia się danymi**. Jeśli aplikacja ma dostępne dostawców treści, możesz być w stanie **wyodrębnić wrażliwe** dane z nich. Interesujące jest również testowanie możliwych **iniekcji SQL** i **przechodzenia po ścieżkach**, ponieważ mogą być podatne.
|
||||
Dostawcy treści są zasadniczo używani do **dzielenia się danymi**. Jeśli aplikacja ma dostępne dostawców treści, możesz być w stanie **wyodrębnić wrażliwe** dane z nich. Interesujące jest również testowanie możliwych **SQL injection** i **Path Traversals**, ponieważ mogą być podatne.
|
||||
|
||||
[**Dowiedz się, jak wykorzystywać dostawców treści za pomocą Drozer.**](drozer-tutorial/index.html#content-providers)
|
||||
|
||||
@ -352,7 +352,7 @@ Usługa to zasadniczo coś, co **może odbierać dane**, **przetwarzać** je i *
|
||||
[**Przeczytaj to, jeśli chcesz odświeżyć, czym jest odbiornik rozgłoszeniowy.**](android-applications-basics.md#broadcast-receivers)\
|
||||
Pamiętaj, że działania odbiornika rozgłoszeniowego zaczynają się w metodzie `onReceive`.
|
||||
|
||||
Odbiornik rozgłoszeniowy będzie czekał na określony typ wiadomości. W zależności od tego, jak odbiornik obsługuje wiadomość, może być podatny.\
|
||||
Odbiornik rozgłoszeniowy będzie czekał na rodzaj wiadomości. W zależności od tego, jak odbiornik obsługuje wiadomość, może być podatny.\
|
||||
[**Dowiedz się, jak wykorzystywać odbiorniki rozgłoszeniowe za pomocą Drozer.**](#exploiting-broadcast-receivers)
|
||||
|
||||
### **Wykorzystywanie schematów / głębokich linków**
|
||||
@ -362,7 +362,7 @@ Możesz **otworzyć** zadeklarowany **schemat** za pomocą **adb** lub **przegl
|
||||
```bash
|
||||
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
|
||||
```
|
||||
_Uwaga, że możesz **pominąć nazwę pakietu**, a urządzenie mobilne automatycznie otworzy aplikację, która powinna otworzyć ten link._
|
||||
_Uwaga, że możesz **pominąć nazwę pakietu**, a urządzenie mobilne automatycznie wywoła aplikację, która powinna otworzyć ten link._
|
||||
```html
|
||||
<!-- Browser regular link -->
|
||||
<a href="scheme://hostname/path?param=value">Click me</a>
|
||||
@ -382,7 +382,7 @@ Za każdym razem, gdy znajdziesz deep link, sprawdź, czy **nie odbiera wrażliw
|
||||
**Parametry w ścieżce**
|
||||
|
||||
Musisz również sprawdzić, czy jakikolwiek deep link używa parametru wewnątrz ścieżki URL, takiego jak: `https://api.example.com/v1/users/{username}`, w takim przypadku możesz wymusić przejście przez ścieżkę, uzyskując dostęp do czegoś takiego jak: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Zauważ, że jeśli znajdziesz poprawne punkty końcowe w aplikacji, możesz być w stanie spowodować **Open Redirect** (jeśli część ścieżki jest używana jako nazwa domeny), **przejęcie konta** (jeśli możesz zmodyfikować dane użytkowników bez tokena CSRF, a podatny punkt końcowy używał poprawnej metody) i inne podatności. Więcej [informacji na ten temat tutaj](http://dphoeniixx.com/2020/12/13-2/).
|
||||
Zauważ, że jeśli znajdziesz poprawne punkty końcowe w aplikacji, możesz być w stanie spowodować **Open Redirect** (jeśli część ścieżki jest używana jako nazwa domeny), **przejęcie konta** (jeśli możesz modyfikować dane użytkowników bez tokena CSRF, a podatny punkt końcowy używał poprawnej metody) i inne podatności. Więcej [informacji na ten temat tutaj](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Więcej przykładów**
|
||||
|
||||
@ -412,17 +412,17 @@ Jeśli używasz **Flutter**, musisz postępować zgodnie z instrukcjami na [**te
|
||||
|
||||
#### Obejście SSL Pinning
|
||||
|
||||
Gdy SSL Pinning jest wdrożone, konieczne staje się jego obejście, aby zainspirować ruch HTTPS. Istnieje kilka metod w tym celu:
|
||||
Gdy SSL Pinning jest wdrożone, konieczne staje się jego obejście, aby zainspirować ruch HTTPS. Istnieje wiele metod w tym celu:
|
||||
|
||||
- Automatycznie **zmodyfikuj** **apk**, aby **obejść** SSLPinning za pomocą [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Największą zaletą tej opcji jest to, że nie będziesz potrzebować roota, aby obejść SSL Pinning, ale będziesz musiał usunąć aplikację i zainstalować nową, co nie zawsze działa.
|
||||
- Możesz użyć **Frida** (omówionej poniżej), aby obejść tę ochronę. Oto przewodnik, jak używać Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
- Możesz użyć **Frida** (omówione poniżej), aby obejść tę ochronę. Oto przewodnik, jak używać Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
- Możesz także spróbować **automatycznie obejść SSL Pinning** za pomocą [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
- Możesz także spróbować **automatycznie obejść SSL Pinning** za pomocą **analizy dynamicznej MobSF** (wyjaśnionej poniżej)
|
||||
- Jeśli nadal uważasz, że istnieje jakiś ruch, którego nie przechwytujesz, możesz spróbować **przekierować ruch do burp za pomocą iptables**. Przeczytaj ten blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
#### Szukanie powszechnych podatności w sieci
|
||||
|
||||
Ważne jest również, aby szukać powszechnych podatności w aplikacji. Szczegółowe informacje na temat identyfikacji i łagodzenia tych podatności wykraczają poza zakres tego podsumowania, ale są szeroko omówione w innych miejscach.
|
||||
Ważne jest również, aby szukać powszechnych podatności w aplikacji. Szczegółowe informacje na temat identyfikacji i łagodzenia tych podatności wykraczają poza zakres tego podsumowania, ale są szeroko omówione gdzie indziej.
|
||||
|
||||
### Frida
|
||||
|
||||
@ -432,7 +432,7 @@ Jeśli chcesz przeprowadzić pentesting aplikacji Android, musisz wiedzieć, jak
|
||||
|
||||
- Naucz się, jak używać Frida: [**Samouczek Frida**](frida-tutorial/index.html)
|
||||
- Nieco "GUI" do działań z Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
- Ojection jest świetne do automatyzacji użycia Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
- Ojection jest świetny do automatyzacji użycia Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
- Możesz znaleźć kilka niesamowitych skryptów Frida tutaj: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
- Spróbuj obejść mechanizmy anty-debugging / anty-frida, ładując Frida, jak wskazano w [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (narzędzie [linjector](https://github.com/erfur/linjector-rs))
|
||||
|
||||
@ -455,7 +455,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
|
||||
```
|
||||
### **Wrażliwe dane w Keystore**
|
||||
|
||||
W Androidzie Keystore to najlepsze miejsce do przechowywania wrażliwych danych, jednak przy wystarczających uprawnieniach **możliwe jest ich uzyskanie**. Ponieważ aplikacje mają tendencję do przechowywania tutaj **wrażliwych danych w postaci niezaszyfrowanej**, testy penetracyjne powinny to sprawdzić jako użytkownik root lub ktoś z fizycznym dostępem do urządzenia mógłby być w stanie ukraść te dane.
|
||||
W systemie Android Keystore to najlepsze miejsce do przechowywania wrażliwych danych, jednak przy wystarczających uprawnieniach **możliwe jest ich uzyskanie**. Ponieważ aplikacje mają tendencję do przechowywania tutaj **wrażliwych danych w postaci niezaszyfrowanej**, testy penetracyjne powinny to sprawdzać jako użytkownik root lub ktoś z fizycznym dostępem do urządzenia mógłby być w stanie ukraść te dane.
|
||||
|
||||
Nawet jeśli aplikacja przechowuje dane w keystore, dane powinny być zaszyfrowane.
|
||||
|
||||
@ -477,7 +477,7 @@ Jednakże, jeśli ten zrzut ekranu zawiera **wrażliwe informacje**, ktoś z dos
|
||||
|
||||
Zrzuty ekranu są zazwyczaj przechowywane w: **`/data/system_ce/0/snapshots`**
|
||||
|
||||
Android zapewnia sposób na **zapobieganie przechwytywaniu zrzutów ekranu, ustawiając parametr układu FLAG_SECURE**. Używając tej flagi, zawartość okna jest traktowana jako bezpieczna, co zapobiega jej pojawianiu się w zrzutach ekranu lub wyświetlaniu na niezabezpieczonych ekranach.
|
||||
Android zapewnia sposób na **zapobieganie przechwytywaniu zrzutów ekranu, ustawiając parametr układu FLAG_SECURE**. Używając tej flagi, zawartość okna jest traktowana jako bezpieczna, co zapobiega jej pojawianiu się w zrzutach ekranu lub wyświetlaniu na niezabezpieczonych wyświetlaczach.
|
||||
```bash
|
||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
```
|
||||
@ -500,13 +500,13 @@ Niebezpieczeństwo polega na umożliwieniu atakującym wywoływania nieeksportow
|
||||
|
||||
### Wstrzyknięcia po stronie klienta Android i inne
|
||||
|
||||
Prawdopodobnie znasz ten rodzaj luk z sieci. Musisz być szczególnie ostrożny z tymi lukami w aplikacji Android:
|
||||
Prawdopodobnie znasz ten rodzaj podatności z sieci. Musisz być szczególnie ostrożny z tymi podatnościami w aplikacji Android:
|
||||
|
||||
- **SQL Injection:** Przy obsłudze dynamicznych zapytań lub dostawców treści upewnij się, że używasz zapytań parametryzowanych.
|
||||
- **Wstrzykiwanie SQL:** Przy obsłudze dynamicznych zapytań lub dostawców treści upewnij się, że używasz zapytań parametryzowanych.
|
||||
- **Wstrzykiwanie JavaScript (XSS):** Sprawdź, czy obsługa JavaScript i wtyczek jest wyłączona dla wszelkich WebViews (domyślnie wyłączona). [Więcej informacji tutaj](webview-attacks.md#javascript-enabled).
|
||||
- **Inkluzja lokalnych plików:** WebViews powinny mieć wyłączony dostęp do systemu plików (domyślnie włączony) - `(webview.getSettings().setAllowFileAccess(false);)`. [Więcej informacji tutaj](webview-attacks.md#javascript-enabled).
|
||||
- **Eternal cookies**: W kilku przypadkach, gdy aplikacja android kończy sesję, ciasteczko nie jest unieważniane lub może być nawet zapisywane na dysku.
|
||||
- [**Secure Flag** w ciasteczkach](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
|
||||
- **Wieczne ciasteczka**: W wielu przypadkach, gdy aplikacja androidowa kończy sesję, ciastko nie jest unieważniane lub może być nawet zapisywane na dysku.
|
||||
- [**Flaga zabezpieczeń** w ciastkach](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
|
||||
|
||||
---
|
||||
|
||||
@ -518,13 +518,13 @@ Prawdopodobnie znasz ten rodzaj luk z sieci. Musisz być szczególnie ostrożny
|
||||
|
||||
.png>)
|
||||
|
||||
**Ocena podatności aplikacji** przy użyciu ładnego interfejsu opartego na sieci. Możesz również przeprowadzić analizę dynamiczną (ale musisz przygotować środowisko).
|
||||
**Ocena podatności aplikacji** przy użyciu ładnego interfejsu internetowego. Możesz również przeprowadzić analizę dynamiczną (ale musisz przygotować środowisko).
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf
|
||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
```
|
||||
Zauważ, że MobSF może analizować **Android**(apk)**, IOS**(ipa) **i Windows**(apx) aplikacje (_Aplikacje Windows muszą być analizowane z MobSF zainstalowanym na hoście Windows_).\
|
||||
Ponadto, jeśli stworzysz plik **ZIP** z kodem źródłowym aplikacji **Android** lub **IOS** (przejdź do folderu głównego aplikacji, wybierz wszystko i stwórz plik ZIP), również będzie w stanie go przeanalizować.
|
||||
Ponadto, jeśli stworzysz plik **ZIP** z kodem źródłowym aplikacji **Android** lub **IOS** (przejdź do folderu głównego aplikacji, wybierz wszystko i stwórz plik ZIP), będzie w stanie również go przeanalizować.
|
||||
|
||||
MobSF pozwala również na **diff/Compare** analizy oraz na integrację z **VirusTotal** (będziesz musiał ustawić swój klucz API w _MobSF/settings.py_ i włączyć go: `VT_ENABLED = TRUE` `VT_API_KEY = <Twój klucz API>` `VT_UPLOAD = TRUE`). Możesz również ustawić `VT_UPLOAD` na `False`, wtedy **hash** zostanie **przesłany** zamiast pliku.
|
||||
|
||||
@ -535,16 +535,16 @@ MobSF pozwala również na **diff/Compare** analizy oraz na integrację z **Viru
|
||||
|
||||
- **Zrzucić dane aplikacji** (URL-e, logi, schowek, zrzuty ekranu wykonane przez Ciebie, zrzuty ekranu wykonane przez "**Exported Activity Tester**", e-maile, bazy danych SQLite, pliki XML i inne utworzone pliki). Wszystko to odbywa się automatycznie, z wyjątkiem zrzutów ekranu, musisz nacisnąć, gdy chcesz zrzut ekranu lub musisz nacisnąć "**Exported Activity Tester**", aby uzyskać zrzuty ekranu wszystkich eksportowanych aktywności.
|
||||
- Przechwytywać **ruch HTTPS**
|
||||
- Używać **Frida** do uzyskiwania **informacji w czasie rzeczywistym**
|
||||
- Używać **Frida** do uzyskania **informacji w czasie rzeczywistym**
|
||||
|
||||
Od wersji Android **> 5**, automatycznie **uruchomi Frida** i ustawi globalne ustawienia **proxy** do **przechwytywania** ruchu. Będzie przechwytywać ruch tylko z testowanej aplikacji.
|
||||
|
||||
**Frida**
|
||||
|
||||
Domyślnie będzie również używać niektórych skryptów Frida do **obejścia SSL pinning**, **wykrywania root** i **wykrywania debuggera** oraz do **monitorowania interesujących API**.\
|
||||
Domyślnie użyje również niektórych skryptów Frida do **obejścia SSL pinning**, **wykrywania root** i **wykrywania debuggera** oraz do **monitorowania interesujących API**.\
|
||||
MobSF może również **wywoływać eksportowane aktywności**, robić **zrzuty ekranu** z nich i **zapisywać** je do raportu.
|
||||
|
||||
Aby **rozpocząć** testowanie dynamiczne, naciśnij zielony przycisk: "**Start Instrumentation**". Naciśnij "**Frida Live Logs**", aby zobaczyć logi generowane przez skrypty Frida i "**Live API Monitor**", aby zobaczyć wszystkie wywołania do podłączonych metod, przekazywane argumenty i zwracane wartości (to pojawi się po naciśnięciu "Start Instrumentation").\
|
||||
Aby **rozpocząć** testy dynamiczne, naciśnij zielony przycisk: "**Start Instrumentation**". Naciśnij "**Frida Live Logs**", aby zobaczyć logi generowane przez skrypty Frida i "**Live API Monitor**", aby zobaczyć wszystkie wywołania do podłączonych metod, przekazywane argumenty i zwracane wartości (to pojawi się po naciśnięciu "Start Instrumentation").\
|
||||
MobSF pozwala również na załadowanie własnych **skryptów Frida** (aby wysłać wyniki swoich skryptów Frida do MobSF, użyj funkcji `send()`). Ma również **kilka wcześniej napisanych skryptów**, które możesz załadować (możesz dodać więcej w `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), wystarczy **je wybrać**, nacisnąć "**Load**" i nacisnąć "**Start Instrumentation**" (będziesz mógł zobaczyć logi tych skryptów w "**Frida Live Logs**").
|
||||
|
||||
.png>)
|
||||
@ -558,11 +558,11 @@ Ponadto masz kilka dodatkowych funkcji Frida:
|
||||
- **Search Class Pattern**: Wyszukaj klasy według wzoru
|
||||
- **Trace Class Methods**: **Śledź** **całą klasę** (zobacz wejścia i wyjścia wszystkich metod klasy). Pamiętaj, że domyślnie MobSF śledzi kilka interesujących metod API Androida.
|
||||
|
||||
Gdy wybierzesz dodatkowy moduł, który chcesz użyć, musisz nacisnąć "**Start Intrumentation**" i zobaczysz wszystkie wyniki w "**Frida Live Logs**".
|
||||
Gdy wybierzesz moduł pomocniczy, który chcesz użyć, musisz nacisnąć "**Start Intrumentation**" i zobaczysz wszystkie wyniki w "**Frida Live Logs**".
|
||||
|
||||
**Shell**
|
||||
|
||||
Mobsf oferuje również powłokę z niektórymi poleceniami **adb**, **komendami MobSF** i powszechnymi **poleceniami powłoki** na dole strony analizy dynamicznej. Niektóre interesujące polecenia:
|
||||
Mobsf oferuje również powłokę z niektórymi poleceniami **adb**, **poleceniami MobSF** i powszechnymi **poleceniami powłoki** na dole strony analizy dynamicznej. Niektóre interesujące polecenia:
|
||||
```bash
|
||||
help
|
||||
shell ls
|
||||
@ -681,9 +681,9 @@ Zauważ, że w zależności od usługi i konfiguracji, której używasz do obfus
|
||||
|
||||
### [ProGuard](<https://en.wikipedia.org/wiki/ProGuard_(software)>)
|
||||
|
||||
Z [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** to narzędzie wiersza poleceń typu open source, które zmniejsza, optymalizuje i obfuskacje kod Java. Potrafi optymalizować bajty kodu oraz wykrywać i usuwać nieużywane instrukcje. ProGuard jest oprogramowaniem darmowym i jest dystrybuowane na licencji GNU General Public License, wersja 2.
|
||||
Z [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** to narzędzie wiersza poleceń typu open source, które zmniejsza, optymalizuje i obfuskowało kod Java. Potrafi optymalizować bajty kodu oraz wykrywać i usuwać nieużywane instrukcje. ProGuard jest oprogramowaniem darmowym i jest dystrybuowane na licencji GNU General Public License, wersja 2.
|
||||
|
||||
ProGuard jest dystrybuowane jako część Android SDK i działa podczas budowania aplikacji w trybie release.
|
||||
ProGuard jest dystrybuowane jako część Android SDK i działa podczas budowania aplikacji w trybie wydania.
|
||||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
@ -713,7 +713,7 @@ To **ogólny deobfuskator androidowy.** Simplify **wirtualnie wykonuje aplikacj
|
||||
|
||||
### [APKiD](https://github.com/rednaga/APKiD)
|
||||
|
||||
APKiD dostarcza informacji o **tym, jak APK zostało stworzone**. Identyfikuje wiele **kompilatorów**, **packerów**, **obfuskatorów** i innych dziwnych rzeczy. To [_PEiD_](https://www.aldeid.com/wiki/PEiD) dla Androida.
|
||||
APKiD dostarcza informacji o **tym, jak stworzono APK**. Identyfikuje wiele **kompilatorów**, **packerów**, **obfuskatorów** i innych dziwnych rzeczy. To [_PEiD_](https://www.aldeid.com/wiki/PEiD) dla Androida.
|
||||
|
||||
### Manual
|
||||
|
||||
@ -723,7 +723,7 @@ APKiD dostarcza informacji o **tym, jak APK zostało stworzone**. Identyfikuje w
|
||||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4b to wirtualna maszyna bezpieczeństwa Androida oparta na ubuntu-mate, która zawiera zbiór najnowszych frameworków, tutoriali i laboratoriów od różnych geeków i badaczy bezpieczeństwa do inżynierii wstecznej i analizy złośliwego oprogramowania.
|
||||
AndroL4b to wirtualna maszyna bezpieczeństwa Androida oparta na ubuntu-mate, która zawiera zbiór najnowszych frameworków, poradników i laboratoriów od różnych geeków i badaczy bezpieczeństwa do inżynierii wstecznej i analizy złośliwego oprogramowania.
|
||||
|
||||
## References
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Shizuku to usługa open-source, która **uruchamia uprzywilejowany proces Java za pomocą `app_process`** i udostępnia wybrane **API systemu Android przez Binder**. Ponieważ proces jest uruchamiany z tymi samymi **uprawnieniami UID `shell`, które wykorzystuje ADB**, każda aplikacja (lub terminal), która łączy się z eksportowanym interfejsem AIDL, może wykonywać wiele działań, które normalnie wymagają **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, operacji I/O na plikach w `/data`,** itd. – **bez rootowania urządzenia**.
|
||||
Shizuku to usługa open-source, która **uruchamia uprzywilejowany proces Java za pomocą `app_process`** i udostępnia wybrane **API systemu Android przez Binder**. Ponieważ proces jest uruchamiany z tymi samymi **uprawnieniami UID `shell`, które wykorzystuje ADB**, każda aplikacja (lub terminal), która łączy się z eksportowanym interfejsem AIDL, może wykonywać wiele działań, które normalnie wymagają **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, operacji I/O w `/data`,** itd. – **bez rootowania urządzenia**.
|
||||
|
||||
Typowe przypadki użycia:
|
||||
* Audyt bezpieczeństwa z nie-rootowanego urządzenia
|
||||
@ -60,7 +60,7 @@ Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
|
||||
Zarządzana lista ponad **170 aplikacji z obsługą Shizuku** jest dostępna na [awesome-shizuku](https://github.com/timschneeb/awesome-shizuku).
|
||||
|
||||
---
|
||||
## 3. Rish – podwyższony shell w Termux
|
||||
## 3. Rish – podniesiona powłoka w Termux
|
||||
Ekran ustawień Shizuku udostępnia **„Użyj Shizuku w aplikacjach terminalowych”**. Włączenie tej opcji pobiera *rish* (`/data/local/tmp/rish`).
|
||||
```bash
|
||||
pkg install wget
|
||||
@ -91,7 +91,7 @@ logcat -d | grep -iE "(error|exception)"
|
||||
```bash
|
||||
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
|
||||
```
|
||||
* Masowe usuwanie zbędnych aplikacji (przykład):
|
||||
* Masowe usuwanie (przykład):
|
||||
```bash
|
||||
pm uninstall --user 0 com.miui.weather2
|
||||
```
|
||||
@ -102,14 +102,14 @@ pm uninstall --user 0 com.miui.weather2
|
||||
Organizacje mogą to zablokować za pomocą MDM lub poprzez `settings put global development_settings_enabled 0`.
|
||||
2. Usługa rejestruje się pod nazwą `moe.shizuku.privileged.api`.
|
||||
Proste `adb shell service list | grep shizuku` (lub zasada bezpieczeństwa punktu końcowego) wykrywa jej obecność.
|
||||
3. Możliwości są ograniczone do tego, co użytkownik `shell` już może zrobić – **nie jest to root**.
|
||||
3. Możliwości są ograniczone do tego, co użytkownik `shell` może już zrobić – **nie jest to root**.
|
||||
Wrażliwe API, które wymagają użytkownika `system` lub `root`, są nadal niedostępne.
|
||||
4. Sesje **nie przetrwają ponownego uruchomienia**, chyba że urządzenie jest zrootowane, a Shizuku jest skonfigurowane jako demon startowy.
|
||||
4. Sesje **nie przetrwają ponownego uruchomienia** chyba, że urządzenie jest zrootowane, a Shizuku jest skonfigurowane jako demon startowy.
|
||||
|
||||
---
|
||||
## 5. Łagodzenie
|
||||
* Wyłącz debugowanie USB/bezprzewodowe na urządzeniach produkcyjnych.
|
||||
* Monitoruj usługi Binder ujawniające `moe.shizuku.privileged.api`.
|
||||
* Monitoruj usługi Binder, które udostępniają `moe.shizuku.privileged.api`.
|
||||
* Użyj polityk SELinux (Android enterprise), aby zablokować interfejs AIDL z niezarządzanych aplikacji.
|
||||
|
||||
---
|
||||
|
@ -10,13 +10,12 @@ Jednak nie jest to tak proste, jak po prostu pobranie IPA, ponowne podpisanie go
|
||||
|
||||
Na starym urządzeniu z jailbreakiem możliwe jest zainstalowanie IPA, **odszyfrowanie go za pomocą ulubionego narzędzia** (takiego jak Iridium lub frida-ios-dump) i pobranie go z powrotem z urządzenia. Chociaż, jeśli to możliwe, zaleca się po prostu poprosić klienta o odszyfrowane IPA.
|
||||
|
||||
|
||||
## Uzyskanie odszyfrowanego IPA
|
||||
|
||||
### Pobierz to od Apple
|
||||
### Pobierz z Apple
|
||||
|
||||
1. Zainstaluj aplikację do testowania na iPhonie
|
||||
2. Zainstaluj i uruchom [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) na swoim macos
|
||||
1. Zainstaluj aplikację do testowania na iPhonie.
|
||||
2. Zainstaluj i uruchom [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) na swoim macos.
|
||||
3. Otwórz `Terminal` na swoim Macu i przejdź do `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA pojawi się w tym folderze później.
|
||||
4. Powinieneś zobaczyć swoje urządzenie iOS. Kliknij dwukrotnie na nie, a następnie kliknij Dodaj + → Aplikacje z górnego paska menu.
|
||||
5. Po kliknięciu Dodaj, Configurator pobierze IPA z Apple i spróbuje wgrać go na twoje urządzenie. Jeśli wcześniej postępowałeś zgodnie z moją rekomendacją i już zainstalowałeś IPA, pojawi się komunikat z prośbą o ponowną instalację aplikacji.
|
||||
@ -24,7 +23,6 @@ Na starym urządzeniu z jailbreakiem możliwe jest zainstalowanie IPA, **odszyfr
|
||||
|
||||
Sprawdź [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) po więcej szczegółowych informacji na temat tego procesu.
|
||||
|
||||
|
||||
### Odszyfrowanie aplikacji
|
||||
|
||||
Aby odszyfrować IPA, zamierzamy je zainstalować. Jednak jeśli masz starego iPhone'a z jailbreakiem, potencjalnie jego wersja nie będzie wspierana przez aplikację, ponieważ zazwyczaj aplikacje wspierają tylko najnowsze wersje.
|
||||
@ -63,28 +61,28 @@ ideviceinstaller -i resigned.ipa -w
|
||||
|
||||
### Włącz tryb dewelopera (iOS 16+)
|
||||
|
||||
Od iOS 16 Apple wprowadziło **Tryb Dewelopera**: każdy binarny plik, który zawiera `get_task_allow` *lub* jest podpisany certyfikatem deweloperskim, odmówi uruchomienia, dopóki Tryb Dewelopera nie zostanie włączony na urządzeniu. Nie będziesz również mógł dołączyć Frida/LLDB, chyba że ten flag jest włączony.
|
||||
Od iOS 16 Apple wprowadziło **Tryb dewelopera**: każdy binarny plik, który zawiera `get_task_allow` *lub* jest podpisany certyfikatem deweloperskim, odmówi uruchomienia, dopóki Tryb dewelopera nie zostanie włączony na urządzeniu. Nie będziesz również mógł dołączyć Frida/LLDB, chyba że ten flag jest włączony.
|
||||
|
||||
1. Zainstaluj lub wgraj **dowolny** podpisany przez dewelopera plik IPA na telefon.
|
||||
1. Zainstaluj lub wgraj **dowolny** podpisany przez dewelopera IPA na telefon.
|
||||
2. Przejdź do **Ustawienia → Prywatność i bezpieczeństwo → Tryb dewelopera** i włącz go.
|
||||
3. Urządzenie zrestartuje się; po wprowadzeniu kodu dostępu zostaniesz poproszony o **Włączenie** Trybu Dewelopera.
|
||||
3. Urządzenie zrestartuje się; po wprowadzeniu kodu dostępu zostaniesz poproszony o **Włączenie** Trybu dewelopera.
|
||||
|
||||
Tryb Dewelopera pozostaje aktywny, dopóki go nie wyłączysz lub nie wyczyścisz telefonu, więc ten krok należy wykonać tylko raz na urządzenie. [Dokumentacja Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) wyjaśnia implikacje bezpieczeństwa.
|
||||
Tryb dewelopera pozostaje aktywny, dopóki go nie wyłączysz lub nie wyczyścisz telefonu, więc ten krok należy wykonać tylko raz na urządzenie. [Dokumentacja Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) wyjaśnia implikacje bezpieczeństwa.
|
||||
|
||||
### Nowoczesne opcje sideloadingu
|
||||
|
||||
Obecnie istnieje kilka dojrzałych sposobów na sideloading i utrzymywanie podpisanych plików IPA na bieżąco bez jailbreaka:
|
||||
Obecnie istnieje kilka dojrzałych sposobów na sideloading i utrzymywanie podpisanych IPA na bieżąco bez jailbreaka:
|
||||
|
||||
| Narzędzie | Wymagania | Mocne strony | Ograniczenia |
|
||||
|-----------|-----------|--------------|--------------|
|
||||
| **AltStore 2 / SideStore** | macOS/Windows/Linux jako towarzysz, który podpisuje IPA co 7 dni za pomocą darmowego profilu dewelopera | Automatyczne przeładowanie przez Wi-Fi, działa do iOS 17 | Wymaga komputera w tej samej sieci, limit 3 aplikacji narzucony przez Apple |
|
||||
| **TrollStore 1/2** | Urządzenie na iOS 14 – 15.4.1 podatne na błąd CoreTrust | *Permanentne* podpisywanie (brak limitu 7 dni); nie wymaga komputera po zainstalowaniu | Nieobsługiwane na iOS 15.5+ (błąd naprawiony) |
|
||||
|
||||
Dla rutynowych testów pentestingowych na aktualnych wersjach iOS Alt/Side-Store są zazwyczaj najbardziej praktycznym wyborem.
|
||||
Dla rutynowych pentestów na aktualnych wersjach iOS Alt/Side-Store są zazwyczaj najbardziej praktycznym wyborem.
|
||||
|
||||
### Hooking / dynamiczna instrumentacja
|
||||
|
||||
Możesz podłączyć swoją aplikację dokładnie tak, jak na urządzeniu z jailbreakiem, gdy jest podpisana z `get_task_allow` **i** Tryb Dewelopera jest włączony:
|
||||
Możesz podłączyć swoją aplikację dokładnie tak, jak na urządzeniu z jailbreakiem, gdy jest podpisana z `get_task_allow` **i** Tryb dewelopera jest włączony:
|
||||
```bash
|
||||
# Spawn & attach with objection
|
||||
objection -g "com.example.target" explore
|
||||
@ -94,9 +92,9 @@ frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Najnowsze wydania Frida (>=16) automatycznie obsługują uwierzytelnianie wskaźników i inne środki zaradcze iOS 17, więc większość istniejących skryptów działa od razu.
|
||||
|
||||
### Zautomatyzowana analiza dynamiczna z MobSF (bez jailbreaka)
|
||||
### Zautomatyzowana analiza dynamiczna z MobSF (bez jailbreak)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) może instrumentować IPA podpisane przez dewelopera na prawdziwym urządzeniu, używając tej samej techniki (`get_task_allow`) i zapewnia interfejs webowy z przeglądarką systemu plików, przechwytywaniem ruchu i konsolą Frida【】. Najszybszym sposobem jest uruchomienie MobSF w Dockerze, a następnie podłączenie iPhone'a przez USB:
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) może instrumentować IPA podpisane przez dewelopera na prawdziwym urządzeniu, używając tej samej techniki (`get_task_allow`), i zapewnia interfejs webowy z przeglądarką systemu plików, przechwytywaniem ruchu i konsolą Frida【】. Najszybszym sposobem jest uruchomienie MobSF w Dockerze, a następnie podłączenie iPhone'a przez USB:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
@ -106,10 +104,10 @@ opensecurity/mobile-security-framework-mobsf:latest
|
||||
```
|
||||
MobSF automatycznie wdroży binarny plik, włączy serwer Frida w sandboxie aplikacji i wygeneruje interaktywny raport.
|
||||
|
||||
### iOS 17 i ograniczenia trybu blokady
|
||||
### iOS 17 i uwagi dotyczące trybu blokady
|
||||
|
||||
* **Tryb blokady** (Ustawienia → Prywatność i bezpieczeństwo) blokuje dynamiczny linker przed ładowaniem niesygnowanych lub zewnętrznie sygnowanych bibliotek dynamicznych. Podczas testowania urządzeń, które mogą mieć włączony ten tryb, upewnij się, że jest **wyłączony**, inaczej sesje Frida/objection zakończą się natychmiast.
|
||||
* Uwierzytelnianie wskaźników (PAC) jest egzekwowane w całym systemie na urządzeniach A12 i nowszych. Frida ≥16 transparentnie obsługuje usuwanie PAC — wystarczy, że będziesz na bieżąco aktualizować zarówno *frida-server*, jak i zestaw narzędzi Python/CLI, gdy zostanie wydana nowa główna wersja iOS.
|
||||
* Uwierzytelnianie wskaźników (PAC) jest egzekwowane w całym systemie na urządzeniach A12+. Frida ≥16 transparentnie obsługuje usuwanie PAC — wystarczy, że będziesz na bieżąco aktualizować zarówno *frida-server*, jak i narzędzia Python/CLI, gdy pojawi się nowa główna wersja iOS.
|
||||
|
||||
## Odniesienia
|
||||
|
||||
|
@ -17,13 +17,13 @@ Telnet to protokół sieciowy, który daje użytkownikom nieszyfrowany sposób d
|
||||
```bash
|
||||
nc -vn <IP> 23
|
||||
```
|
||||
Cała interesująca enumeracja może być przeprowadzona za pomocą **nmap**:
|
||||
Wszystkie interesujące enumeracje można wykonać za pomocą **nmap**:
|
||||
```bash
|
||||
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||||
```
|
||||
Skrypt `telnet-ntlm-info.nse` uzyska informacje NTLM (wersje Windows).
|
||||
|
||||
Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET znajdują się różne "**opcje**", które będą zatwierdzone i mogą być używane z strukturą "**DO, DON'T, WILL, WON'T**", aby umożliwić użytkownikowi i serwerowi zgodzenie się na użycie bardziej złożonego (lub może po prostu innego) zestawu konwencji dla ich połączenia TELNET. Takie opcje mogą obejmować zmianę zestawu znaków, tryb echa itp.
|
||||
Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET znajdują się różne "**opcje**", które będą zatwierdzone i mogą być używane w strukturze "**DO, DON'T, WILL, WON'T**", aby umożliwić użytkownikowi i serwerowi zgodzenie się na użycie bardziej złożonego (lub może po prostu innego) zestawu konwencji dla ich połączenia TELNET. Takie opcje mogą obejmować zmianę zestawu znaków, tryb echa itp.
|
||||
|
||||
**Wiem, że możliwe jest enumerowanie tych opcji, ale nie wiem jak, więc daj mi znać, jeśli wiesz jak.**
|
||||
|
||||
@ -35,7 +35,7 @@ Z [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): W protokole TELNET
|
||||
/etc/xinetd.d/telnet
|
||||
/etc/xinetd.d/stelnet
|
||||
```
|
||||
## HackTricks Automatyczne Komendy
|
||||
## Automatyczne polecenia HackTricks
|
||||
```
|
||||
Protocol_Name: Telnet #Protocol Abbreviation if there is one.
|
||||
Port_Number: 23 #Comma separated if there is more than one.
|
||||
@ -73,7 +73,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
||||
* **CVE-2023-40478 – NETGEAR RAX30**: Przepełnienie bufora oparte na stosie w poleceniu Telnet CLI `passwd` pozwala sąsiedniemu atakującemu na ominięcie uwierzytelnienia i wykonanie dowolnego kodu jako root.
|
||||
* **CVE-2022-39028 – GNU inetutils telnetd**: Sekwencja dwóch bajtów (`0xff 0xf7` / `0xff 0xf8`) wywołuje dereferencję wskaźnika NULL, co może spowodować awarię `telnetd`, prowadząc do trwałego DoS po kilku awariach.
|
||||
|
||||
Pamiętaj o tych CVE podczas triage podatności — jeśli cel działa na niezałatanym oprogramowaniu układowym lub przestarzałym demonie Telnet inetutils, możesz mieć prostą drogę do wykonania kodu lub zakłócającego DoS.
|
||||
Pamiętaj o tych CVE podczas triage podatności — jeśli cel działa na niepoprawionym oprogramowaniu układowym lub przestarzałym demonie Telnet inetutils, możesz mieć prostą drogę do wykonania kodu lub zakłócającego DoS.
|
||||
|
||||
### Sniffing Credentials & Man-in-the-Middle
|
||||
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
## Przegląd
|
||||
|
||||
LESS to popularny preprocesor CSS, który dodaje zmienne, mixiny, funkcje oraz potężną dyrektywę `@import`. Podczas kompilacji silnik LESS **pobiera zasoby wskazane w dyrektywach `@import`** i osadza ("inline") ich zawartość w wynikowym CSS, gdy używana jest opcja `(inline)`.
|
||||
LESS to popularny preprocesor CSS, który dodaje zmienne, mixiny, funkcje oraz potężną dyrektywę `@import`. Podczas kompilacji silnik LESS **pobiera zasoby wskazane w instrukcjach `@import`** i osadza ("inline") ich zawartość w wynikowym CSS, gdy używana jest opcja `(inline)`.
|
||||
|
||||
Gdy aplikacja konkatenatuje **wejście kontrolowane przez użytkownika** w ciągu, który jest później analizowany przez kompilator LESS, atakujący może **wstrzyknąć dowolny kod LESS**. Nadużywając `@import (inline)`, atakujący może zmusić serwer do pobrania:
|
||||
Gdy aplikacja konkatenatuje **wejście kontrolowane przez użytkownika** w ciągu, który jest później analizowany przez kompilator LESS, atakujący może **wstrzyknąć dowolny kod LESS**. Wykorzystując `@import (inline)`, atakujący może zmusić serwer do pobrania:
|
||||
|
||||
* Lokalnych plików za pomocą protokołu `file://` (ujawnienie informacji / Lokalna Inkluzja Plików).
|
||||
* Zdalnych zasobów w sieciach wewnętrznych lub usługach metadanych w chmurze (SSRF).
|
||||
@ -55,16 +55,16 @@ sed -n 's/.*@@END@@\(.*\)/\1/p'
|
||||
|
||||
## Łagodzenie
|
||||
|
||||
* Nie przekazuj nieufnych danych do kompilatora LESS.
|
||||
* Nie przekazuj niezaufanych danych do kompilatora LESS.
|
||||
* Jeśli wymagane są dynamiczne wartości, odpowiednio je **escape**/sanitizuj (np. ogranicz do tokenów numerycznych, białe listy).
|
||||
* Wyłącz, gdy to możliwe, możliwość używania importów `(inline)`, lub ogranicz dozwolone protokoły do `https`.
|
||||
* Utrzymuj zależności na bieżąco – SugarCRM naprawił ten problem w wersjach 13.0.4 i 14.0.1.
|
||||
* Utrzymuj zależności na bieżąco – SugarCRM załatał ten problem w wersjach 13.0.4 i 14.0.1.
|
||||
|
||||
## Przykłady z rzeczywistego świata
|
||||
|
||||
| Produkt | Wrażliwy punkt końcowy | Wpływ |
|
||||
|---------|-----------------------|-------|
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Nieautoryzowany SSRF i odczyt lokalnych plików |
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Niena uwierzytelniony SSRF i odczyt lokalnych plików |
|
||||
|
||||
## Odniesienia
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Platformy podatne na SSRF
|
||||
# SSRF Vulnerable Platforms
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
@ -3,9 +3,9 @@
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Istnieje kilka blogów w Internecie, które **podkreślają niebezpieczeństwa związane z pozostawieniem drukarek skonfigurowanych z LDAP z domyślnymi/słabymi** danymi logowania. \
|
||||
Dzieje się tak, ponieważ atakujący może **oszukać drukarkę, aby uwierzytelniła się w stosunku do złośliwego serwera LDAP** (zwykle `nc -vv -l -p 389` lub `slapd -d 2` wystarczy) i przechwycić **dane logowania drukarki w postaci czystego tekstu**.
|
||||
Dzieje się tak, ponieważ atakujący może **oszukać drukarkę, aby uwierzytelniła się w fałszywym serwerze LDAP** (zazwyczaj `nc -vv -l -p 389` lub `slapd -d 2` wystarczy) i przechwycić **dane logowania drukarki w postaci niezaszyfrowanej**.
|
||||
|
||||
Ponadto, wiele drukarek będzie zawierać **dzienniki z nazwami użytkowników** lub może nawet być w stanie **pobierać wszystkie nazwy użytkowników** z kontrolera domeny.
|
||||
Ponadto, wiele drukarek będzie zawierać **logi z nazwami użytkowników** lub może nawet być w stanie **pobierać wszystkie nazwy użytkowników** z kontrolera domeny.
|
||||
|
||||
Wszystkie te **wrażliwe informacje** oraz powszechny **brak bezpieczeństwa** sprawiają, że drukarki są bardzo interesujące dla atakujących.
|
||||
|
||||
@ -52,10 +52,10 @@ Pass-back *nie* jest teoretycznym problemem – dostawcy wciąż publikują ostr
|
||||
|
||||
### Xerox VersaLink – CVE-2024-12510 i CVE-2024-12511
|
||||
|
||||
Oprogramowanie układowe ≤ 57.69.91 drukarek Xerox VersaLink C70xx MFP pozwalało uwierzytelnionemu administratorowi (lub każdemu, gdy domyślne dane uwierzytelniające pozostają) na:
|
||||
Oprogramowanie układowe ≤ 57.69.91 drukarek Xerox VersaLink C70xx MFP pozwalało uwierzytelnionemu administratorowi (lub każdemu, gdy domyślne dane logowania pozostają) na:
|
||||
|
||||
* **CVE-2024-12510 – LDAP pass-back**: zmianę adresu serwera LDAP i wywołanie zapytania, co powoduje, że urządzenie ujawnia skonfigurowane dane uwierzytelniające Windows do hosta kontrolowanego przez atakującego.
|
||||
* **CVE-2024-12511 – SMB/FTP pass-back**: identyczny problem przez *scan-to-folder* destynacje, ujawniając NetNTLMv2 lub dane uwierzytelniające FTP w postaci czystego tekstu.
|
||||
* **CVE-2024-12510 – LDAP pass-back**: zmianę adresu serwera LDAP i wywołanie zapytania, co powoduje, że urządzenie ujawnia skonfigurowane dane logowania Windows do hosta kontrolowanego przez atakującego.
|
||||
* **CVE-2024-12511 – SMB/FTP pass-back**: identyczny problem przez *scan-to-folder* destynacje, ujawniając NetNTLMv2 lub hasła FTP w postaci czystego tekstu.
|
||||
|
||||
Prosty nasłuchiwacz, taki jak:
|
||||
```bash
|
||||
@ -65,7 +65,7 @@ or serwer SMB (`impacket-smbserver`) wystarczy, aby zebrać dane uwierzytelniaj
|
||||
|
||||
### Canon imageRUNNER / imageCLASS – Zawiadomienie 20 maja 2025
|
||||
|
||||
Canon potwierdził słabość **SMTP/LDAP pass-back** w dziesiątkach linii produktów Laser & MFP. Atakujący z dostępem administratora może zmodyfikować konfigurację serwera i odzyskać zapisane dane uwierzytelniające dla LDAP **lub** SMTP (wiele organizacji używa uprzywilejowanego konta, aby umożliwić skanowanie na e-mail).
|
||||
Canon potwierdził słabość **SMTP/LDAP pass-back** w dziesiątkach linii produktów Laser & MFP. Atakujący z dostępem administratora może zmodyfikować konfigurację serwera i odzyskać przechowywane dane uwierzytelniające dla LDAP **lub** SMTP (wiele organizacji używa uprzywilejowanego konta, aby umożliwić skanowanie do poczty).
|
||||
|
||||
Zalecenia producenta wyraźnie sugerują:
|
||||
|
||||
@ -80,7 +80,7 @@ Zalecenia producenta wyraźnie sugerują:
|
||||
|------|---------|---------|
|
||||
| **PRET** (Printer Exploitation Toolkit) | Nadużycie PostScript/PJL/PCL, dostęp do systemu plików, sprawdzenie domyślnych danych uwierzytelniających, *odkrywanie SNMP* | `python pret.py 192.168.1.50 pjl` |
|
||||
| **Praeda** | Zbieranie konfiguracji (w tym książek adresowych i danych uwierzytelniających LDAP) przez HTTP/HTTPS | `perl praeda.pl -t 192.168.1.50` |
|
||||
| **Responder / ntlmrelayx** | Przechwytywanie i przekazywanie skrótów NetNTLM z SMB/FTP pass-back | `responder -I eth0 -wrf` |
|
||||
| **Responder / ntlmrelayx** | Przechwytywanie i przekazywanie skrótów NetNTLM z pass-back SMB/FTP | `responder -I eth0 -wrf` |
|
||||
| **impacket-ldapd.py** | Lekka usługa LDAP do odbierania połączeń w czystym tekście | `python ldapd.py -debug` |
|
||||
|
||||
---
|
||||
@ -99,6 +99,6 @@ Zalecenia producenta wyraźnie sugerują:
|
||||
|
||||
- [https://grimhacker.com/2018/03/09/just-a-printer/](https://grimhacker.com/2018/03/09/just-a-printer/)
|
||||
- Rapid7. “Xerox VersaLink C7025 MFP Pass-Back Attack Vulnerabilities.” Luty 2025.
|
||||
- Canon PSIRT. “Mitigacja podatności na SMTP/LDAP Passback dla drukarek laserowych i małych wielofunkcyjnych drukarek biurowych.” Maj 2025.
|
||||
- Canon PSIRT. “Mitigacja podatności przeciwko SMTP/LDAP Passback dla drukarek laserowych i małych wielofunkcyjnych drukarek biurowych.” Maj 2025.
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user