【技术原创】渗透基础——Zimbra版本探测 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【技术原创】渗透基础——Zimbra版本探测

3gstudent 技术 2023-06-19 12:00:00
124162
收藏

导语:本文将要介绍Zimbra版本探测的多种方法,通过Python实现自动化,记录开发细节,开源代码。

0x00 前言

本文将要介绍Zimbra版本探测的多种方法,通过Python实现自动化,记录开发细节,开源代码。

0x01 简介

本文将要介绍以下内容:

实现思路

实现细节

开源代码

0x02 实现思路

查看Zimbra版本的方法有很多,各有优缺点,具体方法如下:

1.通过Web管理页面

通过浏览器访问7071管理页面,在主页面会显示当前Zimbra版本

例如我的测试环境显示为:

Zimbra Version: 9.0.0_GA_4273.NETWORK

通过该方法获得的版本为准确版本

2.通过执行命令

微信截图_20230303155211.png

2.png

注:

Zimbra补丁更新可参考:

https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/patch_installation

3.通过Zimbra SOAP API

默认配置下,zimbraSoapExposeVersion属性为FLASE,查询命令:

微信截图_20230303155456.png返回结果:

3.png需要将zimbraSoapExposeVersion属性设置为TRUE后,可以通过Zimbra SOAP API获得版本,修改属性的命令为:

4.png发送的SOAP格式示例:

5.png默认配置下的返回结果:

6.png

4.通过imap协议

7.png

5.通过imap over ssl协议

8.png

6.通过特定url

9.png

0x03 实现细节

综合以上探测方法,为了适应多种环境,在程序实现上选取了通过imap协议、通过imap over ssl协议和通过特定url三种方法实现

1.通过imap协议

完整示例代码:

10.png11.png

2.通过imap over ssl协议

需要将ip转为hostname作为参数,示例代码:

12.png

完整示例代码:

13.png14.png

存在部分环境无法将ip转为hostname,导致报错:[Errno 11004] host not found,所以在程序判断逻辑上优先使用imap协议

3.通过特定url

完整示例代码:

15.png16.png

0x04 开源代码

完整的实现代码已上传至github,地址如下:

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

代码首先尝试通过特定url获得版本信息,再通过imap协议读取版本信息,如果失败,最后通过imap over ssl协议读取版本信息

0x05 小结

本文介绍了Zimbra版本探测的多种方法,比较优缺点,选取有效的方法并通过Python实现自动化,记录开发细节,开源代码,作为一个很好的学习示例。

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

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

扫码支持

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

发表评论

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