1. 发现感染的经过:任务管理器里那个不该出现的Synaptics.exe
事情是这样的,那天我正蹲在工位上帮同事导一份项目资料,他笔记本插了个U盘,刚拷完文件就明显感觉系统不对劲——风扇狂转,鼠标指针飘忽不定,连打开任务管理器都要卡两三秒。进去一看,CPU占用率快飙到百分之百,列表里赫然躺着一个进程:Synaptics.exe。
我这人有个习惯,每隔一段时间就会用火绒或者Process Explorer过一遍系统进程。平时任务管理器里最占资源的一般是浏览器或者杀毒软件,突然冒出来一个内存占用不高但CPU贼高的陌生进程,还戴着Synaptics的名字,第一反应就是:这八成不是正主。为什么这么说?Synaptics确实是做触摸板驱动的老牌厂商,但它正常跑起来的进程名一般是SynTPEnh.exe、SynTPHelper.exe这类,路径也固定在C盘Program Files或者Windows目录下。你突然在用户临时目录里看到一个Synaptics.exe,还往死里烧CPU,这逻辑上就站不住脚。
我立刻让同事别再碰那个U盘,把网线拔了,然后用管理员权限打开了Process Explorer,右键看了下这个进程的路径。果然,藏在C:\Users\Administrator\AppData\Local\Temp\Synaptics.exe。老实说,蠕虫这个套路我已经不是第一次见了,但每次碰到仍会觉得恶心——它披着硬件驱动的外衣,实际就是个靠U盘、移动硬盘、局域网共享目录到处乱窜的可执行文件。
1.1 第一现场:CPU异常与进程特征
我当时花了几分钟把现场记录了一遍,做个了简单的特征画像:
- 进程名:Synaptics.exe
- 完整路径:
C:\Users\Administrator\AppData\Local\Temp\Synaptics.exe - CPU占用:持续 40%~95% 浮动,系统整体卡顿明显
- 父进程:explorer.exe(说明它大概率是用户双击U盘或文件夹时被“带”起来的)
- 文件大小:约 1.2MB,图标伪装成文件夹图标
- 数字签名:无签名
这里有个很重要的判断点:虽然蠕虫叫Synaptics.exe,但它的“家”在Temp目录,而正版Synaptics驱动程序根本不会从Temp启动。哪怕它伪装得再像,因为正常驱动有自己固定的系统级加载路径。
我把这个进程的所有线程和句柄截图存底,然后在Process Explorer里用“Restart”看了一下它调用的动态链接库,发现它加载了ws2_32.dll、netapi32.dll这类网络相关模块。这就基本坐实了它是个联网型蠕虫,不只是老实的U盘传播,还可能主动向局域网其他机器扩散。
1.2 最初判断:为什么怀疑是蠕虫而不是误报
可能有人会问:杀毒软件没报警吗?说实话,这种变种蠕虫在最初几小时内没被主流引擎报毒是挺常见的,因为它的行为逻辑模仿了正规驱动程序的某些特征,甚至会做自校验,一旦发现沙箱或者调试器就自动退出。我同事那台机器装的是Windows Defender,病毒库更新到当天,实时保护也开着,但开机之后依旧中招,说明这个变种要么是当晚刚放出来的,要么就是做了针对性的免杀。
再一个线索是U盘。同事那个U盘里原本存的是一堆剪辑素材,但那天插上电脑后,他习惯性右键打开U盘,注意到里面多出一个和“素材”文件夹同名的文件夹图标,但右下角没有文件夹的缩略图样式。这类蠕虫的典型特征就是把真实文件夹隐藏掉,替换成同名可执行文件,你双击下去以为打开文件夹,实际是运行了病毒。这也就解释了为什么父进程是explorer.exe。
2. 感染行为复盘:它到底在电脑里做了什么
光知道“有病毒”还不够,要清理干净,就得先搞明白它干了哪些事。我当时把系统分区做了个快照对比,把注册表当前项导出来备份,然后又翻了几处常见启动位置,基本拼凑出了这份蠕虫的完整“工作流”。
2.1 首批感染动作:释放文件与修改注册表
蠕虫运行起来后,第一步会在%Temp%目录释放主程序Synaptics.exe,同时还会释放一个名字看起来像文本文件的Readme.tmp(实际是个配置或者载荷文件)。然后它会在用户的启动文件夹里创建快捷方式,路径一般是:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Synaptics.exe.lnk
同时也向注册表写入自启动项:
- 键位置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - 键名:
Synaptics - 键值:
"%Temp%\Synaptics.exe" -autorun
这个双保险设计很典型——杀软要是只清理了启动项,没清理启动文件夹里的快捷方式,那重启后它照样可以执行。反过来也一样。所以我后来在处理的时候,两边都会重点排查。
此外它还改了文件夹选项里的“隐藏受保护的操作系统文件”和“显示隐藏文件”开关。这个动作的目的很简单:它要把U盘上真实的用户目录隐藏掉,再创建同名exe或者快捷方式来骗人点击。如果用户看不到隐藏文件,就永远发现不了自己原来的文件夹被藏起来了。
2.2 扩散机制:从U盘到局域网共享目录
蠕虫之所以叫“蠕虫”,核心在于主动传播。这只Synaptics.exe的传播路径我观察下来有三条:
- 移动存储介质:插入U盘或移动硬盘后,在根目录创建与原有文件夹同名的伪装目录,隐藏原始目录,写入
Desktop.ini和伪装exe。 - 局域网共享目录:它通过netapi32模块枚举当前网段内开放的共享文件夹,尝试用当前用户的权限往里面复制自己的副本,同时生成快捷方式。
- 下载器行为:它每隔一段时间会连一个远程地址,从C2服务器拉取新的变种模块。当时断网之后,进程明显安静了一个量级,说明它后续的主要行为都依赖外联。
从受感染机器的“宿主”痕迹来看,同事那台电脑还残留着上个访问某移动硬盘的痕迹,这也解释了为什么这台电脑是这次爆发的第一站——大概率他前一天在公司摸鱼用的某个公共电脑已经中招,U盘带回来之后又点燃了这台开发机。
2.3 对系统稳定性的破坏:不只是卡顿那么简单
很多人遇到这种蠕虫,以为清的只是进程和文件,但别忘了,这类恶意软件为了生存通常还会做不少“防御性”动作:
- 杀掉安全软件进程:我看事件日志时发现,它尝试通过WMI结束
MsMpEng.exe(Defender主进程),只是因为权限不够没成功。 - 篡改hosts文件:有些变种会把安全软件更新域名指向127.0.0.1,导致杀毒软件无法升级病毒库。
- 禁用任务管理器:修改
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr,限制用户手动结束进程。 - 模拟键盘鼠标:有个别样本会注入
win32k相关的调用,用来控制输入,不过这属于极少见的情况,遇到基本就是定向攻击了。
这台机器上说的这些动作没有全中,但hosts文件和自启动项的残留是明确的,所以清理时不能只看单点症状,最好把所有可疑项统一排查一遍。
3. 清理与恢复实操:从手工处置到全盘查杀
查杀过程我尽量写得具体一些,因为很多人就是卡在“杀不干净”上。这里有一个核心原则:先断网、再结束进程、之后清理文件和注册表、最后全盘扫描,顺序不要乱。
3.1 断网与进程处置
我当时做的第一件事就是拔网线,所有无线网卡也直接禁用。这一步的目的是切断它和外界的通信,避免它从远程服务器拉取新变种或者执行更多指令。如果你在断网前发现它CPU占用异常高,那更要果断断网,因为它可能正在做暴力共享枚举或大范围扫描。
断开网络后,用管理员身份打开Process Explorer(比任务管理器好用得多,能杀进程树、看路径),右键Synaptics.exe进程,选择“Kill Process Tree”。如果遇到“拒绝访问”,有两个办法:
- 用
psexec提权到System账户再执行。 - 先把该进程的线程挂起(右键进程→Suspend),再结束。
挂起这个操作很实用,可以把进程冻结住,它就没法再创建新文件或者新进程了,同时又不至于直接结束不了而反复拉锯。
3.2 清理文件与启动项
进程结束后,我按下面的清单把可疑文件全部删除:
| 路径/位置 | 清理内容 | 操作说明 |
|---|---|---|
%Temp%\Synaptics.exe | 主程序本体 | 直接删,若被占用则重启后再删 |
%Temp%\Readme.tmp | 辅助载荷文件 | 删除 |
| Startup文件夹 | Synaptics.exe.lnk | 删除快捷方式 |
| 注册表Run项 | Synaptics键值 | 用regedit删除 |
| U盘根目录 | 同名伪装exe和Desktop.ini | 删除后恢复隐藏的真实文件夹 |
注册表清理需要格外小心,删除Run项时最好先右键“导出”备份一次,防止误删系统项。我见过有人图省事直接删了整个Run键,最后系统启动一堆加载失败。正确做法是展开Run键,找到名字含Synaptics或路径指向Temp目录的字符串值,单独删除。
清理完当前用户的自启动项后,还要看一遍机器全局启动项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
如果蠕虫取得了管理员权限,它也会往这两个位置写入自启动键,别漏掉。
3.3 修复被篡改的显示策略与文件夹选项
接下来要修复它篡改的系统设置。打开文件夹选项,确认“显示隐藏的文件、文件夹和驱动器”是勾选状态,“隐藏受保护的操作系统文件”是取消状态。如果你发现怎么改都改不回来——明明选了显示隐藏文件,应用之后又变回隐藏——说明注册表里HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden和ShowSuperHidden的值被恶意项锁定了。
这时候直接打开注册表编辑器:
- 定位到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced - 把
Hidden值改成1 - 把
ShowSuperHidden值改成1
如果还是不行,大概率是也有组策略或杀软策略在覆盖设置,那就直接进入组策略编辑器,路径是“用户配置→管理模板→Windows组件→文件资源管理器”,里面把“从工具菜单中删除文件夹选项”设为“未配置”。这一整套做完,文件夹显示设置才算真正恢复。
还需要顺手检查hosts文件。用notepad打开C:\Windows\System32\drivers\etc\hosts,看看有没有莫名其妙多出来的127.0.0.1 xxx安全厂商域名之类的行,有的话删掉。
3.4 使用安全工具做全盘扫描与二次确认
手工清理完,我习惯再用工具交叉验证。首选是卡巴斯基的扫描器或者大蜘蛛的绿色版(不装实时监控,只用扫描),配合火绒剑或者Process Monitor看可疑行为。清掉重启后,我做了以下检查:
- 重启电脑,断网状态下连续观察5分钟CPU和进程列表,确认没有Synaptics.exe复活。
- 用
Autoruns(微软官方工具)检查所有登录点、计划任务、服务项,看有没有漏网自启动。 - 把U盘插到一台干净的Linux虚拟机上,“ls -la”看根目录是否有隐藏的真实文件夹和伪装exe。如果有,在虚拟机上把伪装exe删除,再把真实文件夹拷贝出来。
这一步很关键,有些人电脑清了U盘没清,结果一插又中招。清理U盘最稳妥的做法是插到一台不重要的虚拟机或者PE环境里操作,因为只要双击了那个伪装目录,病毒就再次激活。
工具方面,我常用这几样的组合:
| 工具 | 用途 | 注意点 |
|---|---|---|
| Process Explorer | 定位进程、结束进程树 | 需要管理员权限 |
| Autoruns | 检查启动项、服务、计划任务 | 看红色的未签名项目 |
| 火绒剑 | 查看文件操作和注册表监控 | 离线分析方便 |
| 卡巴斯基扫描器 | 全盘扫描 | 免费版就够用 |
| GParted Live U盘 | 离线清理无法删除的文件 | 跨平台读取NTFS |
3.5 如何把磁盘残留痕迹彻底清干净
这里补充一个容易忽略的角落:%AppData%和%LocalAppData%里可能藏着蠕虫释放的辅助脚本。我当时在处理时发现C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent里残留了一条指向Temp目录Synaptics.exe的快捷方式,说明它很可能在某些场合被再次执行过。清理时最好把Recent文件夹里的可疑快捷方式也顺手删掉,避免误触。
另外,如果有条件的可以查看系统还原点或者卷影副本——有些蠕虫会利用VSS让文件在“卷影”层面继续存在,杀毒软件全盘扫描时不一定每次都能扫到。如果机器之前开过系统保护,建议把旧的还原点全部删除,再创建一个干净的新还原点。这一步可以直接在命令行执行vssadmin delete shadows /all,然后把System Volume Information里相关残留路径一并处理。
4. 感染过程中的常见误判与踩坑记录
处理这类蠕虫,最大的风险其实是“误判”——把它当成正常驱动,或者把正常驱动当成病毒。这里把一些典型误判场景列一下,希望能帮大家少走弯路。
4.1 误判一:把正版Synaptics驱动当作蠕虫处理
如果某个Synaptics触摸板驱动进程的路径是C:\Program Files\Synaptics\SynTP\SynTPEnh.exe,文件有Digital Signature(数字签名),通常它是无辜的。正确做法是先看路径,再看签名,最后看行为。
- 正版路径:
C:\Windows\System32\SynTPEnh.exe、C:\Program Files\Synaptics\SynTP\ - 病毒路径:
%Temp%、%AppData%、U盘根目录、共享文件夹
我在另外一次帮人修电脑时,遇见过一位老哥因为看到自己的笔记本后台有Synaptics进程,直接用杀毒软件“强力查杀”了一顿,结果触摸板驱动被干掉了,鼠标指针死活不动,最后只能重装驱动。这就是典型的不看路径乱杀。
4.2 误判二:只杀进程不删文件,重启后“复活”
有网友私信问我,说他用任务管理器结束了Synaptics.exe,但过一会儿又出现一个新的,或者重启后又回来了。这个原因很简单——进程只是临时执行体,病毒还留着启动项和主程序。你不删启动项,系统一开机就加载主程序;你不删主程序,就算这次清了,下次某个文件被触发照样重新执行。
所以我的习惯是:结束进程之后,先删启动项,再删源文件,最后再复查一次启动项,避免它“走一步看一步”地重新创建。
4.3 误判三:只清理C盘,忽略了U盘和移动硬盘
蠕虫最大的隐藏窝点其实是移动介质。如果U盘已经在被感染的机器上插过,它大概率会被写入伪装exe和隐藏的原始文件夹。清理电脑后如果不仔细清U盘,下次插到别的电脑上,很容易造成二次传播。
清理U盘我推荐一个稳妥流程:插入一台干净的机器,右键“打开”(千万别双击),在文件资源管理器的地址栏输入U盘盘符(比如E:\)直接访问根目录。接着打开“查看→显示隐藏文件”,看到原本的文件夹图标右下角如果带个小锁或者半透明,右击它的“属性”,看“隐藏”框是不是被选中——如果真的中了,取消隐藏,并删除对应的同名exe文件。
4.4 误判四:过度依赖单一杀毒软件
有些人电脑上装了杀软,看到没报警就以为没事。实际情况是很多变种能识别常见杀软路径并隐藏自身行为,或者利用白加黑(白驱动加载黑dll)的方式绕过扫描。相对靠谱的做法是装一个杀软做日常防护,再准备一个扫描器做月度自查,当遇到可疑进程时用Process Monitor或者Process Explorer做深度追踪。
4.5 误判五:自动播放功能没有及时关闭
蠕虫通过U盘传播的一个关键机制是Windows的自动播放功能。如果你插上U盘,系统自动弹出的对话框里的“打开文件夹以查看文件”被误点击,很可能就会执行到U盘根目录的Autorun.inf指向的恶意程序。所以建议在控制面板→硬件和声音→自动播放里,把所有可移动设备相关项都设为“不执行操作”,或者通过组策略彻底关闭自动播放功能。
5. 醒后防护清单:这次感染教会我的几件事
处理完这次感染,我把同事电脑重新连上网,先把系统补丁打好,又把杀毒软件升级到最新,全盘扫了一遍确认没有残留,然后才把U盘插回去做文件恢复。整个过程折腾了大概三个小时,不算特别久,但那种“越折腾越乱”的紧迫感还是让人记忆深刻。
经过这么一次,我心里有几个原则算是彻底固定下来了,写在这里就当给自己也做个备忘。
5.1 给系统打“预防针”:策略、设置和习惯
- 关闭自动播放:控制面板里把“可移动驱动器”自动播放设为不操作,或者直接用组策略开启“关闭自动播放”。
- 隐藏文件扩展名要打开:默认状态下系统不显示已知文件扩展名,导致
xxx.exe伪装成xxx看不出来。建议把“隐藏已知文件类型的扩展名”取消勾选。 - 不要双击U盘根目录图标:养成右键打开或按F4进入地址栏访问的习惯,可以防掉大量配合蠕虫的“伪文件夹”攻击。
- 定期备份注册表和启动项:清理前多做一次备份,这样就算误删了系统项也能快速恢复。
5.2 给数据加“保险”:离线备份与镜像
这个习惯我强烈推荐——重要资料定期做一次离线备份。不是让你把ttps所有文件都复制一遍,而是至少把代码库、文档、项目目录这种核心资产拷贝到离线硬盘或Nas里。这样就算机器彻底中毒,重装系统后数据不丢。我自己的习惯是每个月做一次重要目录快照,系统镜像则保持每季度更新一次。平时觉得麻烦,真出事就知道有多香。
5.3 为什么Synaptics.exe会成为蠕虫的“皮夹子”
最后说一个有意思的观察:为什么这类蠕虫喜欢借用Synaptics这个名号?因为Synaptics是触摸板驱动的大厂,几乎每台笔记本上都有它的合法进程,安全软件对这种名字的判定会更谨慎,用户看到进程列表也不容易起疑。它的危害还在于变种期很长,经常会更换文件名(比如Microsoft.exe、SynTP.exe)继续传播。所以大家碰到类似进程时,重点看“路径”和“数字签名”,别只凭名字判断。
这次实战下来,我开始养成了每天下班前瞄一眼CPU任务列表的习惯。系统永远不可能100%安全,但该做好的基础防护、该有的排查流程、该有的备份习惯都做到位之后,就算真遇上了,也能多几分从容,少几分慌乱。