RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

物聯(lián)網(wǎng)安全實(shí)戰(zhàn)從零開始-飛塔(Fortinet)防火墻認(rèn)證繞過漏洞

蛇矛實(shí)驗(yàn)室 ? 來源:蛇矛實(shí)驗(yàn)室 ? 作者:蛇矛實(shí)驗(yàn)室 ? 2022-11-08 11:20 ? 次閱讀

本環(huán)境是蛇矛實(shí)驗(yàn)室基于"火天網(wǎng)演攻防演訓(xùn)靶場(chǎng)"進(jìn)行搭建,通過火天網(wǎng)演中的環(huán)境構(gòu)建模塊,可以靈活的對(duì)目標(biāo)網(wǎng)絡(luò)進(jìn)行設(shè)計(jì)和配置,并且可以快速進(jìn)行場(chǎng)景搭建和復(fù)現(xiàn)驗(yàn)證工作。

背景

Fortinet FortiOS是美國(guó)飛塔(Fortinet)公司的一套專用于FortiGate網(wǎng)絡(luò)安全平臺(tái)上的安全操作系統(tǒng)。該系統(tǒng)為用戶提供防火墻、防病毒、IPSec/SSLVPN、Web內(nèi)容過濾和反垃圾郵件等多種安全功能。10月10日,F(xiàn)ortinet官方發(fā)布安全公告,修復(fù)了其多個(gè)產(chǎn)品中的一個(gè)身份驗(yàn)證繞過漏洞(CVE-2022-40684),其CVSSv3評(píng)分為9.8。攻擊者可以通過向易受攻擊的目標(biāo)發(fā)送特制的 HTTP 或 HTTPS 請(qǐng)求,有權(quán)訪問管理界面的遠(yuǎn)程攻擊者可以執(zhí)行管理員操作。

4f36856a-5c49-11ed-a3b6-dac502259ad0.png

漏洞分析

CVE信息中說明了該漏洞為身份認(rèn)證繞過漏洞,并且可以RCE。在開始分析前,我們需要先搭建漏洞環(huán)境。由于該漏洞影響范圍如下,這里我使用防火墻的版本為forigate-vm64 7.2.1,內(nèi)部 Fotios 版本與防火墻版本一致。

FortiOS版本 7.2.0-7.2.1
FortiOS版本 7.0.0-7.0.6
FortiProxy版本 7.2.0
FortiProxy版本 7.0.0-7.0.6
FortiSwitchManager版本 7.2.0
FortiSwitchManager版本 7.0.0

下面開始配置Fortigate防火墻,使其能夠與我們的攻擊機(jī)網(wǎng)絡(luò)互通。

注意:Fortigate-VM-7.2.0以后使用新的證書方式,需要有fortinet賬號(hào)獲得永久試用,這里需要fortigate聯(lián)網(wǎng)。

4f40e24e-5c49-11ed-a3b6-dac502259ad0.png

使用瀏覽器訪問ip后,使用admin:password進(jìn)行登錄,登錄后界面如下所示。至此,fortigate環(huán)境已配置完畢,接下來我們進(jìn)行分析。

4f6724ae-5c49-11ed-a3b6-dac502259ad0.png

libguestfs 是一組 Linux 下的 C 語言的 API ,用來訪問虛擬機(jī)的磁盤映像文件,幾乎可訪問任意類型的文件系統(tǒng)。debian系安裝命令為"sudo apt install libguestfs-tools",安裝完成后會(huì)有很多"virt-開頭的命令。

將fortios.vmdk從下載好的fortigate壓縮包中解壓出來,使用"sudo virt-filesystems -a fortios.vmdk"也是查看磁盤的分區(qū)情況。然后使用"sudo guestmount -a fortios.vmdk -m /dev/sda1 --ro mount_dir_name"進(jìn)行掛載。

mount成功后,rootfs.gz為文件系統(tǒng)壓縮包,我們將其復(fù)制出來。

5000396e-5c49-11ed-a3b6-dac502259ad0.png

rootfs.gz解壓后為rootfs,使用"cpio -i 2> /dev/null < rootfs"命令進(jìn)行提取。提取后發(fā)現(xiàn)大量文件系統(tǒng)的目錄和.tar.xz文件,.tat.xz文件使用xz解壓時(shí)會(huì)失敗,我們可以使用文件系統(tǒng)中自帶的(sbin/xz)程序進(jìn)行解壓,這里只需注意它的鏈接器路徑(將其修改至主機(jī)系統(tǒng)的鏈接器路徑),我們patch后并保存。

