02_sample遠控
0x00 概述
基本資訊
樣本名稱 | sample.exe |
---|---|
樣本型別 | 遠控、蠕蟲病毒 |
樣本大小 | 27.5KB(28,160位元組) |
MD5 | 4D049BC 19B03572EF8A00980050BAFFF |
簡介
經過分析,該病毒樣本是一個遠控與蠕蟲病毒的結合體,通過弱口令進行爆破區域網內的主機,進行傳播。並通過訪問兩個C&C伺服器接收遠端指令,根據接收到的指令執行不同的操作,包括:下載檔案並執行,更新自身,DDOS等任務。
流程圖
0x01 樣本細節詳細分析
樣本行為分析
大量網路行為
執行樣本後, 該樣本進行了大量的網路請求,其中不斷嘗試與內網IP地址192.168.1.107:83進行連線。如圖1
然後通過fiddler抓取到,該樣本訪問異常URL,下載telnet.exe。並且不斷嘗試與內網網段進行連線,如圖2:
樣本詳細分析
脫殼
首先用查殼工具查下殼,發現該樣本是UPX殼。如圖:
然後嘗試用OD進行脫殼,F8單步執行一次,然後在ESP下硬體斷點,F9執行到該硬體斷點處,再單步幾次就到了OEP處。然後dump下來,並用ImportREC工具修復IAT,但發現再該OEP處無法找到有用的資訊。如圖:
這時再拿查殼工具查一下dump出來的檔案,發現還有一層UPX殼,如下圖:
所以目前的IAT表肯定是無法修復的,繼續用OD單步跟,尋找下一個OEP。單步幾步就會發現,該殼程式通過LoadLibrary和GetProcAddress獲取了一些殼所需要的API,如圖:
隨後繼續單步,發現該殼程式通過獲取到的virtualAlloc開闢了一段空間,並往裡儲存了一些資料,然後將其全部釋放掉了。這裡我們不管,我們只尋找下一個pushad。再走沒幾步,就發現了pushad,這裡再進行一次UPX脫殼。
然後繼續單步,直到一個大跳便會跳到函式入口。出現如下圖的55 8BEC。便可以dump下來,修復IAT表了。
建立互斥體
先建立名為121212的互斥體,然後進行判斷,若互斥體存在,則退出當前程式。若不存在則執行主要行為函式sub_404BD7。如圖:
建立服務
建立一個名為.Net CLR的服務,並設定該服務的狀態。建立服務的目的可能是用來守護該程式。
再次建立互斥體
再次建立名為.Net CLR的互斥體,如圖:
列舉資源
通過呼叫上圖中的EnumResourceNames函式,列舉二進位制模組中的資源,並將讀取到的資源寫入hra33.dll中。如圖:
更新資源段
先檢索登錄檔項HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR中的ImagePath的值。
然後更新從ImagePath中獲取的檔案的資源段資料。
載入釋放的檔案
先拼接出hra33.dll,再通過LoadLibrary載入該模組。如圖:
建立三個執行緒
連續建立了3個執行緒,其中第三個執行緒是一個死迴圈,不斷建立執行執行緒3。如圖:
執行緒1:傳播擴散
-
初始化字典
首先初始化了一個簡單的字典,後面用來弱口令爆破,如圖:
-
將主機號與網路號拼接成IP地址
通過圖中gethostbyname函式獲取當前主機的IP地址資訊,然後獲取當前主機IP地址的所處的網段資訊(網路號),並與初始化的主機號:inc_IP_408724進行拼接,將網路號與主機號進行拼接,IP地址:10.95.16.1。
-
弱口令爆破該網段的所有主機
利用如圖黃色標識的主機號:inc_IP_408724,然後與當前主機所在的網段(網路號)拼接出的IP地址。通過呼叫如下圖函式WNetAddCon_copy_exec_402A40,利用之前初始話的字典,進行爆破傳播。然後執行完一個IP後,主機號自加1,爆破該網段的下一個地址。直到主機號為254時停止。如下圖:
-
爆破傳播函式WNetAddCon_copy_exec_402A40
WNetAddCon_copy_exec_402A40傳入了三個值,分別是IP地址,使用者名稱,密碼。通過呼叫WNetAddConnection函式,用之前初始化的字典(使用者名稱,密碼),對該網段的網路資源進行連線。
若連線成功,將自身檔案拷貝到網路共享資源的多個碟符中,看哪個碟符可以拷貝成功。當拷貝成功便跳到LABEL_14:再兩分鐘後執行復制後的程式,從而達到通網段的傳播。拷貝的目標碟符,如下表:
拷貝的目標碟符: \10.95.16.1\admin$\g1fd.exe \10.95.16.1\c$\NewArean.exe \10.95.16.1\D$\g1fd.exe \10.95.16.1\E$\g1fd.exe \10.95.16.1\F$\g1fd.exe 建立網路資源連線,複製自身程式碼如下圖:
執行緒2:與遠控伺服器通訊,執行指令
首先初始化了winsock服務,然後是迴圈,獲取當前系統時間,並進行了判斷當日期大於2013年2月21日後,便不斷建立執行緒2.1,建立套接字連結遠端伺服器,獲取指令執行命令。如圖:
執行緒2.1:與遠控伺服器通訊,獲取指令並執行
初始化套接字,並建立連結
現通過htons函式將整型變數8090轉換成網路位元組順序,初始化埠。
然後通過Swap_init_IPaddr將域名“arwah.uy1433.com”轉換為IP地址,然後初始化socket,然後通過函式connect連線該套接字。如下圖:
- 其中Swap_init_IPaddr,轉化IP的程式碼如圖:
獲取主機資訊併傳送致遠控伺服器
先與套接字建立連線,然後執行get_info_405150獲取主機資訊。包括版本資訊,記憶體大小,CPU資訊,以及介面卡資訊等。然後將這些資訊,通過套接字傳送到遠控伺服器上。
將獲取到的資料傳送給遠端伺服器,如下圖:
獲取到的主機資訊,如下圖:
- 其中get_info_405150獲取系統資訊函式,如下:
-
- 1.判斷當前作業系統版本
- 通過Getversion函式,獲取作業系統資訊,再根據獲取到的作業系統資訊,判斷當前作業系統的版本,如圖:
-
- 2.獲取CPU頻率
- 通過獲取登錄檔中的鍵值,來獲取CPU的頻率資訊。
-
- 3.獲取物理和虛擬記憶體資訊
- 通過GlobalMemoryStatsEx來獲取系統物理和虛擬記憶體資訊。
-
- 4.獲取介面卡資訊
- 通過GetAdaptersInfo檢索本地計算機的介面卡資訊,然後獲取到網路介面卡的網路資訊。
接收指令執行操作
建立死迴圈,通過呼叫receive_info_4036C8來接收遠控伺服器下發的指令,然後根據下發的指令進行相應的操作,如圖:
- 其中receive_info_4036C8函式,通過函式rec來接收遠控伺服器下發的指令或資料,如圖:
接收的指令為:0x10,下載並執行
當接收到是0x10時,通過URLDownloadToFileA將接收的資料寫入臨時資料夾下,並以系統自啟動以來的毫秒數來命名。當下載完後,執行下載後的程式。如圖:
接收的指令為:0x12,更新自身
先關閉之前建立的.Net CLR互斥體,通過URLDownloadToFileA將接收的資料寫入臨時資料夾下,並以隨機字串命名。然後關閉之前建立的.Net CLR服務,並刪除登錄檔項.Net CLR,然後再刪除自身,執行下載後的程式。這裡推測是更新自身。
- 關閉之前建立的互斥體如圖:
- 下載檔案,並以隨機字串命名如圖:
- 關閉服務如圖:
- 刪除登錄檔項和自身檔案,並執行下載後的檔案,如圖:
接收的指令為:0x14,開啟IE
開啟Iexplore.exe,並執行接收到的引數,初步推斷為訪問某些特殊的網站刷流量。如圖:
接受的指令為:0x06,刪除自身
先關閉之前建立的互斥體.Net CLR,關閉服務.NET CLR,然後再刪除登錄檔項.Net CLR,刪除自身,退出程式。
- 關閉互斥體,關閉服務,如圖:
- 刪除登錄檔項,刪除自身,退出程式,如圖:
接收的指令小於0x06時,進行DDOS攻擊
當收到的指令小於6時,再次進行switch case判斷。根據接收的引數,構造套接字,或是請求包頭來進行連線。推測是進行DDOS攻擊,如圖:
- 其中當接收的指令為:0x02,執行sub_4030A5,根據收到的資料,初始化不同的套接字,並最終都交由LABEL_29來建立迴圈,不斷進行連結,如圖:
-
其中當接收的指令為:0x03時,執行sub_4031F0,根據接收到的引數,構造請求包頭,並最終建立死迴圈不斷進行連線,如圖:
- 其中sub_406C60構造的比較特殊的請求包頭,如圖:
執行緒3:與執行緒2.1基本一樣,只是遠控伺服器地址為內網IP
執行緒3與執行緒2.1大體上都是一致的,唯一的區別在於遠控伺服器不再是arwah.uy1433.com,而變成了寫死的內網IP:192.168.1.107:83。而且該IP地址是通過解密函式獲取到的,如圖:
除黃色標識處不同外,其他部分都與執行緒2.1一致,這裡便不再分析。
0x02 樣本溯源
C&C伺服器 |
---|
arwah.uy1433.com |
192.168.1.107:83 |
0x03 查殺、防禦技術方案
關閉服務
由於該樣本設定了一個服務.Net CLR,所以首先先關閉服務,並刪除該服務。
修復登錄檔
由於上面提到的該樣本建立了服務,對登錄檔進行了修改,所以這裡需要對登錄檔進行修復,操作如下:
- 刪除登錄檔項HKEY_LOCAL_MACHINE\system\currentcontrolset\services.Net CLR中的所有內容。
刪除病毒檔案
-
刪除樣本本身。
-
刪除釋放出來的hra33.dll。
-
檢視下錶中的檔案路徑,若該檔案存在,則刪除。
拷貝的目標碟符: \10.95.16.1\admin$\g1fd.exe \10.95.16.1\c$\NewArean.exe \10.95.16.1\D$\g1fd.exe \10.95.16.1\E$\g1fd.exe \10.95.16.1\F$\g1fd.exe -
檢查臨時資料夾,是否存在以隨機數命名的檔案,且大小hash與該樣本一致,若存在直接刪除。
0x04 總結
這個樣本是一個遠控和蠕蟲病毒的結合體,釋放hra33.dll,由於該樣本無法正常跑起來,因此沒法詳細分析該釋放出來的hra33.dll。這次分析的蠕蟲病毒是通過初始化一個簡單的字典,通過爆破區域網內的主機來進行傳播的。並且該蠕蟲病毒可以通過C&C伺服器獲取指令,執行不同操作,主要操作有:下載檔案並執行,更新自身,DDOS攻擊等。
相關文章
- VNC遠控軟體,VNC遠控軟體有哪些?VNC
- 遠端監控Springboot JVMSpring BootJVM
- 如何玩轉andriod遠控(androrat)
- junkman 遠端堆疊監控
- 精密加工數控機床如何實現遠端監控和遠端上下載程式
- 電腦遠控Android手機方案Android
- Pcshare遠控原始碼偏重分析(一)原始碼
- 遠控介紹及介面編寫
- 影片監控遠端傳輸方案
- 另類遠控:木馬借道商業級遠控軟體的隱藏執行實現
- 電腦遠端連線 vps群控
- jvisualvm遠端監控Linux下的tomcatLVMLinuxTomcat
- 城市景觀智慧燈控系統如何遠端監控和控制
- 遠端控制軟體哪個好用?精選安全遠控軟體ToDesk
- PLC遠端監控有什麼方式?如何進行遠端上下載?
- Python實現遠端埠監控例項Python
- 開啟遠端桌面連線 vps群控
- rtop – 通過SSH監控遠端主機
- 遠端影片監控實現的條件
- 使用Metrics方法級遠端監控Java程式Java
- 數控磨床資料採集遠端監控物聯網系統
- 謹防遠端控制淪為詐騙工具,ToDesk安全遠控防詐提醒
- 智慧風電場視覺化 Web組態集控中心遠端監控視覺化Web
- 灌漿機遠端監控運維繫統運維
- 滲透測試-灰鴿子遠控木馬
- 工業閘道器應用分享:PLC遠端監控與遠端維護
- 情趣震動遙控智慧情趣解決方案/手機連線遠端遙控
- Windows應急響應-灰鴿子遠控木馬Windows
- 工業機器人遠端監控系統方案機器人
- 基於施耐德PLC的水位測控系統如何實現遠端監控上下載
- 工業物聯網解決方案:色選機遠端監控與遠端維護
- 物聯網雲平臺助力風機控制PLC遠端監控和遠端維護
- 暴雪、迪士尼大佬用什麼畫畫?RayLink遠控軟體助力解鎖遠端創作
- 國內遠控國外電腦,ToDesk安全不限速
- 工業裝置遠端監控與維護系統
- 智慧環保-汙水處理遠端監控解決方案
- 二次供水裝置遠端監控解決方案
- 移花接木大法:新型“白利用”華晨遠控木馬分析