Windows 10/11下,手把手教你用Python2和Git搞定GitHack渗透测试工具
Windows 10/11下Python2与GitHack环境搭建实战指南
在网络安全领域,.git泄露是常见的配置失误之一。GitHack作为一款经典的.git泄露利用工具,至今仍是CTF比赛和渗透测试中的利器。然而对于Windows 10/11用户来说,最大的挑战不是工具本身的使用,而是如何在现代操作系统上搭建Python2的运行环境。
1. 为什么Python2在Windows 11上如此棘手
微软在2020年正式停止对Python2的支持,这导致新版本Windows系统对Python2的兼容性逐渐降低。以下是几个关键痛点:
- 官方安装包缺失 :Python官网已移除Python2的下载链接
- PATH环境冲突 :与Python3共存时容易导致命令混淆
- 依赖管理困难 :pip版本老旧,许多库需要手动编译安装
- 系统组件变更 :VC++运行库等依赖项需要特定版本
提示:虽然Python2已停止维护,但在网络安全领域,仍有大量经典工具依赖它运行。学会处理这些兼容性问题,是安全从业者的基本功。
2. Python2环境精准配置
2.1 获取Python2安装包
由于官方渠道已关闭,我们需要通过可信的镜像源获取安装包:
# Python 2.7.18 (最后一个Python2版本)下载链接
https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi
安装时需特别注意以下选项:
| 安装选项 | 推荐设置 | 原因 |
|---|---|---|
| 安装路径 | C:\Python27 | 避免空格和特殊字符 |
| 添加到PATH | 取消勾选 | 防止与Python3冲突 |
| 安装pip | 必须勾选 | 后续依赖管理需要 |
2.2 解决常见安装后问题
安装完成后,通常会遇到以下问题:
-
pip命令不可用 :
# 手动更新pip python -m ensurepip --upgrade python -m pip install --upgrade pip -
SSL证书错误 :
# 创建fix_ssl.py文件并执行以下内容 import os, ssl if (not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None)): ssl._create_default_https_context = ssl._create_unverified_context -
编码问题处理 :
# 在脚本开头添加编码声明 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8')
3. Git环境配置与优化
3.1 选择适合安全工具的Git版本
推荐使用Git for Windows的轻量版:
# 下载地址
https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.3/PortableGit-2.41.0.3-64-bit.7z.exe
便携版优势:
- 无需安装,解压即用
- 不修改系统PATH
- 体积小巧(约50MB)
3.2 关键配置调整
编辑 gitconfig 文件添加以下内容:
[core]
autocrlf = false
safecrlf = false
[credential]
helper = store
注意:禁用CRLF转换可以避免脚本执行时的行尾符问题,这在安全工具使用中尤为重要。
4. GitHack实战部署
4.1 获取与准备GitHack
# 克隆最新仓库
git clone https://github.com/lijiejie/GitHack.git
cd GitHack
4.2 依赖安装与问题排查
常见依赖问题解决方案:
| 依赖库 | 安装命令 | 替代方案 |
|---|---|---|
| requests | pip install requests==2.25.1 |
使用urllib3重写请求 |
| argparse | 内置库 | 无需安装 |
| colorama | pip install colorama |
可移除颜色输出 |
遇到SSL错误时,可修改 GitHack.py :
# 在import区域添加
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
4.3 实战用例演示
扫描存在.git泄露的测试站点:
python GitHack.py http://test.com/.git/
典型输出结构:
.git/
├── HEAD
├── objects/
├── refs/
└── index
恢复源代码后,重点关注以下高危文件:
config.php- 数据库凭证.env- 环境变量配置*.xml- 敏感配置*.json- API密钥存储
5. 高级技巧与替代方案
5.1 使用Docker容器方案
对于频繁使用Python2工具的场景,推荐容器化方案:
FROM python:2.7-slim
RUN git clone https://github.com/lijiejie/GitHack.git
WORKDIR /GitHack
ENTRYPOINT ["python", "GitHack.py"]
构建并运行:
docker build -t githack .
docker run -it --rm githack http://target.com/.git/
5.2 现代Python3替代工具
如果环境限制无法使用Python2,可以考虑这些替代方案:
-
GitTools (https://github.com/internetwache/GitTools)
# 使用示例 ./gitdumper.sh http://target.com/.git/ output_dir -
DVCS-Pillage (https://github.com/evilpacket/DVCS-Pillage)
-
TruffleHog (https://github.com/trufflesecurity/trufflehog)
在真实渗透测试项目中,我通常会先使用GitHack快速验证.git泄露,确认存在漏洞后再用GitTools进行完整仓库恢复。这种组合方案既保证了效率,又能获取完整的代码库。
更多推荐
所有评论(0)