當前位置:
首頁 > 新聞 > CIA機密文檔追蹤工具Scribbles詳細分析

CIA機密文檔追蹤工具Scribbles詳細分析

*本文原創作者:ArkTeam/Wellee,屬Freebuf原創獎勵計劃,未經許可禁止轉載



2017年4月28日,維基解密發布了CIA「塗鴉」(Scribbles)項目的文檔和源代碼(參考地址1)。這是一個文檔預處理系統,用於給涉密文檔打上「Web beacon」類型的追蹤水印。該系統相關簡介已有參考文章(參考地址2),在此不做過多敘述。

文本首先通過其源代碼,分析該系統生成水印的流程,然後通過實際使用,介紹其使用方法,並對其實際效果進行測試和總結。




1、原理概述

「Webbeacon」追蹤標籤,通常被用於植入電子郵件和網頁,可以利用它來發送關於郵件是否已被打開的信息。如在郵件中嵌入一個隱藏的遠程圖片URL,當郵件被打開時,會主動請求該URL,以載入遠程圖片。遠程伺服器獲得請求,便可獲知該郵件已被打開。



同理,Scribbles實際上是在文檔中嵌入一種隱藏的水印,注意,該水印並不是office軟體中自帶的水印功能(如添加背景字等),而是類似上述「Web beacon」的原理,之所以稱其為水印,是因為Scribbles的說明文檔和源代碼都使用的「watermark」關鍵詞,索性在此稱之為水印。


Scribbles的水印嚴格來說就是在文檔中插入一個遠程圖像的URL,當文檔被打開時,

會主動通過HTTP或HTTPS協議的GET請求訪問該URL,以載入遠程圖片,遠程伺服器接收到請求便可得知有機密文件已經被打開,並可根據請求信息,得知文件被打開時所在的主機源IP等信息,從而進行追蹤

。註:下文中所述的水印都是指該URL。


Scribbles給文檔嵌入上述水印,生成並記錄水印中的特定字元串,當遠程伺服器收到請求,便可根據該請求中的特殊字元串得知是哪個文件被竊取,雖然原理簡單易懂,但是該策略十分有效,具體細節下文進行介紹。




2、系統源碼分析


該系統可給Word, Excel, PowerPoint三種文檔的多種版本打上水印,進行追蹤,其原理和流程大致相同,下面就以Word文檔水印生成流程的代碼進行詳細分析。




水印生成流程



Word文檔水印生成主要流程如下圖:




1) Scribbles程序運行需要從命令行或者配置文件中讀取相關參數,關鍵參數主要有:



url_Scheme:協議類型,可為HTTP和HTTPS


hostServerName:發起請求的域名


hostRootPath:發起請求的域的根路徑


hostSubDirs:發起請求

的域的子路徑


hostFileName:發起請求的文件名


hostFileExtList:發起請求的文件類型後綴

output_Directory:已嵌入水印的文件輸出路徑


output_WatermarkLog:輸出構造水印日誌





程序根據讀取的參數,生成一個特定的URL,該URL中包含一個特殊字元串,以用來唯一標識文檔。


2) 接下來,程序根據讀取參數,創建輸出目錄,複製源文件到輸出目錄。接下來的處理都是對輸出目錄中得到的新文件進行。此步驟中,如果源文件是.doc後綴類型文件,會將其轉為.docx文件,打上水印後再將其處理還原回.doc類型




3) 接下來,在新文件中的頁眉中插入圖片佔位符



4) 然後將文件轉為xml格式,存到程序創建的臨時文件夾中。然後將圖片佔位符替換為水印URL。


將程序中刪除臨時文件夾的代碼注釋掉,再次運行程序便可在臨時文件夾中的word目錄下的rels子目錄的header1.xml.rels文件查看到已經嵌入的水印URL。



5) 之後,程序將之前解壓處理並植入水印的XML文件還原回正常的Word文檔,至此水印URL在新文檔中植入完成。



6) 接下來將水印生成的相關信息記錄到日誌文件中,水印嵌入過程到此結束。





3、使用方法及測試



3.1 使用方法



接下來介紹程序的使用方法:



源碼部分已經說明程序需要從命令行或者配置文件中讀取相關參數來構造水印URL,下面實際測試通過構造配置文件的方式讓程序讀取相關參數。


1) 測試所用的配置文件1.xml的內容如下圖



其中的參數之所以為list,是因為程序會從參數list中隨機選取值,來為每個文件構造URL,具體構造的URL事例詳見下文。


2) 程序一方面需要根據參數構造水印URL,另一方面,需獲得要打水印的源文件的路徑,路徑可以為多層次的文件夾。本次測試的源文件存放位置大致如下圖:



InputDir是賦予程序的輸入目錄,程序會自動讀取該目錄下的所有文件夾和文件,通過複製源文件的方式,創建新文件並打上水印。之後,記錄日誌到配置的tsv日誌文件中。


3) 命令行使用上述1.xml配置文件,運行程序,如下圖:



