【技术原创】渗透基础——Exchange版本探测的优化
0x00 前言
在上篇文章 《渗透基础——Exchange版本探测和漏洞检测》 介绍了通过Python进行版本探测的两种方法,在版本识别上,首先从官网获得已知的版本信息,将版本信息存储在列表中,然后通过字符串匹配的方式获得Exchange版本的详细信息。开源的代码Exchange_GetVersion_MatchVul.py反馈很好。但是这个方法存在一个缺点:需要定期访问官网,手动更新扫描脚本中的版本信息列表。
为了进一步提高效率,本文介绍另外一种实现方法,通过访问官网,从返回数据中直接提取出详细的版本信息,优点是不再需要定期更新脚本。
0x01 简介
本文将要介绍以下内容:
· 通过BeautifulSoup解析网页数据
· 实现细节
·开源代码
0x02 通过BeautifulSoup解析网页数据
BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库,可以提高开发效率。
安装:
1.基本使用
在Python实现上,需要先通过requests库获取网页内容,再调用BeautifulSoup进行解析。
测试代码:
以上代码将会访问http://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019,将网页数据交由BeautifulSoup进行优化并显示。
执行代码的部分输出结果示例:
对于以上结果,每个"tr"节点对应一个版本信息,子节点"td"为具体的版本细节。
2.只筛选出"tr"节点的内容
测试代码:
执行代码的部分输出结果示例:
接下来,尝试去除无效数据。
3.提取出版本信息
测试代码:
执行代码的部分输出结果示例:
接下来,可以尝试对精确版本进行匹配。
4.精确匹配版本
测试代码:
执行代码的输出结果示例:
对于Exchange较老的版本,无法获得准确的版本号,所以还需要实现粗略匹配版本的功能。
5.粗略匹配版本
测试代码:
执行代码的输出结果示例:
6.提取出网页数据时间
为了能够准确获得版本信息,这里还需要提取出网页数据的更新时间。
标记网页数据时间的位置:
定位该时间的代码:
执行代码的输出结果示例:
提取出时间的代码:
执行代码的输出结果示例:
结合以上信息,我们可以写出新的识别Exchange版本的代码,通过从官网读取数据信息来获得准确的版本,考虑自动化判断多个目标的情况下,为了避免多次访问网站读取数据信息,在代码结构上做了适当优化,只需访问一次http://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019,将网页结果保存在变量中。代码已上传至github,地址如下:
http://github.com/3gstudent/Homework-of-Python/blob/master/Exchange_GetVersion_ParseFromWebsite.py
考虑到内网无法访问官网的情况,实现了一个从本地解析网页文件来获得准确的版本,代码已上传至github,地址如下:
http://github.com/3gstudent/Homework-of-Python/blob/master/Exchange_GetVersion_ParseFromFile.py
可以先访问官网并将网页内容保存为exchange.data,再执行脚本Exchange_GetVersion_ParseFromFile.py即可
0x03 小结
本文介绍了在Exchange版本识别上的优化方法,可以不必手动更新扫描脚本中的版本信息列表,开源代码Exchange_GetVersion_ParseFromWebsite.py和Exchange_GetVersion_ParseFromFile.py
本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
- 最新CS RCE曲折的复现路
- 白描终于出 Win 版了!超火的图片转文字工具九月特惠价 18 元起,终生免费更新
- 盛邦安全入选IDC TechScape中国数据安全发展路线图推荐厂商,为API安全治理提供新思路
- MiraclePtr UAF 漏洞利用缓解技术介绍
- 【技术原创】渗透基础——Exchange版本探测的优化
- “直播电商”带货场景分析
- 三成热门的PyPI软件包被误标为是恶意软件包
- Windows Server服务中的身份验证漏洞的安全风险
- XCon专访 | 百度安全部副总经理冯景辉:百度AI安全建设的两个核心要点
- Linux恶意软件兴起:保护开源软件(OSS)的9个技巧
- TeamTNT 的 DockerHub 凭据泄露漏洞
- 独立开发变现周刊(第73期) : 0美元营销预算创建年收入7.2万美元的产品交易市场
- EPUB Manga Creator – 把漫画图片打包成 EPUB 格式
- 漏洞预警|Apache Kafka 拒绝服务漏洞
- 权威研报:知道创宇抗DDoS产品居市场竞争力领导者象限
- 印象笔记竞品 Notesnook 正式开源
- 打造密码硬核技术 三未信安重磅推出全“芯”系列密码卡、密码机
- 嘶吼专访 | 融安网络创始人陈桂耀:创业是一条通往山顶的路,你只能上,不能下
- 某知名系统漏洞挖掘与利用思路探索
- 北信源持续领跑终端安全管理市场,累计15年位居中国终端安全管理市场占有率第一!