首页 > 其他分享 >DC系列靶场---DC 2靶场的渗透测试(二)

DC系列靶场---DC 2靶场的渗透测试(二)

时间:2024-07-23 08:55:47浏览次数:9  
标签:bin git DC jerry --- sh PATH 靶场 我们

漏洞利用及探测

rbash逃逸

虽然我们现在已经可以执行切换路径命令了,但是发现还有是很多命令不能用。

我想看看一下目标主机的所有用户,是不能执行的。

那我们就用到了当前shell逃逸。第一种情况:/ 被允许的情况下;直接 /bin/sh 或 /bin/bash

第二种情况:能够设置PATH或SHELL时。

export PATH=$PATH:/bin/:/usr/bin:$PATH
export SHELL=/bin/sh

 现在我们是符合第一种情况的所以我们直接使用/bin/sh 或者 /bin/bash

 

export PATH=$PATH:/bin/:/usr/bin:$PATH

现在我们就可以使用cat命令了,当然其他命令我们也是可以进行执行的

我们通过passwd文件看到tom/bin/rbash而jerry是/bin/bash,tomshell是受限制的,而jerry的shell是不受限制的

详细请看:https://xz.aliyun.com/t/7642?page=1&time__1311=eqmxuDnGDQitdAKG%3DD%2FFnxBKR0DkqYeDBjmhoD#toc-2

 

我们现在获取到了flag3,根据它的提示说老汤姆总追着杰瑞跑。那应该下一个flag就在杰瑞身上。

su - jerry
//passwd=adipiscing

所以我们切换到jerry用户,因为jerry的shell是不受限制的。

我们看到jerry身上有个flag4,这个flag4上也很有意思

我们现在没有获得最重的旗帜,还说这没有提示,居然还说让我滚。那我就得看看怎么个事了。

关键就在最后一句 Go on - git outta here 这不就是git吗,那我们的突破点就是这个git工具了。

su -l

执行sudo -l列出jerry可以通过sudo执行的所有命令,有git,那我们就使用git进行提权。

提权

git提权

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

GIT提权原理:

原理是git配置不当存在溢出,溢出的部分如果输入一个交互式窗口就会有交互,类似于suid那样,暂时拥有root,又写了一个交互,就真的有了root的交互。

git 的帮助信息中有一个-p | --paginate选项

这个-p的意思就是以分页的形式展示git的帮助信息,但是这里他会默认调用more来进行展示。

sudo git -p

!/bin/sh

我们再交互式的中输入!/bin/sh,可以看到我们的命令提示符变成了root。

最终flag

我们首先切换到root的工作目录,就可以看到最终的flag了。

总结:

1、我们使用nmap扫描端口的时候一定要看仔细,并不是所有的ssh都是22端口,因为考虑到安全问题,就把端口给改变了。

2、DNS服务替代解决方案:hosts文件,且它的解析优先级比DNS更高。可以将目标主机ip地址和域名写入hosts文件。

3、在做目录枚举的时,要有好的字典才能更精确查找。

4、我们在探测http时,可以根据架构目录枚举的架构判断CMS

5、我们要根据目标主机的CMS和结构来选择工具,达到精准把控。

6、不论是用户枚举还是暴力破解都需要选对字典,才能有效。

7、在进行rbash逃逸的时候,应该按照可使用的命令选择逃逸的方式,不同命令,有不同的逃逸方式。

8、每个flag都是一个提示,看仔细,不要相信它说这个没有任何提示。

标签:bin,git,DC,jerry,---,sh,PATH,靶场,我们
From: https://blog.csdn.net/zhouA0221/article/details/140601031

相关文章

  • Firebase 云消息传递 HTTP v1 发送错误 - 400 客户端错误:URL 请求错误:https://fcm.goo
    我尝试使用Firebase云消息传递HTTPv1这是在Windows下运行的Python代码importjsonimportrequestsfromgoogle.oauth2.service_accountimportCredentialsimportgoogle.auth.transport.requestsdef_get_access_token():credentials=Credentials.fro......
  • Python - 逆透视数据框
    我有一个按日期时间索引的表,每个日期时间都有多个层(中心和交货间隔):日期时间中心交货间隔结算点价格2024-01-0101:00:00休斯顿中心1......
  • 错误:无法提取上传者 ID - Youtube、Discord.py
    我在不和谐(discord.py,PYTHON)中有一个非常强大的机器人,它可以在语音通道中播放音乐。它从youtube(youtube_dl)获取音乐。它之前工作得很好但现在它不想处理任何视频。我尝试更新youtube_dl但仍然不起作用我到处搜索,但仍然找不到可能对我有帮助的答案。这是错......
  • 从 OR-Tools 设置 CP-SAT 求解器的 IntVar 值
    我目前正在使用googleOR-toolsCP-SAT求解器来解决规划问题。我使用IntVars作为日期的表示。所有这些IntVar都在字典中。我有一些可以正常工作的约束,但我想强制求解器使大约2/3的Intvars低于400。我尝试使用BoolVars解决问题,但没有成功,我运行了出于如何将2/3......
  • 无法在 python 中安装 pip install expliot - bluepy 的 Building Wheel (pyproject.t
    在此处输入图像描述当我尝试在Windows计算机中通过cmd安装pipinstallexpliot包时,我收到2个错误名称×Buildingwheelforbluepy(pyproject.toml)didnotrunsuccessfully.│exitcode:1**AND**opt=self.warn_dash_deprecation......
  • python 用单斜杠-反斜杠替换url字符串中的双斜杠
    我的URL包含错误的双斜杠(“//”),我需要将其转换为单斜杠。不用说,我想保持“https:”后面的双斜杠不变。可以在字符串中进行此更改的最短Python代码是什么?我一直在尝试使用re.sub,带有冒号否定的正则表达式(即,[^:](//)),但它想要替换整个匹配项(包括前面......
  • 如何在Python中使用Selenium提取data-v-xxx?
    因为我想查看每个class='num'内的文本是否大于0。如果测试通过,那么我需要获取venuen-name内的文本。我观察到,data-v是相同的。所以我的方法是获取相同的data-v-<hashvalue>来查找场地名称。我尝试了不同的方法来提取,但仍然无法提取。有什么建议吗?这是DOM<div......
  • 类型错误:“str”对象不可调用 - 将 str 转换为 int
    我正在尝试将字符串转换为浮点型,但出现此类型错误:TypeErrorTraceback(mostrecentcalllast)<ipython-input-133-93612055e8fb>in<cellline:1>()---->1year=int(input("tellmeyourbirthdate:"))TypeError:'st......
  • 【视频】Python遗传算法GA优化SVR、ANFIS预测证券指数ISE数据-CSDN博客
    全文链接:https://tecdat.cn/?p=37060本文旨在通过应用多种机器学习技术,对交易所的历史数据进行深入分析和预测。我们帮助客户使用了遗传算法GA优化的支持向量回归(SVR)、自适应神经模糊推理系统(ANFIS)等方法,对数据进行了特征选择、数据预处理、模型训练与评估。实验结果表明,这些方法......
  • CS229|Ch8-9|泛化、正则化、模型选择
    关键词:泛化性、过拟合、欠拟合;误差、偏差、方差及其关系;模型复杂度&偏差&方差&过拟合&欠拟合&误差之间关系泛化性generalization:performancesonunseendatatrainingdata——seentestdata——unseen过拟合overfit:predictaccuratelyontrainingdata(smalltraining......