程序運行結束後,文件夾結構如下圖:可看出程序按照InputDir文件夾的層次結構,在配置的OutputDir文件夾下,創建一模一樣的文件夾層次結構,並複製了源文件,將其打上水印。



最後,程序創建的日誌文件的部分內容如下圖:主要包含源文件的路徑名稱,水印Tag,水印URL等內容。




3.2 效果測試



將生成的水印文檔進行測試,並進行抓包分析,證明了上述原理分析。



1) 打開嵌入水印後的Word文檔,如下圖:首先將源文件(左)和嵌入水印的文件(右)對比,發現嵌入水印後的文件多了頁眉,當然,如果源文件本身也有頁眉的話,那麼直觀來看,根本看不出有任何變化。



打開抓包工具,然後打開文件,抓到的數據包可看到,當文件打開時,其請求了水印URL,效果如下:



其中的1ntwe4fvbg77v.z8x9ntj3bj06j67b4就是前述所說的構造特殊欄位,該欄位保證水印的唯一性和文件的一一對應關係。



觀察程序生成水印時記錄的日誌,便可得知此次請求是因為1.docx文件被打開,另一方面伺服器端收到請求,獲得請求端的源IP地址,可在一定程度上進行追蹤溯源。


2) 事實上,打開Word文件中的頁眉,仔細觀察會發現頁眉左邊有個很小的圖像像素點,但是不仔細看真的很難發現,而且文檔打開時,不會有任何提示。



將頁眉全選後,該像素點效果如圖:



拖動該像素點,將其拉長,可看到其就是一個鏈接的遠程圖片,因為水印URL是程序隨機使用配置參數中的數據構造的假鏈接,所以文檔中顯示,「無法顯示該圖像」。如圖:



至此,Word的水印構造過程和其原理已經清楚。另外,打開Excel和PPT的效果大致類似,親測同樣有效!在此不再贅述。但是有個細節是,打開PPT文件時,PPT會彈出「是否需要打開對外部圖片的引用」提示,如下圖:



這也正是為什麼運行程序時,會給出讓用戶確認是否需要對PPT文件進行水印處理通知的原因,防止高級攻擊者打開PPT文件時發現異常。




4、總結


Scribbles利用水印進行溯源追蹤,利用了office可以鏈接遠程文件的「漏洞」,技術實現和工作原理上都較為簡潔,該技術思路未公開之前,效果也頗為明顯。



但是其也存在諸多弊端,一方面如其說明文檔所述,對打開文檔軟體的有效性有所限制,如在Linux系統中的LibreOffice中打開時會失效。另一方面,隨著該技術的普及,攻擊者得知後,可以在斷開網路的主機上查看竊密文件,或者打開文件之前斷開網路,該追蹤策略也即失效。


當然該技術目前看還是有很大的應用場景的,比如企業、政府內部可以利用其製作多個欺騙性文件,以此感知未被發現的文件竊密攻擊等等。還有眾多應用場景,大家可以盡情發揮想像力!Happy hunting!




5、參考資料




[1] https://wikileaks.org/vault7/#Scribbles


[2] http://www.freebuf.com/news/133571.html


*本文原創作者:ArkTeam/Wellee,屬Freebuf原創獎勵計劃,未經許可禁止轉載


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

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


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

如何構建一個反電信網路詐騙基礎模型
釣魚郵件攻擊中的猥瑣技巧與策略
漏洞預警 | Windows系統惡意軟體防護引擎曝嚴重遠程代碼執行漏洞(CVE-2017-0290)
攻擊者利用7號信令(SS7)中的漏洞從德國銀行偷取錢財
Shodan新工具發布:木馬惡意軟體C&C伺服器搜索引擎

TAG:FreeBuf |

您可能感興趣

時間追蹤管理工具ManicTime Pro
Vobling為HTC Vive Pro Eye提供眼動追蹤軟體分析工具
Adobe 的專業照片編輯工具 Lightroom 已登陸 Mac App Store
單細胞ATAC-seq分析工具Scasat在細胞分類中的應用
Photoshop詳細解析HSL調色工具的使用技巧
Adobe為Premiere Rush CC引入視頻變速工具
Adobe收購3D編輯工具Substance開發商Allegorithmic
詳解 MySQL 基準測試和 sysbench 工具
系統重裝工具 WinToHDD Enterprise
Adobe通過藝術家入駐計劃Residence完善AR創作工具Project Aero
Shopify獨立站SEO分析工具:Ahrefs操作指南一覽
用戶寥寥 Facebook關閉私密分享工具Moments
YouTube正在Stories中測試AR濾鏡工具
MySQL 下 perror 工具查看 System Error Code 信息
Microsoft Layout新工具支持VR/MR查看設計
TensorFlow 的模型分析工具——TFMA
微軟買下性能分析工具Windows Performance Analyzer
完善WebAssembly生態 Mozilla發布線上IDE工具測試預覽版
MongoDB 管理工具: Rockmongo
使用systemtap調試工具分析MySQL的性能