簡單的定時DDOS攻擊樣本分析

簡單的定時DDOS攻擊樣本分析

本次分析的樣本來自《惡意軟件分析》課後實驗–Lab-7-01中的程序,將樣本載入到DIE內查殼,如下

在這裏插入圖片描述
程序無殼,使用的VC++6.0編寫,看到編譯時間爲2010/09/30

在這裏插入圖片描述

說明這個樣本已經很老很老了。將樣本載入到IDA內分析相關功能,來到入口函數Main出,程序首先調用了StartServiceCtrlDispatcherA啓動了一個名爲MalService的服務,接着服務會執行函數sub_401040,啓動完成服務後,會再次調用函數sub_401040,如下

在這裏插入圖片描述
下面開始圍繞如下幾個問題開始分析

  • 如何持久化駐留
  • 如何保持任意時刻的單例運行
  • 如何檢測程序運行後基於主機內的特徵
  • 程序的目的是什麼
  • 程序是否能正常結束

如何持久化駐留

首先看到服務啓動後,會調用函數sub_401040,進入到函數內分析,首先調用函數OpenMutexA獲取一個名爲互斥量HGL345,如果存在了這個互斥量,則表明程序已經運行,就會停止當前運行的程序。

在這裏插入圖片描述

如果是首次運行,則程序會進入jz short loc_401064,程序首先會調用CreateMutexA函數創建一個HGL345的互斥量,接着調用OpenSCManagerA函數獲取一個hSCManager對象,方便後續添加一個服務做準備,接着通過GetModuleFileNameA獲取程序運行的路徑,然後調用CreateServiceA函數創建一個名爲Malservice的服務,因此可以查看是否有服務被創建,運行後看到查詢服務後,可以看到一個名爲MalService的服務,值是程序的路徑,如下

在這裏插入圖片描述

如何保持任意時刻的單個程序運行

根據上述的分析可以知道,程序在進入到sub_401040後會判斷是否創建了互斥體HGL345,如果存在就退出,否則就執行啓動後續的動作

在這裏插入圖片描述

程序運行後,使用ProcessExplore查看對應的互斥量,如下

在這裏插入圖片描述

如何檢測程序運行後基於主機內的特徵

有兩個方式來查看基於主機的特徵,第一個就是查看對應的服務對象,根據創建時的參數可以知道,dwStartType=0x2對應了SERVICE_AUTO_START的值,因此程序會自己啓動,這是一個持久化的手段。

程序的目的是什麼

當程序創建完了服務之後,繼續往下就是先創建一個定時器,定時器的啓動時間是0x834對應了十進制2100年1月1日,通過函數SystemTimeToFileTime轉爲一個FileTime,之後調用CreateWaitableTimerA函數創建一個定時器,然後通過SetWaitableTimer來設置定時器,之後通過WaitForSingleObject來等,這裏類似一直延時等待,最後來到程序的核心位置,創建了0x14 (20)個線程,主要功能在StaratAddress函數內執行,進入到函數內分析可以知道,主要對http://www.malwareanalysisbook.com的網站發起訪問,並且函數會無限發起訪問這個網站。
創建20個線程

在這裏插入圖片描述
執行的任務

在這裏插入圖片描述
由此可以知道,安裝了這個程序的電腦會在2100/01/01對完成發起DDOS攻擊,導致網站奔潰。

程序的完成時間

根據上述分析可以知道,程序不會停止,並且在timer到來之後,就創建20個線程會發起網絡攻擊。

總結

本次分析主要是對惡意軟件使用Windows Api熟悉,包括線程,進程,服務,網絡等,增加更多對惡意軟件分析的敏感度。

IOCs

樣本hash

sha-256
0C98769E42B364711C478226EF199BFBBA90DB80175EB1B8CD565AA694C09852
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章