Windows 安全运营基础(一):系统进程与安全

系列说明:本文是《Windows 安全运营基础》系列的第一篇,主要介绍从内核到用户态的典型系统进程启动链,以及 SOC/安全分析中如何利用这些知识做异常检测。后续文章将覆盖服务与持久化、登录与认证、驱动与内核等与安全运营相关的主题。


一、为什么要了解系统进程

作为安全运营或 SOC 分析师,理清 Windows 系统进程的来龙去脉,有助于:

  • 调试与排错:理解进程由谁创建、在哪个 Session 下运行,能更快定位权限、环境问题。
  • 安全分析:攻击者常冒充、注入或利用这些进程隐藏自身;掌握「正常 vs 异常」的判定依据,是 SOC 日常研判的基础。
  • 自动化与监控:基于父子关系、路径、进程数量等维度编写脚本或规则,可高效筛选需深入调查的告警。

下面从「谁创建谁、在哪儿跑」的视角,梳理系统进程的启动链,并在每个进程中补充安全运营相关的检测要点。


二、进程启动链总览

高层关系可概括为(实线表示父进程常驻,虚线表示父进程创建子进程后即退出):

flowchart TB
    System["System"]
    smss["smss.exe"]
    csrss["csrss.exe"]
    wininit["wininit.exe"]
    winlogon["winlogon.exe"]
    services["services.exe"]
    lsm["lsm.exe"]
    lsass["lsass.exe"]
    userinit["userinit.exe"]
    svchost["svchost.exe"]
    explorer["explorer.exe"]
    runtimebroker["runtimebroker.exe"]
    taskhostw["taskhostw.exe"]

    System --> smss
    smss -.-> csrss
    smss -.-> wininit
    smss -.-> winlogon
    wininit --> services
    wininit --> lsm
    wininit --> lsass
    winlogon --> userinit
    services --> svchost
    userinit -.-> explorer
    svchost --> runtimebroker
    svchost --> taskhostw
  • 实线 (→):父进程持续存在,子进程在进程树中可见其父进程。
  • 虚线 (-.→):父进程在创建子进程后退出(如 smss 创建 csrss/wininit/winlogon 后退出,userinit 启动 explorer 后退出),因此子进程在工具中常显示为「无父进程」。

若仅看主干,也可用下面的简化关系记忆:

[内核] Idle / System (PID 4)
    └── smss.exe (Session Manager)
            ├── csrss.exe (每 Session 一个)
            ├── winlogon.exe (每用户 Session)
            └── wininit.exe (仅 Session 0)
                    ├── services.exe
                    ├── lsass.exe
                    └── lsm.exe
                            └── (services.exe 再创建 svchost.exe 等)

[用户登录后]
winlogon → Userinit.exe → Explorer.exe
(Userinit 启动后即退出,故 Explorer 常表现为“无父进程”)

接下来按执行顺序逐个说明每个进程的职责与安全注意点。


三、系统进程详解

3.1 System(以及 Idle)

属性说明
创建者ntoskrnl.exe 的 Process Manager 创建,无可见父进程
PID固定为 4(若见 PID≠4 的「System」进程,多为恶意伪装)
路径内核概念,无用户态镜像路径;若工具显示路径,应为 C:\Windows\System32 相关
职责内核级进程/线程管理、驱动与系统资源管理,并创建 smss.exe

安全要点
- PID 必须为 4;若出现多个「System」或 PID≠4,需警惕 Rootkit。
- 若 System 进程被替换或路径异常,要高度警惕。


3.2 smss.exe(Session Manager Subsystem)

属性说明
父进程System
路径%SystemRoot%\System32\smss.exe
Base Priority11
账户NT AUTHORITY\SYSTEM
职责第一个用户态进程;延迟文件删除/改名、加载 Known DLLs;创建 Session 0(服务)与 Session 1(用户);为 Session 1 创建 csrss 与 winlogon 后退出(故二者在工具里常显示为「无父进程」)

每个用户登录时会起一个 smss 做 Session 环境初始化,完成后退出;长期存在的 smss 通常只有一个,且多在 Session 0

