惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
O
OpenAI News
S
Securelist
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
H
Heimdal Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
Webroot Blog
Webroot Blog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
D
Docker
D
DataBreaches.Net
A
About on SuperTechFans
T
Tor Project blog
V
V2EX
G
Google Developers Blog
博客园 - Franky
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
I
InfoQ
H
Help Net Security
V2EX - 技术
V2EX - 技术
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security Affairs
SecWiki News
SecWiki News
The Register - Security
The Register - Security
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
小众软件
小众软件
B
Blog
T
Threatpost
P
Palo Alto Networks Blog
博客园 - 【当耐特】
L
LangChain Blog
AWS News Blog
AWS News Blog
月光博客
月光博客
宝玉的分享
宝玉的分享

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation 企业测试环境的弱口令需要整改吗 AI对话笔记-模板 网络安全行业招聘需求与技术能力分析 银狐木马技术原理分析与检测技术 SIEM-安全信息和事件管理 AI笔记 转载 专业备考⏳ 其他杂项🧶 Markdown 原生图片 知道创宇技能表 Prompt越狱手册 deepseek使用指南 清华大学 deepseek提问方法 markdown基本语法 数据湖:它们是什么?为什么您的组织需要一个? GitHub Codespaces velociraptor(迅猛龙)快速上手 学习windows快捷命令 学习常用 150 个Linux命令 软考中的一些概念 学习ssh基本使用 Linux系统换源输入法和包管理器 DC-8靶机 Metasploitable3下载与安装 信息收集方法及流程 防守之道 开发运维 免责声明 密码喷射攻击:防范攻击你需要知道的事项 密码学中的哈希解释:它的工作原理、算法和实际用途 应急响应术语 各种报错积累 漏洞挖掘思路 收藏夹 RDP和360星图使用 windows入侵排查 Linux入侵排查 Redis日志分析 Linux安全加固 windows安全加固 windows日志ID速查 中间件加固 数据库安全加固 windows系统提权 MySQL注入复盘 学习git版本控制工具的概念与命令 学习Web Shell 学习Linux命令 java环境配置 学习python基础语法特性解题笔记 学习Mysql基础知识 windows权限维持 学习网络及安全的一些术语 PHP代码审计 Linux系统提权 MSSQL注入复盘 Linux权限维持 命令执行和反序列化 逻辑漏洞 upload-labs 框架漏洞 学习PHP语法特性 XXE&SSRF CSRF 文件上传 Google Hacking XSS-lab XSS实验 学习URL请求后的通信过程 FOFA
Windows核心系统进程链与svchost深度解析
卷卷 · 2025-12-20 · via 卷卷

DNS外联恶意域名检测告警

   Image: C:\Windows\System32\svchost.exe
   ProcessId: 1112
   QueryName: 7ycb.com  微步情报:远控  远程控制工具

1. 完整的Windows启动进程链

System (PID 4) 
    → smss.exe (Session Manager)
        → wininit.exe (Windows初始化进程)
            → services.exe (服务控制管理器)
                → svchost.exe (服务宿主进程)
        → winlogon.exe (Windows登录进程)
            → userinit.exe (用户初始化)
                → explorer.exe (桌面外壳)

2. 各进程功能详解

(1) System (PID 4) - 系统内核空间进程

  • 作用:Windows内核的化身,运行在核心态(Ring 0)

  • 功能:管理硬件抽象层(HAL)、驱动程序、内存分页池

  • 特点:父进程为Idle进程(PID 0),所有用户态进程的最终源头

  • 应急响应关注点

    • 正常情况下不应有子进程(除了smss.exe)
    • 恶意软件可能注入或伪装为System进程

(2) smss.exe - 会话管理器子系统

  • 作用:创建Windows会话环境

  • 启动时机:内核初始化完成后

  • 主要任务
    c

    1. 创建系统环境变量
    2. 加载win32k.sys(Windows子系统内核模块)
    3. 启动csrss.exe(客户端/服务器运行时子系统)
    4. 启动wininit.exe(系统会话)和winlogon.exe(用户会话)
    5. 创建虚拟内存分页文件
  • 进程特点

    • 第一个用户态进程
    • 通常有两个实例:一个系统级,一个会话级
    • 文件名固定为smss.exe,路径必须是System32
  • 恶意利用场景

    • 进程注入(如Metasploit的migrate)
    • 持久化驻留(修改注册表启动项)

