Давайте рассмотрим технику, которой атакующие часто пользуются для подмены поведения процессов и сокрытия активности —
LD_PRELOADВ этом отчете хакеры модифицировали поведение юнита systemd -
rsyslog.service👨💻 Как это работает?
Systemd читает
unit-файлы и drop-in-файлы из стандартных директорий, например:🔤
/etc/systemd/system/*🔤
/lib/systemd/system/*🔤
/run/systemd/system/*🔤
/usr/lib/systemd/system/*🔤
~/.config/systemd/user/*Атакующие создали папку
unintname.d - rsyslog.service.d, и файл с расширением .conf
[Service]
Environment='LD_PRELOAD=libnsan.so'
🔭 Обнаружение:
🔤 одним из способов для хантинга можно проверить содержимое
/proc/*/environ
grep -ai "LD_PRELOAD" /proc/*/environ
🔤 можем увидеть путь к подозрительным библиотекам в
/proc/PID/maps
7f161cc04000-7f161cc05000 r--p 00000000 fe:01 31256 /usr/lib/systemd/system/rsyslog.service.d/libnsan.so
7f161cc05000-7f161cc06000 r-xp 00001000 fe:01 31256 /usr/lib/systemd/system/rsyslog.service.d/libnsan.so
7f161cc06000-7f161cc07000 r--p 00002000 fe:01 31256 /usr/lib/systemd/system/rsyslog.service.d/libnsan.so
7f161cc07000-7f161cc08000 r--p 00002000 fe:01 31256 /usr/lib/systemd/system/rsyslog.service.d/libnsan.so
7f161cc08000-7f161cc09000 rw-p 00003000 fe:01 31256 /usr/lib/systemd/system/rsyslog.service.d/libnsan.so
🔤 похантить наличие переменной
LD_PRELOAD в /etc/profile, /etc/profile.d/*, /etc/environment, ~/.*rc, ~/.profilep.s. отличная статья про поиск ld_preload
#dfir@detectioneasy
#ttp@detectioneasy