C windows system32 smss exe

Уровень сложностиПростой

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

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

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

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

System

Путь: Процесс не создается за счет исполняемого файла
Родительский процесс: Нет
Количество экземпляров: Один
Время запуска: Запуск системы

Здесь многословить не стоит: этот процесс отвечает за выполнение ядра операционной системы, других процессов и драйверов устройств, поэтому в основном под ним запускаются файлы .sys и некоторые важные для системы библиотеки. В обязанности System входит контроль за управлением оперативной и виртуальной памятью, объектами файловой системы.

smss.exe

Путь: %SystemRoot%\System32\smss.exe
Родительский процесс: System
Количество экземпляров: Один и дочерний, который запускается после создания сеанса
Время запуска: Через несколько секунд после запуска первого экземпляра

Session Manager Subsystem — диспетчер, отвечающий за создание новых сеансов, запуск процессов csrss.exe и winlogon.exe, отвечающих за графический интерфейс и вход в систему, а также за инициализацию переменных окружения. Первый экземпляр создает сеанс нуля и дочерний экземпляр, и как только дочерний экземпляр инициализирует новый сеанс, запуская csrss.exe и wininit.exe для сеанса 0 или winlogon.exe для сеанса 1, дочерний экземпляр завершается.

Если обнаружены проблемы с файловой системой, первостепенной функцией smss.exe является запуск системной утилиты для проверки диска — autochk.
После выполнения этих задач smss.exe переходит в пассивный режим.

Немного о сеансе 0 и сеансе 1

Сеанс 0 и сеанс 1 — это разные типы сеансов Windows, которые используются для запуска процессов.
Сеанс 0 создается при запуске системы, и в нем в фоновом режиме работают службы и процессы Windows.
Сеанс 1 создается для пользовательских процессов.

Chkdsk и autochk — что это вообще, и зачем? А разница в чем?

На самом деле, autochk — это версия chkdsk, которая запускается автоматически smss.exe при обнаруженных проблемах с диском. А разница их в том, что chkdsk можно запустить в среде Windows напрямую из командной строки, а autochk — нет.
Да и autochk работает только с NTFS, что не скажешь про chkdsk — он, в дополнение к NTFS, поддерживает FAT и exFAT.

Кстати!
По сути, chkdsk тоже может запускаться smss.exe, но это зависит от того, что указано в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SessionManager (здесь хранится информация, предназначенная для Диспетчеpa сеансов ) в параметре BootExecute). При запуске chkdsk Диспетчер сеансов использует параметр /r , что позволяет утилите производить поиск повреждённых секторов (наряду с ошибками файловой системы).

csrss.exe

Путь: %SystemRoot%\System32\csrss.exe
Родительский процесс: smss.exe, который, запустив csrss.exe, завершает работу
Количество экземпляров: Два или больше
Время запуска: Через несколько секунд после запуска первых двух экземпляров — для сеанса 0 и сеанса 1

Client/Server Run-Time Subsystem — подсистема выполнения «клиент/сервер» обеспечивает пользовательский режим подсистемы Windows. Csrss.exe отвечает за импорт многих DLL-библиотек, которые предоставляют WinAPI (kernel32.dll, user32.dll, ws_2_32.dll и другие), а также за обработку графического интерфейса завершения работы системы.
Процесс запускается для каждого сеанса, а именно 0 и 1, дополнительные сеансы создаются при помощи удаленного рабочего стола или за счет быстрого переключения между пользователями.

Что интересно для Windows Server

Можно проверить количество активных сеансов, введя query SESSION в командной строке. Так можно проверить, соответствует ли количество сеансов количеству запущенных csrss.exe.

И еще..

До Windows 7 csrss.exe обеспечивал старт окна консоли, но теперь этим занимается conhost.exe.

wininit.exe

Путь: %SystemRoot%\System32\wininit.exe
Родительский процесс: smss.exe, который завершает работу перед запуском wininit.exe
Количество экземпляров: Один
Время запуска: Через несколько секунд после запуска системы

После получения управления от процесса smss.exe, wininit.exe помечает себя как критический, что позволяет ему избегать нежелательного отключения при аварийном завершении сеанса или входа систему в гибернацию. Целью Windows Initialisation (wininit.exe) является запуск ключевых фоновых процессов в рамках сеанса нуля. Он запускает:

  • services.exe — Диспетчер управления службами

  • lsass.exe — Сервер проверки подлинности локальной системы безопасности

  • lsaiso.exe — для систем с включенной Credential Guard.

