vulnhub Ch4inrulz 1.0.1

Ch4inrulz 1.0.1

一、这是一个实战靶场,中等难度。通过各种线索获取到flag

1、描述:Frank是一个有安全知识背景的程序员,他很聪明,他喜欢遵循一定的模式,你需要找到这个网站的安全漏洞,通过漏洞利用最终获取网站服务的root shell,拿到flag(在/root/flag.txt)

2、实验环境

靶机自搭、攻击机:kali2021

二、靶场复现

1、信息收集

主机发现和端口服务识别

老规矩先上nmap

扫到了一个IP为:192.168.172.145的主机,且主机开启了四个端口;分别是:21、22、80、8011端口

根据常识,21、22端口一般没什么用,是作者方便搭建服务用的,80和8011端口则是web服务。我们用nmap -A IP 命令。详细看一下主机数据。

可以看的出来,主机是一台Ubuntu Linux主机。

Ok! 端口信息收集好了,我们再收集一下web信息

这个是80端口的web页面,似乎是frank的简介……

这个是8011端口开放的web服务,似乎是frank的开发网站,可能frank的开发代码放在这!不过也只是猜一下而已!

两个web服务都没有什么可用的信息。

2、目录扫描

既然这样,那我们也只能分别扫描一下这俩服务的目录了。

用dirb命令分别扫描一下,在80端口扫描到了好几个目录

/development 、/cgi-bin/ 、/index.html 、 /robots.txt 、/server-status

经过测试发现只有/development 这个目录可用。/development的返回值是401,说明该页面存在 “HTTP Basic” 认证登录。

果不其然,需要密码登录,先放着,我们再来看一下8011这边的情况。

经过扫描,我们扫描到了一个路径是/api/index.html 的URL路径,访问一下有什么东西。

3、漏洞探索

访问之后是这个页面,我们发现这些貌似是一些目录,我们挨个进行访问发现只有files_api.php可以访问。

页面如下

这个页面告诉我们,必须传一个 “file” 参数才行。

可能存在文件包含漏洞,我们先尝试一下。

哎呀,被拦截了,我就说嘛,没那么容易!(frank先生具有一定的安全知识的,所以有所防范。)

通过bp抓包发现,它是一个GET请求。那POST请求可以访问成功吗?我们去试一下

我们打开curl这个工具

可以看到,当我们换成POST请求的时候,服务器并没有把我们识别成黑客,说明frank先生过滤了GET请求。

既然都到这了,说明这是一个文件包含漏洞无疑了。那我们尝试包含一下别的文件,我们可以利用php伪协议把 ”files_api.php” 的源码读出来。

通过命令我们成功读取到了源码,那么我们base64解码一下。

通过解码可知,拦截了GET请求,从最后的注释来看,拦截了 ”/etc/passwd” ,但是注释掉了,所以我们也可以包含 “/etc/passwd“ 的。

果然可以。

4、漏洞利用

既然存在文件包含漏洞,那我们只需要找到上传的地方就可以啦,通过上传木马达到getshell的目的。但是前提是,我们得先找到上传点。

之前我们发现了一个 “/development” 目录,可能上传点在这。那么我们就得先登录进去。

既然这样,我们用 “cewl“工具抓取一些关键字作为字典。

然后再定义几个用户名,就“ frank,admin,Frank,Admin“ 吧,使用 “hydra” 进行爆破一波。

很显然,没有成功。到了这,我的大脑已经短路了,但是仔细一想,既然有开发网站,又有开发服务器,那是不是可能会有备份文件。迫不及待,我们来尝试一下。

我从网上找到了一个项目字典(SVNDigger.zip),那么就用 “dirb“ 工具再次扫描一遍吧。

通过枚举扫描,果然发现了一个后缀为bak的备份文件,我们把它下载一下。

下载完成,打开看一下吧。

可以看到一句话,说明账号密码就是这个,但是密码进行哈希加密了,没事,我们可以用“john“工具进行哈希散列破解。

先把待破解的字符串写入一个文件中,然后进行破解。

破解成功,账号是frank  密码是frank!!!  

我们去登录一下。

哦耶,登录成功啦,根据提示这里有上传路径,我们试试 “/uploader“ 。

确实,登录成功。

提示:“安全问题只完成50%“

而且似乎只能上传图片。

经过一系列尝试,只能上传图片。所以我们可以再木马前加一个 “GIF89a“ 文件头,用来伪装成图片。

Ok,这是几个示范,图1、2上传成功,图3没有上传成功。

既然上传成功了,那我们就去找对应的路径访问就行了。

如果直接访问是不行的,所以我们又要去找了。

我们可以得到一个规律,

他的主页是:FRANK’s Website

他的API页面是:FRANK’s API

他的服务器叫:Frank’s server

上传功能点叫:Frank uploader

Development 登录的页面写的:Frank Development

Frank先生喜欢遵循一定的规律,猜了半天,终于猜到了他的上传路径是(/FRANKuploads/)。

终于找到了,我们尝试一下文件包含。

因为是linux主机,所以路径为 /var/www/

我滴个妈,可算ok了,根据返回信息,php代码被执行了

那么下一步就要进行提权了。

我们可以用反弹shell的方式进行提权,那么我们先复制一个具有反弹shell的webshell过来,kali里面自带的。然后再监听一个端口。

把ip改成自己攻击机IP,端口改成自己喜欢的就行。

然后在代码前面加一个 “GIF89a” 文件头

然后再上传到目标网站上,然后利用文件包含漏洞。

代码被成功执行,我们开启一个nc监听木马中自己指定的端口。

成功反弹shell了

但是,权限太低,压根不能cd到root目录下。所以这时候我们就要提权了。

使用uname命令发现,系统内核是2.6.35版本的。

经过查找,2.6.35版本存在RDS权限提升漏洞。

漏洞编号CVE-2010-3904

我们就可以利用这个就行本地提权啦。

我们把kali里自带提权的程序复制到/tmp目录下,因为我们要用kali开启一个http服务。

找到这个文件,并且把它copy到/tmp目录下。

做完这一切之后,我们就开启一个http服务。

然后我们就在目标机上下载这个15285.c文件。

我们可以先切换到tmp目录下,然后下载。

Ok,下载完成,然后运行15285.c文件。

gcc 运行完之后,直接运行./getrootshell

Ok,拿到flag啦。root.txt就是我们想要的文件。

这时候的权限就是root权限啦。完成啦!!耗时四个小时的摸索,终于拿下啦!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值