跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

VMware Workspace ONE Access漏洞调试环境搭建


Anonymous

推荐的帖子

0x00 前言

本文记录从零开始搭建VMware Workspace ONE Access漏洞调试环境的细节。

0x01 简介

本文将要介绍以下内容:

VMware Workspace ONE Access安装

VMware Workspace ONE Access漏洞调试环境配置

常用知识

0x02 VMware Workspace ONE Access安装

参考资料:

https://份文件。VMware。com/en/VMware-Workspace-ONE-Access/20.01/Workspace _ ONE _ Access _ install。可移植文档格式文件的扩展名(portable document format的缩写)

1.下载OVA文件

下载页面:

https://customerconnect.vmware.com/downloads/search?查询=工作空间一次访问

下载前需要先注册用户,之后选择需要的版本进行下载

VMware Workspace ONE访问21.08.0.1的下载页面:https://customerconnect.vmware.com/downloads/details?下载group=WS1A _ on prem _ 210801产品id=1269

下载文件身份管理器-21.08.0.1-19010796_OVF10.ova

2.安装

(1)在VMware Workstation中导入OVA文件

注:

VMware工作站版本需要大于14,否则报错提示无法导入

在安装页面设置主机名,如果配置了DHCP,其他选项不用设置,我的配置指定了静态IP,配置如下图

2-1.png

等待卵细胞(卵子的复数)文件导入完成后,将会自动开机进行初始化,初始化完成后如下图

2-2.png

(2)配置

修改本机的主机文件,将192.168.1.11指向workspaceone.test.com

访问配置页面https://workspaceone.test.com:8443

设置管理员、超级用户和sshuser用户的口令,口令需要包含大写字母、小写字母、数字和特殊字符

注:

我的测试结果显示,口令长度需要设置为14,否则无法登陆根和sshuser用户

我的测试环境设置口令为密码@12345,如下图

2-3.png

设置数据库,为了便于环境搭建,这里选择内部数据库

等待安装完成,如下图

2-4.png

3.设置允许root用户远程登录ssh

需要登录VMware Workspace ONE Access,修改系统的配置文件,有以下两种登录方法:

(1)在虚拟机中直接登录root用户

选择登录,输入根和口令密码@12345

(2)通过ssh登录sshuser用户

登录后再切换至根

切换至根用户后,依次执行以下命令:

vi /etc/ssh/sshd_config

设置PermitRootLogin从不变为是

系统ctl重新启动sshd

4.开启远程调试功能

修改文件:/opt/VMware/horizon/workspace/bin/setenv。嘘

修改参数JVM_OPTS,添加参数:-agent lib:jdwp=transport=dt _ socket,server=y,suspend=n,address=8000

如下图

2-5.png

重新启动系统

打开防火墙:iptables -P输入接受iptables -P输出接受

想法设置远程调试参数,如下图

2-6.png

注:

想法的完整配置方法可参考之前的文章《Zimbra漏洞调试环境搭建》

0x03 常用知识

1.常用命令

查看系统服务状态:chkconfig - list

查看所有服务状态:系统控制状态

查看互联网协议(互联网协议)地址:ip地址显示

查看主机名:主机名

日志路径:/opt/VMware/horizon/workspace/logs/

2.查看系统版本

需要根权限执行命令:瓦米克利版本-设备

查看系统版本的实现细节:

#!/usr/bin/env python2

导入系统

sys。路径。append('/opt/VMware/lib/python/site-packages/')

导入pywbem

def getCIMConnection (url,命名空间):

cred={}

cred['证书文件']='/opt/VMware/etc/sfcb/client。' PEM '

cred[' key _ file ']='/opt/VMware/etc/sfcb/file。' PEM '

cliconn=pywbem .WBEMConnection (url,无,命名空间,凭据)

返回控制台

def showVersion():

尝试:

CLI conn=getCIMConnection(' https://localhost:5489 ',' root/cimv2 ')

