Password Manager Pro 漏洞调试环境搭建

发布于 2025-01-30 20:47:23 字数 8656 浏览 10 评论 0

0x00 前言

本文记录从零开始搭建 Password Manager Pro 漏洞调试环境的细节。

0x01 简介

本文将要介绍以下内容:

  • Password Manager Pro 安装
  • Password Manager Pro 漏洞调试环境配置
  • 数据库连接

0x02 Password Manager Pro 安装

1.下载

最新版默认可免费试用 30 天,旧版本在使用时需要合法的 License

注:我在测试过程中,得出的结论是如果缺少合法的 License,旧版本在使用时只能启动一次,第二次启动时会提示没有合法的 License

2.安装

系统要求: https://www.manageengine.com/products/passwordmanagerpro/system-requirements.html

对于 Windows 系统,需要 Win7 以上的系统,Win7 不支持

默认安装路径: C:\Program Files\ManageEngine\PMP

3.测试

安装成功后选择 Start PMP Service,访问 https://localhost:7272

  • 默认登录用户名: admin
  • 默认登录口令: admin

如下图

Alt text

0x03 Password Manager Pro 漏洞调试环境配置

本文以 Windows 环境为例

1.Password Manager Pro 设置

查看服务启动后相关的进程,如下图

Alt text

java 进程的启动参数:

"..\jre\bin\java" -Dcatalina.home=.. -Dserver.home=.. -Dserver.stats=1000 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=../conf/logging.properties -Djava.util.logging.config.class=com.adventnet.logging.LoggingScanner -Dlog.dir=.. -Ddb.home=../pgsql -Ddatabaseparams.file=./../conf/database_params.conf -Dstart.webclient=false -Dgen.db.password=true -Dsplashscreen.progress.color=7515939 -Dsplashscreen.fontforeground.color=7515939 -Dsplashscreen.fontbackground.color=-1 -Dsplash.filename=../images/passtrix_splash.png -Dsplashscreen.font.color=black -Djava.io.tmpdir=../logs -DcontextDIR=PassTrix -Dcli.debug=false -DADUserNameSyntax=domain.backslash.username -Duser.home=../logs/ -Dnet.phonefactor.pfsdk.debug=false -server -Dfile.encoding=UTF8 -Duser.language=en -Xms50m -Xmx512m -Djava.library.path="../lib/native" -classpath "../lib/wrapper.jar;../lib/tomcat/tomcat-juli.jar;run.jar;../tools.jar;../lib/AdventNetNPrevalent.jar;../lib/;../lib/AdventNetUpdateManagerInstaller.jar;../lib/conf.jar" -Dwrapper.key="7ofvurNLTVkDioN9w9Efmug_bEFaMg-M" -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=2744 -Dwrapper.version="3.5.25-pro" -Dwrapper.native_library="wrapper" -Dwrapper.arch="x86" -Dwrapper.service="TRUE" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=1 -Dwrapper.lang.domain=wrapper -Dwrapper.lang.folder=../lang org.tanukisoftware.wrapper.WrapperSimpleApp com.adventnet.mfw.Starter

java 进程的父进程为 wrapper.exe,启动参数:

"C:\Program Files\ManageEngine\PMP\bin\wrapper.exe" -s "C:\Program Files\ManageEngine\PMP\conf\wrapper.conf"

查看文件 C:\Program Files\ManageEngine\PAM360\conf\wrapper.conf ,找到启用调试功能的位置:

#uncomment the following to enable JPDA debugging
#wrapper.java.additional.27=-Xdebug
#wrapper.java.additional.28=-Xnoagent
#wrapper.java.additional.29=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

取消注释后,内容如下:

wrapper.java.additional.27=-Xdebug
wrapper.java.additional.28=-Xnoagent
wrapper.java.additional.29=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

注:

Address 的配置不需要设置为 address=*:8787 ,会提示 ERROR: transport error 202: gethostbyname: unknown host ,设置 address=8787 就能够支持远程调试的功能

重启服务,再次查看 java 进程的参数: wmic process where name="java.exe" get commandline

配置修改成功,如下图

Alt text

2.常用 jar 包位置

路径: C:\Program Files\ManageEngine\PMP\lib

web 功能的实现文件为 AdventNetPassTrix.jar

3.IDEA 设置

远程调试设置如下图

Alt text

