Vlunstack ATT&CK实战系列——红队实战(三)Writeup

2019-12-27 约 145 字 预计阅读 1 分钟

声明:本文 【Vlunstack ATT&CK实战系列——红队实战(三)Writeup】 由作者 haya 于 2019-12-27 10:26:54 首发 先知社区 曾经 浏览数 87 次

感谢 haya 的辛苦付出!

0x00 简介

vlunstack是红日安全团队出品的一个实战环境,本次测试的红日安全 ATT&CK实战系列——红队实战(三)靶场环境下载地址:

http://vulnstack.qiyuanxuetang.net/vuln/detail/5/

这是个黑盒测试,不提供虚拟机密码,得到的信息只有一个:

ip:192.168.1.110

经过后续渗透结果发现大致拓扑如下:


0x01 外部打点

首先发现80端口网站是个joomla!,探测了一下版本,发现是3.9.2版本较高

然后扫了下目录,发现存在备份的配置文件configuration.php~

如上图所示,得到了一个mysql普通数据库用户

testuser cvcvgjASD!@

然后curl了一下3306,发现开着

然后尝试使用得到的mysql密码来连接

得到了joomla!的数据库

joomla默认后端编辑模板即可getshell,所以我们需要获取管理员账户,根据官方文档使用sql添加一个即可

如下图,添加额外的管理员admin2

随后使用账号admin2 secret登录后台:http://192.168.1.110/administrator/index.php

通过模板修改,getshell:

然后访问shell:http://192.168.1.110/templates/beez3/h1.php

连接后发现有disable_function,可以用LD_PRELOAD绕过

能执行命令后,执行ifconfig uname看了下网卡以及内核

ubuntu内核比较新,暂时不考虑提权

在ubuntu上找到了个test.txt(略刻意)

尝试使用wwwuser通过ssh登陆192.168.1.110

由以下执行结果,我们不难发现,192.168.1.110不是我们gethell的主机,后端应该是nginx反代,我们目前得到的ubuntu的IP地址应该是192.168.93.100

查看centos内核版本:

可以用脏牛提权:

脏牛提权成功,后面发现不用也能做(运气好),所以有了两种解法。解法一直接爆破,解法二中继。

0x02 拿域控

解法一:

上msf,scp上传payload到centos:

centos执行payload获取shell:

添加路由,然后meterpreter放在后台:

扫描获取周围windows信息:

得到了三台加入test域的windows主机

192.168.93.20 windows server 2008

192.168.93.30 windows 7

192.168.93.10 windows server 2012

尝试爆破一下windows server 2008的本地管理员

没想到还真成了:

将目标网络代理出来:

本地windows使用proxifier,kali使用proxychains来代理socs4a:

wmiexec执行命令,查看进程时发现有test域的administrator的进程,于是尝试抓一下密码(直接steal token也行):

kali下使用smbclient通过代理连接windows server 2008 上传mimikatz

wmiexec远程执行mimikatz抓到了test域的administrator密码:

查看windows server 2008的ip,然后ping test.org获取到域控制器ip

直接ipc连接(环境有点问题,3389连接域控提示administrator的密码过期了):

得到重要文件flag.txt:

解法二:

​ 通过在获取centos root后,使用Responder MultiRelay.py 进行中继,使用mssql的密码(同mysql)访问centos获取到win2008 administrator的ntlmv2后中继到win7(win7本地administrator同win2008,真实环境课可能获取到域管凭据的情况多一点,而不是本地密码相同),然后获取到win7凭据后登陆win2008,然后窃取test\administrator令牌, 登陆域控获取重要文件。

首先脏牛提权centos 得到的root,登陆centos,安装Responder。

然后生成shell,反弹meterpreter,创建路由,由于和解法一相同,所以不再赘述。

通过扫描,win2008开放了1433端口,mysql的密码就是mssql的密码:

testuser cvcvgjASD!@

由于获取到的是普通用户,所以不能用xp_cmdshell,但是可以获取到ntlmv2 hash

在centos创建好环境,安装Responder,监听

使用auxiliary/admin/mssql/mssql_ntlm_stealer,执行xp_dirtree,触发UNC

msf触发UNC,获取到了win 2008的hash:

这里可以直接使用开膛手破解hash,运气好可以得到administrator密码:

运气不好可以尝试中继win2008打win7,由于win7 2008的本地administrator密码相同,所以也能成功,步骤如下:

mssql触发UNC:

MultiRelay监听获取到win7 shell:

使用MultiRelay自带mimikatz抓取win7凭据:

获取到win7本地密码:

administrator 123qwe!ASD

因为win2008的administrator凭据可以中继到win7,所以win2008的密码和win7相同。

psexec尝试用获取到的密码登录win2008查看进程

发现存在TEST域的administrator进程:

从centos上传incognito到win7再到win2008窃取令牌:

使用psexec incognito窃取TEST域administrator权限登录域控192.168.93.10将flag.txt复制到win2008:

set COMMAND C:\\incognito.exe execute -c \"TEST\\administrator\" \"cmd /c copy \\\\192.168.93.10\\C$\\users\\administrator\\Documents\\flag.txt C:\\1.txt\"
//注意转义符

win2008中查看从域控copy到的flag :)


0x03 总结

​ 本次靶场为单域环境,较为基础,主要从端口扫描,目录扫描,joomla模板getshell,disable_function绕过,脏牛提权,smb中继,令牌窃取,横向移动等知识点考察练习常规红队技巧。

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now