vulnyx Basic writeup

信息收集

arp-scan

nmap

方法一:

直接获取root shell

这里80端口上没什么特别的东西,注意到目标开启了631端口,这上面运行的是 cups 服务,即 linux打印服务,搜一下关于这个服务的漏洞利用,就可以得到如下的漏洞利用链:

CVE-2024-47076

CVE-2024-47175

CVE-2024-47176

CVE-2024-47177

通过上述CVE结合就可以利用cups服务实现RCE。这里需要说明一下,从vulnyx上可以看到这个Basic靶机的发行时间是2023年10月26号,而我们用到的CVE是2024年才披露的,所以对于这个靶机来说这是一个非预期的路径。

这里的话我会展示如何利用 Unix CUPS 远程代码执行漏洞,具体的漏洞通告、漏洞详情和利用工具的项目地址链接我会放在末尾,有兴趣的师傅可以去参考一下。

我们直接通过http访问目标靶机的631端口:

漏洞发生的点在Printers页面

利用流程是我们先通过特定的扫描工具来确认该cups服务是否易受攻击,之后通过特定的exp python脚本可以在这个Printers页面添加一个恶意打印机,当我们使用这个恶意打印机打印测试页的时候就会执行我们嵌入的恶意的系统命令。

检测目标是否易受攻击:

这就说明目标是易受攻击的,然后上面的那个callback的端口号是可以任意填的。之后就可以通过exp脚本来添加打印机并注入恶意系统命令了:

等待一会,然后我们刷新web页面

 

可以看到恶意打印机就添加上去了,然后在kali上开好监听,之后按照以下步骤就可以执行注入的恶意系统命令:

点击恶意打印机,进入详情页面后按图上显示打印测试页

shell就反弹过来了,sudo发现没有这个命令,那就看一下suid权限

可以看到有一个env命令,那么就可以通过以下命令直接提权到root:

env /bin/bash -p

然后提权到root后这个反弹shell在一段时间后会断掉,所以提到root后我们的首要任务是驻留shell,这里我选择的是在/var/www/html里写一个webshell,这里我已经写入了:

同样的将它反弹回来

然后同样的利用env直接提权到root

然后分别到用户家目录和/root下就可以获得userflag和rootflag了

userflag:f17d2f67c468d15600d8fc0b2ebc1d8c

rootflag:551df067bd06f13f1c092743493de034

方法二:

其实看/etc/passwd你会看到一个用户

而在那个打印机页面:

所以这个靶机的预期解就是在Printer页面会暴露一个dimitri的用户名,然后通过ssh爆破可以拿到这个用户的密码:mememe,字典用rockyou即可。之后的提权路径就是相同的了,都是通过env命令来提权。

参考链接

【安全通告】Unix CUPS 远程代码执行漏洞风险通告(CVE-2024-47076, CVE-2024-47175, CVE-2024-47176, CVE-2024-47177) (tencent.com)

Attacking UNIX Systems via CUPS, Part I (evilsocket.net)(漏洞详情)

MalwareTech/CVE-2024-47176-Scanner: A simple scanner for identifying vulnerable cups-browsed instances on your network (github.com)

IppSec/evil-cups (github.com)(exp)

posted @ 2025-06-25 11:22  sky2dawn  阅读(40)  评论(0)    收藏  举报  来源