Jump to content

0x00 前言本文將要介紹FortiOS REST API的相關用法,分享開發的實現細節。

0x01簡介本文將要介紹以下內容:

強化環境聽力

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

如下圖

1.png

商業網卡設置成VMnet2

(2)WAN網卡

設置成bridged

(3)局域網網卡

選擇network adapter 3,點擊LAN Segments.點擊Add,命名為Fortigate LAN

網卡設置成LAN segment,選擇Fortigate LAN

最終配置成圖

2.png4.開啟虛擬機用戶名:admin職位,為默認空

查看激活狀態的命令:get system status

查看ip的命令:diagnose ip address list

得到管理網卡的ip為192.168.23.128

5.訪問網頁管理頁面地址為:http://192.168.23.128

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示例代碼如下:

3.png 4.png

代碼實現以下三個功能:

管理員用戶信息,查詢成功

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示例代碼如下:

5.png

代碼實現以下三個功能:

管理員用戶信息,查詢失敗

REST API用戶信息,查詢成功

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

補充:通過漏洞(CVE-2022-40684)可屏蔽身份認證Python示例代碼如下:

6.png 7.png

代碼實現以下三個功能:

管理員用戶信息,查詢成功

REST API用戶信息,查詢成功

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

0x04 常用操作1. 調試輸出為了方便調試,可以在cli執行以下命令:

8.png

一分鐘在cli輸出調試信息3

如下圖

9.png

2.文件打包可提取使用掛載vmdk的方式加載文件,逆向分析REST API的實現

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

3.增刪改查操作讀取內容使用GET方法

新建內容使用POST方法

修改內容使用PUT方法

刪除內容使用DELETE方法

0x05 常用功能1.創建本地用戶需要訪問/api/v2/cmdb/user/local,發送json數據

Python示例代碼如下:

10.png

2.添加防火牆需要訪問/api/v2/cmdb/firewall/policy,發送json數據

Python示例代碼如下:

11.png 12.png

3.導出所有配置通過訪問/api/v2/cmdb/system/admin導出用戶信息時,密碼項被加密,格式為'password':'ENC XXXX'

這裡可通過備份功能導出所有配置,獲得加密的用戶身份,訪問位置為/api/v2/monitor/system/config/backup?destination=filescope=global

Python示例代碼如下:

13.png

4.抓包需要完成以下操作:

新建抓包過濾器

開啟抓包過濾器

停止數據包捕獲過濾器

下載數據包

刪除數據包捕獲過濾器

Python示例代碼如下:

14.png 15.png

16.png

0x06 小結本文以Fortigate REST 的配置和介紹,介紹了FortiOS 的相關用法,為創建本地用戶、添加防火牆規則、導出所有的實現代碼。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...