502f0118-5c49-11ed-a3b6-dac502259ad0.png

xz解壓后提取出各個(gè)文件系統(tǒng)目錄,進(jìn)入到bin目錄后尋找httpsd程序。httpsd是init程序的軟連接,并且這里可以看出init程序非常大,逆向該程序比較費(fèi)時(shí)。所以我們可以根據(jù)調(diào)試信息先來逆向程序邏輯。

507fc90e-5c49-11ed-a3b6-dac502259ad0.png

運(yùn)行以下命令開啟httpsd程序的調(diào)試信息,當(dāng)開啟調(diào)試信息后,當(dāng)我們對(duì)fotigate的web服務(wù)進(jìn)行操作時(shí),該操作的信息就會(huì)打印到屏幕上。

diagnosedebugenable
diagnose debugapplication httpsd -1
diagnose debugcli 8

50c83e00-5c49-11ed-a3b6-dac502259ad0.png

調(diào)試開啟后,下面以登錄授權(quán)訪問api為例,簡(jiǎn)單分析一下流程,當(dāng)我們?cè)跒g覽器輸入admin:password點(diǎn)擊登錄后訪問api打印的調(diào)試信息如下

5163723a-5c49-11ed-a3b6-dac502259ad0.png

我們根據(jù)調(diào)試信息打印的字符在程序中進(jìn)行搜索,根據(jù)字符串引用進(jìn)行定位,發(fā)現(xiàn)程序執(zhí)行了fweb_debug_init函數(shù)

51aa3404-5c49-11ed-a3b6-dac502259ad0.png

大致瀏覽一遍后發(fā)現(xiàn)后發(fā)現(xiàn)程序使用了Apache Portable Runtime庫(kù),我們可以根據(jù)函數(shù)庫(kù)對(duì)函數(shù)的使用進(jìn)行查詢。這里的apr_table_get函數(shù)為從表單中取出key值對(duì)應(yīng)的value。

51c1259c-5c49-11ed-a3b6-dac502259ad0.png

對(duì)fweb_debug_init函數(shù)進(jìn)行交叉引用,發(fā)現(xiàn)sub_C4BF20調(diào)用了fweb_debug_init函數(shù),這個(gè)函數(shù)與上面中的調(diào)試信息并無聯(lián)系,我們繼續(xù)往上跟。

51da9a90-5c49-11ed-a3b6-dac502259ad0.png

sub_C4C480調(diào)用了sub_C4BF20函數(shù),并且后面的fweb_debug_final函數(shù)與上面圖中最后登錄成功后的最后產(chǎn)生的調(diào)試信息相同。那么fweb_debug_init與fweb_debug_final之間的倆個(gè)函數(shù)v3[1]函數(shù)和sub_C4C2A0產(chǎn)生了大量調(diào)試信息。我們跟進(jìn)分析一下v3[1]函數(shù)

51fac9c8-5c49-11ed-a3b6-dac502259ad0.png

v3由參數(shù)a2賦值,a2為sub_C4C480函數(shù)的參數(shù),

52e42294-5c49-11ed-a3b6-dac502259ad0.png

a2參數(shù)為off_3FEA400函數(shù)數(shù)組的地址

5305c5fc-5c49-11ed-a3b6-dac502259ad0.png

off_3FEA400函數(shù)數(shù)組為傳入sub_C4C480函數(shù)的參數(shù),當(dāng)函數(shù)執(zhí)行完fweb_debug_init后,通過參數(shù)加索引的方式調(diào)用相應(yīng)hanler函數(shù),這里v3[1]執(zhí)行sub_c929F0函數(shù)

531705e2-5c49-11ed-a3b6-dac502259ad0.png

sub_c929F0函數(shù)中調(diào)用了api_check_access函數(shù),并且程序會(huì)根據(jù)api_check_access返回值返回用戶對(duì)應(yīng)響應(yīng)碼的reponse。我們進(jìn)入api_check_access函數(shù)中進(jìn)行查看

534dba92-5c49-11ed-a3b6-dac502259ad0.png

