vlunstack是红日安全团队出品的一个实战环境,本次测试的红日安全 ATT&CK实战系列——红队实战(三)靶场环境下载地址:
http://vulnstack.qiyuanxuetang.net/vuln/detail/5/
这是个黑盒测试,不提供虚拟机密码,得到的信息只有一个:
ip:192.168.1.110
经过后续渗透结果发现大致拓扑如下:
首先发现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内核版本:
可以用脏牛提权:
脏牛提权成功,后面发现不用也能做(运气好),所以有了两种解法。解法一直接爆破,解法二中继。
上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 :)
本次靶场为单域环境,较为基础,主要从端口扫描,目录扫描,joomla模板getshell,disable_function绕过,脏牛提权,smb中继,令牌窃取,横向移动等知识点考察练习常规红队技巧。