(3) wininit.exe - Windows初始化进程

  • 作用:初始化系统会话(Session 0)

  • 主要任务

    1. 创建%SystemRoot%\System32目录
    2. 启动services.exe(服务控制管理器)
    3. 启动lsass.exe(本地安全认证子系统)
    4. 启动lsm.exe(本地会话管理器)
    5. 初始化Windows服务
  • 安全特性

    • 运行在Session 0(隔离会话)
    • 父进程始终是smss.exe
    • 权限:SYSTEM账户
  • 应急检查

    # 检查wininit.exe的完整性
    Get-AuthenticodeSignature C:\Windows\System32\wininit.exe
    # 检查子进程是否异常
    Get-Process wininit | Select-Object -ExpandProperty Modules | Format-List

(4) services.exe - 服务控制管理器(SCM)

  • 作用:Windows服务的"总管家"

  • 核心功能

    1. 维护服务数据库(注册表:HKLM\SYSTEM\CurrentControlSet\Services)
    2. 启动、停止、暂停、恢复系统服务
    3. 管理服务依赖关系
    4. 处理服务控制请求
  • 服务启动方式

    // 服务类型决定启动方式
    SERVICE_KERNEL_DRIVER       // 内核驱动
    SERVICE_FILE_SYSTEM_DRIVER  // 文件系统驱动
    SERVICE_WIN32_OWN_PROCESS   // 独立进程
    SERVICE_WIN32_SHARE_PROCESS // 共享进程(svchost)
  • 注册表结构

    HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName>
      ├── ImagePath    // 可执行文件路径
      ├── Start        // 启动类型:2-自动,3-手动,4-禁用
      ├── Type         // 服务类型
      └── Parameters   // 服务参数

二、svchost.exe深度解析

1. svchost架构设计原理

(1) 设计目标

资源优化:多个服务共享同一进程,减少内存开销
隔离性:不同组服务运行在不同svchost实例
稳定性:一个服务崩溃不影响其他服务
安全性:按权限分组,最小权限原则

(2) 分组机制

<!-- 示例:netsvcs组配置 -->
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
    ├── netsvcs
    │   ├── Schedule        // 任务计划
    │   ├── Eventlog        // 事件日志
    │   ├── Themes          // 桌面主题
    │   └── ... (共约60个服务)
    ├── LocalService
    ├── NetworkService
    └── LocalSystem

(3) 进程实例化过程

# 1. services.exe读取服务配置
# 2. 根据分组创建svchost实例
# 3. svchost加载对应服务DLL
# 4. 调用ServiceMain()入口函数

# 查看所有svchost分组
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost\*'

2. svchost启动参数详解

(1) 标准启动参数

# 查看具体svchost实例的服务
tasklist /svc /fi "imagename eq svchost.exe"

# 对应命令行格式
svchost.exe -k <服务组名称> [-s <服务名称>] [-p]
# -k: 指定服务组
# -s: 指定具体服务(Windows 10 1709+)
# -p: 使用特权减少(Windows 10 1703+)

(2) 在您案例中的分析

# PID 1112可能是以下服务组之一:
# 常见承载服务组:
# -k netsvcs      # 网络服务组(约60个服务)
# -k LocalService # 本地服务组
# -k NetworkService # 网络服务组
# -k LocalSystemNetworkRestricted # 受限系统服务

# 具体确认命令:
wmic process where processid=1112 get commandline
# 或
Get-WmiObject Win32_Process -Filter "ProcessId=1112" | Select-Object CommandLine

3. 常见svchost承载服务示例

服务组典型服务功能应急关注点
netsvcswuauservWindows更新可能访问外部域名
BITS后台智能传输常用于C2通信
EventLog事件日志日志伪造
LocalServiceDhcpDHCP客户端网络配置异常
WinHttpAutoProxySvc代理自动发现代理劫持
NetworkServiceDnscacheDNS客户端缓存DNS投毒
NlaSvc网络位置感知网络探测

三、应急响应中的进程链分析