api_check_access函數(shù)的返回值由幾個(gè)子函數(shù)共同決定,當(dāng)我們根據(jù)調(diào)試信息追函數(shù)流程時(shí),發(fā)現(xiàn)在api_check_access中并沒有輸出任何調(diào)試信息,而是在sub_c929F0函數(shù)中調(diào)用了handle_cli_request輸出了調(diào)試信息。同時(shí)handle_cli_request函數(shù)輸出完vdom "root"后,該handler函數(shù)執(zhí)行完畢并返回執(zhí)行fweb_debug_final函數(shù),隨后結(jié)束該次event響應(yīng)。

538aa54c-5c49-11ed-a3b6-dac502259ad0.png

上面我們大概知道了訪問api時(shí)程序執(zhí)行大概流程,但是具體細(xì)節(jié)和身份驗(yàn)證的流程我們還是不知道。下面我們直接用已公開的poc進(jìn)行測(cè)試,并關(guān)注其調(diào)試信息以方便逆向。

53c35f9a-5c49-11ed-a3b6-dac502259ad0.png

此時(shí)調(diào)試如下,我們發(fā)現(xiàn)和上面已授權(quán)登錄相比,多了倆條調(diào)試信息,分別是fweb_authorize_all和api_access_check_for_trusted_access,下面我們跟進(jìn)去分析一下。

53ed507a-5c49-11ed-a3b6-dac502259ad0.png

當(dāng)我們跟進(jìn)去時(shí)發(fā)現(xiàn)sub_C4AC70函數(shù)先調(diào)用了sub_C4B590函數(shù),然后ap_hook_handler hook前面我們分析的sub_C4AC60函數(shù)。sub_C4B590也同樣是ap_hook_check_access_ex hook的fweb_authorize_all函數(shù)。那么到此所有的流程我們已經(jīng)知道了,接下來我們分析一下漏洞是如何形成的。

557f7774-5c49-11ed-a3b6-dac502259ad0.png

在認(rèn)證過程中,函數(shù)首先調(diào)用fweb_authorize_all判斷v2+64是否等于"127.0.0.1",即判斷是否本機(jī)訪問,如果本機(jī)訪問則sub_C50E80函數(shù)內(nèi)部繼續(xù)判斷接口如果是否為vsys_fgfm接口。隨后取Forwarded頭的value值,strstr函數(shù)查找"for="的位置,隨后執(zhí)行if結(jié)構(gòu)體內(nèi)容,再次判斷Forwarded_header_content_tmp中是否存在"by"字符,如果判斷不通過并不會(huì)進(jìn)入到api_check_access函數(shù)中。

559eff7c-5c49-11ed-a3b6-dac502259ad0.png

api_access_check_for_trusted_access函數(shù)中調(diào)用sub_C510D0,傳入?yún)?shù)為"Node.js"

55d20548-5c49-11ed-a3b6-dac502259ad0.png

sub_C510D0函數(shù)中判斷表單中User-Agent的value值是否與Node.js是否相同

55f9715a-5c49-11ed-a3b6-dac502259ad0.png

如果不是"Node.js",則判斷User-Agent的value值是否與Report Runner是否相同

56006898-5c49-11ed-a3b6-dac502259ad0.png

進(jìn)入到過以上倆種方式中的某一種,用戶賦值為"Local_Process_Access",此時(shí)會(huì)繞過身份認(rèn)證。也就是說要想攻擊成功,需要設(shè)置Forwarded頭value值必須為"for=",后面可以設(shè)置127.0.0.1來隱藏防火墻中的攻擊記錄,而User-Agent的value可以設(shè)置"Node.js"和"Report Runner"倆種中的一個(gè)。

562fd3c6-5c49-11ed-a3b6-dac502259ad0.png

以上倆種繞過測(cè)試只在Fortigate-VM-7.2.1(Fortigate-VM-7.2.0由于沒有鏡像所以沒有測(cè))有效,當(dāng)fortigate-vm版本在7.0.0-7.0.5中User-Agent需要為Node.js(7.0.6沒測(cè))。

漏洞復(fù)現(xiàn)

未攻擊前,使用ssh連接fortigate的admin用戶需要密碼登錄。

564a3e46-5c49-11ed-a3b6-dac502259ad0.png

使用kali生成ssh-pulibc-key,然后利用漏洞繞過身份認(rèn)證,并使用PUT方法設(shè)置fortigate的ssh-public-key1(實(shí)現(xiàn)這種攻擊方式需設(shè)置User-Agent頭為"Report Runner"),點(diǎn)擊send進(jìn)行攻擊(或使用github已公開的exp腳本進(jìn)行攻擊)。

