渗透基础:Fortigate固件的自动下载

admin 2024年5月17日21:22:48评论9 views字数 880阅读2分56秒阅读模式

渗透基础:Fortigate固件的自动下载

渗透基础:Fortigate固件的自动下载

0x00 前言

在之前的文章介绍了Fortigate识别与版本探测的方法,在提取出页面特征后,可根据特征对应到具体版本。为了找到特征与具体版本的对应关系,这里首要解决的问题是下载固件。

本文将要介绍通过程序实现自动下载固件的方法,分享脚本开发细节。

渗透基础:Fortigate固件的自动下载    0x01 简介

本文将要介绍以下内容:

实现原理

实现细节

开源代码

渗透基础:Fortigate固件的自动下载    0x02 实现原理

通过Burp Suite分析下载固件的数据格式,进而编写程序实现自动下载。

1.用户认证

使用Cookie作为凭据,格式示例:

渗透基础:Fortigate固件的自动下载

2.下载流程

访问固件下载页面,如下图

渗透基础:Fortigate固件的自动下载

点击固件对应的HTTPS即可下载固件。

通过Burp Suite分析数据包内容,具体流程如下:

访问页面https://support.fortinet.com/Download/FirmwareImages.aspx,发送的数据包如下图:

渗透基础:Fortigate固件的自动下载

其中,ctl04作为变量,不同固件对应的值不同。

返回结果实例如下图:

渗透基础:Fortigate固件的自动下载

返回结果中为实际的下载文件地址。

渗透基础:Fortigate固件的自动下载    0x03 实现细节

这里以7.2.4的下载为例,在程序实现上需要额外考虑以下细节:

1.文件下载

对于返回结果需要作简单的处理,解析后并下载的代码实例:

渗透基础:Fortigate固件的自动下载

2.需要获得文件名与下载链接的对应关系

实际上为文件名同变量ctl的对应关系。

访问上级页面,抓包如下图:

渗透基础:Fortigate固件的自动下载

返回结果如下图:

渗透基础:Fortigate固件的自动下载

从页面中能够获得文件名同变量ctl的对应关系。

这里使用正则匹配,格式化输出的代码实例:

渗透基础:Fortigate固件的自动下载

注:在使用print函数时,r指定回到行起始位置,flush=True表示刷新输出。

3.加入下载进度条

为了便于掌握下载进度,需要加入下载的进度条。

参考代码:https://www.cnblogs.com/Old-Kang/articles/15271067.html

实例代码:

渗透基础:Fortigate固件的自动下载

输出实例:

渗透基础:Fortigate固件的自动下载

4.下载判断

当下载很多文件时,如果网络中断,需要从中断处的文件名重新下载。

这里加入指定下载位置作为用户输入,实例代码:

渗透基础:Fortigate固件的自动下载

渗透基础:Fortigate固件的自动下载    0x04 小结

本文介绍了通过程序下载Fortigate固件的方法,后续可对特征进行提取。

渗透基础:Fortigate固件的自动下载

渗透基础:Fortigate固件的自动下载

原文始发于微信公众号(嘶吼专业版):【技术原创】渗透基础——Fortigate固件的自动下载

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月17日21:22:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透基础:Fortigate固件的自动下载http://cn-sec.com/archives/2049087.html

发表评论

匿名网友 填写信息