日志分析-mysql应急响应

发布于:2025-04-15 ⋅ 阅读:(27) ⋅ 点赞:(0)

日志分析-mysql应急响应

任务:

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

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

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

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

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

写入shell,肯定是要先拿下网站,查一下有没有eval关键之类的字符。

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

发现了sh.php里面出现了一句话木马,cat看看,发现flag

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

黑客反弹shell的ip flag{ip}

查看一下mysql的日志目录

cd /var/log/mysql

只有error.log日志,查看一下。

cat error.log


发现可疑脚本

查看一下

cat /tmp/1.sh

发现反弹shell语句,ip地址为192.168.100.13

flag{192.168.100.13}

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

提权的话mysql常见的提权就是udf.

UDF提权

有时候我们通过一些方式获取了目标主机mysql的用户名和密码,并且可以远程连接。我们远程登录上了mysql服务器,这时,我们想通过mysql来执行系统命令,此时我们可以考虑使用UDF进行提权。

UDF是什么

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

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

提权说明

UDF提取的先决条件

  • 获取mysql控制权限:知道mysql用户名和密码,并且可以远程登录(即获取了mysql数据库的权限)
  • mysql具有写入文件的权限:mysql有写入文件的权限,即secure_file_priv的值为空。

在拿到了mysql的权限时,但是没拿到mysql所在服务器的任何权限,通过mysql提权,将mysql权限提升到操作系统权限。普通用户登录的话提权就提权到系统普通用户权限,管理员登录的话提权到系统管理员的权限

udf提权的话需要把动态链接库文件上传到特定目录:

  • Mysql版本大于5.1,udf.dll文件必须放在MySQL安装目录的lib\mysql\plugin文件夹下。(plugin文件夹默认不存在,需要创建)。

详细的提权操作观看大佬的文章:https://blog.csdn.net/qq_44159028/article/details/121193134

接下来我们需要验证是否是udf提权,查看mysql系统是否符合udf提权的先决条件,查找一下mysql的账号密码,

在PHP中连接mysql最多用到mysqli_connect和PDO两种,根据这两个函数看能不能查到账号和密码

find / -name "*.php" | xargs grep "mysqli_connect"

查找到了系统的账号密码:

账号:root
密码:334cc35b3c704593

连接上数据库

查看mysql是否有写入文件的权限

show global variables like '%secure%';

secure_file_priv的值为空,说明具有mysql有写入文件的权限。

符合udf提权的条件,所以最可能是udf提权。这样用户就会自行添加一些函数进去,里面可能存在提权命令,完成提权会把动态链接库文件(提权文件)上传到plugin目录,查看此目录

cd /usr/lib/mysql/plugin/

看到了udf提权文件.

通过md5加密/usr/lib/mysql/plugin/udf.so得到flag

flag{B1818BDE4E310F3D23F1005185B973E7}

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

既然已经进行了提权,肯定会库中写入了自定义函数,查询一下

select * from mysql.func;

使用此函数进行whoami查看。

select sys_eval('whoami');

flag{mysql}

网站公告

今日签到

点亮在社区的每一天
去签到