當前位置:
首頁 > 最新 > FACT:一款固件類比分析測試平台

FACT:一款固件類比分析測試平台

0×01 工具簡介

1.FACT 全稱 Firmware Analysis and Comparison Tool 是一個擁有WEB端的自動化固件測試平台。

2.旨在自動執行固件安全分析(路由器,物聯網,UEFI,網路攝像頭,無人駕駛飛機……)

3.工具基於Python-flask框架,採用模塊化開發並支持插件接入,因此對於二次開發和優化非常便捷。

4.FACT可以自動化完成固件解包任務並對其進行固件分析包括:

軟體識別

(1)使用哪個操作系統?

(2)哪些節目存在?

(3)使用哪些版本?

(4)哪些服務在啟動時啟動

(5)這些漏洞有哪些?

查找用戶憑據

加密材料檢測

(1)私人鑰匙

(2)證書

(3)CPU架構(需要進行模擬和反彙編)

5.FACT 同樣也自動化的實現了固件的類比,可以很方便的對比出來舊版本與新版本固件之間的變動。以找出開發商對新固件在哪裡進行了更新,同樣也可以識別是否為開發商原始固件。比如:

(1)識別已更改/相同的文件

(2)識別更改的軟體版本


FACT的業務代碼主要有三塊

Unpacking – 固件解包

Analysis – 固件系統分析

Comparison – 固件類比

2.每一塊業務代碼又由一下兩部分組成:

(1)Scheduler – 任務調度器

(2)Multiple plugins – 插件集

3.每個調度器擁有獨立的工作線程



FACT在識別文件類型的時候會調用」file」命令,並使用自帶的一個mime庫來標記文件類型。

在確定文件類型後調度器會選擇正確的插件進行解包任務。


調度器一次只會調用一個插件,當上一個插件任務結束後才會繼續調用下一個插件。

插件工作時可以擁有多個線程一起進行。

插件可以調用以及查看前面插件執行後的二進位結果。


固件系統類比任務是與固件分析任務分開的,需要進行類比的固件要先進行固件分析。

需要手工填入需要進行類比的固件UIDS。

類比工作是單線程工作,相對節省系統資源。


FACT 的配置文件位於./src/config/main.cfg

由於FACT三塊業務功能代碼結構類似,這裡以Unpack 功能為例,詳細的講解代碼邏輯。

Unpack_service 被歸置為backend_service 任務通過./start_fact_backend.py啟動。

./src/scheduler/Unpacking.py將負責創建並調度解包任務

./src./unpacker/unpack.py 負責執行具體的解包任務

1.FACT的安裝非常簡潔,參考FACT的github你可以很方便的安裝好一個FACT平台

2.建議使用清華源進行安裝,因為國內源我測試只有清華源可以暢通無阻。。。

3.安裝時建議添加 -N 參數 可以一併把nginx安裝

4.WEB端原版為全英文,漢化了一下,舒服多了。。。


1.平台運行需要一定的硬體配置,資源需求比較大

2.代碼結構嚴謹,邏輯清晰,核心功能工作流程設計非常nice,調度器與插件集的實用為二次開發提供了很大的便利

3.WEB安全性低,不建議作為公開服務運營

4.添加了一個自動化提取固件內部web路徑並審計的插件,官方還沒有回信


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 瘋貓網路 的精彩文章:

使用帶外數據從電子表格獲取數據
運營商互聯網業務暴露面安全

TAG:瘋貓網路 |