Дополнительно на протяжении всего сеанса работы системы wininit.exe отвечает за создание и наполнение папки TEMP. Перед выключением wininit.exe снова «активизируется» — теперь уже для корректного завершения запущенных процессов. .

Кстати!

До Windows 10 lsm.exe (Диспетчер локальных сеансов) также запускался с помощью wininit.exe. Начиная с Windows 10, эта функция перенесена в lsm.dll, которая размещена в svchost.exe.

services.exe

Путь: %SystemRoot%\System32\services.exe
Родительский процесс: wininit.exe
Количество экземпляров: Один
Время запуска: Через несколько секунд после запуска системы

В функции services.exe входит реализация Унифицированного диспетчера фоновых процессов (UBPM), который отвечает за фоновую работу таких компонентов, как Диспетчер управления службами (SCM) и Планировщик задач (Task Sheduler). Словом, services.exe отвечает за управление службами, а также за контроль за взаимодействием служб, обеспечивая их безопасную и эффективную работу.

UBPM: немного для тех, кто видит первый раз

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

Кстати!

До Windows 10, как только пользователь успешно вошел в систему в интерактивном режиме, services.exe считал загрузку успешной и устанавливал для последнего удачного набора элементов управления HKLM\SYSTEM\Select\LastKnownGood значение CurrentControlSet.

А LastKnownGood — что это вообще?

LastKnownGood являлся опцией восстановления, благодаря которой можно запустить систему с последней рабочей конфигурацией, если система не может загрузиться из-за каких-либо причин. LastKnownGood сохранял резервную копию части реестра, в которой хранится информация о системе, драйверах и настройках.

Когда это могло пригодиться? Например, если загрузка нового ПО или изменение параметров системы не привело ни к чему хорошему. Тогда можно было бы использовать эту опцию, чтобы отменить изменения и откатиться к прошлому состоянию.

svchost.exe

Путь: %SystemRoot%\system32\svchost.exe
Родительский процесс: services.exe (чаще всего)
Количество экземпляров: Несколько (обычно не менее 10)
Время запуска: В течение нескольких секунд после загрузки, однако службы могут запускаться в течение работы системы, что приводит к появлению новых экземпляров svchost.exe.

svchost.exe (в Диспетчере задач прописывается как Служба узла) — универсальный хост-процесс для служб Windows, использующийся для запуска служебных DLL. В системе запускается несколько экземпляров svchost.exe, и каждая служба работает в своем собственном процессе svchost, что позволяет изолировать ошибки в работе одной службы от других, хотя в системах с ОЗУ менее 3,5 ГБ службы приходится группировать (см. ниже). Ну а в системах с оперативной памятью более 3,5 ГБ можно увидеть даже более 50 экземпляров svchost.exe.

Злоумышленники часто пользуются преимуществом наличия большого количества процессов svchost.exe, и могут воспользоваться этим, чтобы разместить какую-либо вредоносную DLL в качестве службы, либо запустить вредоносный процесс с именем svchost.exe или что-то типа scvhost.exe, svhost.exe и так далее.
Хотя, как известно, так можно сделать с любым процессом, но с svchost.exe это происходит почаще.

Кстати!

До Windows 10 версии 1703 экземпляры svchost.exe по умолчанию запускались в системе с уникальным параметром -k, благодаря которому была возможна группировка похожих служб. Типичные параметры -k включают:

  • DcomLaunch — служба, которая запускает компоненты COM и DCOM, благодаря которым программы взаимодействуют между собой на удаленных компьютерах

  • RPCSS — служба RPC (удаленный вызов процедур), благодаря которой программы взаимодействуют между собой через сеть.

  • LocalServiceNetworkRestricted — локальная служба, которая работает в пределах компьютера и имеет доступ к сети только для определенных операций.

  • LocalServiceNoNetwork — локальная служба, идентичная LocalServiceNetworkRestricted, но не имеющая доступа к сети.

  • netsvcs — группа служб Windows, благодаря которым выполняются задачи, связанные с сетью.

  • NetworkService — служба, которая позволяет выполнять задачи на удаленных хостах, и имеет доступ к сети для обмена данными.

Здесь можно почитать о разделении служб SvcHost.

RuntimeBroker.exe

Путь: %SystemRoot%\System32\RuntimeBroker.exe
Родительский процесс: svchost.exe
Количество экземпляров: Один или больше
Время запуска: Может быть разным

