【技术原创】FortiOS REST API 开发指南

admin 2022年12月28日19:11:22评论27 views字数 2570阅读8分34秒阅读模式

【技术原创】FortiOS REST API 开发指南

【技术原创】FortiOS REST API 开发指南
0x00 前言

本文将要介绍FortiOS REST API的相关用法,分享开发的实现细节。

【技术原创】FortiOS REST API 开发指南
0x01简介

本文将要介绍以下内容:

强化环境听力

FortiOS REST API 方式登录

常用操作

常用功能

【技术原创】FortiOS REST API 开发指南
0x02 Fortigate环境

这里以Fortigate作为FortiOS REST API的测试环境,安装FortiGate for VMware

参考资料:https://getlabsdone.com/how-to-install-fortigate-on-vmware-workstation/

1.下载FortiGate for VMware安装包

下载地址:https://support.fortinet.com/

选择Support-> VMImages,选择产品:FortiGate,选择平台:VMWare ESXi

注:

7.2之前的版本可以使用15天,7.2之后的版本需要账号注册

2.导入ova文件

打开FortiGate-VM64.ova导入VMWare

3.配置网卡

3个网卡,我们只需要保留3个,删掉后面的107个,默认3个网卡的具体配置如下:

(1)管理网卡

点击VMware workstation-> Edit->Virtual Network Editor点击Change settings,点击Add Network...,选择VMnet2,选择,Type选择Host-only,DHCP选择Enabled

如下图

【技术原创】FortiOS REST API 开发指南

商业网卡设置成VMnet2

(2)WAN网卡

设置成bridged

(3)局域网网卡

选择network adapter 3,点击LAN Segments...,点击Add,命名为Fortigate LAN

网卡设置成LAN segment,选择Fortigate LAN

最终配置成图

【技术原创】FortiOS REST API 开发指南

4.开启虚拟机

用户名:admin职位,为默认空

查看激活状态的命令:get system status

查看ip的命令:diagnose ip address list

得到管理网卡的ip为192.168.23.128

5.访问网页管理页面

地址为:http://192.168.23.128

【技术原创】FortiOS REST API 开发指南
0x03 FortiOS REST API 登录方式

参考资料:https://www.used.net.ua/index.php/fajlovyj-arkhiv/category/35-fortinet.html?download=83:fortios-5-6-11-rest-api-reference

FortiOS REST API支持以下类型登录:

1.使用admin用户登录

需要管理员用户admin的明文,不需要额外的配置

通过访问访问https://

需要注意的是,使用管理员用户登录结束后需要进行访问https://

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南
【技术原创】FortiOS REST API 开发指南

代码实现以下三个功能:

管理员用户信息,查询成功

REST API用户信息,查询成功

查询配置文件信息,查询成功

2.使用API密钥

参考资料:https://docs.fortinet.com/document/forticonverter/6.0.2/online-help/866905/connect-fortigate-device-via-api-token

需要额外创建配置文件和用户,生成API密钥

(1)创建配置文件

登录网页管理页面,选择System-> Admin Profiles->Create New

Name设置为api_admin

将所有权限均设置为Read/Write

(2)创建用户

选择System-> Administrators-> Create New->REST API Admin

Username设置为api_user

Administrator profile设置为api_admin

自动生成 API 密钥,测试环境得到的结果为r3h53QbtrmNtdk0HH5qwnw8mkcmnt7

API key有以下使用方式:

作为 URL 的参数使用,示例:?access_token=r3h53QbtrmNtdk0HH5qwnw8mkcmnt7

标题中,示例:"Authorization": "Bearer r3h53QbtrmNtdk0HH5qwnw8mkcmnt7"

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南

代码实现以下三个功能:

管理员用户信息,查询失败

REST API用户信息,查询成功

查询配置文件信息,查询成功

【技术原创】FortiOS REST API 开发指南
补充:通过漏洞(CVE-2022-40684)可屏蔽身份认证

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南
【技术原创】FortiOS REST API 开发指南

代码实现以下三个功能:

管理员用户信息,查询成功

REST API用户信息,查询成功

查询配置文件信息,查询成功

【技术原创】FortiOS REST API 开发指南
0x04 常用操作

1. 调试输出

为了方便调试,可以在cli执行以下命令:

【技术原创】FortiOS REST API 开发指南

一分钟在cli输出调试信息3

如下图

【技术原创】FortiOS REST API 开发指南

2.文件打包

可提取使用挂载vmdk的方式加载文件,逆向分析REST API的实现

破解方法:https ://www.horizontal-fortiswitchmanager-460-dive-cve-2022-484 /

3.增删改查操作

读取内容使用GET方法

新建内容使用POST方法

修改内容使用PUT方法

删除内容使用DELETE方法

【技术原创】FortiOS REST API 开发指南
0x05 常用功能

1.创建本地用户

需要访问/api/v2/cmdb/user/local,发送json数据

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南

2.添加防火墙

需要访问/api/v2/cmdb/firewall/policy,发送json数据

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南
【技术原创】FortiOS REST API 开发指南

3.导出所有配置

通过访问/api/v2/cmdb/system/admin导出用户信息时,密码项被加密,格式为"password":"ENC XXXX"

这里可通过备份功能导出所有配置,获得加密的用户身份,访问位置为/api/v2/monitor/system/config/backup?destination=file&scope=global

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南

4.抓包

需要完成以下操作:

新建抓包过滤器

开启抓包过滤器

停止数据包捕获过滤器

下载数据包

删除数据包捕获过滤器

Python示例代码如下:

【技术原创】FortiOS REST API 开发指南
【技术原创】FortiOS REST API 开发指南
【技术原创】FortiOS REST API 开发指南

【技术原创】FortiOS REST API 开发指南
0x06 小结

本文以 Fortigate REST 的配置和介绍,介绍了 FortiOS 的相关用法,为创建本地用户、添加防火墙规则、导出所有的实现代码。

【技术原创】FortiOS REST API 开发指南

【技术原创】FortiOS REST API 开发指南

原文始发于微信公众号(嘶吼专业版):【技术原创】FortiOS REST API 开发指南

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月28日19:11:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【技术原创】FortiOS REST API 开发指南https://cn-sec.com/archives/1484458.html

发表评论

匿名网友 填写信息