Novter無檔案攻擊分析報告

江民科技發表於2019-10-28

1 病毒資訊

病毒名稱:Trojan.Script.akg

病毒型別:後門

MD5:08ac667c65d36d6542917655571e61c8

SHA1:5b24a3b32d9dba95b296a7a16cbcf50a7df2d196

檔案型別:EXE32位

檔案大小:84,992 位元組

傳播途徑:無主動傳播方式,由上一級下載

影響系統:winxp及以上系統

2 病毒概況

近期,江民赤豹安全實驗室捕獲到名為“Novter”的後門木馬,通過分析發現“Novter”是採用了無檔案攻擊技術,通過hta檔案釋放指令碼程式碼主要隱藏在登錄檔裡,並通過後門構成殭屍網路,隱蔽性較強,主要通過廣告流量欺詐獲利。

“Novter”並不是一款新的病毒,早在今年3月,赤豹安全實驗室就通過江民全球病毒樣本監測分析平臺截獲到Novter的樣本,其主要受害者分佈在美國和歐洲地區, 且仍在向更多地區傳播擴散,Novter利用CMSTPLUA COM介面來繞過UAC保護, 通過更改登錄檔禁止Windows Defender防護軟體以及windows自動更新, 建立BITS任務或更改登錄檔以實現持久化。

3 病毒行為摘要

3.1 檔案行為

  以下為正則語法, 除了<>, 表示變數, 另外病毒檔名符合[a-zA-Z0-9]{10}, 且隨機, 例如h1Jinr79hv, fHPqbx7WKY等.

建立C:\Documents and Settings\(<username>|All Users)\Application Data\[a-zA-Z0-9]{10}.hta

將%SystemRoot%\notepad.exe拷貝並重新命名為C:\Documents and Settings\<username>\Application Data\246765678

3.2 程式行為

  建立名為”Global\CreatorsPatch”的互斥體

  建立名為”76547890876578”的BITS任務

3.3 登錄檔行為

  建立登錄檔項(HKLM|HKCU)\Software(\Wow6432Node)?\[a-zA-Z0-9]{10}

  在上述項下建立3個值, 名字均符合[a-zA-Z0-9]{10}形式, 且名字看起來隨機.

  在上述項下建立2個值, 名字分別為: 194956, 2177774

  建立登錄檔值(HKLM|HKCU)\ SOFTWARE\Microsoft\Windows\CurrentVersion\Run 值名[a-zA-Z0-9]{10}, 內容為一個病毒hta檔案全路徑.

3.4 網路行為

  向C&C地址傳送HTTP請求並讀取返回資料, 具

體C&C列表見附錄(IOCs)

4 詳細分析報告

1) 檢查自身許可權, 根據不同許可權選擇並設定當前目錄為:

C:\Documents and Settings\<username>\Application Data 或

CSIDL_COMMON_APPDATA C:\Documents and Settings\All Users\Application Data

Novter無檔案攻擊分析報告 

後續步驟中提到的當前目錄即為此目錄

2) 遍歷系統程式名, 檢測是否有指定程式存在:

Novter無檔案攻擊分析報告 

比對時採用雜湊值比較, 雜湊演算法如下:

Novter無檔案攻擊分析報告 

要尋找的雜湊值:

Novter無檔案攻擊分析報告 

若發現存在, 以”p=p”為HTTP請求中可選欄位向185.243.114.111傳送資訊:

Novter無檔案攻擊分析報告 

之後執行緒永久休眠。

3) 在本程式中查詢指定模組名, 檢測是否有指定模組, 若發現則報告”p=m”, 執行緒永久休眠.

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

模組名雜湊:

Novter無檔案攻擊分析報告 

方式均與步驟2中類似

4) 檢測本機是否只有一個處理器, 若是, 則報告”p=c”, 執行緒永久休眠:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

5) 檢測本程式是否被除錯, 若是, 則報告”p=d”, 執行緒永久休眠:

Novter無檔案攻擊分析報告 

6) 檢測本程式的執行緒睡眠是否有效, 若無效, 則報告”p=s”, 執行緒永久休眠。

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

7) 啟用”SeTakeOwnershipPrivilege”許可權:

Novter無檔案攻擊分析報告 

8) 檢測當前許可權, 若許可權足夠, 則禁止windefender以及windows 更新:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

9) 建立執行緒, 向一個CC列表中的所有地址迴圈傳送心跳包, 總數為1800次, 每次操作完成睡眠一秒:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

CC列表, 其中的accl部分:

Novter無檔案攻擊分析報告 

