Conti Ransomware

Ghanshyam More

Conti is a sophisticated Ransomware-as-a-Service (RaaS) model first detected in December 2019. Since its inception, its use has grown rapidly and has even displaced the use of other RaaS tools like Ryuk. The Cybersecurity and Infrastructure Security Agency (CISA) and the Federal Bureau of Investigation (FBI) issued a warning about Conti in Sept 2021, noting that they had observed it being used in more than 400 cyberattacks globally, though concentrated in North America and Europe.

The most common initial infection vectors used are spear phishing and RDP (Remote Desktop Protocol) services. Phishing emails work either through malicious attachments, such as Word documents with an embedded macro that can be used to drop/download BazarLoader, Trickbot, IceID trojans, or via social engineering tactics employed to get the victim to provide additional information or access credentials. Following initial access, attackers download and execute a Cobalt Strike beacon DLL to gather information about domain admin accounts. Additionally, threat actors use Kerberos attacks to attempt to get admin hash in order to conduct brute force attacks.

A Conti affiliate recently leaked what has been dubbed the Conti playbook. The playbook revealed that Conti actors also exploit vulnerabilities in unpatched assets to escalate privileges and move laterally across a victim’s network. They check for the “PrintNightmare” vulnerability (CVE-2021-34527) in Windows Print spooler service, EternalBlue vulnerability (CVE-2017-0144) in Microsoft Windows Server Message Block, and the “Zerologon” vulnerability (CVE-2020-1472) in Microsoft Active Directory Domain Controller. The playbook has been translated from Russian to English by security researchers and has provided other useful Indicators of Compromise (IoC).

Conti actors also use the RouterScan tool to identify router devices in a provided range of IPs and attempt to find logins/passwords from a standard list available with the RouterScan tool. They then install AnyDesk or Atera on the target machine to maintain an open communication channel. Like other ransomware attacks, Conti actors exfiltrate data from victims’ networks to cloud storage services like MEGA and then deploy Conti ransomware. To upload data on cloud storage Conti uses open-source Rclone command-line software. They use a double extortion approach in which they demand a ransom to release the encrypted data or threaten to publicly release it if a ransom is not paid. They may also sell the data to the highest bidder.

Technical Details:

Conti ransomware uses obfuscation. The most notable use is to hide various Windows API calls used by the malware. It is common for some malware to lookup API calls during execution. Initially, it brings import module names then decrypts the API names and gets their addresses.

Fig. 1 De-obfuscation of Windows API

Conti uses a unique String Decryption Routine that is applied to almost every string text or API name used by the malware as shown in Fig. 2:

Fig. 2 String Decryption Routine

After getting API addresses, it calls for CreateMutexA API with the Mutex Value of “CONTI” as shown below in Fig. 3:

Fig. 3 Create Mutex

It deletes Windows Volume Shadow Copies and also resizes shadow storage for drives C to H:

Fig. 4 Deletes Windows Volume Shadow Copy

Next, Conti executes commands for stopping potential Windows Services related to antivirus, security, backup, database, and email solutions:

Fig. 5 Stop Potential Windows Services

The table below contains the names of the Windows Services that Conti stopped by calling the code in Fig. 5 in the loop.

MSSQL$BKUPEXECMSSQL$SQLEXPRESSMSSQLFDLauncher$SHAREPOINT
MSSQL$ECWDB2MSSQL$SYSTEM_BGCMSSQLFDLauncher$SQL_2008
MSSQL$PRACTICEMGTMSSQL$TPSMSSQLFDLauncher$SYSTEM_BGC
MSSQL$PRACTTICEBGCMSSQL$TPSAMAMSSQLFDLauncher$TPS
MSSQL$PRODMSSQL$VEEAMSQL2008R2MSSQLFDLauncher$TPSAMA
MSSQL$PROFXENGAGEMENTMSSQL$VEEAMSQL2008R2MSSQLSERVER
MSSQL$SBSMONITORINGMSSQL$VEEAMSQL2012MSSQLServerADHelper
MSSQL$SHAREPOINTMSSQLFDLauncherMSSQLServerADHelper100
MSSQL$SOPHOSMSSQLFDLauncher$PROFXENGAGEMENTMSSQLServerOLAPService
MSSQL$SQL_2008MSSQLFDLauncher$SBSMONITORINGMySQL57
Acronis VSS ProviderMfemmsDCAgent
AcronisAgentMfevtpEhttpSrv
AcrSch2SvcMMSEkrn
AntivirusMozyprobackupEnterprise Client Service
ARSMMsDtsServerEPSecurityService
AVPMsDtsServer100EPUpdateService
BackupExecAgentAcceleratorMsDtsServer110EraserSvc11710
BackupExecAgentBrowserMSExchangeESEsgShKernel
BackupExecDeviceMediaServiceMSExchangeISESHASRV
BackupExecJobEngineMSExchangeMGMTFA_Scheduler
BackupExecManagementServiceMSExchangeMTAMSOLAP$TPSAMA
BackupExecRPCServiceMSExchangeSAMcShield
BackupExecVSSProviderMSExchangeSRSMcTaskManager
Bedbgmsftesql$PRODMfefire
IISAdminMSOLAP$SQL_2008Klnagent
IMAP4SvcMSOLAP$SYSTEM_BGCMSOLAP$TPS

Conti also leverages the Windows Restart Manager to close applications and services that are running in order to make them available for encryption and to maximize the damage:

Fig. 6 Unlock files with Windows Restart Manager

It collects information about drives and drive types present on compromised systems:

Fig. 7 Collect Drives Information

As shown in Fig. 8, Conti uses multi-threaded tactics. It calls CreateIoCompletionPort API to create multiple instances of worker threads into memory to wait for data. Once the file listing is completed, it is passed to the worker threads. Utilizing the computing power of multi-core CPUs, the data is quickly encrypted:

Fig. 8 Implementation of Multi-threaded Processing
Fig. 9 Multiple Threads Perform File Encryption

Conti then iterates files on the local system and those on remote SMB network shares to determine what data to encrypt. It looks for folders and drives shared on remote systems using NetShareEnum API. If the remote share is accessible, it encrypts the files present in that share:

Fig. 10 Getting Info of Remote Shares

It collects ARP cache information from the local system using the GetIpNetTable API. ARP cache information is a list of all the systems with which the computer recently communicated. It checks for “172.”, “192.168.” etc., on the collected IP list. If an IP address is in a different range it skips that system from encryption:

Fig. 11 Collect ARP Cache Information

It uses an AES-256 encryption key per file with a hard-codedRAS-4096 public encryption key. As shown in Fig. 12, the 0x6610 parameter is used while calling the CryptGenKey API. 0x6610 is the value of the CALG_AES_256 identifier and is only alg_id:

Fig. 12 Create CALG_AES_256 Key

Conti has a unique feature that allows attackers to perform file encryption in command line mode:

Fig. 13 Command Line Mode of Operation

Modes of Operation

Conti allows 2 command line modes --encrypt-mode and - h :

Fig. 14 Command Line --encrypt-mode Mode

--encrypt-mod marks which files are encrypted. There are 3 options for its value: all , local , and network . By default, ransomware runs with the all parameter:

Fig. 15 Command Line --encrypt-mode with Value all

In all , encryption carried out for – local and network. network means that shared resources on the local network will be encrypted:

Fig. 16 Command Line --encrypt-mode Mode with Value local
Fig. 17 Command Line --encrypt-mode Mode with Value network

In command line -h mode, the parameter may contain the name of a file that lists the DNS and NetBIOS addresses of remote servers. The malware will then build a list of folders to ignore during encryption:

Fig. 18 Folders Ignored in Encryption

It skips the following extensions during encryption: .exe, .dll, .sys, .lnk, and .CONTI. It appends the file extension .CONTI and creates a ransom note named CONTI_README.txt in every folder to notify users about the infection:

Fig. 19 __CONTI” Extension Appended to Files

The Ransom Note:

The ransom note and the note’s file information are present in the resource of malware files:

Fig. 20 Ransom Note Content
Fig. 21 Ransom Note Name

It calls the LoadResource API to get ransom note-related information:

Fig. 22 Code to Collect Data Related to the Ransom Note

The ransom note contains 2 email addresses to get in touch with the attackers. The addresses are unique for each victim:

Fig. 23 Ransom Note

IoC:

eae876886f19ba384f55778634a35a1d975414e83f22f6111e3e792f706301fe

TTP Map:

Initial AccessExecutionPersistencePrivilege EscalationDefense EvasionCredential AccessDiscoveryLateral MovementCollectionCommand and controlExfiltrationImpact
Valid Accounts (T1078)Command and Scripting Interpreter: Windows Command Shell (T1059.003)Valid Accounts (T1078)Process Injection: Dynamic-link Library Injection (T1055.001)Obfuscated Files or Information (T1027)Brute Force (T1110)System Network Configuration Discovery (T1016)Remote Services: SMB/Windows Admin Shares (T1021.002)Archive Collected Data: Archive via Utility (T1560.001)Remote file copy (T1105)Exfiltration Over Web Service: Exfiltration to Cloud Storage (T1567.002)Data Encrypted for Impact (T1486)
Phishing: Spearphishing Attachment (T1566.001)Native Application Programming Interface (API)(T1106)External Remote Services (T1133)Valid accounts: domain accounts (T1078.002)Process Injection: Dynamic-link Library Injection (T1055.001)Steal or Forge Kerberos Tickets: Kerberoasting (T1558.003)System Network Connections Discovery (T1049)Taint Shared Content (T1080)Service Stop (T1489)
Phishing: Spearphishing Link (T1566.002)Windows Management Instrumentation (T1047)Scheduled task/job: scheduled task (T1053.005)Deobfuscate/Decode Files or Information (T1140)OS credential dumping (T1003)Process Discovery (T1057)Exploitation of Remote Services (T1210)Inhibit System Recovery (T1490)
Exploit public-facing application (T1190)User execution (T1204)Startup item (T1165)Impair defenses: disable or modify tools (T1562.001)Credentials from password stores (T1555)File and Directory Discovery (T1083)Lateral tool transfer (T1570)
Scheduled task/job: scheduled task (T1053.005)Boot or logon autostart execution: Winlogon Helper DLL (T1547.004)Network Share Discovery (T1135)
Command and Scripting Interpreter: PowerShell (T1059.001)Remote System Discovery (T1018)
Network Service Scanning (T1046)
Permission groups discovery: domain groups (T1069.002)
System information discovery (T1082)
System owner/user discovery (T1033)
Security software discovery (T1063)
Account Discovery: Local Account (T1087.001)
Permissions Group Discovery: Local Groups (T1069.001)

Summary

To defend against threats, Qualys recommends good cyber hygiene practices, and moving to a preventative approach by keeping network configurations, backup, application access, and patching up-to-date.

Share your Comments

Comments

Your email address will not be published. Required fields are marked *