esis=cliconn .枚举实例(' VAMI _元素软件身份)

除了:

打印("错误")

返回

对于esis中的esi:

ess=ESI[' ElementSoftwareStatus ']

if (ess==[2,6]):

inst=cliconn .GetInstance (esi['Antecedent'])

打印('版本-'本['版本字符串'])

打印('描述-'本['描述'])

showVersion()

需要根权限是因为访问文件/opt/VMware/etc/sfcb/client。PrivacyEnhancedMail增强的私密电子邮件和/opt/vmware/etc/sfcb/file.pem需要根权限

3.数据库连接口令

连接数据库的明文口令位置为:/usr/local/horizon/conf/db.pwd

连接数据库的口令加密保存在文件/usr/local/horizon/conf/runtime-config。性能中,文件内容示例:

数据存储。JDBC。URL=JDBC:PostgreSQL://localhost/SaaS?stringtype=未指定

datastore.jdbc。用户名=地平线

安全。数据存储。JDBC。密码=baa cs 8 MW 1 xy me 7/8上D2 qwtg 3 MW 37 wf 1/1 pq 6d 09 xxqf 56 ncfrtcun 6y 8 a1 xftjajhu 60v 1 qnyncoxk 3t 1m 0 dv 0 jva==

其中,baa cs 8 MW 1 xyme 7/8 ond 2 qwtg 3 MW 37 wf 1/1 pq 6d 09 xxqf 56 ncfrtcun 6y 8 a 1 xftjajhu 60v 1 qnyncoxk 3t 1m 0 dv 0 jva==为加密口令

需要以下文件作为解密密钥:

/usr/local/horizon/conf/config密钥库。及格

/usr/local/horizon/conf/config密钥库。bcfks

4.数据库中的加密信息

管理用户的口令加密存储在数据库中

查询命令:saas=从"密码信息"中选择"密码验证数据";

查询结果如下图

2-7.png

加密的主要实现代码1:

私有字符串AES _ encrypt(@非空字节[]清除数据,@非空字节[]键,@非空加密算法封装)抛出EncryptionServiceException {

先决条件。checknotnull(清除数据);

先决条件。checknotnull(key);

前提条件。checknotnull(encAlg);

预测词典。检查参数(清除数据。长度!=0);

尝试{

字符串密码name=en calg。获取密码名();

密码密码=密码。getinstance(密码名,提供者);

int nonce size=encalg。getnonce大小(密码。get block size());

IvParameterSpec ivSpec=null

字符串encodedIv

if (nonceSize 0) {

字节[] iv=新字节[随机数大小];

srand。next bytes(iv);

iv spec=new IvParameterSpec(iv);

encodedIv=新字符串(十六进制编码(四),标准字符集.US _ ASCII);

}否则{

编码div=

}

if (encAlg.forcePadding()) {

清除数据=数组实用程序。add(清除数据,(字节)1);

}

secret key secret=new secret key spec(密钥,密码名);

cipher.init(1,secret,ivSpec,srand);

byte[]data=密码。做final(清除数据);

字符串输出=整数。tostring(4)':' encode div ':'新字符串(十六进制。编码(数据),标准字符集.US _ ASCII);

返回输出;

} catch(InvalidKeyException | BadPaddingException | IllegalBlockSizeException | InvalidAlgorithmParameterException | nosuchpaddingeexception | nosuchalgorithm exception | FipsUnapprovedOperationError var 12){

log.error('无法用俄歇电子能谱加密:' var 12。getmessage());

抛出新的EncryptionServiceException(var 12);

}

}

加密的主要实现代码2:

字符串加密数据=整数。tostring(1)',' encKey.getSafeUuid().toString()',' this .AES_encrypt(clearData,aesKey,en calg);

5.8443端口登录口令

登录口令加密保存在文件/usr/local/horizon/conf/config-admin。JSON

加密的主要实现代码:

私有空设置密码(字符串新密码,布尔isSet)引发AdminAuthException {

int IC=this。passwordtauthenticationutil。getic(iterationCountBase,iteration count range);

尝试{

string newEncryptedPassword=this。密码验证实用程序。创建pwinfo(' admin ',' admin ',ic,新密码);

password info new password info=新密码信息(newEncryptedPassword,isSet);

if (this.passwordInfo!=null) {

newpasswordinfo。setattemptdelay(这个。密码信息。getattemptdelay());

新密码信息。setmaxpathtcount(this。密码信息。getmaxpathtcount());

}

对象映射器。写值(这个。passwordinfofile,newPasswordInfo);

} catch(io异常| EncryptionServiceException var 7){

抛出新的AdminAuthException('设置密码失败var7.getMessage(),var 7);

}

尝试{

这个。loadencryptedpasswordfromfile();

} catch (IOException var6) {

抛出新的AdminAuthException('未能加载存储的密码var6.getMessage(),var 6);

}

}

0x04 小结

我们设置好VMware Workspace ONE Access的漏洞调试环境后,就可以开始学习漏洞和数据库密码的解密方法了。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...