【技术原创】渗透基础——Zimbra版本探测
2023-6-19 12:3:41 Author: 嘶吼专业版(查看原文) 阅读量:24 收藏

       0x00 前言

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

       0x01 简介

本文将要介绍以下内容:

实现思路

实现细节

开源代码

       0x02 实现思路

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

1.通过Web管理页面

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

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

Zimbra Version: 9.0.0_GA_4273.NETWORK

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

2.通过执行命令

注:

Zimbra补丁更新可参考:

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

3.通过Zimbra SOAP API

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

回结果:

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

发送的SOAP格式示例:

默认配置下的返回结果:

4.通过imap协议

5.通过imap over ssl协议

6.通过特定url


       0x03 实现细节

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

1.通过imap协议

完整示例代码:


2.通过imap over ssl协议

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

整示例代码:


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

3.通过特定url

完整示例代码:


       0x04 开源代码

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

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

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

       0x05 小结

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


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247562757&idx=1&sn=2d79c0548e949d919b21b1ec68de70eb&chksm=e914263fde63af29c5638d6476ff046ec3d822edc7f0f0258abf5b4dadd14548e09baced1454#rd
如有侵权请联系:admin#unsafe.sh