07 Апр, 2023

Сетевая файловая система (NFS)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

NFS (Сетевая файловая система) это протокол распределенной файловой системы, который позволяет пользователю на клиентском компьютере получать доступ к файлам по сети, как если бы эти файлы хранились локально. Протокол был разработан Sun Microsystems в 1980-х годах и с тех пор стал популярным способом обмена файлами и данными по компьютерной сети.

Общие порты NFS

Port 2049: Это порт по умолчанию, используемый для общего доступа к файлам NFS.

Port 111: Этот порт используется службой portmapper (rpcbind), которая помогает сопоставлять запросы RPC (удаленный вызов процедуры) с соответствующими сервисными портами.

Port 32767: Этот порт используется службой lockd, которая предоставляет услуги блокировки и разблокировки файлов для файловых систем NFS.

Port 892: Этот порт используется службой mountd, которая отвечает за монтирование и размонтирование файловых систем NFS.

Port 875: Этот порт используется службой rquotad, которая предоставляет информацию о дисковых квотах для файловых систем NFS.

Стандартные команды от неавторизованных

mount -t nfs 213.184.24.4:/tmp/open_share /mnt/remote

Разведывательная или нестандартная команда

nmap -sV –script=nfs-statfs <target>

Ведущие шоу

showmount  61.218.215.132

Список креплений

auxiliary/scanner/nfs/nfsmount

nmap -sV –script=nfs-showmount

showmount -e 213.184.24.4

Укажите как имя хоста клиента или IP-адрес, так и подключенный каталог, информация может быть неточной

showmount -а 213.184.24.4 

Попробуйте перечислить файлы

https://github.com/hegusung/RPCScan

rpc-scan.py <host/host_range> –nfs –recurse 3

и 

mount -t nfs 213.184.24.4:/tmp/open_share /mnt/remote

cd /mnt/remote

ls

cat etc/passwd

cat etc/shadow

cat etc/exports

Нулевое сеансовое соединение

showmount -e 213.184.24.4

Грубое силовое подключение

UID spoofing https://github.com/bonsaiviking/NfSpy, ссылка 

Запуск эксплойтов

exploit/windows/nfs/xlink_nfsd (unable to find server to test)

exploit/netware/sunrpc/pkernel_callit

https://www.exploit-db.com/exploits/14407

Инструменты для использования протокола NFS

Ручные Инструменты:

  • nfsstat: Инструмент командной строки, который отображает информацию о состоянии сервера NFS.

  • showmount: Инструмент командной строки, который отображает список экспортированных файлов NFS на сервере.

  • mount: Инструмент командной строки, который монтирует экспорт NFS в клиентской системе.

  • unmount: Инструмент командной строки, который отключает экспорт NFS из клиентской системы.

  • nfsiostat: Инструмент командной строки, который отображает статистику ввода-вывода для сервера NFS.

  • NFSWatch: Инструмент, который отслеживает трафик NFS и отображает его в удобном для пользователя виде.

  • Autotest-NFS: Инструмент, который автоматизирует тестирование файловых систем NFS и может быть использован для регрессионного тестирования.

Автоматизированные инструменты:

  • NfSpy: Инструмент, который можно использовать для монтирования экспорта NFS и взаимодействия с ним в удаленных системах.

  • NFSTest: Инструмент, который проверяет производительность и надежность файловых систем NFS.

  • nmap: Сетевой сканер, который можно использовать для обнаружения служб NFS и выполнения базовых проверок безопасности.

  • Nessus: Сканер уязвимостей, который можно использовать для проверки на наличие уязвимостей в системе безопасности серверов NFS.

  • OpenVAS: Сканер сетевых уязвимостей, который включает в себя модуль для тестирования серверов NFS.

  • Metasploit Framework: Инструмент тестирования на проникновение, который включает модули для тестирования серверов NFS на наличие уязвимостей.

  • Hydra: Инструмент для взлома паролей, который можно использовать для взлома паролей серверов NFS.

  • CrackMapExec: Инструмент тестирования на проникновение, который может быть использован для проверки на наличие уязвимостей в серверах NFS и автоматизации взлома паролей.

  • NfSen: Инструмент, который обеспечивает анализ сетевого трафика для серверов NFS в режиме реального времени.

  • FSlint: Инструмент, который можно использовать для поиска и удаления дубликатов файлов в файловых системах NFS.

