【安全研究】關於explorer一鍵挖礦病毒的分析研究
08-19
【安全研究】關於explorer一鍵挖礦病毒的分析研究
三、Powershell木馬代碼審計木馬powershell腳本開頭定義了參數集,默認使用參數集Setup
4 、配置服務運行賬戶,默認為LocalSystem。5、嘗試從c:windowsfontsarialconfig.xml配置文件中讀取配置,若配置文件不存在,嘗試從c:windowsSoftwareDistributionconfig.xml複製過來,若都不存在,則使用下列地址配置挖礦賬戶和礦池。
初始化探測反木馬軟體、探測防火牆等配置如果有域,則使用域後門機制
6、本地後門文件隱藏如果不存在文件c:windowsSoftwareDistributionconfig.xml、C:Windowsfontsarialconfig.xml,不存在隱藏文件夾C:Windowsfontsarial則創建文件夾C:Windowsfontsarial7、設置讀取礦機WEBUI內配置信息解析格式,以供後續使用8、修改計算機註冊表HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftDriversPath從上述第三個步驟開始進入另外一個進程分支,即服務模式運行,即-SCM參數啟動腳本Service段代碼被加密,將代碼中的iex改為echo,解密後分析其執行代碼結構。1、通過bios信息判斷機器是否是虛擬機,如果是,是哪種,不是則為物理機2、排除掉自己的挖礦進程外,幹掉挖礦競爭對手,即帶有關鍵字xmr、miner、programdata
ew、programdatawin、programdataWindow、programdataWindows等進程。3、判斷域名內是否帶有*csd*、*CSP*、*SERVER-BI*、環境變數$env:COMPUTERNAME、*WIN-IT9E5B2V9AE*、*IT9E5B*、*xzspn*、*dtlab*,若有則測試127.0.0.1:5650tcp埠是否打開,如果沒有打開探測路徑C:Program Files (x86)Remote Manipulator System - Host,如果有就刪除C:Program Files (x86)Remote Manipulator System - Host,然後下載http://185.48.59.45/uni/RMS.exe到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;如果IP為212.16.70.23然後下載http://185.48.59.45/uni/RMS.exe到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;4、請求dns,』http://msupdate.info』,若無響應則連接伺服器為$ms = "185.48.59.45"5、刪除計劃任務6、查找路徑7、停止進程*JavaCu*8、如果存在sc_nmap服務,則刪除$env:windirSystem32sc_snmp.ps1腳本和sc_nmap服務;查找進程路徑名為*sc_service*、*snmp_reciever*、進程路徑名為*sc_snmp.ps1*的進程並強行停止。9、查看防火牆規則相關服務,並將其規則文件$env:windirSystem32firewall_rules.ps1和服務刪除firewall_rules10、終止Windows更新進程命令行為:*windowsupdate.ps1*11、如果存在sc_snmp或firewall_rules服務,獲取驅動路徑註冊表HKLM:SYSTEMSoftwareMicrosoftDriversPath中restart項,若無restart則新建鍵,其值為0;如果restart值為3則刪除restart鍵值。請求計劃任務*start service*,如果存在則刪除;創建計劃任務Start Service,一分鐘之後執行任務計劃,運行服務。$data = (get-date).AddMinutes(1).ToString("HH:mm")schtasks /create /TN "Start Service" /TR "net start cspsvc" /SC ONCE /V1 /Z /ru System /ST $data12、如果不存在sc_snmp和firewall_rules服務,若存在任務計劃名如*start service*,將其刪除。如果不存在目錄$env:windirfontsarial,但存在$env:windirSoftwareDistributionconfig.xml,則將config.xml複製到$env:windirfontsarial。若都不存在,則在arial目錄新建config.xml,將礦機配置信息寫入13、如果存在C:WindowsSoftwareDistributionwindows.log,獲取config.xml中AV變數,默認為1,則默認設定認為反木馬軟體不存在。添加防火牆排除項。若設定手工設定為0,則認為反木馬軟體存在,若機器不是伺服器,判斷其防火牆類型是windows defender或System Center Endpoint Protection,接著添加掃描排除項。針對部分域,做了特定的識別。14、如果認定反木馬軟體不存在,設定礦機路徑為c:windowsfonts tf,常用路徑為c:windowsfontsarial,臨時路徑為c:windowsfonts emp。如果有域,則檢查域內後門是否存在\$domainsysvol$domainPolicies,接著設置註冊表,將WDigest身份認證緩存在內存。15、fw默認設置為0,若手工設置為1,則設置地圖服務Mapsvc自動運行。防火牆規則開啟3389,並且遠程連接地址添加"185.48.59.0/24,$ips.0.0.0/8"$ips為IP的A段。這樣就可以使所有處於內網地址的基本都可以連接。16、Psw為賬戶選項,默認值為0,提供Psw參數為賬戶密碼,並提供了group參數,且如果是管理員則利用WINNT組件添加用戶並添加為可登錄用戶17、礦池伺服器80埠若是開啟,則開啟757埠代理轉發http://msupdate.info,並且703埠也代理轉發到伺服器185.48.59.50:80757埠為代理礦池伺服器下載轉發埠,703埠為礦池連接進行挖礦流量轉發埠。若無法連接互聯網,若為域則從域後門複製dll到$env:windirFontsarial,若域為*mi3g*,則連接代理埠192.168.10.99:14445,若能連接C2則設定該代理IP為代理伺服器。若存在文件api-ms-win-core-console-l2-2-0.dll,其內容為代理伺服器列表。18、更新礦機訪問http://msupdate.info/uni/MD5/explorerx64.exe.md5,獲取最新礦機、木馬ps1腳本MD5值,然後對比本地礦機、木馬ps1腳本MD5值決定是否更新,若有更新,則創建任務計劃」update」將文件下載到c:windowsfonts emp,然後覆蓋舊文件。更新辦法:19、根據硬體UUID,判斷硬體性能,選擇挖礦模式20、測試連接礦池703埠,poolstemp.txt來源於pools.txt,根據配置和礦池連通性,從中選取一條配置,創建配置信息$GeneralPathconfig.json。21、接著再釋放一段加密代碼,到c:windowssystem32driversen-USGpCheck.ps1,同上面方法,代碼中的iex改為echo,解密代碼,發現其作用是維護更新文件、埠轉發、防火牆策略、測試礦池連通性等。22、寫入xml文件到c:windowsfont emp ask.xml,該文件作用是利用任務計劃創建gpcheck,調用gpcheck.ps123、釋放加密代碼到c:windowsSystem32driversWmiPrvSE.ps1,同上方法解密其代碼首先使用wmi創建了挖礦進程 c:windowsFonts tfexplorer.exe一旦發現分析工具,則中止挖礦進程24、再次釋放了一個精簡版gpcheck.ps1,其主要功能不變但精簡了不少檢查。從第23個步驟開始進入explorer挖礦分支,礦機會監聽999埠,通過本地訪問可以獲得礦機狀態信息。賬戶adm,密碼14370四、IOCSURLhttp://msupdate.info/uni/explorerx64.exehttp://msupdate.info/uni/explorerx86.exehttp://msupdate.info/uni/visual.ziphttp://msupdate.info/test.txthttp://msupdate.info/uni/MD5/explorerx64.exe.MD5http://msupdate.info/uni/MD5/explorerx86.exe.MD5http://msupdate.info/uni/MD5/explorerx86.exe.md5http://msupdate.info/uni/MD5/explorerx64.exe.md5FileC:WindowsFontsarialC:WindowsFontsLogsC:WindowsFonts empC:WindowsFonts tfc:windowsSoftwareDistributionconfig.xmlc:windowssystem32driversen-USGpCheck.ps1c:windowsSystem32driversWmiPrvSE.ps1C:WindowsSystem32driversetcservicesC:WindowsSystem32driversetcprotocolC:WindowsSystem32driversetc
etworksC:WindowsSystem32driversetclmhosts.samC:WindowsSystem32driversetchostsDomain/Iphttp://msupdate.info(185.48.59.45:80)185.48.59.52:34444185.48.59.51:24444185.48.59.50:14444wallet47am2aMvQqCLnRBMqBzXfgfuUMKZhBY3SgY45xV6ikJWXDJ5NLtKq3DPGm1sqiuen1YCE1Ak6nwdg3sx8n6rXpWLF4mFpwq4BEUrVUbd8h579R2b87uoGRjyDMTGirQaYazVdnLZuwCN2S8SNDzviCL8YDdsPoCKR5EfHWAYYK5xRU1JprZ2v8MP4siP8742XyygMzMRjd6A2MvPVXMGbZ6PzNe7Sivd8ek3ySHBmg18dDCWRhCZ6RFxVZFFUvoyCDnwA5Y2tSeSCaZAEq4n6q6DD8pQK追蹤:查詢礦池代理伺服器為俄羅斯IP,伺服器也是俄語操作系統所有IP都屬同一個C段,相信這至少是一個長期的據點。五、處置方案1、進程清理清理轉發規則:Powershell運行以下命令Start-Process PowerShell.exe -ArgumentList("-c &{netsh interface portproxy delete v4tov4 listenport=757;netsh interface portproxy delete v4tov4 listenport=703;pause}") -Verb runas清理帶有System32driversWmiPrvSE.ps1文件路徑的進程(可能已經退出)2、註冊表清理病毒配置:HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftDriversPath防火牆配置清除檢查防火牆配置HKLM:SOFTWAREPoliciesMicrosoftWindows DefenderExclusions將防火牆策略配置修改為正常狀態修改HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigestUseLogonCredential 為0為03、文件清理刪除目錄及文件C:WindowsFontsarialC:WindowsFontsLogsC:WindowsFonts empC:WindowsFonts tfc:windowsSoftwareDistributionconfig.xmlc:windowssystem32driversen-USGpCheck.ps1c:windowsSystem32driversWmiPrvSE.ps1C:WindowsSystem32driversetcservicesC:WindowsSystem32driversetcprotocolC:WindowsSystem32driversetc
etworksC:WindowsSystem32driversetclmhosts.samC:WindowsSystem32driversetchosts若為域則要清除\$domainsysvol$domainPolicies及其子目錄下的explorer.exe正常情況下文件資源管理器是看不到logs目錄的,而且顯示了隱藏文件夾(win10和winserver2008下)也看不到,但可以在cmd或者powershell可以探測到使用PCHUNTER強行刪除,或者進入安全模式下刪除,或者使用強力的殺毒軟體對指定目錄進行清除。4、服務清理服務名cspsvc,顯示名為Cryptographic Service Providers。5、任務計劃清理任務計劃GpCheck6、批量排查Nmap批量掃描999埠賬戶adm,密碼143707.主機病毒木馬檢測
推薦閱讀:
近期我們的海青安全研究實驗室捕獲了一個新的挖礦木馬樣本,目前網路上還未見到關於它的分析。與以往的木馬相比,這次捕獲的樣本有了不小的「進化」:手段更加隱蔽,清除更加困難。我們對它的各項特點進行了分析,希望給行業內帶來針對此類木馬的新的認識,進而發掘更有效的防護措施。
一、木馬簡介業務環境:powershellv3及以上版本(v1/v2未測試)二、木馬特點1. 純powershell編寫挖礦前置腳本,不是像以前那種使用批處理等簡單挖礦了,使用一系列持久化機制,保證自身挖礦功能;
2. 探測防火牆,探測虛擬機,探測反木馬軟體,進行對應的行為;3. 修改防火牆及反木馬軟體配置及策略,避免一些防護軟體掃描,以及防火牆將挖礦鏈接阻斷;4. 緩存認證密碼,可選增加用戶等機制;5. 使用代理中轉連接,每個肉雞都是代理伺服器,增加了追蹤溯源難度;6. 使用更新維護機制,若不清除乾淨,會常常複發;7. 系統隱藏目錄存放文件,且很難清除;8. 清除競爭對手,保證自己利益最大化;9. 使用涉及各方面技術較多。執行流程
對應文件功能網路代理方式給腳本基本變數賦值,腳本名、腳本路徑、服務名等。
輸出木馬版本為2017-12-10自定義函數$argv0 = Get-Item $MyInvocation.MyCommand.Definition //獲取當前運行目錄根據啟動參數執行對應命令
首先默認執行的是setup1、獲取系統類型架構2、比較安裝目錄與執行目錄腳本時間差,判斷是否更新服務3、創建服務運行機制
$source變數保存的是服務主函數,之後會將$source變數中的源代碼編譯成二進位程序編譯位二進位程序cspsvc.exe(程序名隨編譯的腳本名改變而改變)。其功能是註冊服務,註冊服務後cspsvc.exe作用是帶參數-SCMStart啟動cspsvc.ps1腳本後,-SCMStart啟動功能是重新以管理員許可權運行cspsvc.ps1腳本ew、programdatawin、programdataWindow、programdataWindows等進程。3、判斷域名內是否帶有*csd*、*CSP*、*SERVER-BI*、環境變數$env:COMPUTERNAME、*WIN-IT9E5B2V9AE*、*IT9E5B*、*xzspn*、*dtlab*,若有則測試127.0.0.1:5650tcp埠是否打開,如果沒有打開探測路徑C:Program Files (x86)Remote Manipulator System - Host,如果有就刪除C:Program Files (x86)Remote Manipulator System - Host,然後下載http://185.48.59.45/uni/RMS.exe到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;如果IP為212.16.70.23然後下載http://185.48.59.45/uni/RMS.exe到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;4、請求dns,』http://msupdate.info』,若無響應則連接伺服器為$ms = "185.48.59.45"5、刪除計劃任務6、查找路徑7、停止進程*JavaCu*8、如果存在sc_nmap服務,則刪除$env:windirSystem32sc_snmp.ps1腳本和sc_nmap服務;查找進程路徑名為*sc_service*、*snmp_reciever*、進程路徑名為*sc_snmp.ps1*的進程並強行停止。9、查看防火牆規則相關服務,並將其規則文件$env:windirSystem32firewall_rules.ps1和服務刪除firewall_rules10、終止Windows更新進程命令行為:*windowsupdate.ps1*11、如果存在sc_snmp或firewall_rules服務,獲取驅動路徑註冊表HKLM:SYSTEMSoftwareMicrosoftDriversPath中restart項,若無restart則新建鍵,其值為0;如果restart值為3則刪除restart鍵值。請求計劃任務*start service*,如果存在則刪除;創建計劃任務Start Service,一分鐘之後執行任務計劃,運行服務。$data = (get-date).AddMinutes(1).ToString("HH:mm")schtasks /create /TN "Start Service" /TR "net start cspsvc" /SC ONCE /V1 /Z /ru System /ST $data12、如果不存在sc_snmp和firewall_rules服務,若存在任務計劃名如*start service*,將其刪除。如果不存在目錄$env:windirfontsarial,但存在$env:windirSoftwareDistributionconfig.xml,則將config.xml複製到$env:windirfontsarial。若都不存在,則在arial目錄新建config.xml,將礦機配置信息寫入13、如果存在C:WindowsSoftwareDistributionwindows.log,獲取config.xml中AV變數,默認為1,則默認設定認為反木馬軟體不存在。添加防火牆排除項。若設定手工設定為0,則認為反木馬軟體存在,若機器不是伺服器,判斷其防火牆類型是windows defender或System Center Endpoint Protection,接著添加掃描排除項。針對部分域,做了特定的識別。14、如果認定反木馬軟體不存在,設定礦機路徑為c:windowsfonts tf,常用路徑為c:windowsfontsarial,臨時路徑為c:windowsfonts emp。如果有域,則檢查域內後門是否存在\$domainsysvol$domainPolicies,接著設置註冊表,將WDigest身份認證緩存在內存。15、fw默認設置為0,若手工設置為1,則設置地圖服務Mapsvc自動運行。防火牆規則開啟3389,並且遠程連接地址添加"185.48.59.0/24,$ips.0.0.0/8"$ips為IP的A段。這樣就可以使所有處於內網地址的基本都可以連接。16、Psw為賬戶選項,默認值為0,提供Psw參數為賬戶密碼,並提供了group參數,且如果是管理員則利用WINNT組件添加用戶並添加為可登錄用戶17、礦池伺服器80埠若是開啟,則開啟757埠代理轉發http://msupdate.info,並且703埠也代理轉發到伺服器185.48.59.50:80757埠為代理礦池伺服器下載轉發埠,703埠為礦池連接進行挖礦流量轉發埠。若無法連接互聯網,若為域則從域後門複製dll到$env:windirFontsarial,若域為*mi3g*,則連接代理埠192.168.10.99:14445,若能連接C2則設定該代理IP為代理伺服器。若存在文件api-ms-win-core-console-l2-2-0.dll,其內容為代理伺服器列表。18、更新礦機訪問http://msupdate.info/uni/MD5/explorerx64.exe.md5,獲取最新礦機、木馬ps1腳本MD5值,然後對比本地礦機、木馬ps1腳本MD5值決定是否更新,若有更新,則創建任務計劃」update」將文件下載到c:windowsfonts emp,然後覆蓋舊文件。更新辦法:19、根據硬體UUID,判斷硬體性能,選擇挖礦模式20、測試連接礦池703埠,poolstemp.txt來源於pools.txt,根據配置和礦池連通性,從中選取一條配置,創建配置信息$GeneralPathconfig.json。21、接著再釋放一段加密代碼,到c:windowssystem32driversen-USGpCheck.ps1,同上面方法,代碼中的iex改為echo,解密代碼,發現其作用是維護更新文件、埠轉發、防火牆策略、測試礦池連通性等。22、寫入xml文件到c:windowsfont emp ask.xml,該文件作用是利用任務計劃創建gpcheck,調用gpcheck.ps123、釋放加密代碼到c:windowsSystem32driversWmiPrvSE.ps1,同上方法解密其代碼首先使用wmi創建了挖礦進程 c:windowsFonts tfexplorer.exe一旦發現分析工具,則中止挖礦進程24、再次釋放了一個精簡版gpcheck.ps1,其主要功能不變但精簡了不少檢查。從第23個步驟開始進入explorer挖礦分支,礦機會監聽999埠,通過本地訪問可以獲得礦機狀態信息。賬戶adm,密碼14370四、IOCSURLhttp://msupdate.info/uni/explorerx64.exehttp://msupdate.info/uni/explorerx86.exehttp://msupdate.info/uni/visual.ziphttp://msupdate.info/test.txthttp://msupdate.info/uni/MD5/explorerx64.exe.MD5http://msupdate.info/uni/MD5/explorerx86.exe.MD5http://msupdate.info/uni/MD5/explorerx86.exe.md5http://msupdate.info/uni/MD5/explorerx64.exe.md5FileC:WindowsFontsarialC:WindowsFontsLogsC:WindowsFonts empC:WindowsFonts tfc:windowsSoftwareDistributionconfig.xmlc:windowssystem32driversen-USGpCheck.ps1c:windowsSystem32driversWmiPrvSE.ps1C:WindowsSystem32driversetcservicesC:WindowsSystem32driversetcprotocolC:WindowsSystem32driversetc
etworksC:WindowsSystem32driversetclmhosts.samC:WindowsSystem32driversetchostsDomain/Iphttp://msupdate.info(185.48.59.45:80)185.48.59.52:34444185.48.59.51:24444185.48.59.50:14444wallet47am2aMvQqCLnRBMqBzXfgfuUMKZhBY3SgY45xV6ikJWXDJ5NLtKq3DPGm1sqiuen1YCE1Ak6nwdg3sx8n6rXpWLF4mFpwq4BEUrVUbd8h579R2b87uoGRjyDMTGirQaYazVdnLZuwCN2S8SNDzviCL8YDdsPoCKR5EfHWAYYK5xRU1JprZ2v8MP4siP8742XyygMzMRjd6A2MvPVXMGbZ6PzNe7Sivd8ek3ySHBmg18dDCWRhCZ6RFxVZFFUvoyCDnwA5Y2tSeSCaZAEq4n6q6DD8pQK追蹤:查詢礦池代理伺服器為俄羅斯IP,伺服器也是俄語操作系統所有IP都屬同一個C段,相信這至少是一個長期的據點。五、處置方案1、進程清理清理轉發規則:Powershell運行以下命令Start-Process PowerShell.exe -ArgumentList("-c &{netsh interface portproxy delete v4tov4 listenport=757;netsh interface portproxy delete v4tov4 listenport=703;pause}") -Verb runas清理帶有System32driversWmiPrvSE.ps1文件路徑的進程(可能已經退出)2、註冊表清理病毒配置:HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftDriversPath防火牆配置清除檢查防火牆配置HKLM:SOFTWAREPoliciesMicrosoftWindows DefenderExclusions將防火牆策略配置修改為正常狀態修改HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigestUseLogonCredential 為0為03、文件清理刪除目錄及文件C:WindowsFontsarialC:WindowsFontsLogsC:WindowsFonts empC:WindowsFonts tfc:windowsSoftwareDistributionconfig.xmlc:windowssystem32driversen-USGpCheck.ps1c:windowsSystem32driversWmiPrvSE.ps1C:WindowsSystem32driversetcservicesC:WindowsSystem32driversetcprotocolC:WindowsSystem32driversetc
etworksC:WindowsSystem32driversetclmhosts.samC:WindowsSystem32driversetchosts若為域則要清除\$domainsysvol$domainPolicies及其子目錄下的explorer.exe正常情況下文件資源管理器是看不到logs目錄的,而且顯示了隱藏文件夾(win10和winserver2008下)也看不到,但可以在cmd或者powershell可以探測到使用PCHUNTER強行刪除,或者進入安全模式下刪除,或者使用強力的殺毒軟體對指定目錄進行清除。4、服務清理服務名cspsvc,顯示名為Cryptographic Service Providers。5、任務計劃清理任務計劃GpCheck6、批量排查Nmap批量掃描999埠賬戶adm,密碼143707.主機病毒木馬檢測
推薦閱讀:
※需要去小行星挖礦嗎?地球內部就有超過一萬億噸鑽石,只不過……
※管中窺豹,從ofo綠色挖礦看GSE共享生態大布局
※NIMIQ - 幣圈冉冉升起的新星
※可以瓜分1000萬的糖果了
※礦工該不該去VICTEX?