12 KiB
2049 - Pentesting NFS Service
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Основна інформація
NFS - це система, розроблена для клієнт/сервер, яка дозволяє користувачам безперешкодно отримувати доступ до файлів через мережу, ніби ці файли знаходяться в локальному каталозі.
Помітним аспектом цього протоколу є відсутність вбудованих механізмів аутентифікації або авторизації. Натомість авторизація покладається на інформацію файлової системи, при цьому сервер відповідає за точний переклад інформації про користувача, наданої клієнтом, у необхідний формат авторизації файлової системи, переважно слідуючи синтаксису UNIX.
Аутентифікація зазвичай покладається на ідентифікатори UID
/GID
UNIX та членство в групах. Однак виникає проблема через потенційне невідповідність у відображеннях UID
/GID
між клієнтами та серверами, що не залишає місця для додаткової перевірки з боку сервера. Внаслідок цього протокол найкраще підходить для використання в достовірних мережах, враховуючи його залежність від цього методу аутентифікації.
Порт за замовчуванням: 2049/TCP/UDP (за винятком версії 4, вона просто потребує TCP або UDP).
2049/tcp open nfs 2-3 (RPC #100003
Версії
-
NFSv2: Ця версія відзначається широкою сумісністю з різними системами, що підкреслює її значення з початковими операціями переважно через UDP. Будучи найстарішою у серії, вона заклала основу для подальших розробок.
-
NFSv3: Введена з рядом покращень, NFSv3 розширила можливості свого попередника, підтримуючи змінні розміри файлів і пропонуючи покращені механізми звітності про помилки. Незважаючи на свої досягнення, вона стикалася з обмеженнями в повній зворотній сумісності з клієнтами NFSv2.
-
NFSv4: Важлива версія в серії NFS, NFSv4 представила набір функцій, призначених для модернізації обміну файлами через мережі. Помітні покращення включають інтеграцію Kerberos для високої безпеки, можливість проходження через брандмауери та роботи через Інтернет без необхідності в портмапперах, підтримку списків контролю доступу (ACL) та впровадження операцій на основі стану. Її покращення продуктивності та впровадження протоколу збереження стану відрізняють NFSv4 як важливий крок вперед у технологіях обміну файлами в мережі.
Кожна версія NFS була розроблена з метою задовольнити еволюційні потреби мережевих середовищ, поступово покращуючи безпеку, сумісність і продуктивність.
Перерахування
Корисні скрипти nmap
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
Корисні модулі metasploit
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Mounting
Щоб дізнатися, яка папка доступна на сервері для монтування, ви можете запитати її за допомогою:
showmount -e <IP>
Тоді змонтуйте його, використовуючи:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
Ви повинні вказати використовувати версію 2, оскільки вона не має жодної автентифікації або авторизації.
Приклад:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
Permissions
Якщо ви змонтуєте папку, яка містить файли або папки, доступні лише деяким користувачам (за UID). Ви можете створити локально користувача з цим UID і, використовуючи цього користувача, ви зможете доступитися до файлу/папки.
NSFShell
Щоб легко перерахувати, змонтувати та змінити UID і GID для доступу до файлів, ви можете використовувати nfsshell.
Config files
/etc/exports
/etc/lib/nfs/etab
Небезпечні налаштування
-
Дозволи на читання та запис (
rw
): Це налаштування дозволяє як читання, так і запис у файлову систему. Важливо враховувати наслідки надання такого широкого доступу. -
Використання небезпечних портів (
insecure
): Коли це увімкнено, система може використовувати порти вище 1024. Безпека портів вище цього діапазону може бути менш суворою, що збільшує ризик. -
Видимість вкладених файлових систем (
nohide
): Це налаштування робить каталоги видимими, навіть якщо інша файлова система змонтована нижче експортованого каталогу. Кожен каталог потребує власного запису експорту для належного управління. -
Власність файлів root (
no_root_squash
): З цим налаштуванням файли, створені користувачем root, зберігають свій оригінальний UID/GID 0, ігноруючи принцип найменших привілеїв і потенційно надаючи надмірні дозволи. -
Несквашування всіх користувачів (
no_all_squash
): Ця опція забезпечує збереження ідентичностей користувачів по всій системі, що може призвести до проблем з дозволами та контролем доступу, якщо не буде належним чином оброблено.
Підвищення привілеїв за допомогою неправильних налаштувань NFS
NFS no_root_squash та no_all_squash підвищення привілеїв
HackTricks Автоматичні команди
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
Protocol_Description: Network File System #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for NFS
Note: |
NFS is a system designed for client/server that enables users to seamlessly access files over a network as though these files were located within a local directory.
#apt install nfs-common
showmount 10.10.10.180 ~or~showmount -e 10.10.10.180
should show you available shares (example /home)
mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
Entry_2:
Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.