Trellix Insights: ManageEngine SupportCenter Plus Exploitation Leads to Data Exfiltration
Technical Articles ID:
KB95840
Last Modified: 2022-08-22 10:08:08 Etc/GMT
Last Modified: 2022-08-22 10:08:08 Etc/GMT
Environment
IMPORTANT: This Knowledge Base article discusses a specific threat that is being automatically tracked by Trellix Insights technology. The content is intended for use by Trellix Insights users, but is provided for general knowledge to all customers. Contact us for more information about Trellix Insights.
Summary
Description of Campaign
A threat actor exploited a remote code execution flaw in ManageEngine SupportCenter Plus and used a web shell and RDP to exfiltrate sensitive data. The actor also downloaded and renamed PuTTY Link (Plink) toekern.exe, and used the tool to tunnel RDP connections over SSH. The sensitive information gathered and exfiltrated included system information, credentials, and confidential files and folders.
Our ATR team gathers and analyzes information from multiple open and closed sources before disseminating intelligence reports. This campaign was researched by DFIR and shared publicly.
How to use this article:
This Knowledge Base article discusses a specific threat that's being tracked. The list of IOCs will change over time; check Trellix Insights for the latest IOCs.
Campaign IOC
Minimum set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Endpoint Security - Advanced Threat Protection:Rule ID: 5 Use GTI URL reputation to identify trusted or malicious processes
A threat actor exploited a remote code execution flaw in ManageEngine SupportCenter Plus and used a web shell and RDP to exfiltrate sensitive data. The actor also downloaded and renamed PuTTY Link (Plink) to
Our ATR team gathers and analyzes information from multiple open and closed sources before disseminating intelligence reports. This campaign was researched by DFIR and shared publicly.
How to use this article:
- Scroll down and review the Product Countermeasures section of this article. Consider implementing them if they are not already in place.
- Review the following articles:
meta: description = "Files - file msiexec.exe" author = "The DFIR Report" reference = "https://thedfirreport.com/2022/06/06/will-the-real-msiexec-please-stand-up-exploit-leads-to-data-exfiltration/" date = "2022-06-06" hash1 = "4d8f797790019315b9fac5b72cbf693bceeeffc86dc6d97e9547c309d8cd9baf" strings: $x1 = "C:\\Users\\Administrator\\msiexec\\msiexec\\msiexec\\obj\\x86\\Debug\\msiexec.pdb" fullword ascii $x2 = "M:\\work\\Shellll\\msiexec\\msiexec\\obj\\Release\\msiexec.pdb" fullword ascii $s2 = "..\\custom\\login\\fm2.jsp" fullword wide $s3 = "Qk1QDQo8JUBwYWdlIGltcG9ydD0iamF2YS51dGlsLnppcC5aaXBFbnRyeSIlPg0KPCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC56aXAuWmlwT3V0cHV0U3RyZWFtIiU+" wide $s4 = "Program" fullword ascii /* Goodware String - occured 194 times */ $s5 = "Encoding" fullword ascii /* Goodware String - occured 809 times */ $s6 = "base64EncodedData" fullword ascii /* Goodware String - occured 1 times */ $s7 = "System.Runtime.CompilerServices" fullword ascii /* Goodware String - occured 1950 times */ $s8 = "System.Reflection" fullword ascii /* Goodware String - occured 2186 times */ $s9 = "System" fullword ascii /* Goodware String - occured 2567 times */ $s10 = "Base64Decode" fullword ascii /* Goodware String - occured 3 times */ $s11 = "$77b5d0d3-047f-4017-a788-503ab92444a7" fullword ascii $s12 = " 2021" fullword wide $s13 = "RSDSv_" fullword ascii $s14 = "503ab92444a7" ascii $s15 = "q.#z.+" fullword wide condition: uint16(0) == 0x5a4d and filesize < 90KB and 1 of ($x*) and 4 of them } |
|
meta: description = "Files - file fm2.jsp" author = "The DFIR Report" reference = "https://thedfirreport.com/2022/06/06/will-the-real-msiexec-please-stand-up-exploit-leads-to-data-exfiltration/" date = "2022-06-06" hash1 = "8703f52c56b3164ae0becfc5a81bfda600db9aa6d0f048767a9684671ad5899b" strings: $s1 = " Process powerShellProcess = Runtime.getRuntime().exec(command);" fullword ascii $s2 = "out.write((\"User:\\t\"+exec(\"whoami\")).getBytes());" fullword ascii $s3 = "return new String(inutStreamToOutputStream(Runtime.getRuntime().exec(cmd).getInputStream()).toByteArray(),encoding);" fullword ascii $s4 = "out.println(\"<pre>\"+exec(request.getParameter(\"cmd\"))+\"</pre>\");" fullword ascii $s5 = "out.println(\"<tr \"+((i%2!=0)?\"bgcolor=\\\"#eeeeee\\\"\":\"\")+\"><td align=\\\"left\\\"> <a href=\\\"javascript:ge" ascii $s6 = "out.println(\"<h1>Command execution:</h1>\");" fullword ascii $s7 = " String command = \"powershell.exe \" + request.getParameter(\"cmd\");" fullword ascii $s8 = "shell(request.getParameter(\"host\"), Integer.parseInt(request.getParameter(\"port\")));" fullword ascii $s9 = "out.write(exec(new String(b,0,a,\"UTF-8\").trim()).getBytes(\"UTF-8\"));" fullword ascii $s10 = "static void shell(String host,int port) throws UnknownHostException, IOException{" fullword ascii $s11 = " powerShellProcess.getErrorStream()));" fullword ascii $s12 = "encoding = isNotEmpty(getSystemEncoding())?getSystemEncoding():encoding;" fullword ascii $s13 = " // Executing the command" fullword ascii $s14 = ".getName()+\"\\\"><tt>download</tt></a></td><td align=\\\"right\\\"><tt>\"+new SimpleDateFormat(\"yyyy-MM-dd hh:mm:ss\").format(" ascii $s15 = "String out = exec(cmd);" fullword ascii $s16 = "static String exec(String cmd) {" fullword ascii $s17 = " powerShellProcess.getInputStream()));" fullword ascii $s18 = "response.setHeader(\"Content-Disposition\", \"attachment; filename=\"+fileName);" fullword ascii $s19 = "out.println(\"<pre>\"+auto(request.getParameter(\"url\"),request.getParameter(\"fileName\"),request.getParameter(\"cmd\"))+\"</p" ascii $s20 = " powerShellProcess.getOutputStream().close();" fullword ascii condition: uint16(0) == 0x4d42 and filesize < 30KB and 8 of them } |
This Knowledge Base article discusses a specific threat that's being tracked. The list of IOCs will change over time; check Trellix Insights for the latest IOCs.
Campaign IOC
Type | Value |
Minimum set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Endpoint Security - Advanced Threat Protection: