Flexeng dll что это
Подмена DLL (DLL hijacking)
Всем привет. Прямо сейчас в OTUS открыт набор на апрельский запуск обновленного курса «Реверс-инжиниринг». В преддверии старта курса мы традиционно подготовили перевод интересного материала.
В операционной системе Windows приложения и службы при запуске ищут DLL, необходимые для их правильного функционирования. Если эти DLL не найдены или их загрузка реализована небезопасным способом (DLL вызываются без использования полного пути), то можно повысить привилегии, заставив приложение загрузить и выполнить вредоносный DLL-файл.
Следует отметить, что когда приложению необходимо загрузить DLL, то ее поиск осуществляется в следующем порядке:
Шаг 1 — Процессы с отсутствующими DLL
На первом этапе необходимо найти процессы, которые работают от SYSTEM и пытаются загрузить отсутствующие DLL. Это можно сделать с помощью Process Monitor от Sysinternals, применив фильтр, указанный ниже:
Фильтры Procmon для поиска процессов, загружающих отсутствующие DLL
Process Monitor определит отсутствующие DLL, которые приложение пытается загрузить, и покажет фактический путь, по которому осуществляется поиск этой DLL.
Процесс с отсутствующей DLL
В данном примере для процесса Bginfo.exe отсутствует несколько DLL-файлов, которые могут быть использованы для повышения привилегий.
Шаг 2 — Разрешения на папки
Слабые разрешения на папку
Шаг 3 — Подмена DLL
С помощью Metasploit можно сгенерировать DLL с полезной нагрузкой в виде сеанса с привилегиями службы.
Генерация вредоносной DLL
Процесс Bginfo.exe запущен под SYSTEM, поэтому после перезапуска у вредоносной DLL будут такие же привилегии, так как DLL загружается и выполняется этим процессом.
Процесс запущен под SYSTEM
Вредоносная DLL переименована и размещена
Как видно ниже, при перезапуске службы с помощью подмены DLL открывается сессия Meterpreter с привилегиями SYSTEM.
Metasploit – Эскалация привилегий через подмену DLL
PowerSploit
Процесс подмены DLL можно сделать через PowerSploit, в котором есть три модуля, которые помогут в поиске служб с отсутствующими DLL, в обнаружении папок с правами на модификацию и в генерации DLL.
Модуль Find-ProcessDLLHijack найдет все процессы в системе, которые пытаются загрузить отсутствующие DLL.
PowerSploit — Обнаружение процессов с отсутствующими DLL
Следующим шагом будет определение папок, в которых пользователь может изменять содержимое. Будут найдены папки, в которые необходимо подбросить вредоносные DLL.
Обнаружение папок с правами на изменение
Последний шаг заключается в создании зловредной DLL в одной из папок с Modify (M) — разрешениями.
Создаем DLL в папке со слабыми разрешениями
Заключение
Для возможности повышения привилегий через подмену DLL должны быть выполнены следующие условия:
3 простых шага по исправлению ошибок FLEXENG.DLL
В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер.
Чтобы исправить критические ошибки flexeng.dll,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере
1- Очистите мусорные файлы, чтобы исправить flexeng.dll, которое перестало работать из-за ошибки.
2- Очистите реестр, чтобы исправить flexeng.dll, которое перестало работать из-за ошибки.
3- Настройка Windows для исправления критических ошибок flexeng.dll:
Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.
Как вы поступите с файлом flexeng.dll?
Некоторые сообщения об ошибках, которые вы можете получить в связи с flexeng.dll файлом
(flexeng.dll) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.
(flexeng.dll) перестал работать.
flexeng.dll. Эта программа не отвечает.
(flexeng.dll) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.
(flexeng.dll) не является ошибкой действительного windows-приложения.
(flexeng.dll) отсутствует или не обнаружен.
FLEXENG.DLL
Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.
процессов:
Cookies help us deliver our services. By using our services, you agree to our use of cookies.
Семь действенных способов, как исправить ошибки DLL Windows 7, 8 и 10
В статье мы опишем все возможные способы, как исправить ошибки DLL Windows 7, 10. Исправление msvcp140 dll, msvcp110 dll, kernelbase dll, comctl32 и других.
DLL – это файлы системных библиотек в Windows. Формально они являются исполняемыми, но запустить их по отдельности не получится. Библиотеки используются другими программами для выполнения стандартных функций сохранения, удаления, печати.
К примеру, когда в одной из программ вы запускаете опцию печати, приложение автоматически подгружает отвечающий за эту функцию файл DLL. Иногда в процессе работы программы появляются системные сообщения о том, что произошла неполадка в работе файла библиотеки. После этого приложение завершает свою работу или вы не можете выполнить определенную функцию. Далее рассмотрим все возможные способы, как исправить ошибки DLL Windows 7, 10. Схема действий одинакова для всех версий ОС.
Причины ошибок в работе библиотек DLL Windows
Так как каждая библиотека отвечает за конкретную функцию, причина ошибки зависит от того, какой файл DLL не отвечает. Наиболее частая неполадка происходит с Windows.dll – это главная системная библиотека, отвечающая за запуск всех приложений и самой операционной системы.
Существуют следующие типы ошибок DLL:
Большинство ошибок DLL в Windows появляется из-за установки пиратской версии ОС. Как правило, в модифицированных сборках используются вредоносные библиотеки, с которыми не могут взаимодействовать другие приложения. Если вы используете неофициальную версию Виндовс, советуем скачать на сайте Microsoft.com оригинальную копию образа ОС и установить её на свой компьютер.
Другие причины появления проблем с файлами DLL:
Способ 1 — Ошибочное удаление файла DLL
Если после открытия приложения ничего не происходит, а через несколько секунд появляется сообщение «ошибка msvcr100 DLL» или «ошибка msvcp120 DLL», это означает, что на компьютере нет нужной библиотеки. Возможно, она не была установлена вместе с ОС или файл был удален другой программой.
Системное окно с ошибкой выглядит следующим образом:
Если вы столкнулись с такой проблемой, для начала рекомендуем открыть папку жесткого диска С и в графе поиска вписать название нужного DLL. Часто библиотека просто перемещена в другую папку. Исправить проблему поможет её помещение в директорию C\Windows\System32 (для 32-х разрядный версий ОС) или в C\Windows\SysWoW64 (для 64-х разрядных сборок).
В случае, если на диске «С» вы не нашли нужный файл, на сайте Майкрософт нужно скачать апдейт для программного пакета Visual C++ 2013. Эта утилита настраивает взаимодействие всех системных файлов и исправляет существующие ошибки.
Пользователи часто недоумевают, потому что программы, которые только недавно работали, не запускаются. Например, были запущены Photoshop и Skype, но теперь появляется ошибка «Программа не запускается, потому что flex.dll отсутствует на вашем компьютере.
Что мне делать? Как мне ее вернуть? Как и где скачать flex.dll и куда ее положить? Ответы на все ваши вопросы здесь!
Что такое flex.dll?
При появлении уведомления о пропущенном файле пользователи начинают поиск загрузки flex.dll. Лучше делать это в проверенном месте, например на сайте DLL Kit, где нет ни угроз, ни вирусов.:
Самые распространенные ошибки с flex.dll файлом на Windows
Другие распространенные Flex.dll ошибки включают:
метод 1: Загрузить flex.dll автоматически
Здесь вы можете осуществлять поиск по доступным версиям flex.dll из списка ниже. Пользователи могут выбрать нужный файл и нажать ссылку «Скачать»
Не знаете, какая версия flex.dll вам нужна? Не волнуйтесь; используйте автоматический метод для решения проблемы или просто прочитайте статью ниже.
метод 2: Скачать flex.dll и установить вручную
Для этого метода скачайте flex.dll по нашей ссылке и используйте командную строку, чтобы зарегистрировать отсутствующую flex.dll:
FLEX.DLL ВЕРСИИ
дата выпуска: February 28, 2021
дата выпуска: February 28, 2021
Какая версия flex.dll правильная?
Посмотрите на описания в таблице, где можно выбрать нужный файл. Существуют версии для 64-битной или 32-битной Windows и используемые в них языки. Выберите те dll-файлы, язык которых идентичен языку самой программы. Загрузите последние версии dll-файлов для своей программы.
Where should you place flex.dll?
Ошибка «flex.dll пропущена» будет исправлена, если переместить файл в папку установки приложения или игры. Также можно переместить flex.dll в системный каталог Windows.
Если этот метод не помогает, используйте следующий.
метод 3: Переустановить Visual C++ Redistributable for Visual Studio 2015
Мы рекомендуем переустановить переустановку дистрибутива Visual C++ для Visual Studio 2015. Пожалуйста, придерживайтесь рекомендаций Microsoft по правильной установке отсутствующих файлов.
Рекомендуется скачать программу с официального сайта Microsoft:
Если этот метод не помогает, используйте следующий.
Список некоторых исполняемых файлов библиотеки Visual C++
метод 4: Запустить SFC сканирование (System File Checker)
Если этот метод не помогает, используйте следующий.
метод 5: Обновить Windows до последней версии
Даже простое обновление Windows может помочь решить эту проблему. Обновляя операционную систему до последней версии, все ошибки flex.dll могут исчезнуть:
Если этот метод не помогает, используйте следующий.
метод 6: Переустановить нужное приложение
Когда ни один из методов не может помочь, окончательным решением может быть переустановка приложения после его полной деинсталляции:
Если этот метод не помогает, используйте следующий.
Автоматизация обнаружения возможных путей перехвата DLL (DLL Hijacks)
Привет, хабровчане. Прямо сейчас открыт набор на новый поток курса «Пентест. Практика тестирования на проникновение». В преддверии старта курса делимся с вами переводом интересного материала.
Введение
В этой статье мы рассмотрим концепцию перехвата порядка поиска динамически подключаемых библиотек (DLL hijacking) и то, как она может быть использована для достижения устойчивости (persistence) в юзерленде в системах Windows. Этот метод описан в MITER ATT&CK в разделе: «Перехват порядка поиска DLL (T1038)».
Подмена DLL может быть использована злоумышленниками для множества разных целей, но в этой статье основное внимание будет уделено достижению устойчивости с помощью приложений с автозапуском. Например, поскольку Slack и Microsoft Teams запускаются при загрузке (по умолчанию), подмена DLL в одном из этих приложений позволит злоумышленнику получить устойчивый доступ к своей цели — всякий раз, когда пользователь входит в систему.
После представления концепции DLL, порядка поиска DLL, и подмены DLL, я раскрою процесс автоматизации обнаружения возможности перехвата DLL. В этой статье будет рассказано об обнаружении путей перехвата DLL в Slack, Microsoft Teams и Visual Studio Code.
Я хочу поблагодарить своего коллегу Джозайю Массари ( @Airzero24 ) за то, что он первым обнаружил некоторые из этих перехватов DLL, объяснил их методологию и вдохновил меня автоматизировать обнаружение.
Что такое DLL?
DLL — это библиотека, содержащая код и данные, которые могут использоваться одновременно более чем одной программой. (Сурс)
Например, разработчик, которому необходимо выполнять HTTP-запросы, может использовать библиотеку WinHTTP ( winhttp.dll ) вместо реализации HTTP-запросов с использованием сырых сокетов.
Порядок поиска DLL и перехват
Поскольку DLL существуют в виде файлов на диске, вы можете задаться вопросом, как приложение узнает, откуда загружать DLL? Microsoft подробно задокументировала порядок поиска DLL здесь.
Начиная с Windows XP SP2, безопасный режим поиска DLL включен по умолчанию ( HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode ). При включенном безопасном режиме порядок поиска DLL следующий:
Если приложение не указывает, откуда загружать DLL, Windows использует порядок поиска DLL по умолчанию, приведенный выше. Первая позиция в порядке поиска DLL (каталог, из которого загружается приложение) представляет интерес для злоумышленников.
Использование подмены DLL для достижения устойчивости
Именно эти программы стали целью перехвата, потому что по умолчанию они настроены на запуск при загрузке Windows. Это можно увидеть ниже в диспетчере задач:
Приложения Windows, настроенные на автозапуск
Чтобы проверить подмену DLL, я создал загрузчик шеллкода DLL, который запускал Cobalt Strike Beacon. Я переименовал вредоносную DLL в userenv.dll и скопировал ее в каталог уязвимого приложения. Я запустил приложение и увидел свой новый Beacon коллбек.
Cobalt Strike Beacon через перехват DLL
Используя Process Explorer, я могу проверить, действительно ли моя вредоносная DLL была загружена уязвимым приложением.
Обозреватель процессов, показывающий загруженную вредоносную DLL
Автоматическое обнаружение возможности перехвата DLL
После подтверждения ранее известного перехвата DLL, я хотел проверить, смогу ли я найти другие возможности для подмены DLL, которые можно было бы эксплуатировать.
Код, использованный в моих проверка, можно найти здесь.
На примере Slack
Чтобы начать этот процесс, я запустил Process Monitor (ProcMon) со следующими фильтрами:
Затем я запустил Slack и изучил ProcMon на предмет любых DLL, которые Slack искал, но не смог найти.
Возможные пути перехвата DLL, обнаруженные с помощью ProcMon
Я экспортировал эти данные из ProcMon в виде CSV файла для облегчения парсинга в PowerShell.
С моей текущей DLL загрузчика шелл-кода я не смог бы легко определить имена DLL, которые были успешно загружены Slack. Я создал новую DLL, которая использовала GetModuleHandleEx и GetModuleFileName для определения имени загруженной DLL и записи его в текстовый файл.
Моя следующая цель состояла в том, чтобы проанализировать CSV-файл на наличие в списке путей к DLL, просмотреть этот список, скопировать мою тестовую DLL по указанному пути, запустить целевой процесс, остановить целевой процесс и удалить тестовую DLL. Если тестовая DLL была успешно загружена, она запишет свое имя в результирующий файл.
Когда этот процесс завершится, у меня будет список возможных перехватов DLL (я надеюсь), записанных в текстовый файл.
Всю магию в моем проекте DLLHijackTest творит скрипт PowerShell. Он принимает путь к CSV-файлу, сгенерированному ProcMon, путь к вашей вредоносной DLL, путь к процессу, который вы хотите запустить, и любые аргументы, которые вы хотите передать процессу.
Параметры Get-PotentialDLLHijack
Get-PotentialDLLHijack.ps1
Через несколько минут я проверяю текстовый файл, указанный в моей «вредоносной» DLL, на предмет возможных перехватов DLL. Я обнаружил следующие возможные пути перехвата для Slack:
На примере Microsoft Teams
Выполняем описанный выше процесс еще раз:
На примере Visual Studio Code
Повторяя описанный выше процесс, я обнаружил следующие потенциальные пути перехвата для Visual Studio Code:
Подмена общих (shared) DLL
Я заметил, что Slack, Microsoft Teams и Visual Studio Code совместно используют следующие DLL:
Методология: понимание путей перехвата общих DLL
DLL с отложенной загрузкой
Стек трейс, когда Code.exe пытается загрузить WINSTA.dll
Стек трейс, когда Slack пытается загрузить ntshrui.dll
Строка « WINSTA.dll » в wtsapi32.dll
Кликнув правой кнопкой мыши по локации в памяти, мы сможем найти любые ссылки на этот адрес.
Ссылки на WINSTA.dll
__delayLoadHelper2 и ResolveDelayLoadedAPI в Ghidra
__delayLoadHelper2 и ResolveDelayLoadedAPI в ProcMon.
Подмена DLL в NetShareGetInfo и NetShareEnum
Стек трейс при загрузке cscapi.dll
srvcli.dll вызывает LoadLibrary для cscapi.dll
NetShareGetInfo загружает cscapi.dll
Я проверил это с помощью РоС программ, которые вызывали NetShareEnum и NetShareGetInfo :
NetShareEnum.exe загружает cscapi.dll
NetShareGetInfo.exe загружает cscapi.dll
Результаты
В Slack доступны следующие пути подмены DLL:
В Microsoft Teams доступны следующие пути подмены DLL:
В Visual Studio Code доступны следующие пути подмены DLL:
Заключение
Напомним, что перехват DLL — это метод, с помощью которого злоумышленники могут повлиять на выполнение кода в подписанных/доверенных приложениях. Я создал инструменты, помогающие автоматизировать обнаружение путей перехвата DLL. Используя этот инструмент, я обнаружил пути перехвата DLL в Slack, Microsoft Teams и Visual Studio Code.
Я заметил, что пути перехвата DLL этих трех приложений частично совпадают, и исследовал причину. Я осветил свою методику понимания данного совпадения. Я узнал о DLL с отложенной загрузкой и обнаружил два вызова API, которые делают возможным перехват DLL в любой программе, которая их вызывает:
Ссылки
Большой привет моим коллегам Дэниелу Хейнсену ( @hotnops ), Ли Кристенсену ( @tifkin_ ) и Мэтту Хэнду( @matterpreter ) за то, что они помогли справиться с Ghidra/ProcMon!