10) 建立hta檔案, 儲存到當前目錄, 將本程式exe資料和一段內嵌ps指令碼, 一段內嵌js命令儲存到登錄檔中, 建立持續機制:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

這個鍵的會被建立在, 此鍵後續稱為鍵1:

對於64位系統: (HKLM|HKCU)\Software\Wow6432Node

對於32位系統: (HKLM|HKCU)\Software\

此處的名稱為隨機名稱, 均為10個字元長度, 每個字元可能為數字以及大小寫字母. hta,js,ps的內容由於變數名隨機故每次生成均不一樣, 不過不一樣的點也僅限於變數名.

持續機制有兩種情況, 在第一種情況失敗後會採用第二種情況:

1. 建立名為”76547890876578”的BITS任務, 設定回撥命令列執行:

C:\Windows\System32\cmd.exe /c “C:\ProgramData\h1Jinr79hv.hta” & exit 1

Novter無檔案攻擊分析報告 

2. 根據許可權在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run或HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下建立:

Novter無檔案攻擊分析報告 

 重啟後,由持續機制命令,執行hta檔案:

Novter無檔案攻擊分析報告 

如上圖所示, hta檔案最終讀取並執行(js Eval)儲存在登錄檔中的js程式碼:

Novter無檔案攻擊分析報告 

儲存在登錄檔中的js程式碼會執行一段ps程式碼:

Novter無檔案攻擊分析報告 

此ps程式碼的功能為, 讀取並執行儲存在登錄檔中的ps程式碼:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

而儲存在登錄檔中的ps程式碼的功能為, 將儲存在登錄檔中的PE檔案裝載到本程式空間並執行, 至此持續化機制達成.

這個過程, 將混淆後的程式碼分散儲存, 而執行時又能結合在一起, 單獨地去看或除錯某段程式碼, 就會有變數缺失的提示.

11) 判斷當前程式許可權, 若非管理員, 則使用CMSTPLUA COM介面過UAC得到管理員許可權:

Novter無檔案攻擊分析報告 

12) 建立執行緒, 每6小時更新cc地址列表:

Novter無檔案攻擊分析報告 

從步驟9中, “acll”部分的cc地址, 獲取資料:

Novter無檔案攻擊分析報告 

解析資料, 將配置資料儲存到鍵一, 名為194956:

Novter無檔案攻擊分析報告 

故accl主要用於cc控制, acll主要用於下發配置.

13) 收集本機資訊, 併傳送資訊到”accl”類伺服器:

Novter無檔案攻擊分析報告 

收集的資訊包括,系統資訊, cpu,gpu資訊, 反病毒產品資訊, 記憶體資訊, 本程式許可權資訊等等:

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

Novter無檔案攻擊分析報告 

14) 在步驟13傳送資訊後,可能會收到後門指令,如

Novter無檔案攻擊分析報告 

包含自身清理, 功能暫停/恢復, 下載額外模組並執行, 設定步驟13~14的迴圈間隔等.睡眠一段時間,預設為90分鐘,之後跳轉到13步驟進入下一輪活動.

此後門沒有在本機開啟任何埠,主要靠自身傳送HTTP請求,而連線的目標埠全是80或443埠,故隱蔽性較高。

5 總結

  該樣本的持久機制使用BITS後臺任務, 比較有特點且隱蔽, 另外後門的網路通訊均通過感染端主動發起HTTP請求方式, 也比較隱蔽, 能穿透內網。

值得注意的是, 若普通地啟動此程式, 會導致本程式崩潰以及部分功能不表達,原因有兩點:

i. 在sub_4014c6中, 作者為了消除記憶體中的hta,js,ps等檔案資料, 使用memset, 對照常來說處於全域性不可寫資料段的資料進行清零:

Novter無檔案攻擊分析報告 

從這裡可以看出, 此程式作者應該是確定此程式的資料段均可寫, 這個程式有自己的載入方式。

ii. 在呼叫COM介面之前, 本程式中並沒有任何一處位置呼叫CoInitialize或CoInitializeEx等函式, 也就會造成BITS介面呼叫失敗. 顯然, 根據本程式的水平, 作者不會犯這種錯誤, 那麼此程式被裝載進入的程式必定已經初始化。

6 附錄(IOCs)

6.1 HASH

  a82dd93585094aeba4363c5aeedd1a85ef72c60a03738b25d452a5d895313875

6.2 C&C

  185.243.114.111