566b0da6-5c49-11ed-a3b6-dac502259ad0.png

出現(xiàn)"SSH key is good."后,說明攻擊成功,此時(shí)使用ssh連接fortigate防火墻則需不要輸入密碼。獲取fortigate終端后,可執(zhí)行任意命令。

5672acaa-5c49-11ed-a3b6-dac502259ad0.png

總結(jié)

我們這一小節(jié)簡(jiǎn)單了解了身份認(rèn)證繞過流程,分析并復(fù)現(xiàn)了fortigate防火墻身份認(rèn)證繞過漏洞的形成過程以及如何利用。

蛇矛實(shí)驗(yàn)室成立于2020年,致力于安全研究、攻防解決方案、靶場(chǎng)對(duì)標(biāo)場(chǎng)景仿真復(fù)現(xiàn)及技戰(zhàn)法設(shè)計(jì)與輸出等相關(guān)方向。團(tuán)隊(duì)核心成員均由從事安全行業(yè)10余年經(jīng)驗(yàn)的安全專家組成,團(tuán)隊(duì)目前成員涉及紅藍(lán)對(duì)抗、滲透測(cè)試、逆向破解、病毒分析、工控安全以及免殺等相關(guān)領(lǐng)域。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44557

    瀏覽量

    372755
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6801

    瀏覽量

    123283
  • 防火墻
    +關(guān)注

    關(guān)注

    0

    文章

    417

    瀏覽量

    35608

原文標(biāo)題:物聯(lián)網(wǎng)安全實(shí)戰(zhàn)從零開始-飛塔(Fortinet)防火墻認(rèn)證繞過漏洞