1. 正常vs异常特征对比

正常特征

smss.exe:
  - 父进程: System (PID 4)
  - 子进程: csrss.exe, wininit.exe, winlogon.exe
  - 数量: 通常2个(系统+会话)
  
wininit.exe:
  - 会话: Session 0
  - 子进程: services.exe, lsass.exe
  - 权限: SYSTEM
  
services.exe:
  - 子进程: 多个svchost.exe实例
  - 无命令行参数
  - 路径: System32\services.exe

异常特征(恶意指标)

1. 进程链断裂: services.exe -> 未知进程 -> svchost.exe
2. 路径异常: svchost.exe不在System32或SysWOW64
3. 命令行异常: 包含可疑参数或URL
4. 网络连接: 连接非常用端口或恶意IP
5. 签名异常: 无Microsoft签名或签名无效

2. 针对您案例的深度分析框架

第一步:确认svchost实例细节

# 1. 获取完整命令行
$process = Get-Process -Id 1112
$process.Path              # 文件路径
$process.StartInfo.Arguments  # 启动参数

# 2. 查看承载服务
$services = Get-WmiObject Win32_Service | Where-Object {
    $_.ProcessId -eq 1112
}
$services | Format-Table Name, DisplayName, State, PathName

# 3. 检查网络连接
Get-NetTCPConnection -OwningProcess 1112
Get-NetUDPEndpoint -OwningProcess 1112

第二步:DNS请求来源追踪

# 使用Process Monitor过滤
# 筛选条件: 
# Process Name: svchost.exe
# Operation: DNS Query
# Path: contains "7ycb.com"

# 或使用ETW实时追踪
logman create trace DNS_Trace -o dns.etl -p "Microsoft-Windows-DNS-Client"
logman start DNS_Trace

第三步:服务行为分析

# 如果确认是某个具体服务
$serviceName = "wuauserv"  # 示例

# 1. 查看服务配置
sc qc $serviceName
sc queryex $serviceName

# 2. 查看服务依赖
Get-Service $serviceName -DependentServices

# 3. 查看服务触发器(可能定时触发)
sc qtriggerinfo $serviceName

3. 恶意svchost利用手法与检测

常见攻击手法

  1. 服务劫持:修改合法服务配置

    # 检测:检查服务二进制路径
    Get-WmiObject Win32_Service | 
      Where-Object {$_.PathName -match "svchost"} |
      Select-Object Name, PathName
  2. DLL劫持:利用服务DLL加载顺序

    # 检测:使用Process Explorer查看加载的DLL
    # 或使用:Get-Process -Id 1112 -Module
  3. 内存注入:无文件攻击

    # 检测:检查内存区域异常
    .\Sysinternals\VMMap.exe -p 1112
  4. 隐藏服务:注册表隐藏

    # 检测:比较services.exe和注册表的差异
    Get-Service | Select-Object Name | Out-File services.txt
    reg query "HKLM\SYSTEM\CurrentControlSet\Services" /s

4. 实战分析示例:DNS请求追踪

基于您的案例,建议分析流程:

# 1. 确认是哪个服务
$services = Get-WmiObject Win32_Service | Where-Object {
    $_.ProcessId -eq 1112
}
Write-Host "PID 1112承载的服务:" -ForegroundColor Yellow
$services | Format-List Name, DisplayName, Description

# 2. 如果是wuauserv(Windows更新)
# 检查更新配置
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"

# 3. 如果是BITS服务
# 检查传输队列
Get-BitsTransfer

# 4. 如果是计划任务服务
# 检查相关任务
Get-ScheduledTask | Where-Object {
    $_.TaskPath -match "Update" -or 
    $_.Actions -match "7ycb"
}

四、总结与最佳实践

应急响应检查清单

  1. ✅ 进程链完整性(System → smss → wininit → services → svchost)
  2. ✅ 文件路径验证(System32目录)
  3. ✅ 数字签名验证(Microsoft签名)
  4. ✅ 命令行参数分析(-k参数分组)
  5. ✅ 网络连接审查(端口、协议、目标)
  6. ✅ 服务配置检查(注册表、依赖、触发器)
  7. ✅ 时间线分析(启动时间、请求频率)