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

    惡意樣本分析——XOR加密與進程注入

    VSole2021-12-09 07:39:32

    本文是一篇關于《惡意代碼分析實戰》書中的實驗Lab12-02樣本的分析報告,這個樣本涉及到進程注入和XOR加密技術,樣本難度適中。

    分析中如有不當的地方還請各位大佬指教。

    分析工具:

    PEID

    PEView

    IDA pro

    火絨劍

    strings提取字符串

    WinHex

    分析環境:Windows xp系統,VMware虛擬機

    基礎靜態分析

    1、查殼:

    無殼。

    2、提串:

    一堆亂碼,全是A,說明這個樣本加密了,但是剛剛查殼有發現沒有殼,于是打算看看PE文件有沒有加密的跡象。

    3、查看PE文件:

    可以看到這部分沒什么問題,并沒有加密的跡象,我一個一個節查看,發現后面的資源節有問題,被加密了,就如我提串時看到的字符串一樣全是A,如下圖。

    至此,我可以確定,這個樣本使用了資源節加密技術,而且加密的資源節類型是UNICODE,名字是LOCALIZATION,但是加密方法、密鑰我都不知道,所以接下來的分析就要注意這個問題。

    4、查看導入表:

    我看到有幾個明顯的可疑函數:

    VirtualAllocEx、WriteProcessMemory這幾個函數一般用來進程替換,所以推測這個樣本可能還使用了進程替換技術;

    SizeofResource、LoadResource、FindResource都是用來加密資源節必要的函數,證明了之前的判斷。

    到此,靜態分析結束,我得到如下結論:

    樣本使用了資源節加密技術,目前并不清楚加密方法和密鑰;

    樣本可能使用了進程替換技術,目前只是猜測。

    基礎動態分析

    雙擊運行惡意樣本程序,用火絨劍觀察進程變化。

    沒運行時的初始狀態:

    運行之后的前一小段時間,進程中出現了Lab12-02.exe進程和它創建的子進程svchost.exe。

    一段時間后,只剩下svchost.exe進程。

    IDA pro反匯編分析

    進入_main函數:

    看到字符串“\svchost.exe”,極有可能就是代表在此目錄下創建svchost.exe進程(正如動態分析時看到的那樣),所以跳轉到sub_40132C函數(sub_40149D函數跳轉進去只是一些字符串的操作,對分析的幫助不大)。

    跳轉到loc_401362的位置,出現了”UNICODE”和”LOCALIZATION”字符串,剛好和加密的資源節名稱吻合,猜測下面是加密功能的代碼,接著向下進行。

    出現了之前導入表中和資源節加密有關的一系列函數,說明 sub_40132C 函數應該就是加密資源節的作用,所以接著向下分析,看看能不能找出加密方法和密鑰。

    到這里我看到有一個函數sub_401000被調用,而之前的所有代碼調用的只有導入表中存在的API,所以我判斷這個函數一定和加密的內核功能有關聯,并且我注意到了這個函數還有一個參數41h被傳入進去,這是個16進制數。跳轉進去。

    一步一步向下分析,就到了跳轉到loc_401016這個位置。有一條指令引起了我的注意:xor al, [ebp+arg_8]。這條指令在對寄存器eax的低8位內容進行異或運算,而一般的異或運算大多都是寄存器自身異或來清除內容,所以這個異或運算顯得很不尋常。

    這里使用了一些跳轉語句,像是循環結構,所以按下空格鍵查看一下代碼結構。

    這里就清晰的看出了這是個典型的循環結構,而核心部分就在圖中高亮的那行代碼,顯而易見,這個循環結構的目的就是讓所有的內容進行一次異或運算,所以我判斷,資源節加密的加密方法就是異或運算加密,密鑰就是之前傳入的參數41h。

    之后,我導出了PE文件中加密:

    的文件,用WinHex進行解密,果然顯現出了明文,證明了我的判斷,這里就不放圖了。

    回到_main函數,惡意代碼完成資源節加密操作后,又調用了sub_4010EA函數,跳轉過去看看。

    往后看,發現了一些用于進程替換的函數調用(之前在導入表看到過),看到ntdll.dll,之前動態運行的時候在惡意進程中看到過這個文件。

     

    再次回到_main函數后,再往下的代碼并沒有什么實際作用可以分析,至此,反匯編分析結束。

    總結

    這個惡意樣本有如下惡意行為和功能:

    該惡意樣本進行了資源節內容加密,并且在運行時解碼內容,釋放出一個二進制文件。加密方法是異或運算加密,密鑰是41h,可以用WinHex解密查看明文內容;

    該惡意樣本使用了進程替換技術,用釋放的二進制文件替換svchost.exe;

    總體來看,該惡意樣本的目的就是利用進程替換,秘密地執行自己的進程。

    異或
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    這次的 PWNHUB 內部賽的兩道題目都不是常規題,babyboa 考察的是 Boa Webserver 的 cgi 文件的利用,美好的異或考察的則是通過逆向分析解密函數來構造棧溢出 ROP。兩道題目的考點都非常新穎,其中第一道題更是結合了 Web,值得大家復現學習。
    2021年5月13日:c++ shellcode啟動器,截至2021年5月13日,0/26完全未被檢測到。在KaliLinux上,只需'apt-get install mingw-w64*'就可以了!使用git clone存儲庫,生成命名為beacon.bin的shellcode文件,然后運行charlotte.py注:使用msfvenom -p測試以及CobaltStrike原始格式Payload!
    神兵利器 - XORpassWAF
    2022-11-25 09:39:43
    使用清除 PHP 函數:使用該函數的 XOR 繞過:$ python3 xorpass.py -e " system ". 為什么 PHP 將我們的有效負載視為字符串?^ 是異或運算符,這意味著我們實際上是在處理二進制值。那么讓我們分解一下發生的事情。二進制值的 XOR 運算符將返回 1,其中只有一位為 1,否則返回 0 。當您對字符使用 XOR 時,您使用的是它們的 ASCII 值。這些 ASCII 值是整數,因此我們需要將它們轉換為二進制以查看實際發生的情況。如果我們做一個'echo "A"^"S"^"B";'?
    巧解一道CTF Android題
    2022-08-10 16:15:40
    無須還原代碼,窮舉爆破。我們打開jeb工具,定位到當前activity。我們看一下saveSN方法,可以看到這是一個native方法。我們解包一下apk,獲取到so文件。下面進入ida分析。導出函數并沒有相關java的native方法,說明是動態注冊。我們看下JNI_ONLOAD函數:jint JNI_OnLoad{ if ( !
    盡管存在 Exploit/PoC 的漏洞占比超過 5%,但只有1.8% 比例的漏洞有公開來源信息顯示存在有在野利用。考慮到在野利用漏洞的危害性,僅通過標記漏洞是否存在公開 Exploit 來判定漏洞的現實威脅還是不夠的。無 CVE 的漏洞占比接近三分之一,因此,有大量的漏洞在 CVE 的視野之外。漏洞是否與 0day 或 APT 活 動相關,這意味著漏洞可能被用于攻擊高價值的目標。
    隱私權和個人信息權益究竟是何種關系,是隱私權包含了個人信息權益,還是隱私權與個人信息權益應當并行適用、互不干擾,抑或它們存在重疊關系,應當交叉適用?回答這個問題,對于正確理解適用《民法典》、《個人信息保護法》的規定,妥當裁判相關糾紛,更好地保護隱私權和個人信息權益,至關重要。
    前置知識UAF,異或加密,hook利用版本新增保護介紹2.33版本的glibc不同于以往,對于堆塊地址的釋放之后,對于同一大小的fastbin以及tcache有效的fd永遠只有一個,剩余的bin照舊。對于2.33版本下對于fastbin以及tcache的fd指針會被進行異或操作加密,用來異或的值隨堆地址發生改變。
    NO.1 前言之前介紹了CobaltStrike4.3的License認證分析,今天介紹一下CobaltStrike4.3去除CheckSum8特征的方法,CheckSum8的特征和具體算法不在此細說,
    Counter-Strike 1.6社區版發布,經過一段時間的實戰測試,還是比較舒服的,但是自己現在逐漸脫離實戰,開發的動力變小,所以放出來一個公開版本,大家提提建議,不定期更新一下修修BUG以及添加一些內部版本過時的功能到這上面,但也是比市面上的Evasion效果都好很多了,只有知識星球用戶可以獲取。
    軟件安全之CRC檢測
    2023-04-19 09:47:57
    k++)//因為這里異或是從數據的高位開始,所以需要計算的數據左移8位,這里就需要計算8次。1)//判斷最高位是否為1. 0xEDB88320;//最高位為1,右移一位,然后與0xEDB88320異或???相當于例子2中110與000異或值是不變的
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类