# FirmAE
### 概要
:::info
由syssec(system security lab)開發的一套自動化 emulate 和漏洞分析系統,paper描述系統架構和運作原理,主要貢獻是提高emulate的成功率
AE = (Arbitrated emulation)
與實際韌體相比的高相似度模擬,已利於進行動態分析
*要將韌體與真實環境模擬起來難度高 連 firmdyne也只達到 16%
經常韌體再模擬過程中常見的失敗原因
1. Boot-related problem:啟動順序錯誤or缺少檔案
2. Network-realted problem:網路設定接口不匹配或配置不正確
3. non-volatitle RAM(NVRAM) -related:缺少 library functions 或 客製化的格式
4. kernel -related problem:unsupported hardware or functions
5. minor problem:unsupported commands or timing issues
**設計目標:**
可以實際emulate起來並且執行該韌體web 服務
(他datdaset裡面有1100多個韌體,成功將 892個模擬起來)
e.g. 網路接口的數量的不同 需要以啟發式的方法來找到問題 並在虛擬環境下可以配置網路來解決此問題 並啟用動態分析 (雖然實際上可能無法跟實際環境一樣但目標不是為了這項而是要有個方便做動態分析得環境)
:::
### 論文重點
:::success
嵌入式設備分析流程
* 韌體 unpack
Binwalk 、 Firmware-Mod- Kit、FRAK等工具會預先掃描 pre-defined signatures的file header ,當signatures符合就會提取檔案
* 分析實體設備
使用JTAG接口or開發代理將真實設備轉送到proxy上來訪問
* 系統

* Pre-emulation:會預先建立一個客製化的kernal 和 libraries,並且會emulates目標檔案來蒐集不同系統log用來做final 的emulation
* vulnerability focus on command injection and buffer overflow
* command injection 找的方法:送特殊字元到 shell command,把binary放進log中紀錄時間和環境變量旯檢測漏洞有沒有被觸發
* hook execve system call 連檢測輸入是否注入到 command中
:::
### 使用教學
1. 安裝


這部分發現會一直打patch
查看一下安裝檔
> cat install.sh
資料庫使用 PostgreSQL
但主要問題出在routersploit
因此要自行客製化裝起來也行


init 結果

pre-emulation & analysis


分析畫面

成功執行模擬畫面

自動nmap掃描開啟的服務

還有 nmap Service Fingerprint
模糊化執行

最終會將結果保存於analyses資料夾內

debug模式

多個feature

檢查資料夾內的檔案
bin 資料夾內


Fuzzing result 保存在 analysis檔中



針對buffer over flow 塞進了一些 payload

###### tags: `thesis`