靶机实战1:.git 泄露到 RCE 提权全流程
目标信息
| 项目 | 内容 |
|---|---|
| 靶机 IP | 10.10.1.49 |
| 漏洞类型 | 敏感信息泄露 + RCE + 权限提升 |
| 攻击机 IP | 172.16.12.75 |
一、信息收集
1. 端口扫描
1 | # 全端口扫描,跳过主机发现 |


结果:
- 开放端口:22/tcp (SSH)、80/tcp (HTTP)
- Web 服务:Apache/2.4.58 (Ubuntu)
- 操作系统:Ubuntu Linux
2. 目录爆破
1 | # 目录爆破,猜测 .php 后缀,过滤 403/404 |

结果: 发现 .git 目录可访问。
二、.git 泄露利用
1. 确认泄露
1 | # 读取 HEAD 文件,确认仓库分支引用 |


2. 拉取源码
1 | # git-dumper 拉取完整 .git 仓库 |




3. 提取凭证
从提交历史中获取管理员账号密码:
1 | admin : P0rtal_Adm1n_2026! |
三、漏洞利用
1. 登录后台

2. 模板写入 Webshell
进入模板设置,编辑 footer.php:

写入一句话木马:
1 |
|

测试命令执行:
1 | # 访问 footer.php,通过 ?c=id 执行 id 命令 |

结果: 返回 uid=33(www-data),确认 RCE。
3. 反弹 Shell
攻击机监听 4444 端口:
1 | nc -lvnp 4444 |

靶机执行反弹:
1 | # 通过 webshell 执行反弹命令,连接攻击机 4444 端口 |

拿到 shell:

升级交互式终端:
1 | # Python 启动伪终端 |

四、权限提升
1. 检查 sudo 权限
1 | # 列出当前用户可 sudo 执行的命令 |

结果: tar 可无密码以 root 执行。
2. tar 提权
1 | # 利用 tar 的 checkpoint 机制执行命令 |

验证:
1 | id |
五、获取 Flag
1 | # 搜索 flag 文件 |


1 | flag{yx_g1t_l34k_s0urc3_t0_w3bsh3ll} |
攻击链
1 | 端口扫描 → 目录爆破 → .git 泄露 |
漏洞评级:严重
- 根源:.git 目录未做访问控制
- 影响:源码泄露 → 凭证泄露 → RCE → 提权至 root
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Johnj 的博客!