安全要点
- 通常只有一到两个实例;若出现多个 smss.exe,或路径不在 C:\Windows\System32,可能是木马。


3.3 csrss.exe(Client/Server Runtime Subsystem)

属性说明
父进程由 smss 创建(创建后 smss 退出,故常显示无父进程)
路径%SystemRoot%\system32\csrss.exe
Base Priority13
账户NT AUTHORITY\SYSTEM
职责Windows 子系统进程:控制台窗口、进程/线程的创建与删除、临时文件等

每个 Session 有一个 csrss 进程

安全要点
- 路径必须是 System32;若出现在 C:\Windows\Temp 等目录,多为攻击者伪装。
- CPU 占用异常高时需结合其他行为排查。


3.4 wininit.exe(Windows Initialization Process)

属性说明
父进程smss.exe
路径%SystemRoot%\system32\wininit.exe
Base Priority13
账户NT AUTHORITY\SYSTEM
职责用户态初始化:创建 %windir%\temp;在 Session 0 下启动 services.exe、lsass.exe、lsm.exe
子进程services.exe、lsass.exe、lsm.exe

安全要点
- 若 wininit 缺失或未运行,系统无法正常完成启动。
- 仅认可 System32 下的版本;其他路径需人工核查。


3.5 services.exe(Service Control Manager)

属性说明
父进程wininit.exe
路径%SystemRoot%\System32\services.exe
Base Priority9
账户NT AUTHORITY\SYSTEM
职责加载服务数据库、管理 Windows 服务;派生 svchost、taskhost、spoolsv 等
运行环境Session 0,全系统唯一

安全要点
- 常被用作持久化入口(恶意服务注册)。
- 若其子进程中出现 cmd.exe、powershell.exe 等,需高度警惕。
- 若 services 启动异常外连,应结合网络与命令行审计。


3.6 lsass.exe(Local Security Authority Subsystem Service)

属性说明
父进程wininit.exe
路径%SystemRoot%\System32\lsass.exe
Base Priority9
账户NT AUTHORITY\SYSTEM
职责本地安全策略:登录用户管理、密码策略、安全事件日志等;处理身份验证、Kerberos、凭据等
运行环境Session 0,唯一,无子进程

安全要点
- 攻击者最爱目标之一;Mimikatz 等会从 lsass 内存 dump 凭据。
- 若发现 procdump、任务管理器 dump、或第三方工具对 lsass 打开句柄,应立即调查。
- lsass 一般不主动联网,异常网络行为也需关注。


3.7 svchost.exe(Service Hosting Process)

属性说明
父进程services.exe
路径%SystemRoot%\System32\svchost.exe
Base Priority8
账户NT AUTHORITY\SYSTEM / LOCAL SERVICE / NETWORK SERVICE
职责按组承载 DLL 形式的各种 Windows 服务
运行环境多个实例,均在 Session 0

安全要点
- 正常会有多个 svchost,路径均应在 System32
- 若出现在 Temp、Downloads 等目录,视为可疑。


3.8 lsm.exe(Local Session Manager Service)

属性说明
父进程wininit.exe
路径%SystemRoot%\System32\lsm.exe
Base Priority8
账户NT AUTHORITY\SYSTEM
职责管理终端服务会话状态,向 smss 发起新会话请求;处理登录/注销、Shell 启停、会话连接/断开、桌面锁定等
运行环境Session 0,无子进程

3.9 winlogon.exe(Windows Logon Process)

属性说明
路径%SystemRoot%\system32\winlogon.exe
Base Priority13
账户NT AUTHORITY\SYSTEM
职责处理登录/注销 UI(如 Ctrl+Alt+Del);根据注册表 Winlogon\Userinit 启动 Userinit.exe;Userinit 完成用户环境与 GPO/启动脚本后,再根据 Winlogon\Shell 启动 Explorer.exe,然后 Userinit 退出
运行环境用户 Session(如 Session 1)

因此:Userinit 运行完即退出,Explorer 在进程树中常显示为「无父进程」。

安全要点
- 路径与签名须为微软官方;攻击者可能用键盘记录器等替换 winlogon。


