當前位置:
首頁 > 新聞 > 安全研究 | 傳真機的攻擊面研究報告

安全研究 | 傳真機的攻擊面研究報告


介紹


大家一聽到「傳真機」這三個字,肯定覺得這種設備離自己非常遠。但實際上,現在很多辦公室里仍然存在著這種「遠古」設備,而且在商業和法律通信等領域內仍處於廣泛使用中。傳真機的大部分技術都是幾十年前的了,而且在過去的幾年裡基本沒有升級過。


以前的傳真機主要通過座機電話和電話線來訪問,並且通過乙太網來連接本地網路。但說實話,可能很多人並不了解傳真機背後的通信機制。網上只有一些介紹印表機標準的文檔,其實也並沒有什麼X用,而且我們也不準備對印表機的固件進行逆向分析。不過幸運的是,網上有很多開源(源代碼可完全訪問)的印表機模擬工具,而且它們還實現了很多額外功能,這就非常棒了。

大家準備好了嗎?那我們開始吧!


傳真模擬軟體


傳真機看起來其實有點像一台連接了電話線的印表機,不過傳真機會發出各種奇怪的聲音,還能通過電話線並以低速傳輸的形式進行頁面掃描和輸出。雖然在全球各地的各種辦公室內仍然能找到傳真機的身影,但實際上並沒有多少人喜歡這種設備。


在網上搜索半天之後,我們也找到了很多有意思的傳真機軟體開源項目,其中更新比較頻繁的就是HyLaFax。HylaFAX貌似是一款企業級的軟體傳真工具,而eFAX和mgetty + sendFAX則是一種基於命令行的更輕量級的軟體傳真替代方案。除了它們之外,還有很多開源項目都在為軟體傳真生態系統做貢獻。比如說,ICTFAX就是一種基於Web的解決方案,IAXmodem則是一款支持連接PBX和傳真客戶端的軟體橋接工具,以及Spandsp庫等等。


簡單來說,傳真的整個過程需要涉及到三種通信層:


1.數據層:此時,數據機需要撥號,然後發出各種奇怪的聲音,最後在通信雙方之間建立數據信道,並允許雙方交換數據符號。


2.會話層:在這一層,傳真機會進行通信參數協商,其中包括頁面格式、頁面傳輸速度和圖片壓縮方式等等。


3.圖片/頁面層:傳真機會在這一層對頁面信息進行編碼/解碼,對數據進行壓縮/解壓,檢查並糾正錯誤等等。


根據數據機需要處理的通信層數量,我們可以對設備進行歸類:


1.第一類:數據機處理數據層,同時依靠傳真機軟體來實現會話處理和頁面處理任務。

2.第二類:數據機處理數據層和會話層,然後把圖片處理任務交給軟體端完成。


除此之外,還有一類設備負責提供額外功能,比如說設置不同的傳輸速度等等。由於我們這篇文章主要針對的是第一類設備,所以其他種類的設備就大家自行搜索啦!


那麼,在傳真機軟體(例如HylaFAX)和傳真機數據機的幫助下,任何人都可以通過電話線來發送和接收傳真。在發送一份傳真時,我們只需要一份輸入文檔和目的傳真機的電話號碼,然後用軟體進行撥號和數據編碼,最後發送出去就可以了。在接收一份傳真時,會有一個軟體進程通過數據機的串口來監聽來電信號,接收所有的數據信息,然後將其存入本地文件系統或通過郵件發送給用戶。



安裝配置


接下來,我們需要深入分析軟體傳真背後每一層的工作機制。此時,我們需要用到下列幾種組件:


1.兩台90年代的老式傳真機;


2.兩個USB傳真機數據機;


3.思科SPA112;


4.Asterisk;

5.IAXmodem;


6.HylaFAX、eFAX和mgetty;


7.gdb;


8.vim;


9.afl。


我們的組件將幫助我們部署不同的配置環境,Asterisk是我們的主PBX,它負責進行路由調用和提供私人電話網路(允許我們的各種組件與其他組件撥號通信,而無需使用到使用到公用電話網路PSTN)。思科SPA允許我們物理連接到傳真機設備,並使用USB數據機連接我們的Asterisk網路。同時,gdb和vim可以幫助我們閱讀程序的源代碼和編譯過程。在整個過程中,我們還需要運行afl模糊測試器來測試不同代碼塊和功能組件的安全性。


漏洞收集


在對傳真機軟體的安全性進行了詳細研究之後,我們發現並上報了多個漏洞,相關廠商也在第一時間修復了上報的漏洞。


Mgetty中的多個安全漏洞


下面是我們發現並上報的漏洞信息:

CVE-2018-16741:通過Mgetty的任務描述實現Shell注入


CVE-2018-16742:通過Mgetty的命令行參數實現棧緩衝區溢出


CVE-2018-16743:通過Mgetty的命令行參數實現棧緩衝區溢出


CVE-2018-16744:通過Mgetty的配置參數實現棧緩衝區溢出


CVE-2018-16745:通過Mgetty的配置參數實現緩衝區溢出


參考資料:【傳送門】


HylaFAX的遠程代碼執行漏洞


CVE-2018-17141:在HylaFAX的傳真接收過程中,遠程攻擊者將能夠寫入一個未序列化的指針;


參考資料:【點擊閱讀原文查看】


在我們的研究過程中,我們發現HylaFAX和HylaFAX+的功能非常豐富,而且完全可以實現傳真機通信的全部要求。除此之外,它們的源代碼也非常好讀,不過在讀源代碼的過程中,我們發現代碼中負責進行ECM頁面傳輸的部分存在安全問題。請大家看下面的代碼:


你沒看錯,就是緩衝區溢出的問題!這部分代碼來自於FaxModem::recvPageDLEData()函數,而這個函數主要負責處理傳真接收(開啟JPEG傳輸功能時),而整個過程中沒有對緩衝區的邊界進行檢測,當接收到數據量過大的頁面時,將會出現緩衝區溢出的情況。




總結


在對傳真機軟體的安全性進行了研究之後,我們可以更好地了解這種技術,並揭示傳真機系統中不同層級和不同複雜度的組件及其工作機制。在各種開源、免費工具的幫助下,我們能夠迅速了解傳真機工作機制中每一層的通信原理,除此之外,我們還能閱讀源代碼,並識別出其中可能存在安全漏洞的部分。


傳真機已經存在了好多好多年了,也許現在的安全社區已經沒人去研究傳真機的安全問題了,但如果有一天,你旁邊那台傳真機給你帶來了「毀滅性」的災難,你該怎麼辦?


*參考來源:x41-dsec,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM


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

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


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

Windows內核漏洞利用提權教程
信息安全領域中機器學習入門淺談

TAG:FreeBuf |