日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

恶意代码分析(一)

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 恶意代码分析(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

惡意代碼分析(一)

  • 樣本來源
  • 樣本概況
  • 分析環境
  • 初步分析
  • 調試分析
    • 第一個線程
    • 第二個線程
    • 第三個線程
    • 第四個線程
    • 第五個線程
    • 其它思路
  • 總結

樣本來源

https://www.52pojie.cn/thread-1377686-1-2.html

樣本概況

樣本信息Value
樣本名稱免費外紀.exe
樣本大小4.62MB(4,853,850 Byte)
MD5bcfc56704ea9b62650bec0349532b7d7
SHA1176fbfb56e401f1043532377c1b67bd207c32bb9
時間戳28/10/2020
殼信息
數字簽名

分析環境

環境信息Value
操作系統windows 10
病毒掃描https://www.virscan.org
行為分析火絨劍
調試工具OllyDbg、IDA Pro

初步分析

VirSCAN掃描
火絨劍分析

雙擊運行結果:
調試器運行結果:

結論:若通過調試器運行樣本,初步得到樣本會做以下幾件事情

  • 將自身重命名為svchost.exe并拷貝到C:\Windows目錄下
  • 將自身重命名為52993656.bak并拷貝到C:\Windows\SysWOW64目錄下(數字為隨機生成)
  • 設置注冊表鍵值
  • 自我刪除
  • 驗證
    1)比對源文件和svchost.exe的MD5值:

    2)比對源文件的MD5和52993656.bak的MD5值:

    3)查看注冊表鍵值

    由于進行過多次調試,因此存在多行不同的值

    調試分析

    第一個線程

    1)首先使用IDA從WinMain開始靜態分析
    2)查看sub_4010F5
    3)使用OllyDbg調試sub_4010AF得到關鍵數據

    發現循環結束后,地址0x408578的數據出現了熟悉的PE頭部特征“MZ”

    4)將解密后的數據dump下來,并刪除無用數據

    5)查殼,發現存在nsp殼

    6)使用IDA進行反編譯,發現入口函數為DllEntryPointer,說明該文件類型為DLL動態鏈接庫,不方便使用手動脫殼的方法進行脫殼

    7)繼續向下調試,直到樣本調用這個DLL

    可以看到調用的地址是0x10009c70,由于在此之前調用了qmemcpy拷貝DLL各個區段到新內存,以及進行了一系列LoadLibrary和GetPorcAddress操作,猜測這是樣本在對DLL進行脫殼,因此這個時候嘗試再次dump,代碼基址和數據基址可以在內存中定位

    順利得到了脫殼后的DLL文件,IDA打開發現存在進程操作,文件操作和注冊表操作等相關API調用

    7)OD繼續向下調試分析
    分析一部分后的DllEntryPointer函數注釋如下,有些函數還不知道具體是什么含義
    隨后創建了兩個新的線程,暫時先不分析,接著往下看


    8)查看sub_10002450

    9)最后調用sub_10009570,里面創建了第四個線程sub_10009200,然后進入sleep

    第二個線程


    1)首先分析sub_100076d0(由于IDA中數據為空,因此使用OD調試)

    在內存中生成了一些字符串并調用了sub_10002f50
    2)sub_10002f50中生成了字符串SYSTEM\CurrentControlSet\Services\Bcdefg

    再將這個字符串作為參數傳入sub_1000bc70并調用

    sub_1000bc70存在大量的CALL ESI這樣的指令,無法反編譯為C代碼

    3)sub_1000bc70存在大量的CALL ESI這樣的指令,無法反編譯為C代碼,繼續使用OD調試
    導入了一些注冊表相關的API

    打開了注冊表鍵SYSTEM\CurrentControlSet\Services\Bcdefg

    讀取了鍵名MarkTiny的值
    調用sub_1000bed1關閉了注冊表
    然后釋放了ADVAPI32.dll并return

    4)之后sub_100076d0又調用了兩次sub_10002f50獲取了月份和日期

    在棧里生成rundll32.exe并調用了GetModuleFileNameA得到了當前路徑

    之后比較了一下當前進程名是否為rundll32.exe
    如果不相同的話,會調用三個函數

    首先調用sub_10003830遍歷進程模塊查找是否存在下面五個進程

    cthlp.exe pythonw.exe xService.exe pgradeHelper.exe AcrylicService.exe

    然后調用sub_10004990比較了下面第一條圖片路徑和后三條圖片路徑,暫時不清楚具體作用

    C:\Windows\web\wallpaper\Windows\img0.jpg C:\Users\test\Pictures\maldun_background.jpg C:\Users\vbccsb\Pictures\Desktop.jpg C:\Users\vbccsb\Pictures\Desktop.jpg

    接著又調用了sub_10005fc0檢測進程模塊

    C:\delete C:\create erAToolClient.exe SandboxieRpcSs.exe SandboxieDcomLaunch.exe

    后面進入了一段很長的Sleep,猜測是為了執行其他線程,Sleep結束后又會重新回到線程頭部開始執行

    這個線程暫時先分析到這里

    第三個線程


    1)開啟了一個新線程sub_1000b500

    2)分析sub_1000b500
    3)查看sub_10009ba0
    4)分析sub_100099d0

    第四個線程

    1)啟動套接字

    隨后進入一個大循環,共三層


    2)分析sub_10001560
    在sub_1000b580中再次調用了sub_1000b500
    調試分析看看與之前有什么不同

    3)分析sub_1000b7b0

    3)分析sub_1000b6a0
    首先加載了一些函數
    然后調用這些函數,獲取桌面信息,值位Default
    函數結束后回到父函數,向下執行調用sub_10001680

    第五個線程

    1)分析sub_10001680

    其它思路

    之前有一個地方判斷了一下當前程序的文件名是否為rundll32.dll,看一下若比對成功的情況
    若比對成功會經過這里

    由于sub_1000788A在IDA中為空數據,因此使用OD調試分析
    首先通過獲得當前年月日

    后面也沒做什么,函數結束后回到判斷文件名的位置開始循環這個操作

    總結

    通過分析,該樣本大致有以下幾大明顯行為

  • 從互聯網下載程序并執行,而分析樣本時URL是空的,似乎是被有意抹去,可在調試時手動添加進行測試
  • 該進程會啟動socket進行數據交互和加解密操作,ip地址似乎也是被有意修改為了127.0.0.1,猜測目的是和新下載的惡意程序進行數據交互和命令執行,實現遠控
  • 該樣本會將自身重命名為svchost.exe并拷貝到系統目錄下,再將自身和一個dll文件重命名后移動到系統目錄下
  • 唯一的遺憾是第五個線程中存在一個大量算法的函數,由于socket連接不成功,因此無法分析函數的目的是什么

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的恶意代码分析(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。