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

日志分析-mysql应急响应

日志分析-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}

相关文章:

  • 【网络原理】TCP/IP协议五层模型
  • 网络复习二(TCP【3】)
  • 从源码看无界 1.0.28:为何说它是 qiankun 的 “轻量化替代方案”(二)
  • Restful风格接口开发
  • 制造业项目管理如何做才能更高效?制造企业如何选择适配的数字化项目管理系统工具?
  • 【软件测试】bug 篇
  • 足迹在后 脚步向前
  • 过拟合、归一化、正则化、鞍点
  • java中的List集合去重
  • springBoot接入文心一言
  • 计算机视觉与深度学习 | 基于Matlab的钢筋计数
  • spark的堆外内存,是在jvm内还是操作系统内存内?
  • 什么是ISO20000认证,认证ISO20000有什么好处?重要意义
  • Pytest 自动化测试框架详解
  • 【物联网-RS-485】
  • MySQL InnoDB存储引擎中的日志系统解析:binlog、redo log、undo log
  • 笔记:代码随想录算法训练营day67:Floyd 算法精讲、A * 算法精讲 (A star算法) 严重超时完结,不过,撒花
  • HTML5+CSS前端开发【保姆级教学】+超链接标签
  • 如何保证本地缓存和redis的一致性
  • GEO全域优化白皮书:盈达科技如何打造AI生态中的认知护城河
  • 上海市重大工程一季度开局良好,崇明线等按既定计划加快建设
  • 巴方:印度上周导弹袭击造成至少40名平民死亡
  • 通化市委书记孙简升任吉林省副省长
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排
  • 北洋“修约外交”的台前幕后——民国条约研究会档案探研
  • 事关心脏健康安全,经导管植入式人工心脏瓣膜国家标准发布