Последние пять известных CVE для NFS

 CVE-2023-1652: Ошибка использования после освобождения была обнаружена в nfsd4_ssc_setup_dul в fs/nfsd/nfs4proc.c в файловой системе NFS в ядре Linux. Эта проблема может позволить локальному злоумышленнику вывести систему из строя или привести к проблеме утечки информации о ядре.

CVE-2023-0417: Утечка памяти в NFS dissector в Wireshark с 4.0.0 по 4.0.2 и с 3.6.0 по 3.6.10 и допускает отказ в обслуживании через внедрение пакета или созданный файл захвата. 

• CVE-2022-46701: Проблема была устранена с помощью улучшенных проверок границ. Эта проблема исправлена в iOS 16.2 и iPadOS 16.2, macOS Ventura 13.1, tvOS 16.2. Подключение к вредоносному серверу NFS может привести к выполнению произвольного кода с правами ядра. 

 CVE-2022-46174: efs-utils - это набор утилит для Amazon Elastic File System (EFS). Потенциальная проблема с состоянием гонки существует в помощнике монтирования Amazon EFS в версиях efs-utils v1.34.3 и ниже. При использовании TLS для монтирования файловых систем помощник по монтированию выделяет локальный порт для stunnel для приема подключений NFS до применения туннеля TLS. В затронутых версиях параллельные операции монтирования могут выделять один и тот же локальный порт, что приводит либо к неудачным операциям монтирования, либо к неправильному сопоставлению локальных точек монтирования клиента EFS с файловыми системами EFS этого клиента. Эта проблема исправлена в версии v1.34.4. Обойти ее не рекомендуется. Мы рекомендуем затронутым пользователям обновить установленную версию efs-utils до версии v1.34.4 или более поздней. 

• CVE-2022-45101: Dell PowerScale OneFS 9.0.0.x – 9.4.0.x, содержит уязвимость с неправильной обработкой недостаточных привилегий в NFS. Удаленный злоумышленник, не прошедший проверку подлинности, потенциально может воспользоваться этой уязвимостью, что приведет к раскрытию информации и удаленному выполнению. 

Полезная информация

– Расшифровывается как Сетевая файловая система и представляет собой протокол, используемый для совместного использования файлов и каталогов между различными системами в сети.

– Первоначально разработан Sun Microsystems и был выпущен в 1984 году в рамках их проекта Open Network Computing (ONC).

– Сетевая файловая система использует удаленный вызов процедуры (RPC) для связи между клиентом и сервером.

– NFS - это протокол без состояния, что означает, что сервер не отслеживает состояние клиента. Это упрощает реализацию балансировки нагрузки и отработки отказа.

– Защищен с помощью различных механизмов аутентификации, таких как Kerberos, Secure RPC и Network Information Service (NIS).

– Последняя версия NFS, обеспечивающая улучшенную безопасность, производительность и такие функции, как поддержка блокировки файлов и расширенных атрибутов.

– Поддерживает использование IPv6 и обеспечивает лучшую поддержку глобальных сетей (WAN) и сетей с высокой задержкой.

– Используется в различных операционных системах, включая Linux, Unix, macOS и Windows.

– Производительность может быть повышена за счет использования выделенного оборудования NFS, такого как сетевые интерфейсные платы (NIC), сети хранения данных (SANS) и твердотельные накопители (SSD).

– Может использоваться в различных сценариях, таких как веб-серверы, файловые серверы и кластеры высокопроизводительных вычислений (HPC).

Известные баннеры

“Welcome to the NFS server” – Этот баннер обычно отображается при подключении к серверу NFS.

“rpc.nfsd: server localhost not responding, timed out” – Этот баннер указывает на то, что сервер NFS не отвечает.