Работающий в системах Windows, начиная с Windows 8, RuntimeBroker.exe действует как прокси между ограниченными приложениями универсальной платформы Windows (UWP) и набором функций и процедур Windows API. В целях безопасности приложения UWP должны иметь ограниченные возможности взаимодействия с оборудованием, файловой системой и другими процессами, поэтому процессы-брокеры а-ля RuntimeBroker.exe используются для обеспечения требуемого уровня доступа для таких приложений.

Обычно для каждого приложения UWP существует один файл RuntimeBroker.exe. Например, запуск сalculator.exe приведет к запуску соответствующего процесса RuntimeBroker.exe.

И такое было: об утечках памяти, связанных с RuntimeBroker

Когда процесс RuntimeBroker еще был в новинку, пользователи во время работы с системой начали замечать, что RuntimeBroker.exe нещадно занимает аж более 500 МБ памяти, что несвойственно для него.
Оказывается, ошибка заключалась в следующем: каждый вызов метода TileUpdater.GetScheduledTileNotifications приводила к тому, что RuntimeBroker выделял память без ее дальнейшего высвобождения. Чаще всего с этим сталкивались пользователи, у которых было установлено приложение «The Time» для измерения времени — оно постоянно обновляло информацию на плитке.

Об этом казусе в Windows 8 можно почитать тут.

Про метод TileUpdater.GetScheduledTileNotifications

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

Те самые "плитки" в Windows 8

Те самые «плитки» в Windows 8

taskhostw.exe

Путь: %SystemRoot%\System32\taskhostw.exe
Родительский процесс: svchost.exe
Количество экземпляров: Один или больше
Время запуска: Может быть разным

Процесс Task Host Window отвечает за выполнение различных задач Windows.
С началом работы, taskhostw.exe начинает выполнять задачи, которые были назначены ему системой, а в течение работы системы выполняет непрерывный цикл прослушивания триггерных событий. Примеры триггерных событий, которые могут инициировать задачу, могут включать в себя:

  • Определенное расписание задач

  • Вход пользователя в систему

  • Запуск системы

  • Событие журнала Windows

  • Блокировка/ разблокировка рабочей станции и т.д.

Двое из ларца: В чем разница между Task Host Window и Task Scheduler?

Task Host Window отвечает за выполнение различных системных задач, например, запуск служб и выполнение запросов на исполнение программ. Taskhostw.exe может использоваться для запуска службы обновления Windows, перехода компьютера в режим сна или ожидания после определенного времени и так далее.

Task Sheduler, он же Планировщик задач, — инструмент, благодаря которому пользователь имеет возможность создавать задачи и запускать их по расписанию или при определенных событиях. Планировщик задач может быть использован для запуска программ, скриптов и автоматизации задач.

lsass.exe

Путь: %SystemRoot%\System32\lsass.exe
Родительский процесс: wininit.exe
Количество экземпляров: Один
Время запуска: В течение нескольких секунд после загрузки

Local Security Authentication Subsystem Service (Служба проверки подлинности локальной системы безопасности) отвечает за аутентификацию пользователей путем вызова соответствующего пакета аутентификации, указанного в HKLM\SYSTEM\CurrentControlSet\Control\Lsa. Обычно это Kerberos для учетных записей домена или MSV1_0 для локальных учетных записей. Помимо аутентификации пользователей, lsass.exe также отвечает за реализацию локальной политики безопасности (например, политики паролей и политики аудита), а также за запись событий в журнал событий безопасности.

Что любят котята: Mimikatz и LSASS

Многим известно, что злоумышленники могут использовать Mimikatz, зачастую для перехвата учетных данных в операционной системе, и делают они это за счет перехвата данных процесса lsass.exe.
Все просто: работает Mimikatz на уровне ядра и внедряется в процесс LSASS или использует метод DLL-injection. Кража учетных данных происходит либо за счет получения доступа к памяти процесса, в котором лежат заветные креды, либо за счет перехвата вызова функций до шифрования учетных данных.
Также Mimikatz не пренебрегает использованием стандартных функций Win32 LsaProtectMemory и LsaUnprotectMemory, которые используются для шифрования и расшифровки некоторых участков памяти с чувствительной информацией.

Чуть больше об lsass.exe можно прочитать тут.
И о любви котят к LSASS — тут.

winlogon.exe

Путь: %SystemRoot%\System32\winlogon.exe
Родительский процесс: smss.exe, который, запустив winlogon.exe, завершает работу
Количество экземпляров: Один или больше
Время запуска: В течение нескольких секунд после загрузки первого экземпляра, дополнительные экземпляры запускаются по мере создания новых сеансов (подключение с удаленного рабочего стола и быстрое переключение пользователей)

