黑客网站渗透入侵破解拿权限
10.4K subscribers
2.39K photos
108 links
Download Telegram
Pwn2Own Austin 2021 Cisco RV34x RCE漏洞分析

去年一整年Cisco RV34x系列曝出了一系列漏洞,在经历了多次修补之后,在年底的Pwn2Own Austin 2021上该系列路由器仍然被IoT Inspector Research Lab攻破了,具体来说是三个逻辑漏洞结合实现了RCE,本文将基于该团队发布的wp进行复现分析。

无条件RCE的实现是由三个漏洞一起构成的,包括:

任意文件上传漏洞;

任意文件移动漏洞;

认证后的命令注入漏洞。

通过前两个漏洞实现了有效session的伪造,利用伪造的session具备了访问认证后页面的能力,后续再利用认证后命令注入漏洞实现rce。

任意文件上传漏洞
认证前任意文件上传漏洞以及任意文件移动漏洞认证前的功能都是因为nginx的不正确配置所导致的,先来看任意文件上传漏洞。

nginx的主配置文件是/etc/nginx/nginx.conf,从它的内容当中可以看到对应的用户权限是www-data

任意文件移动漏洞
第二个漏洞存是任意文件移动漏洞,可以实现任意文件移动。漏洞的原理是nginx未做权限限制同时后端也没有对权限进行认证,导致权限绕过;后端在实现过程中没有对输入校验导致任意文件移动。

下面来对该漏洞进行详细的分析。

先是权限绕过漏洞分析,/etc/nginx/conf.d/web.upload.conf内容如下,可以看到nginx对/upload请求进行了session的验证(权限的判定),但它却没有对/form-file-upload请求进行权限校验,用户可以不需要任何权限直接请求/form-file-upload。

认证后命令执行漏洞
最后是一个认证后命令执行漏洞,漏洞存在于/usr/bin/update-clients中。

可以看到在update-clients中,参数$name可以实现注入。
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
DIE扫出来是一个flutter架构的apk,考虑用blutter来反编译
我之前在ubuntu上配置成功过,后来因为虚拟机坏了全删了。重新配置时kali、ubuntu
网络问题(要全局代理),缺少编译环境
cmake相关的报错就是缺少环境,一定要检查VS这个模块有没有安装
环境配置成功之后就快乐启动
得到输出,利用里面的文件可以恢复符号表,把addName的脚本跑一遍
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
避开所有坑快速复现这个漏洞
可浏览 0x01 漏洞环境搭建——>按照以下方式搭建一定能成功和 0x02 漏洞PoC构造——> 按照以下方式构造一定能成功



通过问题引导方式浏览
如果你也遇到了类似问题看这里

搭建环境总是失败

浏览 0x01 漏洞环境搭建——>坑1:此方法不要使用7.0.x的iso镜像,会有一个无解的BUG!

坑2:虚拟机网络适配器选择NAT模式无法保存主机名

手动修改上传数据包导致失败和使用macOS的tar打包会出问题

浏览 0x02 漏洞PoC构造——>坑2:为什么不能直接修改数据包?


然后配置SSO用户密码、root用户和密码,即可完成安装。 这里有个小坑:root用户名和密码不要很复杂,我这里用的root/root。
然后再继续即可导入成功,虚拟机会自动启动进行初始化。

接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
使用 Reaver 暴力破解 Archer C5 WPS PIN
首先,使用以下命令将 Wifi 适配器置于监控模式:

Airmon-ng 启动 wlan0

监控适配器的接口将是 wlan0mon。会收到一条关于可能造成麻烦的进程的消息,使用 kill 命令将其杀死。可以使用 airodump-ng 来定位接入点并检索 MAC 地址。使用以下命令启动 airodump-ng:

airodump-ng –i wlan0mon

MAC 地址出现在第一列,可以复制到剪贴板.

接下来将使用以下命令启动 Reaver:
reaver –I wlan0mon –b [路由器 MAC 地址]–c [通道]–vv

Reaver 攻击将开始测试一些常见的 PIN,然后从 0 开始,一直到第一个 WPS PIN 段的 9.999。TP Link 路由器对 WPS 尝试次数有速率限制。它会在几次尝试后锁定,需要手动解锁。

接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
在测试多种编程语言内置服务器上的请求流水线时,我们发现 PHP 的行为有些奇怪。深入研究后,我们发现 PHP 中存在一个安全漏洞,该漏洞可能会将 PHP 文件的源代码暴露为静态文件,而不是按预期执行。

经过进一步测试,我们发现该漏洞并不存在于最新的 PHP 版本中。我们对不同版本的 PHP 进行了进一步测试,以确定该漏洞何时修复以及修复原因。我们的调查使我们找到了修补后的 PHP 7.4.22 版本,通过比较未修补和修补后的代码,我们可以看到为修复漏洞所做的具体更改。

值得注意的是,虽然这个问题已经在 PHP 源代码中得到解决,但 Shodan 查询揭示了许多内置服务器的暴露实例。加入我们,我们将详细介绍我们的发现并分享我们通过分析学到的东西


接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
lag{thats_a_lot_of_app_installs} - CLONE_REPO 中的命令注入
实际上,我们可能不应该访问azure_pipelines.yml文件。但是我们有,所以让我们深入研究一下。我们知道我们之前查看的build_tool是由管道配置调用的,而CLONE_REPO步骤会有一些有趣的秘密。在下面的代码片段中,我们可以看到它们使用注入的令牌来克隆存储库,然后对路径进行一些验证,最后将结果移动到最终目录

通常在 Python 中,执行命令的推荐方式是提供一个参数列表,这样可以防止任何类型的 shell 转义或求值,例如

useless_cat_call = subprocess.Popen(["cat", “filename”, user_input], … text=True)

但是,在本例中,我们的脚本非常有用,它在第 74 行将用户控制的 root_dir 直接提供给mv命令。下一个合乎逻辑的步骤是调查 root_dir 是否可以控制。那么,root_dir 是什么?它是用户控制的吗?

回到 Cloudflare UI,构建配置允许我们修改构建的“根目录”。看起来很熟悉,对吧?事实证明,这确实是上面代码片段中引用的 root_dir,因此我们可以控制Azure DevOps 管道调用的部署脚本中mv命令的参数。因此,我们的下一步是看看我们是否可以做一些有用的事情,比如转储环境变量或运行命令,并看看我们是否在原始安全上下文之外运行这些命令
接 /网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke