【技术原创】ADAudit Plus利用分析——数据加密分析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【技术原创】ADAudit Plus利用分析——数据加密分析

3gstudent 技术 2023-08-18 12:00:00
39380
收藏

导语:本文分析了ADAudit Plus数据加密的算法,区分域用户,编写实现代码,后续根据算法可以用来对用户口令进行暴破。

0x00 前言

在上篇文章《ADAudit Plus漏洞调试环境搭建》介绍了漏洞调试环境的搭建细节,经测试发现数据库的部分数据做了加密,本文将要介绍数据加密的相关算法。

0x01 简介

本文将要介绍以下内容:

数据加密的位置

算法分析

算法实现

0x02 数据加密的位置

测试环境同《ADAudit Plus漏洞调试环境搭建》保持一致

数据库连接的完整命令:"C:\Program Files\ManageEngine\ADAudit Plus\pgsql\bin\psql" "host=127.0.0.1 port=33307 dbname=adap user=postgres password=Stonebraker"

查询加密口令的命令示例:SELECT * FROM public.aaapassword ORDER BY password_id ASC;

返回结果示例:

1.png经测试,对应Web管理页面的位置为Admin->Technicians,如下图

2.png

点击Add technicians可以添加用户,这里可以选择添加自定义用户或者域用户

添加自定义用户需要输入口令,如下图

3.png添加域用户不需要输入域用户的口令,如下图

4.png

0x03 算法分析

1.加密算法细节

经分析,加密算法细节位于C:\Program Files\ManageEngine\ADAudit Plus\lib\AdvAuthentication.jar中的com.adventnet.authentication.util->AuthUtil.class

添加用户的实现代码:

5.png6.png7.png8.png9.png10.png11.png得到加密生成Password的代码:

12.png生成salt的代码:

13.png经动态调试,发现workload默认为12,生成的salt格式示例:$2a$12$DVT1iwOoi3YwkHO6L6QSoe,如下图

14.png具体加密算法getEncryptedPassword()的实现细节:

15.png16.png

在此处下断点,经动态调试得出以下结论:

如果是域用户,会使用默认口令admin作为明文,随机生成salt,算法使用bcrypt,通过固定算法计算得出密文,密文前29字节对应加密使用的salt

如果不是域用户,会使用用户口令作为明文去计算,例如默认用户admin,会使用实际的口令作为明文去加密得到密文

也就是说,在查询表public.aaapassword时,我们只需要取出password项前29字节作为加密使用的salt,不需要关注表public.aaapassword中的salt项

2.区分是否为域用户

查询命令示例:SELECT * FROM public.aaalogin ORDER BY login_id ASC;

返回结果示例:

17.png

其中,domainname为ADAuditPlus Authentication代表自定义添加的用户

这里使用inner join查询自动筛选出非域用户和对应的hash,命令示例:SELECT aaalogin.login_id,aaalogin.name,aaalogin.domainname,aaapassword.password FROM public.aaalogin as aaalogin INNER JOIN public.aaapassword AS aaapassword on aaalogin.login_id=aaapassword.password_id WHERE aaalogin.domainname = 'ADAuditPlus Authentication';

返回结果示例:

18.png

0x04 算法实现

测试参数如下:

已知明文为123456

查询数据库得到的password项为$2a$12$1hKeH4aM2LY4BvYpKT9Z5.p9cD453FjBAPYjp0ek94n936WRRAYme

从中可知salt为password项的前29字节,即$2a$12$1hKeH4aM2LY4BvYpKT9Z5.

计算密文的测试代码如下:

19.png20.png

计算结果为$2a$12$1hKeH4aM2LY4BvYpKT9Z5.p9cD453FjBAPYjp0ek94n936WRRAYme,同数据库得到的password项一致

综上,根据以上算法可以用来对用户口令进行暴破

0x05 小结

本文分析了ADAudit Plus数据加密的算法,区分域用户,编写实现代码,后续根据算法可以用来对用户口令进行暴破。

本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务