Winlogon обрабатывает интерактивный вход и выход пользователей из системы. Он запускает LogonUI.exe, который использует поставщика учетных данных для сбора учетных данных пользователя, а затем передает учетные данные lsass.exe для проверки.
После аутентификации пользователя Winlogon загружает NTUSER.DAT пользователя в HKCU, настраивает окружение пользователя, включая его рабочий стол, настройки реестра и т.д., и запускает оболочку пользователя explorer.exe через userinit.exe.

Совсем чуть-чуть об logonUI.exe

Да, название говорит само за себя: logonUI.exe отвечает за отображение экрана входа пользователя и за взаимодействие с пользователем при входе в систему. Если просто, то вывод того самого экрана входа и поля для ввода учетных данных — старания logonUI.exe.

..И об userinit.exe

Основная функция userinit.exe заключается в подготовке среды пользователя для работы в операционной системе.
Когда пользователь входит в систему, userinit.exe инициирует загрузку профиля пользователя, настройки оболочки (шаблоны рабочего стола, запуск программ и т.д.). После выполнения сих действий, userinit.exe запускает оболочку пользователя explorer.exe, которая отображает рабочий стол и другие элементы интерфейса, после чего завершает работу.

Кстати!

Обработка команд из CTRL+ALT+DEL, между прочим, тоже входит в обязанности winlogon.exe.
А тут можно почитать о Winlogon еще и узнать чуть больше — и про его состояния, и про GINA, и про все-все.

explorer.exe

Путь: %SystemRoot%\explorer.exe
Родительский процесс: userinit.exe, который завершает работу
Количество экземпляров: Один или больше, если включена опция Запускать окна с папками в отдельном процессе
Время запуска: Интерактивный вход пользователя

По своей сути, explorer.exe предоставляет пользователям доступ к файлам, хотя одновременно это файловый браузер через проводник Windows (тот самый Диспетчер файлов) и пользовательский интерфейс, предоставляющий такие функции, как:

  • Рабочий стол пользователя

  • Меню «Пуск»

  • Панель задач

  • Панель управления

  • Запуск приложений через ассоциации расширений файлов и файлы ярлыков

Словом, процесс отвечает за отображение действий пользователя: открытие и закрытие окон, перемещение и копирование файлов и тому подобное.

Запуск приложений через ассоциации расширений файлов

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

Также и с ярлыками — при щелчке запускается связанные с ними ресурсы.

Explorer.exe — это пользовательский интерфейс по умолчанию, указанный в значении реестра HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell, хотя Windows может работать и с другим интерфейсом, например, с cmd.exe.
Следует заметить, что легитимный explorer.exe находится в каталоге %SystemRoot%, а не %SystemRoot%\System32.

Explorer — это же браузер, нет?

В старые добрые времена, когда на системах еще стоял Internet Explorer, запуск этого браузера инициировал процесс iexplore.exe, и с каждой новой вкладкой создавался новый экземпляр этого процесса. Сейчас остался только explorer.exe, который ни в коем случае не связан с браузером.
Вместо Internet Explorer на наших системах стоит MS Edge, который имеет процесс msedge.exe, исполняемый файл которого лежит в \Program Files (x86)\Microsoft\Edge\Application\.

ctfmon.exe

Путь: %SystemRoot%\System32\ctfmon.exe
Родительский процесс: Зависит от того, какой процесс запустил ctfmon.exe
Количество экземпляров: Один
Время запуска: При входе в систему

Процесс ctfmon.exe или, как привыкли его видеть, CTF-загрузчик, управляет функциями рукописного и сенсорного ввода, распознавания голоса и переключения языка на панели задач. Также процесс отслеживает активные программы и настраивает языковые параметры для обеспечения поддержки многоязычного ввода.
Ctfmon.exe может быть запущен разными процессами, и это напрямую зависит от того, какие функции ввода или языка используются в системе. Примеры родительских процессов и причины запуска:

  • svchost.exe — использование рукописного ввода или распознавания речи

  • winword.exe, excel.exe и т.д. — использование программ пакета Microsoft Office

  • searchUI.exe — использование поиска на панели задач или приложения из магазина Windows 10

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

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

  • #1

Hi Guys,

Im a little new at this. I ran eWido and I got this program running. I googled it but didnt get any helpful results. Can anyone shed light on this?

I run eWido, spyblaster, spybot, adaware, and have AVG Antivirus and came up clean.

Thanks!

mechBgon

Super Moderator<br>Elite Member


  • #2

