Специалисты в области безопасности опубликовали способ эксплуатации неправильно сконфигурированного NFS для повышения привилегий в системе Linux. NFS (Network File System) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. За основу взят протокол вызова удалённых процедур (ONC RPC). Позволяет подключать (монтировать) удалённые файловые системы через сеть.
Как известно, NFS использует TCP/UDP-порт 2049 для обмена файлами и директориями. Первым делом эксперты имитируют плохо настроенный NFS.
«В принципе, есть три основных файла конфигурации (/etc/exports, /etc/hosts.allow и /etc/hosts.deny), которые нужны для настройки сервера NFS. Но нас интересует пока только /etc/export», — пишут исследователи.
Файл /etc/exports содержит запись для каждой директории, которую вы планируете расшарить. Каждая запись описывает, как файл или директория будет расшариваться. NFS считается настроенным слабо, если в файле конфигурации присутствует запись вида:
/home *(rw,no_root_squash)
Она означает, что мы расшарили директорию /home, позволив root-пользователю получить доступ к операциям чтения-записи. Знак * указывает на то, что соединение возможно с любого хоста.
Далее специалисты воспользовались Nmap для сканирования службы NFS в целевой сети. Nmap может показать имя каталога общего доступа, если открыт порт 2049. Для идентификации общего каталога Nmap использует команду showmount –e.
Для эксплуатации NFS-сервера эксперты создали директорию raj внутри /tmp, примонтировали директорию /home и загрузили эксплойт, позволяющий повысить привилегии до root.
«Во-первых, вам нужно скомпрометировать целевую систему, а затем перейти к этапу эскалации привилегий. Предположим, вы успешно вошли в систему жертвы через ssh. Теперь мы знаем, что /home представляет собой общий каталог, так что нужно выполнить следующую команду», — объясняют исследователи.
cd /home
ls
./bash -p
id
whoami
Это один из описываемых специалистами методов, также они предлагают использовать язык C для того же эффекта.