Breach1.0靶场练习

发布于 2021-10-26  760 次阅读 本文共3428个字


(本文最后更新于2021.10.26 22:02)

一:简述

  1. 运行环境:kali linux && 靶机VMware-Breach1.0靶场
  2. 目标:从启动虚机到获取目标操作系统的root权限和查看flag
  3. 靶机Breach1.0下载链接:https://download.vulnhub.com/breach/Breach-1.0.zip

二:靶机说明

Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战。

VM虚机配置有静态IP地址 192.168.110.140,建议设置为NAT模式

三:实施

1:安装靶机

靶机需在VM里面安装,网卡设置为NAT,方便连接kali,因为内置了静态ip 192.168.110.140,所以需主动设置kali和其在同一网段。

我这里是都选择NAT模式(VM-8)。

设置同一网段:

在VM的左上方选择 编辑->虚拟网络编辑器

选择VM-8,点击更改设置

将子网IP修改为192.168.110.0/24网段,然后点击DHCP配置:

修改为下图即可:

然后启动靶机和kali

2:开始渗透

Kali连接靶场后用arp扫描ip:

arp-scan -l

分析得知是192.168.110.140

先用masscan快速扫描开放的端口:

masscan --rate=100000 -p 1-65535 192.168.110.140

发现全部端口都开放了,应该是有IDS防御

先测试80端口: 浏览器访问:192.168.110.140

F12检测:

发现一个加密的数字,猜测是Base64加密,用工具一直解密:

发现类似用户名密码的字符串:

pgibbons:damnitfeel$goodtobeagang$ta

点击中心图片进入这个界面:

发现是基于impress cms框架的,可以进入https://www.exploit-db.com/ 搜索impress cms的漏洞,这里没有进行搜索

输入刚刚解密出来的用户名密码进入主页:

发现有3封邮件

第1封邮件,主要内容:让你的团队只能向管理门户发布任何敏感的内容。我的密码非常安全,发自ImpressCMS Admin Bill,如下:

第2封邮件,主要内容:Michael采购了IDS/IPS。

第3封邮件,主要内容:有一个peter的SSL证书被保存在192.168.110.140/.keystore

输入提示的ssl链接:192.168.110.140/.keystore 发现是一个文件,进行下载

下载完毕后点击View Account菜单进入界面,再依次点击页面的Content,会弹出一行链接Content SSL implementation test capture,点击链接

发现提示是红队攻击的复制文件,并且给了一个链接,还提示了用户名密码是tomcat,这里也暗示了后台可能为tomcat

进入提示的链接:

发现是一个.pcap文件,下载下来

打开查看:发现不能读取文件,SSL对文件进行了加密

由此推测:

a.这是一个流量包文件,不能读取很可能因为某些流量有SSL加密(前面的邮件中提供了一个keystore,这里提供了密码;

b.系统中可能存在tomcat。

对keystore进行解密:

从密钥库导出.p12证书:

现在一共有这两个文件:

将.p12证书导入wireshark
在Wireshark中打开_SSL_test_phase1.pcap流量包文件,选择菜单:编辑–首选项–Protocols–SSL,点击右边的Edit

//最新版wireshark已经 把ssl 改为 tls,其实ssl/tls都已统称通信加密协议,所以就放一块了:

其中8443是tomcat打开SSL的文本服务的默认端口,默认配置文件里用的端口就是8443。
默认的https端口号是443,因此tomcat为了区别使用了8443这个端口。 输入后我们就看到了加密后的http流量

发现了大量攻击者(192.168.110.129)对192.168.110.140的流量包
追踪http流,发现攻击者(192.168.110.129)对192.168.110.140/_M@nag3Me/html的访问

尝试访问:

发现无法连接

开启BP代理:我这里使用的是火狐插件FoxyProxy 标准版

发现需要输入用户名和密码

回头继续看其它的http流量,发现其中暴露了一个basic认证过程

采用http basic认证,认证数据包为:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC

并且wireshark已经进行解密了

如果没有解密:

得到后台登录用户名:tomcat,密码:Tt\5D8F(#!*u=G)4m7zB
在kali里面登录tomcat后台:

发现是果然是tomcat的后台,应该有部署模块:

我们上传一个反弹shell(为什么不上传一句话?因为测试过,上传上去很快就被杀掉了,应该有检测手段):

这里先生成一个反弹shell,使用kali里面的msfconsole模块:

这里的.128是kali的ip,输入exploit启动

这里就等待上钩了,

我们去靶机的网站上传刚刚生成的反弹shell,在哪打开的shell控制台就在哪生成,我是桌面所以就生成在桌面:

我们去访问https://192.168.110.140:8443/shell

让他执行我们的shell

这里就成功了

生成shell环境和带交互式界面的shell环境,输入 :

shell

python -c 'import pty;pty.spawn("/bin/bash")'

第一步当然要查看下系统用户文件,毕竟最终是获得root权限:

cat /etc/passwd

发现两个1000以后的用户(普通用户),并且可以登录系统

我们继续查看网站路径下的内容:

发现一个奇怪的5446文件,查看一下:

发现了数据库的用户名root 且密码为空

尝试登录:

查看mysql数据库 show tables;

发现用户user表,查看下表结构:

搜索我们需要的用户名密码:

select User,Password from user;

发现了系统用户milton的密码,只不过是加密的

尝试md5解密:

切换为这个解密出来的用户登录Breach靶场:

查看隐藏文件 ls -la

发现一个.bash_history 历史记录文件

查看一下:

发现有切换操作

这里应该需要blumbergh的密码

到目前为止发现有6张图片,并且milton家目录下有一张(到这一步我也很迷,这也扯得太远了)

通过观察文件路径推测有个/images 存放图片文件的路径

尝试从图片中收集可能的信息,使用strings打印各图片其中的可打印字符,保存在文件中

这里面应该有用户blumbergh的密码,尝试用hydra暴力破解密码,字典就是刚刚生成的images.txt

但是发现目标主机没有开22端口

尝试用milton用户开启:

但是没有权限(最后用root开发现也不行,原来是没有装sshd,我是SB)

网上得知,密码是(我是真的不知道如何在几千行像密码的文件中找到真的那一个):

切换为用户blumbergh:

进行相同操作,发现也有个历史文件:

发现他查看了一个脚本,查看这个脚本文件:

这段脚本的意思是切换到/var/lib/tomcat6/webapps目录下,然后寻找swingline目录下的文件,并清除。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数(最后查看crontab任务计划可以得知,会每3分钟执行一次这个清除脚本,所以以前上传的一句话会被删除)

查看blumbergh能够使用的sudo命令:

发现可以通过sudo执行root权限的tee命令和tidyuo脚本

(tee命令 用于读取标准输入的数据,并将其内容输出成文件。)

查看tidyuo.sh的权限:

发现是root的文件,并且只能由root写入

tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么就可以用tee命令重写tidyup.sh,变成连接我们反弹shell的脚本文件:

先将反弹shell命令写入shell.txt文件(nc反弹命令)

kali提前开始监听5555端口

用nc命令在靶机上生成一个反弹shell

用tee命令去重写那个清除脚本,变成我们的反弹脚本:

等待反弹(会多等一下):

反弹成功,查看id 发现是root,拿到了root权限(个人理解是用可以以root身份执行的命令去执行一个脚本文件时经过反弹shell会得到一个root权限的shell)

实验到此结束


粉色的花瓣,美丽地缠绕在身上。依在风里。