{

"accl": ["http://95.70.244.209:80/", "https://13.228.224.121:443/", "http://54.241.31.99:80/", "https://103.31.4.11:443/", "http://103.31.4.54:80/", "https://198.41.128.74:443/", "http://198.41.128.55:80/", "https://131.0.72.36:443/", "http://131.0.72.59:80/", "https://188.114.96.87:443/", "http://188.114.96.116:80/", "https://43.250.192.98:443/", "http://43.250.192.87:80/", "https://217.160.231.125:443/", "http://208.91.197.25:80/", "https://184.168.221.42:443/", "http://103.224.248.219:80/", "https://31.31.196.120:443/", "http://217.160.223.93:80/", "https://103.224.248.219:443/", "http://184.168.221.45:80/", "https://119.28.87.235:443/", "http://23.227.38.32:80/", "https://50.63.202.39:443/", "http://216.239.34.21:80/", "https://83.243.58.172:443/", "http://5.9.41.178:80/", "https://88.198.26.25:443/", "http://62.75.189.110:80/", "https://109.239.101.62:443/", "http://107.186.67.4:80/", "https://184.168.221.63:443/", "http://45.55.154.177:80/", "https://104.28.2.169:443/", "http://202.56.240.5:80/", "https://89.163.255.171:443/", "http://94.23.149.42:80/", "https://216.230.250.157:443/", "http://45.199.82.121:80/", "https://59.45.30.31:443/", "http://88.180.45.155:80/", "https://118.244.233.215:443/", "http://93.158.208.54:80/", "https://198.54.115.200:443/", "http://104.27.166.154:80/", "https://72.52.179.174:443/", "http://192.64.117.82:80/", "https://184.168.131.241:443/", "http://162.159.208.24:80/", "https://162.159.211.43:443/", "http://43.250.188.148:80/", "https://180.97.158.168:443/", "http://39.106.211.3:80/", "https://114.215.147.176:443/", "http://121.42.27.82:80/", "https://104.206.30.104:443/", "http://182.92.10.105:80/", "https://142.111.192.173:443/", "http://107.179.127.9:80/", "https://154.82.66.116:443/", "http://23.80.172.4:80/", "https://104.203.174.8:443/", "http://162.159.211.36:80/", "https://154.90.118.219:443/", "http://121.41.7.197:80/", "https://182.50.129.67:443/", "http://138.68.20.141:80/", "https://212.67.221.148:443/", "http://45.192.35.108:80/", "https://45.199.44.27:443/", "http://170.178.171.30:80/", "https://60.191.249.41:443/", "http://104.27.154.139:80/", "https://58.177.211.62:443/", "http://122.152.198.216:80/", "https://95.216.235.93:443/", "http://59.149.207.62:80/", "https://103.193.149.210:443/", "http://124.248.238.238:80/", "https://173.231.22.201:443/", "http://124.248.238.238:80/", "https://202.160.153.229:443/", "http://103.28.45.182:80/", "https://125.65.113.89:443/", "http://104.216.99.237:80/", "https://204.11.56.48:443/", "http://37.48.66.73:80/", "https://121.43.159.95:443/", "http://170.106.74.143:80/", "https://218.5.79.45:443/", "http://61.191.55.96:80/", "https://23.107.65.82:443/", "http://121.40.82.109:80/", "https://121.40.39.164:443/", "http://107.151.228.56:80/", "https://117.27.136.53:443/", "http://211.149.174.17:80/", "https://198.255.0.138:443/", "http://89.163.255.171:80/", "https://45.77.99.198:443/", "http://185.195.27.234:80/", "https://89.163.255.171:443/", "http://46.105.62.98:80/", "https://121.40.128.87:443/", "http://178.33.249.44:80/", "https://23.225.123.173:443/", "http://89.163.255.171:80/", "https://23.107.141.103:443/", "http://198.54.117.200:80/", "https://28.15.32.1:443/", "http://89.163.255.171:80/", "https://89.163.255.171:443/", "http://23.225.123.173:80/", "https://89.163.255.171:443/", "http://198.54.117.200:80/", "https://176.9.24.233:443/", "http://54.38.115.133:80/", "https://199.59.242.150:443/", "http://107.151.161.154:80/", "https://61.93.205.106:443/", "http://61.196.178.246:80/", "https://61.196.178.248:443/", "http://61.238.122.149:80/", "https://61.244.8.97:443/", "http://89.163.255.171:80/", "https://89.163.255.171:443/", "http://118.89.159.251:80/", "https://23.27.38.248:443/", "http://118.190.206.114:80/", "https://103.200.116.116:443/", "http://202.181.26.176:80/", "https://141.8.225.31:443/", "http://199.59.242.151:80/"],

"acll": ["37.252.8.85:443", "37.252.10.66:443", "37.1.221.156:443", "5.61.42.103:443"],

"version": 1.0

}


相關文章