【OSCP系列】OSCP靶机—devguru

一、主机发现

image-20240718222512239

二、端口扫描

1、快速扫描

image-20240718222557792

2、全端口扫描

image-20240718222625989

3、服务版本探测

image-20240718222853251

4、漏洞探测

image-20240718223139900

发现git泄露,还有些许目录扫描

image-20240718223204843

三、HTTP信息收集

1、首页

image-20240718223301889

2、进行目录扫描

image-20240718223545789

3、git信息收集

image-20240718223713078

看来是网站的源代码

image-20240718223759453

查找敏感文件

image-20240718224102475

这里记录了数据库的账号密码

image-20240718224144444

4、Adminer登陆

image-20240718224931376

看数据库的用户信息

image-20240718225450025

用john 对这个密码进行破解

image-20240718231547556

爆破时间太长了,感觉没结果,不过看到是bcrypt 加密方法,是否可以更新密码呢

5、登陆后台

对用户的密码进行更改

image-20240718231900908

更改密码

image-20240718232004534

找到后台进行登陆

image-20240718232043073

进入后台

image-20240718232127776

四、Getshell

1、查找信息

image-20240718232855445

这个地方看来可以执行代码,但是不知道用那种语言;看其他的地方,这里有个模板可用

image-20240718232830942

使用,写入webshell,上面进行保存

image-20240718233315302

尝试执行命令;执行成功

image-20240718233410162

进行shell反弹

image-20240719004234288

五、权限提升

1、提权至frank

1、翻找敏感文件

image-20240719005210553

似乎是什么备份文件

2、将这几个文件下载下来

这个app.ini.bak文件好像是某个配置文件,价值可能更大

image-20240720133233489

3、查看内容

image-20240720133314456

通过浏览,确实是配置文件,进行筛选,看有无密码信息

1
cat app.ini.bak | grep -C 10 pass

我们通过grep 命令,筛选 有关 pass 的条数,并上下浮动10行;可以看到这里有mysql 数据库的其他账号密码

image-20240720134122583

以及疑似有redis 数据库的存在

image-20240720134239196

去靶机中看下是否有redis 的进程

image-20240720134407879

没有;不过我们拿到了mysql 数据库的其他账号信息

4、重新登陆MySQL

注意,下面这个才是用户的密码

image-20240720134747779

登陆进来

image-20240720134803091

user表中看到frank用户的信息

image-20240720134938730

不过这个密码奇怪的很,不知道是哪种加密方法;后面的passwd_hash_algo给出了加密方式pbkdf2

image-20240720135645239

本来还想尝试用pbkdf2的加密方式对密码进行修改的,结果一看,这个加密方式不仅需要有盐,还需要key,麻烦了很

image-20240720140346345

app.ini.bak中提到过密码的加密方式,有我们用过的bcrypt加密方法

image-20240720140444298

我们直接把数据库的加密方法一同改掉

image-20240720140721959

5、登陆后台

这里的后台在8585端口上,是一个Gitea 的私人仓库

image-20240720141148502

直接登陆

image-20240720141207760

成功登陆后台

image-20240720141228082

6、提权至frank

image-20240720141511405

这里显示了当前Gitea 的版本号;查找有无该版本的漏洞

image-20240720141623044

复制过来利用

image-20240720141836369

把他的参数凑齐

image-20240720142234919

昂。。。利用失败;简单的看一下这个py 文件,这里的payload好像是写入了某个文件中

image-20240720154234575

我们再执行一下(稍多等待一会儿),成功拿到了shell

image-20240720154426252

2、提权至root

看下sudo -l

image-20240720154757070

这里(ALL, !root) 表示所有用户组的 非root用户 可以使用,也就是说,我们不能以root 身份去执行这个东西;尝试一下先

image-20240720155322195

当我们想用root 身份运行这个东西是需要密码(这里需要先进入交互式shell)

1
python3 -c "import pty;pty.spawn('/bin/bash')";

这里陷入了僵局,看了下佬的文章说,这里的sudo 是存在漏洞的;具体的解释在 Linux Privilege Escalation | HackTricks

image-20240720161027048

1
sudo -u#-1 /bin/bash

image-20240720161158437

存在可能利用风险;我们改变sudo 的利用姿势

image-20240720161301814

成功提权至root