By virtue of their exposure, Internet-facing systems (i.e., systems which have ports open/exposed to the wider Internet) are particularly susceptible to compromise. Attackers typically compromise Internet-facing systems by exploiting zero-day vulnerabilities in applications they run. During 2021, critical zero-day vulnerabilities in the following applications were publicly disclosed:
- Microsoft Exchange
- Confluence
- GitLab
- Log4j-using applications
Internet-facing systems running these applications were consequently heavily targeted by attackers. In this post, we will provide examples of compromises of these systems observed by Darktrace’s SOC team in 2021. As will become clear, successful exploitation of weaknesses in Internet-facing systems inevitably results in such systems doing things which they do not normally do. Rather than focusing on identifying attempts to exploit these weaknesses, Darktrace focuses on identifying the unusual behaviors which inevitably ensue. The purpose of this post is to highlight the effectiveness of this approach.
Exchange server compromise
In January, researchers from the cyber security company DEVCORE reported a series of critical vulnerabilities in Microsoft Exchange which they dubbed ‘ProxyLogon’.[1] ProxyLogon consists of a server-side request forgery (SSRF) vulnerability (CVE-2021-26855) and a remote code execution (RCE) vulnerability (CVE-2021-27065). Attackers were observed exploiting these vulnerabilities in the wild from as early as January 6.[2] In April, DEVCORE researchers reported another series of critical vulnerabilities in Microsoft Exchange which they dubbed ‘ProxyShell’.[3] ProxyShell consists of a pre-authentication path confusion vulnerability (CVE-2021-34473), a privilege elevation vulnerability (CVE-2021-34523), and a post-authentication RCE vulnerability (CVE-2021-31207). Attackers were first observed exploiting these vulnerabilities in the wild in August.[4] In many cases, attackers exploited the ProxyShell and ProxyLogon vulnerabilities in order to create web shells on the targeted Exchange servers. The presence of these web shells provided attackers with the means to remotely execute commands on the compromised servers.
In early August 2021, by exploiting the ProxyShell vulnerabilities, an attacker gained the rights to remotely execute PowerShell commands on an Internet-facing Exchange server within the network of a US-based transportation company. The attacker subsequently executed a number of PowerShell commands on the server. One of these commands caused the server to make a 28-minute-long SSL connection to a highly unusual external endpoint. Within a couple of hours, the attacker managed to strengthen their foothold within the network by installing AnyDesk and CobaltStrike on several internal devices. In mid-August, the attacker got the devices on which they had installed Cobalt Strike to conduct network reconnaissance and to transfer terabytes of data to the cloud storage service, MEGA. At the end of August, the attacker got the devices on which they had installed AnyDesk to execute Conti ransomware and to spread executable files and script files to further internal devices.
In this example, the attacker’s exploitation of ProxyShell immediately resulted in the Exchange Server making a long SSL connection to an unusual external endpoint. This connection caused the model Device / Long Agent Connection to New Endpoint to breach. The subsequent reconnaissance, lateral movement, C2, external data transfer, and encryption behavior brought about by the attacker were also picked up by Darktrace’s models.
A non-exhaustive list of the models that breached as a result of the behavior brought about by the attacker:
- Device / Long Agent Connection to New Endpoint
- Device / ICMP Address Scan
- Anomalous Connection / SMB Enumeration
- Anomalous Server Activity / Outgoing from Server
- Compromise / Beacon to Young Endpoint
- Anomalous Server Activity / Rare External from Server
- Compromise / Fast Beaconing to DGA
- Compromise / SSL or HTTP Beacon
- Compromise / Sustained SSL or HTTP Increase
- Compromise / Beacon for 4 Days
- Anomalous Connection / Multiple HTTP POSTs to Rare Hostname
- Unusual Activity / Enhanced Unusual External Data Transfer
- Anomalous Connection / Data Sent to Rare Domain
- Anomalous Connection / Uncommon 1 GiB Outbound
- Compliance / SMB Drive Write
- Anomalous File / Internal / Additional Extension Appended to SMB File
- Anomalous Connection / Suspicious Read Write Ratio
- Anomalous Connection / Suspicious Read Write Ratio and Unusual SMB
- Anomalous Connection / Sustained MIME Type Conversion
- Unusual Activity / Anomalous SMB Move & Write
- Unusual Activity / Unusual Internal Data Volume as Client or Server
- Device / Suspicious File Writes to Multiple Hidden SMB Shares
- Compromise / Ransomware / Suspicious SMB Activity
- Anomalous File / Internal / Unusual SMB Script Write
- Anomalous File / Internal / Masqueraded Executable SMB Write
- Device / SMB Lateral Movement
- Device / Multiple Lateral Movement Model Breaches
Confluence server compromise
Atlassian’s Confluence is an application which provides the means for building collaborative, virtual workspaces. In the era of remote working, the value of such an application is undeniable. The public disclosure of a critical remote code execution (RCE) vulnerability (CVE-2021-26084) in Confluence in August 2021 thus provided a prime opportunity for attackers to cause havoc. The vulnerability, which arises from the use of Object-Graph Navigation Language (OGNL) in Confluence’s tag system, provides attackers with the means to remotely execute code on vulnerable Confluence server by sending a crafted HTTP request containing a malicious parameter.[5] Attackers were first observed exploiting this vulnerability towards the end of August, and in the majority of cases, attackers exploited the vulnerability in order to install crypto-mining tools onto vulnerable servers.[6]
At the beginning of September 2021, an attacker was observed exploiting CVE-2021-26084 in order to install the crypto-mining tool, XMRig, as well as a shell script, onto an Internet-facing Confluence server within the network of an EMEA-based television and broadcasting company. Within a couple of hours, the attacker installed files associated with the crypto-mining malware, Kinsing, onto the server. The Kinsing-infected server then immediately began to communicate over HTTP with the attacker’s C2 infrastructure. Around the time of this activity, the server was observed using the MinerGate crypto-mining protocol, indicating that the server had begun to mine cryptocurrency.
In this example, the attacker’s exploitation of CVE-2021-26084 immediately resulted in the Confluence server making an HTTP GET request with an unusual user-agent string (one associated with curl in this case) to a rare external IP. This behavior caused the models Device / New User Agent, Anomalous Connection / New User Agent to IP Without Hostname, and Anomalous File / Script from Rare Location to breach. The subsequent file downloads, C2 traffic and crypto-mining activity also resulted in several models breaching.
A non-exhaustive list of the models which breached as a result of the unusual behavior brought about by the attacker:
- Device / New User Agent
- Anomalous Connection / New User Agent to IP Without Hostname
- Anomalous File / Script from Rare Location
- Anomalous File / EXE from Rare External Location
- Anomalous File / Internet Facing System File Download
- Device / Initial Breach Chain Compromise
- Anomalous Connection / Posting HTTP to IP Without Hostname
- Compliance / Crypto Currency Mining Activity
- Compromise / High Priority Crypto Currency Mining
- Device / Internet Facing Device with High Priority Alert
GitLab server compromise
GitLab is an application providing services ranging from project planning to source code management. Back in April 2021, a critical RCE vulnerability (CVE-2021-22205) in GitLab was publicly reported by a cyber security researcher via the bug bounty platform, HackerOne.[7] The vulnerability, which arises from GitLab’s use of ExifTool for removing metadata from image files, [8] enables attackers to remotely execute code on vulnerable GitLab servers by uploading specially crafted image files.[9] Attackers were first observed exploiting CVE-2021-22205 in the wild in June/July.[10] A surge in exploitations of the vulnerability was observed at the end of October, with attackers exploiting the flaw in order to assemble botnets.[11] Darktrace observed a significant number of cases in which attackers exploited the vulnerability in order to install crypto-mining tools onto vulnerable GitLab servers.
On October 29, an attacker successfully exploited CVE-2021-22205 on an Internet-facing GitLab server within the network of a UK-based education provider. The organization was trialing Darktrace when this incident occurred. The attacker installed several executable files and shell scripts onto the server by exploiting the vulnerability. The attacker communicated with the compromised server (using unusual ports) for several days, before making the server transfer large volumes of data externally and download the crypto-mining tool, XMRig, as well as the botnet malware, Mirai. The server was consequently observed making connections to the crypto-mining pool, C3Pool.
In this example, the attacker’s exploitation of the vulnerability in GitLab immediately resulted in the server making an HTTP GET request with an unusual user-agent string (one associated with Wget in this case) to a rare external IP. The models Anomalous Connection / New User Agent to IP Without Hostname and Anomalous File / EXE from Rare External Location breached as a result of this behavior. The attacker’s subsequent activity on the server over the next few days resulted in frequent model breaches.
A non-exhaustive list of the models which breached as a result of the attacker’s activity on the server:
- Anomalous Connection / New User Agent to IP Without Hostname
- Anomalous File / EXE from Rare External Location
- Anomalous File / Multiple EXE from Rare External Locations
- Anomalous File / Internet Facing Device with High Priority Alert
- Anomalous File / Script from Rare Location
- Anomalous Connection / Application Protocol on Uncommon Port
- Anomalous Connection / Anomalous SSL without SNI to New External
- Device / Initial Breach Chain Compromise
- Unusual Activity / Unusual External Data to New IPs
- Anomalous Server Activity / Outgoing from Server
- Device / Large Number of Model Breaches from Critical Network Device
- Anomalous Connection / Data Sent to Rare Domain
- Compromise / Suspicious File and C2
- Unusual Activity / Enhanced Unusual External Data Transfer
- Compliance / Crypto Currency Mining Activity
- Compliance / High Priority Crypto Currency Mining
- Anomalous File / Zip or Gzip from Rare External Location
- Compromise / Monero Mining
- Device / Internet Facing Device with High Priority Alert
- Anomalous Server Activity / Rare External from Server
- Compromise / Slow Beaconing Activity To External Rare
- Compromise / Beaconing Activity To External Rare
- Compromise / HTTP Beaconing to Rare Destination
- Compromise / High Volume of Connections with Beacon Score
- Anomalous File / Numeric Exe Download
Log4j server compromise
On December 9 2021, a critical RCE vulnerability (dubbed ‘Log4Shell’) in version 2 of Apache’s Log4j was publicly disclosed by researchers at LunaSec.[12] As a logging library present in potentially millions of Java applications,[13] Log4j constitutes an obscured, yet ubiquitous feature of the digital world. The vulnerability (CVE-2021-44228), which arises from Log4j’s Java Naming and Directory Interface (JNDI) Lookup feature, enables an attacker to make a vulnerable server download and execute a malicious Java class file. To exploit the vulnerability, all the attacker must do is submit a specially crafted JNDI lookup request to the server. The fact that Log4j is present in so many applications and that the exploitation of this vulnerability is so simple, Log4Shell has been dubbed the ‘most critical vulnerability of the last decade’.[14] Attackers have been exploiting Log4Shell in the wild since at least December 1.[15] Since then, attackers have been observed exploiting the vulnerability to install crypto-mining tools, Cobalt Strike, and RATs onto vulnerable servers.[16]
On December 10, one day after the public disclosure of Log4Shell, an attacker successfully exploited the vulnerability on a vulnerable Internet-facing server within the network of a US-based architecture company. By exploiting the vulnerability, the attacker managed to get the server to download and execute a Java class file named ‘Exploit69ogQNSQYz.class’. Executing the code in this file caused the server to download a shell script file and a file related to the Kinsing crypto-mining malware. The Kinsing-infected server then went on to communicate over HTTP with a C2 server. Since the customer was using the Proactive Threat Notification (PTN) service, they were immediately alerted to this activity, and the server was subsequently quarantined, preventing crypto-mining activity from taking place.
In this example, the attacker’s exploitation of the zero-day vulnerability immediately resulted in the vulnerable server making an HTTP GET request with an unusual user-agent string (one associated with Java in this case) to a rare external IP. The models Anomalous Connection / Callback on Web Facing Device and Anomalous Connection / New User Agent to IP Without Hostname breached as a result of this behavior. The device’s subsequent file downloads and C2 activity caused several Darktrace models to breach.
A non-exhaustive list of the models which breached as a result of the unusual behavior brought about by the attacker:
- Anomalous Connection / Callback on Web Facing Device
- Anomalous Connection / New User Agent to IP Without Hostname
- Anomalous File / Internet Facing System File Download
- Anomalous File / Script from Rare External Location
- Device / Initial Breach Chain Compromise
- Anomalous Connection / Posting HTTP to IP Without Hostname
Round-up
It is inevitable that attackers will attempt to exploit zero-day vulnerabilities in applications running on Internet-facing devices. Whilst identifying these attempts is useful, the fact that attackers regularly exploit new zero-days makes the task of identifying attempts to exploit them akin to a game of whack-a-mole. Whilst it is uncertain which zero-day vulnerability attackers will exploit next, what is certain is that their exploitation of it will bring about unusual behavior. No matter the vulnerability, whether it be a vulnerability in Microsoft Exchange, Confluence, GitLab, or Log4j, Darktrace will identify the unusual behaviors which inevitably result from its exploitation. By identifying unusual behaviors displayed by Internet-facing devices, Darktrace thus makes it almost impossible for attackers to successfully exploit zero-day vulnerabilities without being detected.
For Darktrace customers who want to find out more about detecting potential compromises of internet-facing devices, refer here for an exclusive supplement to this blog.
Thanks to Andy Lawrence for his contributions.
Footnotes
1. https://devco.re/blog/2021/08/06/a-new-attack-surface-on-MS-exchange-part-1-ProxyLogon/
2. https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities/
3. https://www.zerodayinitiative.com/blog/2021/8/17/from-pwn2own-2021-a-new-attack-surface-on-microsoft-exchange-proxyshell
4. https://www.rapid7.com/blog/post/2021/08/12/proxyshell-more-widespread-exploitation-of-microsoft-exchange-servers/
5. https://www.kaspersky.co.uk/blog/confluence-server-cve-2021-26084/23376/
6. https://www.bleepingcomputer.com/news/security/atlassian-confluence-flaw-actively-exploited-to-install-cryptominers/
7. https://hackerone.com/reports/1154542
8. https://security.humanativaspa.it/gitlab-ce-cve-2021-22205-in-the-wild/
9.https://about.gitlab.com/releases/2021/04/14/security-release-gitlab-13-10-3-released/
10. https://www.rapid7.com/blog/post/2021/11/01/gitlab-unauthenticated-remote-code-execution-cve-2021-22205-exploited-in-the-wild/
11. https://www.hackmageddon.com/2021/12/16/1-15-november-2021-cyber-attacks-timeline/
12. https://www.lunasec.io/docs/blog/log4j-zero-day/
13. https://www.csoonline.com/article/3644472/apache-log4j-vulnerability-actively-exploited-impacting-millions-of-java-based-apps.html
14. https://www.theguardian.com/technology/2021/dec/10/software-flaw-most-critical-vulnerability-log-4-shell
15. https://www.rapid7.com/blog/post/2021/12/15/the-everypersons-guide-to-log4shell-cve-2021-44228/
16. https://www.microsoft.com/security/blog/2021/12/11/guidance-for-preventing-detecting-and-hunting-for-cve-2021-44228-log4j-2-exploitation/