提权小案例
场景:nextcloud的网盘服务器密码我忘记了,服务器是我自己配置的,iso镜像是杭宏波提供的,现有一个普通用户的shell(忘记密码的)
尝试路线:
- 暴力破解
根据公司名称生成了二百多个弱口令字典,失败,未爆破出,其实还可以尝试其他生成字典方式,但是想了想,这个运气成分太大了,所以没做,继续其他的思路
注:爆破不是随便拿个字典怼,随便拿个字典怼成功的几率太小了
- 尝试自动猜解提权的脚本,失败,未查出
-
看了下当前的服务器系统版本,根据版本尝试21年到现在的内核提权的exp失败
-
然后突然想到有起mysql服务,尝试udf(此方法可手工也可以使用msf、sqlmap自动化执行),修改mysql配置文件然后使用msf自动化做提权尝试
可以看到,没什么报错,但是没得shell弹回来,这啥原因呢,俺一开始懵住了,然后手工登录mysql查看自定义函数
那个sys_exec是由msf自动生成的,但是执行命令发现失败,于是我利用msf的udf文件,手工创建了一个sys_eval函数,也就是图里的第二个函数,命令:CREATE FUNCTION sys_eval RETURNS STRING SONAME 'ICiqZAzM.so';
之后通过我手工创建的函数执行whoami:
权限不够~
由于服务器是我自己弄的,所以可以确定的是sudo、suid等方式无法提权,内核提权已经尝试过了,但是上天不负苦心人,我又通过计划任务执行了下,发现是root权限:
于是反弹个shell,然后直接修改密码:
注:不是必须反弹shell,你的计划任务可以直接改,我就是单纯的个人习惯