2018年4月

知识星球

安全情报

  • 信息安全情报
  • 深网暗网情报
  • 前沿安全技术
  • 业务安全风控
  • 漏洞威胁感知
  • 数据泄露事件

微信扫描二维码加入知识星球:

TIM图片20180303232925.png

Dell Foglight for Virtualization利用

介绍

Dell Foglight for Virtualization是戴尔的一款企业级基础架构和虚拟化运营管理,简单来说就是基础架构性能监控工具。

登录认证&命令执行

Dell Foglight for Virtualization的默认用户名/密码为:foglight,在配置不当的情况下我们可以通过默认凭证登录Foglight的控制台

<IP_ADDRESS>:8080

2017_06_20_10_07_43_Parrot_VMware_Workstation.png

成功登录之后就可以利用Foglight集成的脚本控制台在主机上执行代码

打开如下选项卡

Homes -> Administration -> Investigate -> Data -> Script Console

Scripts选项卡下单击[+] Add按钮

示例:

"cmd.exe /c ".execute

或者使用PowerShell:

"powershell.exe -NoP -NonI -W Hidden -Enc".execute

可以直接交互Empire或者是Metasploit Web Delivery的Payload进行反弹等操作

跟Jenkins一样Foglight执行脚本命令也是使用Groovy Script,且Foglight也可以像Jenkins管理其他节点一样在其管理的设备上执行代码:

打开Homes -> Automation -> Workflow Management选项卡点击[+] New按钮

然后在Workflow Management中选择All ActionPacks -> Common -> Scripting

会出现如下几个选项

  • Run PowerShell Script
  • Send and Run Command(s)
  • Send and Run PowerShell script

worlflow.png

可以执行PowerShell命令,甚至可以创建恶意工作流程推送到所有管理的设备。

凭证

Foglight存储凭据管理在Dashboards-> Administration -> Credentials选项卡中,点击Manage Credentials按钮就可以查看存储的凭证。其中包含了加密凭证和加解密的密钥,如果能解密存储的凭证就可以进行更多横向操作。

参考

CVE-2018-1270 Remote Code Execution with spring-messaging

影响版本

  • Spring Framework 5.0 to 5.0.4
  • Spring Framework 4.3 to 4.3.14

漏洞分析

Spring Framework通过spring-messageing模块和STOMP代理对象通讯。根据漏洞描述可以知漏洞出现在spring-message模块 或者是 stomp-websockets模板块,下面逐一分析:

spring-websockets 模块

存在的敏感方法

@Nullable

public String[] decode(String content) throws IOException {
return (String[])this.objectMapper.readValue(content, String[].class);
}

反序列化使用的jackson组件,但是没有开启autotype功能,并且代码指定了反序列化类型为String[].class,利用jndi注入方式会导致异常,没有成功。

625fbd72201477f4d64f9b4a2e79a5a1.png

分析spring-message模块

DefaultSubscriptionRegistry类中方法addSubscriptionInternal存在expression = this.expressionParser.parseExpression(selector)(危险的SPEL表达式语句)。
根据上下文可以初步判定selector参数可以控制,但是了解SPEL注入的同学应该知道,要想达到代码执行,需要调用expression.getValue()或者expression.setValue()方法。继续寻找会发现该文件的154-164行调用了expression对象的getValue方法。

复现下漏洞的触发流程:

点击Connet按钮抓包

52b29eca6c5ea5429201c48c8ad96bee.png

修改请求报文,插入如下字段

\nselector:new java.lang.ProcessBuilder("/Applications/Calculator.app/Contents/MacOS/Calculator").start()

43ec3a11b117e9b86582d16d1922fc13.png

回到聊天窗口,发送任意消息即可触发恶意代码

c25b1fe4957ce9fcd465d867e1d010df.png

9d57f7cb1ad30ab1e747922601163798.png

586b85fa87889b1950535a76e5c25553.png

修复方案

  • 5.0.x users should upgrade to 5.0.5
  • 4.3.x users should upgrade to 4.3.15

漏洞二:xss vul in gs-messaging-stomp-websocket demo

2f1a64a5f7f2e688198fc8ffe5d805eb.png

Patch:https://github.com/spring-guides/gs-messaging-stomp-websocket/commit/6d68143e04ea1482b724c3f620688ec428089bc0

From:https://pivotal.io/security/cve-2018-1270