Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86374506

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x00 前言本文將要繼續擴充開源代碼Zimbra_SOAP_API_Manage的實用功能,添加預認證的登錄方式,分享開發細節。

0x01 簡介本文將要介紹以下內容:

預認證

計算preauth

SOAP實現

開源代碼

0x02 預認證參考資料:https://wiki.zimbra.com/wiki/Preauth

簡單理解:通過preAuthKey結合用戶名、時間戳和到期時間,計算得出的HMAC作為身份驗證的令牌,可用於用戶郵箱和SOAP登錄

默認配置下,Zimbra未啟用預認證的功能,需要手動開啟

(1)開啟預認證並生成PreAuthKey命令如下:

1.png其中,

2.png對應測試環境的命令為:/opt/zimbra/bin/zmprov generateDomainPreAuthKey mail.test.com

測試環境的輸出如下:

3.png(2)讀取已有的PreAuthKey命令如下:

4.png對應測試環境的命令為:/opt/zimbra/bin/zmprov gd mail.test.com zimbraPreAuthKey

測試環境的輸出如下:

5.png注:

如果Zimbra存在多個域名,那麼會有多個PreAuthKey

0x03 計算preauth參考資料中給出了多種計算preauth的示例,但是Python的實現代碼不完整,這裡補全Python3下的完整實現代碼,詳細代碼如下:

6.png代碼會自動生成可用的URL,瀏覽器訪問可以登錄指定郵箱

0x04 SOAP實現SOAP格式:

7.pngSOAP格式示例:

8.png需要timestamp和preauth作為參數,使用預認證登錄的詳細代碼如下:

9.png 10.png 11.png

以上代碼通過預認證登錄,返回可用的token,通過該token可以進行後續的SOAP操作,列出文件夾郵件數量的實現代碼:

12.png 13.png0x05 開源代碼新的代碼已上傳至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/Zimbra_SOAP_API_Manage.py

添加了使用預認證登錄的功能

0x06 小結本文擴充了Zimbra SOAP API的調用方法,添加了使用預認證登錄的功能。