首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

渗透测试-VulnHub–CTF FristiLeaks v1.3

VulnHub – FristiLeaks v1.3

环境下载https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova.torrenthttps://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova运行环境Virtualbox (二选一)Vnware Workstation player通关提示fristi设置

首先,我们在开始之前,我们按照作者的要求设置虚拟机的MAC地址 08:00:27:A5:A6:76

然后开启VM

主机发现

Netdiscover –r 10.10.10.0/24 or Nmap c段

可以发现目标主机在10.10.10.132的位置

服务发现

nmap -sS -Pn -T4 -p- 10.10.10.132

可以看到打开了80端口,service为HTTP

枚举80端口

既然只有一个端口,那就扫描再具体扫描80端口:

nmap -A -O -p80 10.10.10.132

我们看到以下具体信息:Apache httpd 2.2.15 ((CentOS) DAV/2 PHP/5.3.3)http-robots.txt: 3 disallowed entries

现在我们浏览web服务

现在我们需要验证robots.txt是否存在,在很多情况下,nmap是很准确的

现在,如果根据条目能顺利进入系统,那就太容易了,肯定不会那么容易的。

意料之中,上面三个条目都只能进入这个画面所以这三个已经没有什么用了,我们现在来跑一下目录;

dirbhttp://10.10.10.132

没什么特别的发现,只有几张照片;

不过这个keep-calm 似乎是一个提示,因为他说KEEP CALM AND DRINK FRISTI试试http://10.10.10.132/fristi/

很好,真的有一个登录口!但是这个登录界面有一个很差的设定,两个输入框都有自动完成的功能。(包括密码)

我们再次运行 目录枚举:

dirb http://10.10.10.132/fristi/

发现了index页面 不过...

好像是个死胡同。

不过永远不要只事物看到表面,我们一定要看看代码!

看到一有一条信息,这是一个叫eezeepz的人留下来的。

那么那就有这种可能:他也许用eezeepz当做他的用户名或者密码。

再向下看。我们看到了一大块用base64编码的段落

这里我使用nano 使它变成单行,方便命令行编码

base64 -d /tmp/encoded.txt

这是一个PNG格式的图画,保存为PNG

base64 -d /tmp/encoded.txt > decoded.png

然后可以用任意工具查看,这里用feh

看起来像是个密码!赶紧试试username:eezeepzpassword:keKkeKKeKKeKkEkkEk

这时候 不用多说 上传sell

Sell 可以在这里下载http://pentestmonkey.net/tools/web-shells/php-reverse-shell

cp /usr/share/webshells/php/php-reverse-shell.php reverse-shell.php

vi reverse-shell.php

做一些必要的修改,ip地址和监听端口。

现在设置 netcat 监听 建立连接:

nc -nlvp 8888

看来只有png, jpg, gif 能上传

修改一下后缀加上.jpg

上传成功!

现在打开上传的sell

现在已经得到了一个低端权限

权限提升

看一下目录,看看有什么可以挖掘的东西,个人对HOME比较感兴趣,进去试试

居然马上看到关键人物eezeepz!继续向前看

文件很多 挑特别的看,notes.txt比较显眼,打开试试。

我们得到了提示,照着做就行了!在/tmp下创建一个"runtis"文件

赋予权限

现在我们可以阅读 /home/admin 下的内容了

有几个文件。依次看一下cryptpass.py

看样子应该是用了py文件去加密的。我们重写一下文件:

解密试试

分别得到1.mVGZ3O3omkJLmy2pcuTq :thisisalsopw1232.=RFn0AKnlMHMPIzpyuTI0ITG :LetThereBeFristi!这有可能是用户fristgod 的密码我们换一下用户试试!

失败了....查了一下网上是这样解释的:跟 su 命令的实现有关; B环境上su的实现应该是判断标准输入是不是tty ; 而A环境上su的实现则允许从其他文件读取密码。方法如下:

Python -c 'import pty;pty.spawn("/bin/sh")'

接下来就可以正常使用了。

现在我们已经成功进入fristigod账户Ls试试:

没有东西...-la试试

原来都藏起来了。。到.secret_admin_stuff看看

继续 ls -la 查看具体信息

发现这个是个root的文件权限应该是不够的

我们能回去看看history有没有一些线索

可以看到 “fristigod”用户一直sudo来执行命令

试试

让输入密码,上面我们得到了两个密码

呃。。。再试试成功了...居然是一个密码....好吧。

现在我们能用id 那么应该也可以创建一个sell

sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

成功了。直接去看/root下的文件得到flag

本次CTF演示结束。 红日安全成员 -- 阿八

文章推荐

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180205G0VLNA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券