Do you have reasons to think your system’s infected? Some malware could inject itself into your smss.exe process.

  • #3

My laptop just runs slowly. Also, Im just paranoid of all the security threats.

Is that how the smss.exe supposed to show up?

Thanks!

mechBgon

Super Moderator<br>Elite Member


  • #4

The correct location is in C:\Windows\System32, which equates to what you’ve posted. If you want to scan with something better than AVG, and probably better than ewido too, try this manual scanner that I wrote instructions for: http://www.omnicast.net/~tmcfadden/scan.txt It detects worms, trojans, viruses, hack tools and also a fair number of spyware/adware programs and even some rootkits.

  • #5

Ok, this is really dumb question (please bear with me) so are you saying that the program \systemroot\system32\smss.exe is the same as C:\\windows\system32

I am a total idiot when it comes to this kind of stuff, so I am thinking of just brining my laptop to Geeksquad and also having them check it out.

Thanks for your speedy help/input!

  • #6

Originally posted by: supadupapunky
Ok, this is really dumb question (please bear with me) so are you saying that the program \systemroot\system32\smss.exe is the same as C:\\windows\system32

I am a total idiot when it comes to this kind of stuff, so I am thinking of just brining my laptop to Geeksquad and also having them check it out.

Thanks for your speedy help/input!

%systemroot% is the quivalent to C:\Windows. The only reason it is written %systemroot% is because some users have their local drive as F, G, X, Z, etc.

%systemroot%\system32 == C:\Windows\system32

Text, for future reference.

corkyg

Elite Member | Peripherals



Mar 4, 2000


27,370


239


106


  • #7

That is not necessarily malware. It is an important part of Windows.

smss.exe

The location of the file is the discerning criterion.

  • Advertising
  • Cookies Policies
  • Privacy
  • Term & Conditions

  • This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.

Доброго времени суток, codeby.
Первоисточник:

Ссылка скрыта от гостей

Перевод: Перевод выполнен от команды Codeby

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

На конечных точках выполнение определенных процессов Windows хорошо документировано. Если мы можем прогнозировать нормальное поведение этих процессов при выполнении, то мы можем легко отметить выполнение похожих, но ненормальных процессов в системах. Чтобы сбить с толку специалистов по безопасности, и аналитиков, злоумышленники в настоящее время прибегают к использованию исполняемых файлов с такими же именами, что и системные процессы. Таким образом, беглый взгляд пользователя или даже специалиста может не идентифицировать вредоносный фрагмент двоичного файла в системе. Этот метод, который популярен среди APT и групп вредоносных программ, таких как APT1, Carbanak, Elise и т. д., называется ‘

Ссылка скрыта от гостей

’ (Маскировка/сокрытие имен).

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

Мы будем использовать следующие компоненты для проведения поиска:

  • Sysmon: этот инструмент Sysinternals является отличным средством регистрации событий Windows. Он может генерировать подробные логи в системе Windows.
  • Winlogbeat: это доставщик логов Windows. Это часть Эластичного стека (Elastic stack).
  • ELK stack: платформа для аналитики и визуализации. Эта структура будет использоваться в качестве нашей платформы «Поиск угроз» (‘Threat Hunting’). Логи, сгенерированные в системах Windows Sysmon, будут отправлены в стек ELK с помощью winlogbeat.

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

Ссылка скрыта от гостей

и

Ссылка скрыта от гостей

Марка Руссиновича , который также является автором Sysmon и более широкого набора инструментов sysinternals.

Давайте рассмотрим пример процесса smss.exe в Windows. Этот сервис относится к Менеджеру сеансов и имеет следующие характеристики:

  • Это первый процесс пользовательского режима;
  • Родительский процесс должен называться System;
  • Он загружается из %systemroot%\System32\smss.exe;
  • Имя пользователя должно быть следующим: NT AUTHORITY\SYSTEM;
  • Он создает два сеанса: сеанс 0 — службы ОС и сеанс 1 — сеанс пользователя;
  • Сеанс 1 завершится после загрузки csrss.exe и winlogon.exe. (Следовательно, у этих двух процессов не будет родительского процесса);
  • Только один smss.exe с сеансом 0 должен быть запущен. (Если запущено более одного экземпляра, то это означает, что это либо фальшивка, либо несколько пользователей вошли в систему).

Многие из этих деталей можно проверить с помощью утилиты Sysinternals Procexp.exe.

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

Ссылка скрыта от гостей

(


Ссылка скрыта от гостей

) для более подробной информации.

