0x01扫描端口
使用namp进行扫描
nmap -sV 10.10.10.28
获取服务和操作系统版本
发现开放22和80端口,linux操作系统,开启了web服务,所以浏览器访问80端口
0x02 路径泄露
到处点点也没发现什么东西。然后使用burpsuite发现target里面有login字眼。
然后加上路径cdn-cgi/login访问,发现真有一个登录框
我们可以使用爆破什么的手段去尝试登录,这里的帐号密码其实是上一篇文章Archetype获取到的 管理员的帐号admin和密码MEGACORP_4dm1n!!
0x03越权漏洞+文件上传
登录之后是这样的
随便点一点,首先比较敏感的就是uploads,因为可以进行文件上传,点开发现需要super admin这种用户
然后点第一个account,发现其中一个url存在一个id=1这种的,且有name,access id这种信息,看到ID和name一起出现的话除了可能存在注入漏洞(当时跑sqlmap跑不出来,也就放弃了),也可能存在一种越权漏洞,这里可能就是要寻找super admin对应的id。
我们可以使用burp的intruder模块去爆破account下的access ID,看看哪个页面有不一样的,寻找super admin用户
爆破后发现id等于30的时候长度不一样,我们放包,然后去看看id=30的时候有什么内容
发现super admin对应的id是86575,然后再重新访问uploads,抓包,发现cookie是34322,我们修改user=86575,然后放包
然后发现显示出了文件上传的页面
然后上传webshell,这里上传大马上去(我日的把我大马杀了,发现webshell上传一分钟内会自动删除),所以这里使用kali自带的webshell(在/usr/share/webshells目录下),先复制webshell到桌面上
然后修改下shell
把IP地址改成自己kali的ip地址,然后把webshell上传上去,使用burp拦截,然后记得把id改成86575,然后放包
返回状态码200,然后看页面上显示上传成功了,然后就开始webshell连接。但是我们并不清楚上传到哪个路径上去了,我们可以直接扫描目录就行了
这里扫描了一下,发现有个uploads路径,状态码403,也就是拒绝访问,但是肯定是有这个目录的。然后使用
nc -nvvlp 1234
监听端口,使用curl去访问webshell
访问后切换nc监听窗口,发现webshell已经反弹回来
经过一番仔细查找之后,发现在文件/var/www/html/cdn-cgi/login/db.php有数据库连接信息,cat之后发现有数据库账号robert和密码M3g4C0rpUs3r!的用户凭证
这时候我们可以使用su切换用户,但是发现目前的shell是非交互式的,不能使用su等命令,我们就可以输入以下命令去切换成交互式shell
SHELL=/bin/bash script -q /dev/null
在环境变量下将shell设置为/bin/bash,-q使用静默运行,输出到/dev/null,下图是因为别人重置了靶场主机,所以重新搞一次
然后su切换成robert用户
然后切换到当前用户根目录,ls发现有个user.txt,cat下后发现一个flag,这就是第一个flag:
f2c74ee8db7983851ab2a96a44eb7981
0x04提升权限
输入id之后,发现robert用户是属于bugtracker组,可以查找此用户组是不是有特殊的访问权限
然后输入
find / -type f -group bugtracker 2>/dev/null
查找文档限定组为bugtracker,发现这个文件是/usr/bin/bugtracker
然后使用
ls -al /usr/bin/bugtracker
查找文件的权限,发现有个特殊的s权限
我们尝试运行他,然后发现可以输出根据文件提供的id值1的bug报告
使用string命令去看下这个文件是怎么运行的
bugtracker调用系统中的cat命令输出了/root/reports/目录下的bug报告,robert用户本应该无权访问/root目录,而bugtracker设置了setuid后就拥有了/root目录的访问,就拥有了root权限。此时的cat命令的环境是绝对路径而不是相对路径来调用的,即当前的用户变量指定的路径来搜寻cat命令。这时候我们可以建立一个恶意的cat命令,并且修改当前用户变量提升权限。输入:
export PATH=/tmp:$PATH //将tmp目录设定为环境变量
cd /tmp/ //进入tmp目录
echo '/bin/sh' > cat //构造cat命令
chmod +x cat //将cat变为可执行权限
然后在tmp目录下运行usr/bin/bugtracker,输入对应的id值为1,此时我们发现可以使文件临时拥有了root的权限
然后就可以去找flag了,flag是在/root/root.txt里,此时的cat已经被替换,不能查看内容。这时候可以用more命令去查看文件,然后找到了第二个flag值:af13b0bee69f8a877c3faf667f7beacf
完结撒花!!!!!!
0x05后记
大概整理下本次提权思路:可以去查找当前用户所在的组文件,看看组文件有没有setuid这种特殊权限,setuid的方法是使用linux的chmod指令赋予文件所有者权限(root),所以有这种特殊权限时候,可以先看看文件是怎么运行的,发现是通过cat命令输出报告,此时可以构造恶意的cat,把cat变为可执行shell命令,这时候就可以进入到shell。(语言组织能力不太好,还请见谅,建议上午白天做靶场,晚上靶场会很卡,不好练习)
原文始发于微信公众号(暗魂安全团队):【渗透测试】hackthebox靶场之Oopsie
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论