【技术原创】渗透基础——Fortigate识别与版本探测

admin 2023年3月1日21:38:25评论169 views字数 1303阅读4分20秒阅读模式

【技术原创】渗透基础——Fortigate识别与版本探测

【技术原创】渗透基础——Fortigate识别与版本探测        0x00 前言

Fortigate的识别需要区分管理页面和VPN登陆页面,版本探测需要根据页面特征提取特征,根据特征匹配出精确的版本,本文将要介绍通过Python实现Fortigate识别与版本探测的方法,开源代码

【技术原创】渗透基础——Fortigate识别与版本探测        0x01 简介

本文将要介绍以下内容:

实现思路

实现细节

源代码

【技术原创】渗透基础——Fortigate识别与版本探测        0x02 实现思路

1.Fortigate的识别

可通过跳转的URL进行区分

管理页面跳转的url:/login?redir=%2F

vpn登陆页面跳转的url:/remote/login?lang=en

2.版本探测

页面源码中存在32位的16进制字符串可以作为版本识别的特征,每个版本对应不同的32位字符串

【技术原创】渗透基础——Fortigate识别与版本探测        0x03 实现细节

1.Fortigate的识别

这里的方法是直接访问IP,根据页面返回结果进行判断

(1)管理页面

在返回结果中就能获得32位的16进制字符串

(2)vpn登陆页面

返回的内容为跳转地址,需要解析出跳转地址重新构造URL并访问,在返回结果中获得32位的16进制字符串

返回跳转地址的内容示例:

【技术原创】渗透基础——Fortigate识别与版本探测

因为跳转的url不固定,这里可以通过正则匹配取出需要跳转的url,示例代码:

【技术原创】渗透基础——Fortigate识别与版本探测

注:

在判断版本时无法在requests模块中使用allow_redirects=False参数来控制是否重定向,原因如下:

使用requests模块时,如果使用allow_redirects=False参数,只有在返回状态码为301或302时,才会关闭重定向,这里Fortigate返回的状态码为200,所以allow_redirects=False参数不起作用

2.版本探测

在实际测试过程中,不同版本的Fortigate,虽然都会返回32位16进制字符,但是格式不同,为了提高匹配的效率,减少工作量,这里在正则匹配时选择直接匹配32位的16进制字符,示例代码如下:

【技术原创】渗透基础——Fortigate识别与版本探测

在实际测试过程中,存在response.text的输出为乱码的情况

研究解决方法的过程如下:

输出response.headers,示例代码:

【技术原创】渗透基础——Fortigate识别与版本探测

返回结果:

【技术原创】渗透基础——Fortigate识别与版本探测

发现编码格式为x-gzip

所以这里可以对response.text额外做一次gzip解码,获得原始数据,代码如下:

【技术原创】渗透基础——Fortigate识别与版本探测

完整的实现代码如下:

【技术原创】渗透基础——Fortigate识别与版本探测
【技术原创】渗透基础——Fortigate识别与版本探测

注:

如果遇到通过浏览器访问SSL Vpn Client页面提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH的错误时,程序将返回如下结果:

【技术原创】渗透基础——Fortigate识别与版本探测

解决方法:

改用Python2即可

【技术原创】渗透基础——Fortigate识别与版本探测        0x04 开源代码

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

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

代码支持区分管理页面和VPN登陆页面,提供了VM版本的指纹库作为示例,代码能够从页面自动提取出指纹特征,同指纹库进行比对,识别出精确的版本。

【技术原创】渗透基础——Fortigate识别与版本探测        0x05 小结

本文介绍了通过Python实现Fortigate识别与版本探测的方法,介绍实现细节,开源代码,作为一个很好的学习示例。

【技术原创】渗透基础——Fortigate识别与版本探测

【技术原创】渗透基础——Fortigate识别与版本探测

原文始发于微信公众号(嘶吼专业版):【技术原创】渗透基础——Fortigate识别与版本探测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月1日21:38:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【技术原创】渗透基础——Fortigate识别与版本探测http://cn-sec.com/archives/1582008.html

发表评论

匿名网友 填写信息