# Название процесса (Image Name) Директория процесса (Image Directory) Родительский процесс (Parent Image)
1 svchost.exe C:\Windows\System32\ C:\Windows\System32\services.exe
2 smss.exe %Systemroot%\System32\ System
3 csrss.exe %SystemRoot%\system32\
4 wininit.exe %SystemRoot%\system32\
5 services.exe %SystemRoot%\System32\ %SystemRoot%\System32\wininit.exe
6 lsass.exe %SystemRoot%\System32\ %SystemRoot%\System32\wininit.exe
7 svchost.exe %SystemRoot%\System32\ %SystemRoot%\System32\services.exe
8 lsm.exe %SystemRoot%\System32\ %SystemRoot%\System32\wininit.exe
9 winlogon.exe %SystemRoot%\System32\
10 explorer.exe %SystemRoot%\
11 taskhost.exe %SystemRoot%\System32\ %SystemRoot%\System32\wininit.exe

Таблица 1 Процессы в Windows

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

ID события (Event IDs) Класс события (Event Class)
1 Process Create
2 Process Terminate
6 Drive Load
7 Image Load
2 File Creation Time Changed
3 Network Connection
8 CreateRemoteThread
9 RawAccessRead

Таблица 2 Sysmon ID событий

Мы сосредоточимся на событии с идентификатором (ID) 1, которое генерируется при каждом создании нового процесса. Мы получим эти логи в ELK через Winlogbeats.

Logstash может использоваться для анализа и маркировки событий, которые не соответствуют шаблону правила, приведенному выше. Взяв пример SVCHOST.EXE, отметим, что его родительский процесс называется «SERVICES.EXE» и выполняется из каталога System32. Это может быть определено как «правило» в logstash, как показано ниже.

Код:

if “svchost.exe” in [event_data][Image] and ([event_data][CurrentDirectory] !~
/(?i)C:\\Windows\\System32\\$/ or [event_data][ParentImage] !~
/(?i)C:\\Windows\\system32\\services.exe$/) {                   
                                        mutate {                         
                                                   add_tag => [“suspicious process found”]                   
                                       }           
                      }

Всякий раз, когда мы сталкиваемся с процессом с именем svchost.exe, который не выполняется из каталога C:\Windows\System32\ или у которого нет родительского процесса с именем services.exe (который сам был запущен из C:\Windows\System32\ каталога), к событию добавляется тег для дальнейшего просмотра и исследования.

Примечание: В данной статье во всех случаях используется отсылка к диску «C:\» с оговоркой на то, что на большинстве компьютеров ОС Windows установлена на диске C.

Если вам неизвестен синтаксис файла конфигурации logstash, вы можете обратиться к нижеприведенным статьям:

Ссылка скрыта от гостей

Ссылка скрыта от гостей

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

1573412560375.png

Рисунок 1: Тегиs: подозрительный процесс обнаружен в Kibana

1573412577652.png


Рисунок 2: Взаимосвязь обнаружила подозрительный процесс

В последующих статьях мы с вами рассмотрим конфигурацию и настройку Sysmon и ELK для обеспечения полного цикла поиска угроз. Ну а теперь, счастливого поиска!

В этой инструкции мы покажем несколько способов получить список установленных программ в Windows 10, Windows 8 или Windows 7 с помощью командной строки. Эта методика построения списка программ в системе может пригодиться перед переустановкой системы, когда нужно найти нежелательное ПО или при выполнении инвентаризации установленного ПО на компьютерах организации.

Рассмотрим два способа: первый подразумевает использование командной строки и утилиты wmic, второй — PowerShell.

Содержание:

  • Вывод списка программ с помощью утилиты командной строки WMIC
  • Вывод списка программ через Windows PowerShell

Вывод списка программ с помощью утилиты командной строки WMIC

Список установленных в системе программ может быть получен с помощью утилиты командной строки WMIC, через которую можно обратиться и опросить пространство имен WMI. Запустите командную строку с правами администратора и выполните команду:

wmic product get name,version

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

Этот список можно экспортировать в текстовый файл с помощью команды:

wmic product get name,version /format:csv > c:\Temp\Programs_%Computername%.csv

После окончания выполнения команды перейдите в каталог C:\Temp и найдите csv файл, имя которого начинается с Programs_[имя_ПК]. В данном файле в csv-формате помимо названия и версии ПО, также будет содержаться имя ПК (удобно для дальнейшего анализа).

Вывод списка программ через Windows PowerShell

