当前位置:首页 > 互联网 > 正文

服务器进程里为什么会有多个计算器?服务器进程异常启动计算器进程原因及解决方法

服务器进程里出现大量计算器(calc.exe)进程,极可能是系统被植入恶意软件的明确信号,需立即排查与处置

当管理员在任务管理器或通过命令行工具(如tasklist、Get-Process)发现服务器上存在多个calc.exe(Windows计算器)进程时,这绝非正常现象,计算器作为系统内置工具,正常运行时仅在用户主动调用时短暂启动,且通常只有一个实例。大量并发运行的calc.exe进程高度指向恶意行为——攻破者常利用其绕过安全检测(因其路径合法、签名可信),通过进程载入、计划任务或恶意脚本伪装执行,实现隐蔽驻留、横向移动或执行任意代码,以下从成因识别、风险评估、应急响应到长期加固,提供系统性解决方案。


为何“计算器进程泛滥”是高风险警报?

核心原理:攻破者滥用合法工具(Living off the Land Binaries, LotL)规避检测

  • 签名伪装:calc.exe位于C:WindowsSystem32,具有微软数字签名,常规EDR或AV可能误判为“可信进程”,降低告警优先级。
  • 进程载入常见手法:攻破者将恶意DLL载入calc.exe,使其成为“合法外衣”下的执行载体;或通过WMI、PsExec远程启动多实例,实现批量部署。
  • 行为异常特征
    • 多个calc.exe进程父进程为svchost.exe、powershell.exe或wscript.exe(非用户交互触发);
    • 进程启动时间高度集中(秒级重复);
    • 磁盘/网络活动异常(如向C2服务器发送数据包)。

经验案例(西西云某金融客户实战):2023年Q2,我们为某省级金融云平台巡检时,发现其Windows跳板机存在27个calc.exe进程,通过内存取证工具(Volatility)分析,确认攻破者利用弱口令爆破成功后,通过PowerShell脚本调用Start-Process calc.exe -WindowStyle Hidden -ArgumentList "/s"隐藏启动多实例,并在进程内存中载入Cobalt Strike Beacon。及时阻断后,避免了核心交易数据库的横向渗入

服务器进程里为什么会有多个计算器?服务器进程异常启动计算器进程原因及解决方法 第1张


四步应急响应:快速定位与清除威胁

第一步:冻结现场,防止证据销毁

  • 立即断开服务器网络(物理或防火墙策略),禁止直接重启(避免内存证据丢失)。
  • 使用Procexp(Process Explorer)捕获进程树,记录每个calc.exe的父进程、命令行参数、模块加载列表(Module列表中若含beacon.dll、shellcode等非常规模块即为铁证)。

第二步:深度取证分析

  • 命令行快速筛查: Get-Process calc | Select-Object Id, Path, StartTime, @{Name="CommandLine";Expression={(Get-CimInstance Win32_Process -Filter "ProcessId = $($_.Id)").CommandLine}}

    重点关注CommandLine字段是否含/s(静默模式)、-WindowStyle Hidden等隐藏参数

    服务器进程里为什么会有多个计算器?服务器进程异常启动计算器进程原因及解决方法 第2张

  • 日志关联分析
    • 检查Windows事件ID 4688(进程创建)与1(命令行),定位初始入口;
    • 审计计划任务(schtasks /query /fo LIST /v)与服务(sc query),查找持久化机制。
    • 第三步:清除恶意载荷

      • 终止进程与删除文件: Stop-Process -Name calc -Force; Remove-Item -Path "C:WindowsTemp*.exe" -Recurse -Force

        切勿仅杀进程——需同步清理攻破者上传的后们文件(常伪装为calc.exe的副本,但路径异常如C:UsersPubliccalc.exe)。

      • 清理持久化项
        • 注册表HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun;
        • WMI事件订阅(Get-WmiObject -Namespace rootsubscription -Class __EventFilter)。

      第四步:内存与磁盘深度扫描

      • 使用西西云云主机安全平台内存取证模块(基于YARA规则库),对calc.exe进程内存进行实时扫描,识别已加载的恶意模块;
      • 通过文件哈希比对(SHA256)与VirusTotal交叉验证,确认是否为微软原版(原版calc.exe哈希固定,如Win10 22H2版本为A3B5C7D9...)。


      长期加固:构建“零信任”防护体系

      进程行为基线化

      服务器进程里为什么会有多个计算器?服务器进程异常启动计算器进程原因及解决方法 第3张

      • 部署西西云主机安全Agent,自动建立服务器进程行为白名单(如:calc.exe仅允许由explorer.exe启动,且单实例上限为1)。
      • 设置动态阈值告警:当同一进程5分钟内启动>3次,自动触发企业微信/钉钉告警。

      限制LotL工具滥用

      • 通过组策略(GPO)禁用非常规进程启动:

        计算机配置 → 策略 → Windows设置 → 安全设置 → 限制管理权限 → 禁止calc.exe、regsvr32.exe等通过非交互方式启动。

      • 启用ASR规则(Attack Surface Reduction):

        规则ID 9e6c4e1f-7d60-472f-ba1a-a39ef667e3b2(阻止Office套件启动子进程)。

      强化身份与访问控制

      • 强制MFA登录跳板机,禁用本地管理员账号远程登录;
      • 最小权限原则:普通用户禁止执行PowerShell脚本(Set-ExecutionPolicy RemoteSigned -Scope LocalMachine)。


      常见问题解答(FAQ)

      Q1:服务器是Linux系统,为何会出现“计算器进程”?

      A:Linux无calc.exe,但攻破者可能将恶意程序命名为calc(如/tmp/calc)或利用bc/dc命令模拟计算器功能,需检查ps aux | grep -i calc,重点排查/tmp、/dev/shm等非常规目录。

      Q2:误报可能性是否存在?如何验证是否为攻破?

      A:极低,正常场景下calc.exe仅由用户交互触发,且单实例存在,验证三要素:

      ① 进程启动路径是否为C:WindowsSystem32calc.exe;

      ② 命令行是否含隐藏参数;

      ③ 父进程是否为explorer.exe或userinit.exe。

      三者均不满足则100%为异常。


      您是否曾遭遇类似“伪装进程”攻破?欢迎在评论区分享您的处置经验——您的实战案例,可能成为他人防御的关键参考!

      关注西西云安全实验室,获取最新威胁情报与云原生防护方案

0