GitHack — 一个git泄露利用脚本

当前大量开发人员使用git进行版本控制,对站点自动部署。  如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。

渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等安全漏洞。

脚本的工作原理

  1. 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
  2. 去.git/objects/ 文件夹下下载对应的文件
  3. zlib解压文件,按原始的目录结构写入源代码

它的优点

  1. 速度快,默认20个工作线程
  2. 尽量还原所有的源代码,缺失一部分文件不影响脚本工作
  3. 脚本不需要执行额外的git命令,All you need is python
  4. 脚本无需浏览目录

可能的改进

存在文件被gc打包到git\objects\pack的情况,稍后可测试下看能否直接获取并解压这个文件,还原源代码

用法示例

GitHack.py http://www.hoolai.com/.git/

执行中截图:

GitHack

执行结果:

GitHack_result

获取代码:https://github.com/lijiejie/GitHack

参考资料:

Git Index Formart

非常感谢 sbp 的 gin – a Git index file parser,脚本中使用了他的解析源代码,为适用python 2.x和Windows作了细微的改动

subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本

更新日志:

  • 2015-4-2  修复了在Linux系统下进度条输出混乱的bug,填充空格以清空原始输出

渗透测试时,前期的信息收集包括主机(服务)发现。 子域名暴力枚举是十分常用的主机查找手段。

我写了一个改进的小脚本,用于暴力枚举子域名,它的改进在于:

  1. 用小字典递归地发现三级域名,四级域名、五级域名等不容易被探测到的域名
  2. 字典较为全面,小字典就包括3万多条,大字典多达8万条
  3. 默认使用114DNS、百度DNS、阿里DNS这几个快速又可靠的公共DNS进行查询,可随时修改配置文件添加你认为可靠的DNS服务器
  4. 自动筛选泛解析的域名,当前规则是: 超过10个域名指向同一IP,则此后发现的其他指向该IP的域名将被丢弃
  5. 整体速度还过得去,在我的PC上,每秒稳定扫描100到200个域名(10个线程)

以下是我扫描baidu.com得到的结果,共发现1521个域名,能找到不少内网域名和IP,效果还是非常不错的。

它甚至可以发现这样的域名: data.test.noah.baidu.com [10.36.166.17]  未经改进的工具通常是探测不到这个域名的。

扫描其他几家公司,情况一样,可以发现不少内网域名、IP(段)、甚至是十分隐蔽的后台。

这就是不做private DNS 和 public DNS隔离的坏处啊,内网的相关拓扑和服务轻易暴露给黑客了。

https://www.lijiejie.com/wp-content/uploads/2015/04/baidu.com_.txt

youku.com    tudou.com   letv.com    renren.com     tencent.com

下载脚本: https://github.com/lijiejie/subDomainsBrute

请先安装依赖的dnspython,在install目录下。

如果你有什么意见、改进,请反馈,谢谢

附运行时截图一张:

subDomainsBrute