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

简介

1
2
3
4
5
6
7
by:https://xj.edisec.net/challenges/23
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{关键字符串}

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

image-20240704200347159

image-20240704200407664

1
2
查看文件得到flag
flag{ccfda79e-7aa1-4275-bc26-a6189eb9a20b}

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

cat /var/log/apache2/access.log

探查日志

image-20240704204029006

可以看到 写了一个 1.sh 进去 且 bash运行了这个命令
解码或者直接查看文件,是一个反弹shell的payload
image-20240704204203848

1
flag{192.168.100.13}

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

udf提权

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

条件:

获取了MySQL控制权:获取到账号密码,并且可以远程连接

获取到的账户具有写入权限,即secure_file_priv值为空

什么情况下需使用mysql提权?

拿到了mysql的权限,但是没拿到mysql所在服务器的任何权限,通过mysql提权,将mysql权限提升到操作系统权限

提权 首先需要知道密码 尝试是否有文件泄露出密码

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

image-20240704204524180

登录到数据库 探查是否具备条件

show global variables like '%secure%';

image-20240704205408473
查到secure_file_priv字段为空,具有写入权限
一般进行了提权,一定会在/usr/lib/mysql/plugin/目录下留下痕迹

image-20240704205809919

1
flag{b1818bde4e310f3d23f1005185b973e7}

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

ps -aux

image-20240704210545999

image-20240704211056716

1
2
查看进程权限 可知 黑客获取的权限为mysql
flag{mysql}