远程调试成功,如下图

Alt text

0x04 数据库连接

默认配置下,Password Manager Pro 使用 postgresql 存储数据,配置文件路径: C:\Program Files\ManageEngine\PMP\conf\database_params.conf

内容示例:

# $Id$
# driver name
drivername=org.postgresql.Driver

# login username for database if any
username=pmpuser

# password for the db can be specified here
password=fCYxcAlHx+u/J+aWJFgCJ3vz+U69Uj4i/9U=
# url is of the form jdbc:subprotocol:DataSourceName for eg.jdbc:odbc:WebNmsDB
url=jdbc:postgresql://localhost:2345/PassTrix?ssl=require

# Minumum Connection pool size
minsize=1

# Maximum Connection pool size
maxsize=20

# transaction Isolation level
#values are Constanst defined in java.sql.connection type supported TRANSACTION_NONE    0
#Allowed values are TRANSACTION_READ_COMMITTED , TRANSACTION_READ_UNCOMMITTED ,TRANSACTION_REPEATABLE_READ , TRANSACTION_SERIALIZABLE
transaction_isolation=TRANSACTION_READ_COMMITTED
exceptionsorterclassname=com.adventnet.db.adapter.postgres.PostgresExceptionSorter

# check is the database password encrypted or not
db.password.encrypted=true
new_superuser_pass=dnKkx6zgLPOsNhc7IpO/XwBo1ZSdrZ7QoNQ=

1.口令破解

数据库连接的口令被加密,加解密算法位于 C:\Program Files\ManageEngine\PMP\lib\AdventNetPassTrix.jar 中的 com.adventnet.passtrix.ed.PMPEncryptDecryptImpl.class

密钥固定保存在 com.adventnet.passtrix.db.PMPDBPasswordGenerator.class ,内容为 @dv3n7n3tP@55Tri*

我们可以根据 PMPEncryptDecryptImpl.class 中的内容快速编写一个解密程序

解密程序可参考: https://www.shielder.com/blog/2022/09/how-to-decrypt-manage-engine-pmp-passwords-for-fun-and-domain-admin-a-red-teaming-tale/

注:

文章 中涉及数据库口令的解密没有问题,Master Key 的解密存在 Bug,解决方法将在后面的文章介绍

解密获得连接口令为 Eq5XZiQpHv

2.数据库连接

根据配置文件拼接数据库连接的命令

(1) 失败的命令

"C:\Program Files\ManageEngine\PMP\pgsql\bin\psql" "host=localhost port=2345 dbname=PassTrix user=pmpuser password=Eq5XZiQpHv"

连接失败,提示: psql: FATAL: no pg_hba.conf entry for host "::1", user "pmpuser", database "PassTrix", SSL on

(2) 成功的命令

将 localhost 替换为 127.0.0.1,连接成功,完整的命令为:

"C:\Program Files\ManageEngine\PMP\pgsql\bin\psql" "host=127.0.0.1 port=2345 dbname=PassTrix user=pmpuser password=Eq5XZiQpHv"

(3) 一条命令实现连接数据库并执行数据库操作

格式为 psql --command="SELECT * FROM table;" postgresql://<user>:<password>@<host>:<port>/<db>

示例命令:

"C:\Program Files\ManageEngine\PMP\pgsql\bin\psql"  --command="select * from DBCredentialsAudit;" postgresql://pmpuser:Eq5XZiQpHv@127.0.0.1:2345/PassTrix

输出如下:

 username |                                                                         password                                                                         |   last_modified_time-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------- postgres | \xc30c0409010246e50cc723070408d23b0187325463ff95c0ff5c8f9013e7a37f424b5e0d1f2c11ce97c7184e112cd81536ac90937f99838124dee88239d9444ba8aff26f1a9ff29f22f4b5 | 2022-09-01 11:11:11.111
(1 row)

发现 password 的数据内容被加密

0x05 小结

在我们搭建好 Password Manager Pro 漏洞调试环境后,接下来就可以着手对漏洞进行学习。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

你的往事

暂无简介

文章
评论
28 人气
更多

推荐作者

夢野间

文章 0 评论 0

百度③文鱼

文章 0 评论 0

小草泠泠

文章 0 评论 0

zhuwenyan

文章 0 评论 0

weirdo

文章 0 评论 0

坚持沉默

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文