从越权到提权 - 起始点

2022-03-08 14:03:32 浏览数 (1)

以下在靶场中属于very easy难度.

从越权到getshel提权

0x01. 初探靶场

靶场地址是10.129.66.5

首先还是Nmap扫一扫端口,发现目标机器开启了22和80端口 Linux系统

访问目标机器的web服务,发现页面点什么都没有反应。

因为burp代理一直挂着的,此时burp被动爬取网站目录,可以看到有cdn-cgi下有一个login 访问一下

很明显这里是一个登陆点,经过尝试,无弱口令、sql注入,暴力猜测也失败了

0x02. 越权

选择用guest用户登陆。

登陆之后的页面如下,可以看到有Account(账户)、Branding(商标)、Clients等功能

还有一处文件上传,既然有文件上传,那么何不直接访问一下看看能不能任意文件上传呢

但是访问之后发现,upload只有管理员权限能够访问,现在是guest用户,访问不到,那么去看看跟账户有关的页面Account。

再点一下account,来到账户页面,看到url中存在着id参数,此时是guest用户,当前是id=2

那么我将其修改一下,修改成1试试身份会不会改变

这里将id修改为1之后直接变成了admin的信息,这里还有一个access id

一般来说cookie会记录一些信息,那现在再看看cookie里面有什么东西

看到有两个字段,一个user一个role,这个user字段的内容和guest的access id一模一样,那么我把这个user改成admin的access id,会不会直接变成管理员。

直接访问uplaods,发现页面已经可以访问到了,并且可以上传文件。

0x03. Getshell

既然可以上传文件,那我直接试一手冰蝎马好了

上传之后发现这里没有返回路径,burp被动爬取的目录也没有看到上传相关的目录

这时候可以扫一下目录,或者盲猜一下目录,一般上传文件之后的目录都是uploads或者是upload、fileupload

首先测试了一下uploads,出现了403,那么有可能是确实是存在的。

拼接刚刚上传的文件名字,页面空白,没有报错404或者403,直接用冰蝎进行连接试试

连接成功

但是过了一会儿发现命令执行不了了,而且网页访问还出了404,可能目标机器会定时清理upload的文件

那我上传一个反弹shell的php脚本不就可以了吗

nc监听起来,web访问上传的php,成功执行,再执行一下python3 -c ‘import pty;pty.spawn(“/bin/bash”)’ 来获得一个功能性的shell

反弹成功,且经过十几分钟等待,连接也没有断开。

0x04. 提权

简单看一下login目录下的文件,有admin.php、db.php、index.php、script.js

其中admin.php包含了db.php,admin.php中只是一些简单的验证,db.php多半就是数据库连接文件,查看一下。

数据库账号密码到手,再从index.php中找到了admin账户的密码

因为有一个问题需要找到与robert用户一样的密码文件

那么尝试su robert 切换到robert用户的时候需要验证密码,这时候就可以验证了。

用数据账号的密码登陆成功,切换到robert用户,id看一下

robert在bugtracker组里面,看一下这个组

这里有一个bugtracker文件并且运行这个文件是以root权限来运行的,并且这里可以用suid来提权

运行一下这个程序,看看是做什么的

运行这个程序的时候提示输入ID,我输入1和2出来了一些配置信息,然后输入etc/passwd提示找不到文件,是用cat命令来打开文件的

cd到tmp目录下,echo /bin/sh >> cat 创建cat文件并写入**/bin/sh**到文件

然后chmod x cat 赋予cat执行权限

将/tmp添加到环境变量export PATH=/tmp:$PATH,这里第一次添加写错了。。重新写了一次。

现在再从/tmp目录去执行bugtracker

成功拿到flag,学习到了。

0 人点赞