Hackthebox-Oopsie

0x01 前言

做完 Archetype 继续来做 Oopsie

0x02 过程

Scan Port:

11

Getshell

开启 burp suite 浏览网站,发现后台:

1

2

使用 Archetype 实验获取到的密码 MEGACORP_4dm1n!! 登陆成功:

3

上传功能要超级管理员才可以上传,使用 Accout 页面的功能枚举账号:

4

使用 burpsuite 的 intruder 功能进行爆破:

5

访问上传页面拦截并修改 cookie 的 user 参数:

6

成功显示上传界面:

7

编写 kali 自带的 php-reverse-shell.php,文件在 /usr/share/webshells/php,把信息修改成监听的机子:

8

监听端口,等待连接:

9

上传 php 文件:

10

但是找不到上传后的文件地址,使用 kali 自带的 dirbuster 对网站进行扫描:

12

找到 uploads 文件,尝试把上传的文件名放在 uploads 访问,已经反弹成功:

13

Privilege Escalation

读取 web 应用下的 db.php 文件获取到数据库连接信息:

14

登陆 robert 用户,因为还不是交互式的 shell,可以使用命令 SHELL=/bin/bash script -q /dev/null :

15

看到 robert 用户属于两个组,看下 bugtracker 有 s 权限,能使用 root 的权限执行:

17

输入 id,可以看到它是使用 cat 读取 root 目录的文件信息:

19

我们可以使用改变当前目录的 path 值,当前用户执行 bugtracker 程序是会优先使用当前的 path 变量:

20

然后在 tmp 目录下写入一个 cat,程序会先执行这个 cat,cat 的内容是 /bin/bash,执行后会以 root 形式执行 /bin/bash/root/reports/

21

执行成功后:

23

0x03 总结

1、还是要细心为主

2、关于文中为什么可以用 bugtracker 来提权为 root,可以参考以下两个链接:

关于 Linux 下 s、t、i、a 权限:https://www.cnblogs.com/qlqwjy/p/8665871.html

LINUX s 权限位提权:http://www.361way.com/suid-privilege/5965.html

3、过程有一个设置 path 的知识点

1
2
3
4
robert@oopsie:/$ export PATH=/tmp:$PATH
robert@oopsie:/$ cd /tmp
robert@oopsie:/tmp$ echo '/bin/bash' > cat
robert@oopsie:/tmp$ chmod +x cat

export PATH=/tmp:$PATH export 是设置环境变量,这条语句设置 PATH 的变量,/tmp:$PATH 的 $PATH 代表原本的 PATH 变量,把 /tmp 加到这边变量的前面

4、提权到 root 发现 cat 用不了,因为我们已经改变了 cat 为 /bin/bash, 可以使用 more、xxd 等命令查看文件内容