git提权方法

当遇到系统权限不足,无法执行某些命令时,可以通过git命令进行提权。本文介绍了两种方法:1) 使用'sudo git help config'后输入'!/bin/bash';2) 'sudo git phelp'后输入'!/bin/bash',即可打开root权限的shell。请注意,这些操作需在无需密码的情况下执行sudo。

当我们拿到系统的权限的时候,发现权限太低,很多命令执行不了的时候,我们应该怎样呢

下面我将介绍一个git提权的方法

前提是执行sudo -l 提示不需要密码可以使用git命令

下面将提示两种方法

(我们需要将shell的窗口变窄,使得回显信息不能一页显示)

1、sudo git help config #在末行命令模式输入 
!/bin/bash 或 !'sh' #完成提权 
2、sudo git -p help 
!/bin/bash #输入!/bin/bash,即可打开一个用户为root的shell

 

<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` 查看用户的限配置,寻找类似入口点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值