ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows - 杀死冷冻再利用“流氓”软件服务——某深信服软件斗智过程“

Windows - 杀死冷冻再利用“流氓”软件服务——某深信服软件斗智过程“ Windows - 杀死冷冻再利用流氓软件服务——某深信服软件斗智过程前言WARNING: 本文的唯一目的就是学习Windows系统知识了解Windows服务、进程保活相关技能。文中所分析的样本均为带有签名的正常样本本文对任何第三方开发的软件没有恶意。某特定网站需要安装深信服的“认证助手”Ingress服务才能访问。但Ingress开机自启、关闭自动重启、多服务相互拉起、自动修改服务启动类型和重试策略、安全模式下都要启动。能否只在需要访问该特定网站的时候启动认证助手服务不需要的时候就关掉呢某主机插入非认证的U盘无法使用能否在不具备认证U盘的情况下使用普通U盘向该主机拷贝一些开发环境呢深信服Ingress相关服务探索排查过程Ingress、IngressMgr任务管理器可看到准入服务32位右键转到详细信息G可以看到Ingress.exe。在powershell中查看谁启动的它Get-CimInstanceWin32_Process|Select-ObjectProcessID,ParentProcessID,Name|findstr Ingress.exe可看到它的父进程是IngressMgr.exe如果刚刚详细信息页面是以名称排序的话IngressMgr.exe就在Ingress.exe旁边。在IngressMgr.exe上右键转到服务S可知该进程是通过在系统中注册了IngressMgr服务来启动的。点击打开服务并再次找到这个服务在这个服务上右键属性S可以看到这个服务默认是自动启动且不可操作停止、暂停等按钮是灰色的恢复状态是重新启动服务。好那咱就先给服务设置成“禁用”恢复类型设置为不恢复同时赶快杀掉Ingress.exe和IngressMgr.exe防止二者相互拉起唤醒。在cmd中执行以下命令sc.exe config IngressMgrstartdisabled sc.exe failure IngressMgrreset0actionstaskkill /f /im IngressMgr.exe taskkill /f /im Ingress.exe注意start后面和actions后面必须有空格。可以看到Ingress.exe、IngressMgr.exe都消失了。但是过了约十几秒鼠标一转圈这两个东西又起来了并且服务也被修改回了原本的自启动和失败重试。nac_monitorSangfor一定还注册了别的程序/服务来保活。在服务列表里寻找发现了一个描述为Sangfor NAC Monitor Service的服务nac_monitor。把这个服务也给设置成禁用再次执行刚刚的四句命令可以发现Ingress没有再自启动了。如果想访问该特定网站的时候重新启动IngressMgr服务就好了。并且发现这个nac_monitor服务即使一直禁用掉不启用也不影响该特定网站的访问和使用。总结怎么优雅使用不想访问这个特定网站的时候可能是大多时候给nac_monitor服务和Ingress服务禁用掉想访问这个特定网站的时候再给Ingress服务重新开启就好了。nac_monitor服务会每隔几十秒重置IngressMgr服务为自启动和失败重试IngressMgr服务会启动Ingress.exe且二者会相互拉起。关CMD中以管理员权限执行sc.exe config nac_monitorstartdisabled sc.exe failure nac_monitorreset0actionstaskkill /f /im nac_agent.exe taskkill /f /fiSERVICES eq nac_monitor/im * sc.exe config IngressMgrstartdisabled sc.exe failure IngressMgrreset0actionstaskkill /f /im IngressMgr.exe taskkill /f /im Ingress.exe taskkill /f /fiSERVICES eq IngressMgr/im *也可以把下面这段代码另存为closeNet.bat记得编码方式为GBKecho off :: 检查是否已经是管理员权限 fltmc nul 21 if errorlevel 1 ( echo 请求管理员权限... powershell -NoProfile -Command Start-Process -FilePath %~f0 -Verb RunAs exit /b ) echo. echo 关闭 nac_monitor sc.exe config nac_monitor start disabled sc.exe failure nac_monitor reset0 actions taskkill /f /im nac_agent.exe taskkill /f /fi SERVICES eq nac_monitor /im * echo. echo 关闭 IngressMgr sc.exe config IngressMgr start disabled sc.exe failure IngressMgr reset0 actions taskkill /f /im IngressMgr.exe taskkill /f /im Ingress.exe taskkill /f /fi SERVICES eq IngressMgr /im * echo. echo 执行完毕 pause开CMD中以管理员权限执行sc.exe config IngressMgrstartdemand sc.exe start IngressMgr也可以把下面这段代码另存为openNet.bat记得编码方式为GBKecho off :: 检查是否已经是管理员权限 fltmc nul 21 if errorlevel 1 ( echo 请求管理员权限... powershell -NoProfile -Command Start-Process -FilePath %~f0 -Verb RunAs exit /b ) sc.exe config IngressMgr start demand sc.exe start IngressMgr echo. echo 执行完毕 pause样本Ingress3.0.0。U盘识别策略探索启动U盘识别U盘插入后禁止安装这个策略的设定来源未知可能与深信服无关。本想往某主机通过U盘拷贝一些开发环境结果插入U盘后资源管理器中并未出现U盘。在资源管理器此电脑右键管理G计算机管理本地 - 系统工具 - 设备管理器中的其他设备下可以看到一个SanDisk Ultra USB3.0右键属性R点击事件可看到阻止的设备 disk.inf 策略已阻止设备USBSTOR xx 的配置。解决方案是WinR - gpedit.msc计算机配置 - 管理模板 - 系统 - 设备安装 - 设备安装限制找到禁止安装未由其他策略设置描述的设备右键编辑E把已启用(E)改为未配置(C)。清理U盘相关日志若不想工作留痕可(宁可错杀100不留一个活口地)执行下面powershell命令不保证清理干净# USB 设备历史Remove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR-Recurse-Force# 普通 USB 设备历史Remove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USB-Recurse-Force# 当前用户的盘符/卷挂载痕迹Remove-ItemHKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2-Recurse-Force# SetupAPI 设备安装日志Remove-Item$env:WINDIR\INF\SetupAPI.dev.log-Force-ErrorAction SilentlyContinueRemove-Item$env:WINDIR\INF\SetupAPI.app.log-Force-ErrorAction SilentlyContinue# 设备相关事件日志wevtutil cl Microsoft-Windows-DriverFrameworks-UserMode/Operational wevtutil cl Microsoft-Windows-DeviceSetupManager/Admin wevtutil cl Microsoft-Windows-DeviceSetupManager/Operational可以另存为一个GBK格式编码的cleanUSBHistory.ps1运行时候右键运行# 自动申请管理员权限$currentUser[Security.Principal.WindowsIdentity]::GetCurrent()$principalNew-ObjectSecurity.Principal.WindowsPrincipal($currentUser)if(-not$principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)){Start-Processpowershell.exe-Verb RunAs-ArgumentList (-NoProfile-ExecutionPolicy,Bypass-File,$PSCommandPath)exit}Write-Host正在清理 USB 设备历史...-ForegroundColor Cyan$ErrorActionPreferenceContinue# USB 设备历史Remove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR-Recurse-Force# 普通 USB 设备历史Remove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USB-Recurse-Force# 当前用户的盘符/卷挂载痕迹Remove-ItemHKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2-Recurse-Force# SetupAPI 设备安装日志Remove-Item$env:WINDIR\INF\SetupAPI.dev.log-Force-ErrorAction SilentlyContinueRemove-Item$env:WINDIR\INF\SetupAPI.app.log-Force-ErrorAction SilentlyContinue# 设备相关事件日志wevtutil cl Microsoft-Windows-DriverFrameworks-UserMode/Operational wevtutil cl Microsoft-Windows-DeviceSetupManager/Admin wevtutil cl Microsoft-Windows-DeviceSetupManager/OperationalWrite-HostWrite-Host清理完成。-ForegroundColor GreenWrite-Host按任意键退出...-ForegroundColor Gray[Console]::ReadKey($true)|Out-Null如果觉得在.ps1上右键运行麻烦也可以在相同目录下放一个cleanUSBHistory.bat写入以下内容后双击运行即可echo off powershell.exe -NoProfile -ExecutionPolicy Bypass -File %~dp0cleanUSBHistory.ps1注意这是一个激进的做法尤其是最后两条命令Remove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR-Recurse-ForceRemove-ItemHKLM:\SYSTEM\CurrentControlSet\Enum\USB-Recurse-Force是直接删除设备枚举相关注册表数据。它可能导致此前识别过的设备重新安装、重新枚举。End天下人苦深信服久矣(bushi)(狗头保命)深信服的网络相关服务确实能解决很多问题但深信服软件给我的感觉是“功能健壮、过度运行、想用我的软件我就是老大”不论是准入服务还是一个普通的VPN管理员权限安装后就给你注册一些自启动服务不论你是否需要相关服务反正就赖在后台运行着强制杀掉就自动重启。个人认为深某服产品经理没有在客户角度考虑安装时候不提供安装位置选项、不列举安装过程都进行了哪些操作、一系列过度的后台和保活操作…… 给人的感觉就是产品经理“想用我的软件吗先叫声爸爸以后我的软件在你电脑上就是爹你管不了”。产品的健壮性是得到了保证但对于“对自己电脑有过度掌控欲”的用户而言简直就是在侮辱。所以笔者才会在闲暇之余研究这么一个解决方案出来可能是软件提供方与使用者所处的立场和思考的角度不同吧。这也给我自己了一个提醒以后设计产品一定要多多站在用户视角考虑。同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~
返回列表