Список установленных программ также может быть получен с помощью PowerShell. Идея метода в том, что список установленных программ, который мы видим в списке Programs and Features Панели Управления, строится на основе данных, хранящихся в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Наша задача – вывести содержимое данной ветки реестра. Итак, запустите консоль Powershell и выполните команду:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize

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

Совет. Для 32-битных приложений на x64 версиях Windows, также нужно брать данные из ветки HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Экспортировать полученный список в csv файл можно так:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > c:\temp\ installed-software.txt

Рассмотренный выше способ позволяет вывести данные только о классический Windows приложениях. Чтобы вывести список установленных Metro приложений, воспользуйтесь командой:

Get-AppxPackage | Select Name, PackageFullName |Format-Table -AutoSize > c:\temp\installed_metro_apps.txt

Чтобы получить список установленного ПО на удаленном компьютере (к примеру, с именем wks_name11), воспользуемся командлетом Invoke-command:

Invoke-command -computer wks_name11 {Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize }


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

Compare-Object –ReferenceObject (Get-Content C:\temp\installed-software.txt) –DifferenceObject (Get-Content C:\temp\installed-software2.txt)

В нашем примере в двух сравниваемых списках имеются различия в двух программах.

Другой способ вывести список установленных программ – воспользоваться командлетом Get-WmiObject, также позволяющего обращаться с пространству WMI:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

Аннотация: Описывается командная оболочка WMI Command-line (WMIC), разработанная для работы с WMI из командной строки. Рассматривается архитектура WMIC и структура внутрених команд

Доступ к WMI из командной строки. Командная оболочка WMIC

В Windows XP и Windows Server 2003 к подсистеме WMI можно обращаться непосредственно из командной строки без помощи графических утилит и составления сложных сценариев. Для этого используется программа WMIC (WMI Command-line), которая поддерживает навигацию по информационной схеме WMI локального или удаленного компьютера, позволяя выполнять WQL-запросы к классам и объектам WMI. При этом вместо сложных названий классов WMI используются простые псевдонимы, причем можно создавать собственные псевдонимы, что делает информационную схему WMIC расширяемой.

По умолчанию WMIC поддерживает около 80 псевдонимов, с помощью которых можно выполнить 150 методов и получить значения множества свойств. Важной особенностью WMIC является то, что вывод команд может быть организован в различные форматы: на экран, в текстовый файл, в XML- и HTML-документы, в MOF-файл, в текстовый файл с разделителями или в любой другой формат, определяемый пользователем с помощью таблиц стилей XSL (eXtensible Stylesheet Language).

Одна команда WMIC может быть применена сразу к нескольким удаленным компьютерам с любой 32-разрядной версией Windows, при этом наличие WMIC на удаленной машине не требуется, необходима только установка ядра WMI и соответствующая настройка прав доступа к WMI. Кроме этого, команды WMI могут использоваться в пакетных файлах Windows, что позволяет простыми средствами автоматизировать работу с WMI на локальных или удаленных компьютерах.

В качестве недостатка WMIC можно отметить отсутствие встроенной полноценной поддержки и обработки событий WMI.

Запуск WMIC. Использование встроенной справки

С WMIC можно работать в двух режимах: интерактивном и пакетном. В интерактивном режиме с клавиатуры вводится последовательность команд WMIC, которые сразу же выполняются. Кроме этого, в интерактивном режиме удобнее работать со встроенной помощью WMIC. Пакетный режим позволяет запускать предварительно подготовленный командный (пакетный) файл с командами WMIC или выполнять из командной строки операционной системы единственную команду WMIC.

Для запуска WMIC в интерактивном режиме необходимо выполнить команду wmic в стандартном интерпретаторе команд cmd.exe или в диалоговом окне Выполнить (Run) в меню Пуск (Start). После этого на экран выводится стандартное приглашение WMIC, wmic:root\cli>.

После этого можно вводить с клавиатуры команды WMIC (регистр символов значения не имеет), которые запускаются после нажатия клавиши <Enter>. Например, если набрать в командной строке WMIC слово PROCESS и нажать <Enter>, то на экран выведется список всех процессов, запущенных в данный момент в системе:

wmic:root\cli>PROCESS
Caption          CommandLine
System Idle Process
System
smss.exe     \SystemRoot\System32\smss.exe
csrss.exe    C:\WINDOWS.1\system32\csrss.exe ObjectDirectory=.\. . .
services.exe  C:\WINDOWS.1\system32\services.exe
lsass.exe     C:\WINDOWS.1\system32\lsass.exe
svchost.exe  C:\WINDOWS.1\system32\svchost -k DcomLaunch
svchost.exe  C:\WINDOWS.1\system32\svchost -k rpcss
svchost.exe  C:\WINDOWS.1\System32\svchost.exe -k netsvcs
. . .