“mountd: authenticated mount request from” – Этот баннер указывает на то, что запрос на монтирование был успешно аутентифицирован.

“RPC: Program not registered” – Этот баннер указывает на то, что запрошенная программа NFS не зарегистрирована на сервере.

“nfsd: last server has exited, flushing export cache” – Этот баннер указывает на то, что сервер NFS завершил работу и очищает свой кэш экспорта.

“nfsd: last server has exited, flushing export cache” – Этот баннер указывает на несоответствие между клиентской и серверной версиями запрошенной программы NFS.

“showmount: RPC: Port mapper failure – RPC: Timed out” – Этот баннер указывает на то, что возникла проблема с устройством сопоставления портов.

“rpc.mountd: getfh failed: Operation not permitted” – Этот баннер указывает на то, что у клиента нет необходимых разрешений для выполнения запрошенной операции.

“nfs: server not responding, still trying” – Этот баннер указывает на то, что клиент все еще пытается подключиться к серверу NFS.

“mount: RPC: Remote system error” – Этот баннер указывает на ошибку в удаленной системе при попытке подключить общий ресурс NFS.

Книги для изучения протокола Сетевой файловой системы (NFS)

Внедрение NFSv4: Полное руководство по сетевой файловой системе автор Брент Каллаган – Эта книга представляет собой всеобъемлющее руководство по внедрению NFSv4, охватывающее такие темы, как аутентификация, безопасность, настройка производительности и устранение неполадок.

Сетевая файловая система: Построение масштабируемых и высокопроизводительных сетей автор Гэри Симс – Эта книга представляет собой практическое руководство по созданию масштабируемых и высокопроизводительных сетей с использованием NFS, охватывающее такие темы, как конфигурация, настройка и оптимизация.

Иллюстрированный NFS автор Брент Каллаган – В этой книге дается подробное объяснение того, как работает NFS, включая ее протоколы, структуры данных и алгоритмы.

Администрирование Linux NFS и автоматического монтажа автор: Эрез Цадок и Аманда Риган – Эта книга представляет собой практическое руководство по администрированию NFS в системах Linux, охватывающее такие темы, как конфигурация, настройка и безопасность.

Солярис 10 ZFS Essentials Скотт Ватанабе и Джефф Виктор – Эта книга представляет собой введение в ZFS, файловую систему, которая поддерживает NFS и другие протоколы, и охватывает такие темы, как установка, настройка и управление.

Руководство по устранению неполадок NFS для Sun Solaris автор Ранджит Наяк – Эта книга представляет собой руководство по устранению неполадок NFS в системах Sun Solaris, охватывающее такие темы, как конфигурация NFS, проблемы с клиентами и серверами и настройка производительности.

NFS и NIS для Linux и UNIX Брайан Д. Джепсон и Джереми Рид – Эта книга представляет собой практическое руководство по использованию NFS и NIS в системах Linux и UNIX, охватывающее такие темы, как настройка, аутентификация и безопасность.

Управление НФС и НИС Хэл Стерн, Майк Эйслер и Рикардо Лабиага – Эта книга представляет собой всеобъемлющее руководство по управлению средами NFS и NIS, охватывающее такие темы, как установка, конфигурация, безопасность и настройка производительности.

Конфигурация сетевой файловой системы (NFS) в AIX 5L IBM Redbooks – Эта книга представляет собой руководство по настройке NFS в системах AIX 5L, охватывающее такие темы, как настройка сервера и клиента NFS, безопасность и устранение неполадок.

Настройка NFS и производительности для HP-UX by HP Education and Training – Эта книга представляет собой руководство по настройке NFS в системах HP-UX, охватывающее такие темы, как настройка сервера и клиента NFS, настройка производительности и устранение неполадок.

