DC2靶场提权

文章讲述了在特定环境下,如何通过git的配置溢出提权,以及如何利用rbash的限制来切换到正常shell,通过修改PATH和环境变量实现对系统的访问。
摘要由CSDN通过智能技术生成

接上一篇,jerry用户没有权限,su jerry 虽然切换到jerry用户,但jerry的工作目录还是tom的

这种情况应该用su - 切换用户切换Shell环境

可以看到flag4,提示我们用git提权

提权

复习之前学过suid提权

查找具有suid权限的文件 

find / -perm -4000 2>/dev/null寻找 4000权限的文件,不显示其他的错误信息相当于过滤

具有SUID权限的二进制可执行文件大体有:nmap vim find bash more less nano cp awk

没有能用来提权的

那就用git提权

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

执行命令sudo -l列出jerry可以通过sudo执行的所有命令,有git

git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目

sudo git help config 打开关于配置的帮助页面

然后输入!/bin/bash或者!'sh' 

这时已经成功提权了,需要切换到root的工作目录,用 su - root 拿到最终flag

我试了下,随便vi个文件,然后esc再输入:!ls,文件就退出了,并执行了ls命令

因为按esc键跳到命令模式

是利用打开文件后可以在后面运行命令的特点

复习昨天的绕过rbash限制:

rbash是低权限的bash,我们要切换到正常的shell

echo $PATH显示当前PATH环境变量

echo 相当于printf,可以打印变量的值,或者输出指定的字符串

$引用一个变量的值,$PATH表示环境变量的当前值

PATH保存了可执行文件的目录列表

echo /home/tom/usr/bin/*(上面的结果) 显示能执行的命令

看到能用vi

vi

按esc 输入:set shell=/bin/bash回车,设置当前终端会话的默认shell为/bin/bash

输入:shell回车 (执行shell)

再添加环境变量

export PATH=$PATH:/bin/

export PATH=$PATH:/usr/bin/

/usr/bin/和/bin/包含了很多linux基本命令,:是分隔号

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值