我在我支持的某些系统中发现了奇怪的异常。
GMER 标记了 csrss.exe 中的 cdd.dll 线程,当我使用提升的管理员权限运行 Process Explorer 时,我:
- 无法查看 csrss.exe 进程中已加载的任何 DLL
- 无法查看实际的线程启动地址(而不是 winsrv.DLL 和 CSRSRV.dll,我看到的是 0x0 或 !RtlUserThreadStart
- 无法查看任何 csrss.exe 线程的堆栈
- 无法暂停或终止 csrss.exe 中的任何线程
- 内存中的字符串显示“打开进程错误”
根据《Windows Internals》第 6 版,当尝试查看“受保护进程”的线程时,我们会在进程资源管理器中看到以下内容……
...Process Explorer 无法显示 Win32 线程启动地址,而是显示 Ntdll.dll 内的标准线程启动包装器。如果您尝试单击 Stack 按钮,您将收到错误,因为 Process Explorer 需要读取受保护进程内的虚拟内存,而它无法做到这一点。
但是,csrss.exe 不是受保护的进程。而且,即使受保护,通常仍然可以暂停“受保护的进程”,但在这种情况下是不可能的。
作为参考,这是它在 Process Explorer 中通常的样子...取自新安装的系统。
我运行过的其他工具均未检测到任何恶意程序。但是,Process Hacker 能够访问线程,它们看起来就像我期望看到的那样...
我知道并认为有两件事:
- 这是不正常的行为(我所看到的大多数其他系统都授予高级管理员对 csrss.exe 线程、字符串等的完全访问权限)
- 这似乎与类似 rootkit 的隐藏行为一致。根据《恶意软件分析师的食谱》一书中的这段引文:
如果 rootkit 找到一种可靠的方法来隐藏或阻止访问 csrss.exe,而不会导致系统不稳定,那么这可能会引起问题。事实上,CsrWalker 的作者发现一些黑客试图通过挂钩 ZwOpenProcess 并阻止检测工具读取 csrss.exe 的内存来阻止 CsrWalker 工作。
除了未知的 rootkit 之外,有人能解释为什么运行具有提升权限的 PE 的管理员会看到这些异常吗?
答案1
CSRSS 是一项标准的 Microsoft 服务: https://en.wikipedia.org/wiki/Client/Server_Runtime_Subsystem
它基本上是用户空间和内核空间之间的中介函数。
拥有内核级权限后,您无法从普通用户空间程序访问其内存映射。这是一种安全机制,可防止恶意程序使用可访问内核空间的程序的内存映射,例如 csrss 作为一种扫描内核空间内存以寻找获得权限升级的方法的手段。
有一种流传甚广的骗局,说它是病毒或木马。许多不道德的网站都利用这种骗局,试图让您下载木马、间谍软件或广告软件,以试图将其删除。切勿从不受信任的网站下载系统扫描程序或任何可执行文件。
答案2
供您参考(如上所述)这里):
csrss.exe 是一个注册为木马的进程。此木马允许攻击者从远程位置访问您的计算机,窃取密码、网上银行和个人数据。此进程存在安全风险,应从您的系统中删除。我们强烈建议您运行免费注册表扫描以识别与 csrss.exe 相关的错误。