Если же ввести в командной строке WMIC слово OS, то мы увидим на экране свойства операционной системы, установленной на компьютере:

wmic:root\cli>OS
BootDevice               BuildNumber  BuildType          Caption
\Device\HarddiskVolume1  2600         Uniprocessor Free  Microsoft Windows . . .

14.1.

Естественно, это лишь самые простые примеры использования командной строки WMIC. Для того чтобы узнать о дополнительных возможностях WMIC, можно воспользоваться встроенной помощью, которая вызывается с помощью ключей /? или ?. Например, набрав один из этих ключей после слова PROCESS и нажав клавишу <Enter>, мы выведем справку, из которой, скажем, видно, что команда OS CALL позволяет выполнять некоторые действия над процессами:

wmic:root\cli>OS -?
OS - Управление установленными операционными системами.
СОВЕТ. BNF при работе с псевдонимом.
(<псевдоним> [WMI-объект] | <псевдоним> [<путь where>] | 
 [<псевдоним>] . . .
Использование:
OS ASSOC [<указатель формата>]
OS CALL <имя метода> [<список фактических параметров>]
OS CREATE <список значений>
OS DELETE
OS GET [<список свойств>] [<ключи get>]
OS LIST [<формат списка>] [<ключи>]
OS SET [<список значений>]

Выполнив теперь команду PROCESS CALL /?, мы получим краткое описание методов, которые могут быть вызваны при работе с процессами:

wmic:root\cli>PROCESS CALL /?
Вызов методов.
Использование:
CALL <имя метода> [<список фактических параметров>]
ЗАМЕЧАНИЕ. <список фактических параметров> ::= <факт. парам.> | 
  <факт. парам.>,  <
Для псевдонима доступны следующие команды и методы:
Вызов         [ Ввод/Вывод ]Параметры и тип           Состояние
====          =====================                   ======
AttachDebugger                                        (null)


Create        [UNKNOWN]CommandLine(STRING)            (null)

              [UNKNOWN]CurrentDirectory(STRING)

              [UNKNOWN]ProcessStartupInformation(OBJECT)

              [UNKNOWN]ProcessId(UINT32)

GetOwner      [UNKNOWN]Domain(STRING)                 (null)

              [UNKNOWN]User(STRING)

GetOwnerSid   [UNKNOWN]Sid(STRING)                    (null)

SetPriority   [IN ]Priority(SINT32)                   (null)

Terminate     [UNKNOWN]Reason(UINT32)                 (null)

Для получения более подробной помощи по этим методам нужно выполнить команду PROCESS CALL /?:FULL:

wmic:root\cli>PROCESS CALL /?:FULL
Вызов методов.
Использование:
CALL <имя метода> [<список фактических параметров>]
ЗАМЕЧАНИЕ. <список фактических параметров> ::= <факт. парам.> | 
  <факт. парам.>,  <список факти

Для псевдонима доступны следующие команды и методы:
Вызов    [ Ввод/Вывод ]Параметры и тип      Состояние
====     =====================                   ======
AttachDebugger                         (null)

Описание:
The AttachDebugger method launches the currently 
  registered debugger for this . . .

Create  [UNKNOWN]CommandLine(STRING)            (null)
              [UNKNOWN]CurrentDirectory(STRING)
              [UNKNOWN]ProcessStartupInformation(OBJECT)
              [UNKNOWN]ProcessId(UINT32)
Описание:
The Create method creates a new process. 
 It returns an integer value of 0 . . .
. . .

Ключи /? и ? можно ввести и сразу после приглашения WMIC. В этом случае будет выведена общая информация о глобальных ключах, доступных псевдонимах и командах WMIC.

Пакетный режим работы, как отмечалось ранее, подразумевает запуск команд WMIC непосредственно из командной строки Windows или из пакетного файла. Для этого перед нужной командой пишется слово WMIC. При выполнении такой конструкции запускается WMIC, выполняется требуемая команда, после чего управление вновь передается командной строке Windows.

Например, для того чтобы вывести в пакетном режиме на экран свойства операционной системы, нужно в командной строке Windows выполнить команду WMIC OS.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как включить все потоки процессора windows 11
  • Show all files windows
  • C windows system32 spool printers что это
  • Windows 7 после установки зависает на запуск windows
  • Начало установки windows 7 долго идет