Список полезной нагрузки для протокола Сетевой файловой системы (NFS)

  • Полезная нагрузка чтения: полезная нагрузка, содержащая запрос на чтение данных из файла или каталога на сервере NFS.

  • Полезная нагрузка записи: полезная нагрузка, содержащая запрос на запись данных в файл или каталог на сервере NFS.

  • Полезная нагрузка атрибутов файла: полезная нагрузка, содержащая атрибуты файла или каталога, такие как право собственности, разрешения и временные метки.

  • Полезная нагрузка со списком каталогов: полезная нагрузка, содержащая список файлов и каталогов в заданном каталоге на сервере NFS.

  • Полезная нагрузка блокировки: полезная нагрузка, содержащая запрос на блокировку или разблокировку файла или части файла на сервере NFS.

  • Полезная нагрузка монтирования: полезная нагрузка, содержащая запрос на монтирование файловой системы на клиенте NFS.

  • Полезная нагрузка экспорта: полезная нагрузка, содержащая список файловых систем, экспортируемых сервером NFS.

  • Полезная нагрузка ошибки: полезная нагрузка, содержащая сообщение об ошибке в ответ на сбой вызова RPC.

  • Полезная нагрузка аутентификации: полезная нагрузка, содержащая информацию аутентификации для клиента, пытающегося получить доступ к серверу NFS.

  • Полезная нагрузка производительности: полезная нагрузка, содержащая данные о производительности сервера NFS, такие как количество операций в секунду и время отклика для каждой операции.

Смягчение последствий

  1. NFSv4 включает в себя несколько улучшений безопасности по сравнению с предыдущими версиями NFS, включая более надежные механизмы аутентификации, поддержку систем обязательного контроля доступа (MAC) и возможность шифрования данных при передаче.

  2. Защищенный RPC, также известный как RPCSEC_GSS, обеспечивает аутентификацию и шифрование для сообщений RPC, используемых в NFS. Он использует универсальный интерфейс прикладного программирования служб безопасности (GSS-API) для согласования защищенного канала связи между клиентом и сервером.

  3. Используйте надежные механизмы аутентификации, такие как Kerberos или LDAP, для аутентификации клиентов NFS.

  4. Используйте защищенные каналы связи, такие как SSL / TLS или IPSec, для защиты трафика NFS от подслушивания и несанкционированного доступа.

  5. Настройте сервер NFS таким образом, чтобы ограничить доступ к определенным клиентам или подсетям. Это может помочь предотвратить несанкционированный доступ к ресурсам NFS.

  6. Используйте механизмы контроля доступа, такие как права доступа к файлам и списки управления доступом (ACL), для контроля доступа к ресурсам NFS.

  7. Используйте шифрование для защиты конфиденциальных данных, хранящихся в общих ресурсах NFS. Например, используйте шифрование на уровне файла для защиты отдельных файлов или шифрование на уровне диска для защиты целых файловых систем.

  8. Отключите корневой доступ к общим ресурсам NFS без крайней необходимости. Это может помочь предотвратить получение злоумышленниками полного контроля над сервером NFS.

  9. Обновляйте серверное и клиентское программное обеспечение NFS с помощью последних исправлений безопасности и обновлений для устранения любых известных уязвимостей.

  10. Отслеживайте активность NFS на предмет признаков несанкционированного доступа, таких как необычные схемы доступа к файлам или попытки доступа с незнакомых IP-адресов.

Заключение

Сетевая файловая система (NFS) это широко используемый протокол для обмена файлами по сети. Однако это может привести к нескольким рискам безопасности, если не будет обеспечено должным образом. Внедряя стратегии смягчения последствий, такие как использование последней версии NFS, использование надежных механизмов аутентификации, ограничение доступа к ресурсам NFS и мониторинг активности NFS, организации могут значительно повысить безопасность своей среды NFS. Кроме того, важно регулярно обновлять программное обеспечение NFS и использовать механизмы шифрования и контроля доступа для дальнейшей защиты конфиденциальных данных. Предпринимая эти шаги, организации могут снизить многие риски безопасности, связанные с NFS, и помочь обеспечить конфиденциальность, целостность и доступность своих данных.

Другие Услуги

Готовы к безопасности?

Связаться с нами