文章出處:【微信號(hào):蛇矛實(shí)驗(yàn)室,微信公眾號(hào):蛇矛實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【電腦安全技巧】電腦防火墻的使用技巧

    防火墻是最容易受到攻擊的嗎?事實(shí)上,系統(tǒng)標(biāo)準(zhǔn)版的防火墻使用也是有技巧的,現(xiàn)在就讓番茄花園系統(tǒng)下載的小編介紹五種最佳實(shí)踐方法,以減少黑客入侵心愛的電腦,讓您的電腦系統(tǒng)既流暢又安全。 一、所有的
    發(fā)表于 07-12 15:59

    發(fā)現(xiàn) STM32 防火墻安全配置

    前言 STM32 防火墻(Firewall)能夠構(gòu)建一個(gè)與其它代碼隔離的帶有數(shù)據(jù)存儲(chǔ)的可信任代碼區(qū)域,結(jié)合RDP、WRP以及PCROP,可用來保護(hù)安全敏感的算法。在STM32 Cube固件庫(kù)參考代碼
    發(fā)表于 07-27 11:04

    高防獨(dú)立主機(jī)租用/托管的注意事項(xiàng):防火墻的基本特征

    通道,才可以更加全面、有效地保護(hù)企業(yè)網(wǎng)內(nèi)部網(wǎng)絡(luò)不受侵害。防火墻的目的就是在網(wǎng)絡(luò)連接之間建立一個(gè)安全控制點(diǎn),通過允許、拒絕或重新定向經(jīng)過防火墻的數(shù)據(jù)流,實(shí)現(xiàn)對(duì)進(jìn)、出內(nèi)部網(wǎng)絡(luò)的服務(wù)和訪問的審計(jì)和控制。二、只有
    發(fā)表于 12-03 16:06

    Linux防火墻入門教程分享

    合理的防火墻是你的計(jì)算機(jī)防止網(wǎng)絡(luò)入侵的第一道屏障。你在家里上網(wǎng),通常互聯(lián)網(wǎng)服務(wù)提供會(huì)在路由中搭建一層防火墻。當(dāng)你離開家時(shí),那么你計(jì)算機(jī)上的那層防火墻就是僅有的一層,所以配置和控制好你
    發(fā)表于 12-28 06:54

    聯(lián)網(wǎng)防火墻與機(jī)器學(xué)習(xí)技術(shù)解析

    聯(lián)網(wǎng)防火墻與機(jī)器學(xué)習(xí)技術(shù)
    發(fā)表于 02-25 06:05

    防火墻多級(jí)安全參考模型的設(shè)計(jì)與實(shí)現(xiàn)

    為了更好地利用防火墻阻止拒絕服務(wù)攻擊和信息泄露,針對(duì)防火墻發(fā)展現(xiàn)狀和存在的問題基礎(chǔ)上,提出了防火墻多級(jí)安全參考模型,設(shè)計(jì)了對(duì)防火墻的自主和強(qiáng)
    發(fā)表于 02-27 16:09 ?21次下載
    <b class='flag-5'>防火墻</b>多級(jí)<b class='flag-5'>安全</b>參考模型的設(shè)計(jì)與實(shí)現(xiàn)

    防火墻技術(shù)

    防火墻技術(shù).ppt 防火墻及相關(guān)概念包過濾型防火墻代理服務(wù)型防火墻 防火墻的配置分布式防火墻
    發(fā)表于 06-16 23:41 ?0次下載

    防火墻防火墻的滲透技術(shù)

    防火墻防火墻的滲透技術(shù) 傳統(tǒng)的防火墻工作原理及優(yōu)缺點(diǎn): 1.(傳統(tǒng)的)包過濾防火墻的工作原理   包過濾是在IP層實(shí)現(xiàn)的,因
    發(fā)表于 08-01 10:26 ?1054次閱讀

    防火墻術(shù)語-Backdoor

    防火墻術(shù)語-Backdoor  英文原義:Backdoor 中文釋義:后門 注  解:繞過安全性控制而獲取對(duì)程序或系統(tǒng)訪問權(quán)的
    發(fā)表于 02-24 11:00 ?653次閱讀

    究竟什么是防火墻?

    究竟什么是防火墻?     Q:防火墻初級(jí)入門:究竟什么是防火墻?     A:防火墻定義
    發(fā)表于 02-24 11:51 ?779次閱讀

    什么是防火墻?防火墻如何工作?

    ,防火墻將阻止流量或?qū)⑵湓试S通過。 網(wǎng)絡(luò)的安全防火墻是一種網(wǎng)閘,可以根據(jù)已配置的策略和規(guī)則集控制進(jìn)入和離開網(wǎng)絡(luò)的所有流量。 本質(zhì)上,它是您的網(wǎng)絡(luò)和萬維網(wǎng)之間的緩沖區(qū),就像帶射頻識(shí)別( RFID )的
    的頭像 發(fā)表于 09-30 14:35 ?5329次閱讀

    恒訊科技分析:什么是防火墻與下一代防火墻(NGFW)?

    在本文中,小編將詳細(xì)給大家分析一下什么是防火墻與下一代防火墻(NGFW)? 一、什么是防火墻? 防火墻是一種網(wǎng)絡(luò)安全系統(tǒng),它遵循預(yù)先確定的
    的頭像 發(fā)表于 06-13 17:38 ?1336次閱讀

    WAF與防火墻:Web 應(yīng)用程序和網(wǎng)絡(luò)防火墻

    容易受到 Web 應(yīng)用程序漏洞的攻擊。然而WAF無法防御網(wǎng)絡(luò)層的攻擊,因此它應(yīng)該是網(wǎng)絡(luò)防火墻的補(bǔ)充而不是替代。
    的頭像 發(fā)表于 07-24 17:34 ?832次閱讀
    WAF與<b class='flag-5'>防火墻</b>:Web 應(yīng)用程序和網(wǎng)絡(luò)<b class='flag-5'>防火墻</b>

    聯(lián)網(wǎng)HMI與防火墻安全協(xié)作

    虹科IIoT虹科聯(lián)網(wǎng)HMI與防火墻安全協(xié)作虹科方案01前言隨著聯(lián)網(wǎng)技術(shù)的快速發(fā)展,
    的頭像 發(fā)表于 07-31 17:52 ?950次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>HMI與<b class='flag-5'>防火墻</b>的<b class='flag-5'>安全</b>協(xié)作

    防火墻和web應(yīng)用防火墻詳細(xì)介紹

    防火墻和Web應(yīng)用防火墻是兩種不同的網(wǎng)絡(luò)安全工具,它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別,同時(shí)也在各自的領(lǐng)域內(nèi)發(fā)揮著重要的作用,主機(jī)推薦小編為您整理發(fā)布云防火墻和web應(yīng)用
    的頭像 發(fā)表于 12-19 10:14 ?34次閱讀
    RM新时代网站-首页