对 APT34 泄露工具的分析——Jason

发布于 2024-11-24 09:14:27 字数 5209 浏览 12 评论 0

0x00 前言

Jason 是由 Lab Dookhtegan 在 2019 年 6 月 3 日泄露的另一款工具,用于 Exchange 账户的暴力破解

然而,泄露的这款工具虽然包括源码,但存在一些 bug,无法正常使用

本文不会分析 Jason 和 APT34 之间的关联,仅在技术研究的角度,修复 Jason 的 bug,恢复 Jason 的功能,分析使用的技术,同其他开源工具做横向比较

0x01 简介

本文将要介绍以下内容:

  • Jason 的开源资料
  • 修复 Jason 的 bug
  • 实际测试 Jason
  • 同其他开源工具的横向比较

0x02 Jason 的开源资料

Jason 最早泄露于 Telegram 的频道: https://t.me/lab_dookhtegana

p3pperp0tts 将其上传至 Github,地址如下:https://github.com/p3pperp0tts/APT34/tree/master/Jason

文件夹 decompiled_code 内为 Jason 的源码

Jason 采用 EWS Managed API 来实现对 Exchange 资源的访问

经过简单的修复,我在 VS2015 下能够编译成功,但在测试环境中,Jason 无法识别正确的邮箱用户名和口令,所有测试结果均失败

0x03 修复 Jason 的 bug

编译环境: VS2015

为了恢复正常功能,源代码需要修改以下 4 个位置

1.添加 Microsoft.Exchange.WebServices.dll 的引用

我这里是将 Microsoft.Exchange.WebServices.dll 放在工程的同级目录下,并做了引用

2.证书信任策略的 bug 修正

位置:Form1.cs

原代码:

ServicePointManager.ServerCertificateValidationCallback = ((object <p0>, X509Certificate <p1>, X509Chain <p2>, SslPolicyErrors <p3>) => true);

修改后的代码:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; };

3.变量赋值的 bug 修正

位置:Form1.cs

(1) 共有两个位置

原代码:

MainConfig.AppLocation + "out.txt";

修改后的代码:

MainConfig.AppLocation = MainConfig.AppLocation + "out.txt";

(2) 共有两个位置

原代码:

MainConfig.UsernameStart + userClass.Username + MainConfig.UsernameEnd;

修改后的代码:

userClass.Username = MainConfig.UsernameStart + userClass.Username + MainConfig.UsernameEnd;

4.EWS 和 OAB 的判断有问题

经过测试,变量 MainConfig.Method 的值始终为空

需要修正 MainConfig.Method 无法取值的 bug

位置:Form1.cs

原代码:

MainConfig.Method = this.cmbMethod.SelectedText;

修改后的代码:

MainConfig.Method = (string)this.cmbMethod.SelectedItem;

实现完整功能的工程我已上传至 github,地址如下:https://github.com/3gstudent/APT34-Jason

0x04 实际测试 Jason

编译成功后生成文件 Jason.exe

在同级目录需要文件 Microsoft.Exchange.WebServices.dll,程序才可以正常运行

程序启动后,需要设置的配置如下:

1.Exchange Address

输入 Exchange 服务器的 URL

在我的测试环境下,Exchange Address 为: https://192.168.206.17

2.Exchange Version

选择对应的版本

此处选择低版本能够适用于高版本的 Exchange 服务器

3.BF Method

三个选项:

  • EWS(Exchange Web Service)
  • OAB(Offline Address Book)
  • Full

通常选择 EWS

4.Username File

用户名的字典文件

格式可参考 PassSample.txt 中提示的格式

我的测试环境下,我用的格式示例为:

test1@test.com admin@test.com

5.Password File

口令字典文件

6.Number of Threads

设置扫描线程个数

7.Generate Pass

点击后显示暴力破解使用的字典

8.Generate Pass Per

点击后生成文件夹 PasswordPerUser,文件夹中生成以每个用户名命名的 txt 文件,内容为口令字典

9.Add to Username Start

产生新的用户,将输入的字符加在用户名前面

测试环境下建议不设置

10.Add to Username End

产生新的用户,将输入的字符加在用户名后面

测试环境下建议不设置

我的测试环境下,配置如下图

Alt text

暴力破解成功后,生成日志文件 out-year-month-day-hour-minute-second.txt,保存用户名和对应的口令

0x05 同其他开源工具的横向比较

1.Jason

2.MailSniper

3.Ruler

对于 Exchange 账户的暴力破解,在原理上大同小异,都是访问 Exchange 的 Web 资源,如果返回 401 表示验证失败,如果获得预期结果代表用户口令正确

对于 Jason,同 MailSniper 和 Ruler 相比,原理和功能基本相同,个人认为该工具不存在被大规模滥用的隐患,也不会导致恶意软件技术的升级

0x06 小结

本文介绍了如何修复 Jason 的 bug,分析其中的技术,同其他开源工具做了横向比较,得出最终结论:个人认为该工具不存在被大规模滥用的隐患,也不会导致恶意软件技术的升级。

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

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

发布评论

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

关于作者

文章
评论
27 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

把昨日还给我

文章 0 评论 0

wj_zym

文章 0 评论 0

巴黎夜雨

文章 0 评论 0

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