3.10 Userinit.exe(未常驻)

由 winlogon 按注册表启动,完成用户环境初始化后退出,故正常运行时在进程列表中看不到;Explorer 的常见「逻辑父进程」即为 Userinit


3.11 Explorer.exe(Windows Explorer)

属性说明
路径%SystemRoot%\Explorer.exe(注意:常见于系统根目录,而非 System32)
Base Priority8
账户当前登录用户
职责桌面、任务栏、文件管理器

安全要点
- 若被篡改,用户往往难以察觉;可用 Autoruns 等检查是否被替换或劫持。
- explorer.exe → cmd.exe → powershell.exe 这类父子关系,常为攻击者通过 GUI 执行 payload 的痕迹,SOC 中应重点标记。


四、SOC 分析中的三个关键维度

在监控与告警研判时,可重点依赖以下三点区分正常与异常。

4.1 路径检查

  • 合法系统进程均在 C:\Windows\System32(Explorer 在 C:\Windows)。
  • 若在 Temp、Downloads、用户目录等发现同名进程,多半为伪装,需结合命令行与网络进一步判断。

4.2 签名验证

  • 官方系统进程应具微软签名。
  • 使用 Sysinternals 的 sigcheck.exe 可快速验证签名与时间戳,便于发现被替换的 PE。

4.3 父子进程关系

  • 典型正常链:
    smss → csrss / winlogon / wininitwininit → services / lsass / lsmservices → svchostwinlogon → Userinit → Explorer
  • 异常示例:
    explorer → cmd → powershellservices 子进程中出现异常脚本解释器对 lsass 的句柄/内存访问 等,应优先排查。

五、FAQ

5.1 为什么smss进程仍然存在,但是wininit父进程不是smss进程

此刻看到的 smss.exe 和当初创建 wininit.exe 的那个 smss.exe,并不是同一个进程。

wininit.exe 没有父进程是正常现象,它的真正父进程(第一个 smss.exe)已经消失,且后续的 smss.exe 不属于它的会话,无法构成父子关系。

那我们如何确认它没有被恶意软件冒充呢?关键还是看两点:

父进程信息:wininit.exe 没有父进程是完全正常的。如果哪个工具显示它有父进程,反而需要警惕。

可执行文件路径:这是最重要的判断依据。

合法:C:\Windows\System32\wininit.exe。

可疑/恶意:任何其他路径,比如 C:\Windows\ 或 C:\Program Files\

5.2 为何smss进程需要再次启动

smss.exe 再次启动,是为了给每一个新的登录会话(Session)提供独立的Win32 子系统环境

第一个 smss.exe(Session 0) 创建了 wininit.exe(Session 0)。

第二个 smss.exe(Session 1) 创建了 winlogon.exe(Session 1)。

六、总结

维度要点
启动链System(PID 4) → smss → csrss/winlogon/wininit → services/lsass/lsm → svchost 等;用户态入口为 winlogon → Userinit → Explorer
安全系统进程常被冒充、注入或滥用;结合 路径、签名、父子关系、数量 可快速筛出异常
实践在 EDR/SOC 中为上述进程定制规则(路径白名单、父进程约束、lsass 访问告警等),能显著提高研判效率

掌握这些系统进程的职责与正常形态,是 Windows 安全运营与告警研判的基础。本系列后续将围绕服务与持久化、登录与认证、驱动与内核等主题展开,便于在 SOC 日常工作中形成系统化视角。


七、参考

https://www.jianshu.com/p/f3afb802e959

https://zhuanlan.zhihu.com/p/1946208432521721241


系列索引(规划)

  • 01 - Windows 安全运营基础(一):系统进程与安全(本文)
  • 02 - (待定:服务与持久化)
  • 03 - (待定:登录与认证)
  • 04 - (待定:驱动与内核)

点赞

本文标签:

版权声明:本博客所有文章除特别声明外,本文皆为《shiver blog》原创,转载请保留文章出处。

本文链接:Windows 安全运营基础(一):系统进程与安全 - https://www.binary-monster.top/article/87

1

发表评论

电子邮件地址不会被公开。 必填项已用*标注