【技术原创】渗透基础——Zimbra版本探测
2023-6-19 12:0:0 Author: www.4hou.com(查看原文) 阅读量:280 收藏

导语:本文将要介绍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 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址

  • 分享至

取消 嘶吼

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

扫码支持

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


文章来源: https://www.4hou.com/posts/vJNm
如有侵权请联系:admin#unsafe.sh