T1574.006 - Перехват динамического компоновщика

Примеры обнаружения с помощью продуктов "Кода Безопасности":

Техники:  T1574 , T1574.001 , T1574.002 , T1574.004 , T1574.005 , T1574.006 , T1574.007 , T1574.008 , T1574.009 , T1574.010 , T1574.011 , T1574.012 , T1574.013 , T1574.014

Злоумышленники могут выполнять собственную вредоносную полезную нагрузку, перехватывая переменные окружения, которые динамический компоновщик использует для загрузки общих библиотек. На этапе подготовки программы к выполнению динамический компоновщик загружает указанные абсолютные пути к общим библиотекам из переменных окружения и файлов, таких как LD_PRELOAD в Linux или DYLD_INSERT_LIBRARIES в macOS. Библиотеки, указанные в переменных окружения, загружаются первыми, имея приоритет перед системными библиотеками с тем же именем функции.(Цитата: Man LD.SO)(Цитата: TLDP Shared Libraries)(Цитата: Apple Doco Archive Dynamic Libraries) Эти переменные часто используются разработчиками для отладки двоичных файлов без необходимости перекомпиляции, деконфликтации отображаемых символов и реализации пользовательских функций без изменения исходной библиотеки.(Цитата: Baeldung LD_PRELOAD)

В Linux и macOS перехват переменных динамического компоновщика может предоставить доступ к памяти, системным/сетевым ресурсам и, возможно, повышенным привилегиям процесса-жертвы. Этот метод также может ускользнуть от обнаружения продуктами безопасности, поскольку выполнение маскируется под легитимный процесс. Злоумышленники могут устанавливать переменные окружения через командную строку с помощью команды export, функции setenv или putenv. Злоумышленники также могут использовать Dynamic Linker Hijacking для экспорта переменных в оболочке или задавать переменные программно, используя синтаксис более высокого уровня, например os.environ в Python.

В Linux злоумышленники могут установить LD_PRELOAD для указания на вредоносные библиотеки, совпадающие с именами легитимных библиотек, которые запрашиваются программой-жертвой, заставляя операционную систему загружать вредоносный код злоумышленника при выполнении программы-жертвы. LD_PRELOAD может быть задан с помощью переменной окружения или файла /etc/ld.so.preload.(Цитата: Man LD.SO)(Цитата: TLDP Shared Libraries) Библиотеки, указанные LD_PRELOAD, загружаются и отображаются в память с помощью dlopen() и mmap() соответственно.(Цитата: Code Injection on Linux and macOS)(Цитата: Uninformed Needle)(Цитата: Phrack halfdead 1997)(Цитата: Brown Exploiting Linkers)

В macOS это поведение концептуально такое же, как и в Linux, отличаясь лишь тем, как реализованы динамические библиотеки macOS (dyld) на более низком уровне.Злоумышленники могут установить переменную окружения DYLD_INSERT_LIBRARIES, чтобы указать на вредоносные библиотеки, содержащие имена легитимных библиотек или функций, запрашиваемых программой-жертвой.(Цитата: TheEvilBit DYLD_INSERT_LIBRARIES)(Цитата: Timac DYLD_INSERT_LIBRARIES)(Цитата: Gabilondo DYLD_INSERT_LIBRARIES Catalina Bypass)

https://attack.mitre.org/techniques/T1574/006

← Назад

Визуализация смежных техник для T1574.006

Отрасль:
 с подтехниками
Техника

Закрыть