As the Russia-Ukraine conflict continues to evolve, we remain vigilant in monitoring emerging threats. Previously, we tracked the activities of UNC1151, which targeted Ukraine’s Ministry of Defence with a malicious Excel document designed to compromise sensitive systems. Additionally, we observed UAC-0184’s malware campaign, which deployed the XWORM RAT against Ukrainian targets, utilizing Python to facilitate DLL sideloading techniques for further infiltration.
During our investigation, we came across an ongoing campaign of Gamaredon targeting Ukraine. Gamaredon, also known as Primitive Bear or Armageddon, is a Russian-linked Advanced Persistent Threat (APT) group that has been active since at least 2013. It is known for its cyber-espionage activities, primarily targeting Ukrainian government institutions, military, and other critical infrastructure sectors.
Gamaredon has been involved in numerous high-profile campaigns, particularly during periods of heightened tension between Russia and Ukraine. Although its operations have been characterized by the use of relatively low-sophistication tools, its success is attributed to its persistence and focus on specific geopolitical targets.
In recent months, Gamaredon has intensified its efforts with a large-scale phishing campaign aimed at Ukrainian entities. This campaign involves sophisticated tactics and widespread phishing attempts, reflecting the ongoing and escalating nature of cyber threats amidst the conflict. The figure below shows the Gamaredon sample observed since the start of August 2024.
Amid the ongoing Russia-Ukraine conflict, Cyble Research and Intelligence Labs (CRIL) encountered a spear-phishing campaign targeting Ukrainian military personnel. The malicious email contains an XHTML attachment that, upon opening, executes several malicious activities on the infected system. After thorough analysis, our research points to the Gamaredon APT group as the orchestrator of this attack.
The campaign begins with a spear-phishing email bearing the subject “ПОВІСТКА,” which translates to “summons.” The email is themed around a military summons directed at the recipient and includes a malicious XHTML attachment, as shown in the figure below.
Upon opening the XHTML file, the user is presented with a message in Ukrainian stating, “File uploaded to the ‘DOWNLOADS’ folder.” Simultaneously, a RAR compressed folder is silently dropped into the system’s Downloads directory. This action is designed to mislead the victim, making it appear as though a legitimate file has been downloaded. The figure below shows the XHTML message.
The XHTML file contains obfuscated JavaScript code that executes upon the user opening the file. In the XHTML, the JavaScript is embedded within a `div` element, with the `div id` set to “jwu.” This obfuscated script consists of a Base64-encoded string mixed with a “*” character at random places to evade detection. The JavaScript execution is triggered via the “onerror” event. In some variants, it is activated through the “onmousemove” event, ensuring the malicious code runs as soon as the user interacts with the file. The figure below shows the obfuscated XHTML code.
The de-obfuscated string within the “jwu” `div` reveals JavaScript code that contains a Base64-encoded 7zip compressed archive disguised with a .rar file extension. This script decodes the Base64 data and saves the 7zip archive to the Downloads folder as “5-2839-2024_29.08.2024.rar.” Additionally, the script retrieves a 1-pixel remote image, likely serving as a tracking mechanism to monitor the execution and interaction with the malicious file. The figure below shows the de-obfuscated JavaScript.
The RAR file contains a Windows shortcut (LNK) file. Upon execution, the malicious LNK file triggers the execution of the remote .tar file via mshta.exe. In this campaign, the TAs leveraged the domain trycloudflare[.]com to host the malicious tar archives. By exploiting the TryCloudflare service, TAs can establish a one-time tunnel without the need for an account with Cloudflare. This tunnel enables remote access to resources and data outside the local network, functioning similarly to a VPN or secure shell (SSH) protocol, allowing the attackers to evade traditional detection mechanisms.
The Target command of the LNK file is mentioned below.
The figure below shows the property of the LNK file.
We were unable to obtain the .tar files in our research. However, according to an analysis by Cisco Talos, Gamaredon is known for downloading additional malicious files designed to steal sensitive information from the victim’s system.
The ongoing Gamaredon APT campaign demonstrates the group’s persistence and evolving tactics in targeting Ukrainian military personnel. By leveraging spear-phishing emails, malicious XHTML attachments, and obfuscated JavaScript, the attackers deliver harmful payloads while exploiting TryCloudflare’s one-time tunnel feature to host malicious archives. The campaign’s scale and frequency indicate a coordinated, mass phishing effort aimed at sensitive Ukrainian entities.
The following are the recommendations to Mitigate the Gamaredon APT Campaign.
Tactic | Technique | Procedure |
Initial Access (TA0001) | Phishing: Spearphishing Attachment (T1566.001 ) | Gamaredon sends spear-phishing emails with malicious XHTML attachments targeting Ukrainian military personnel. |
Execution (TA0002) | User Execution: Malicious File (T1204.002) | The campaign relies on users opening the XHTML attachment, which then triggers JavaScript code execution. |
Execution (TA0002) | Signed Binary Proxy Execution: Mshta (T1053.005) | mshta.exe is used to execute a remote .tar archive file hosted on a compromised cloud service. |
Defence Evasion (TA0005) | Obfuscated Files or Information (T1027) | The campaign uses obfuscated JavaScript hidden in the XHTML file, including random “*” characters in Base64 encoded strings to avoid detection. |
Indicator | Indicator Type | Description |
0c823adb18cf2583222e6fbe73c08cac8147d20b02fbe88d51cac2a1c628a30b | SHA256 | XHTML |
12bac5853724722330ce7f6b782db13844f8343ccc851fa2db1e93b980a6cf49 | SHA256 | XHTML |
a4806713db9cf41ab503e046981b8c5e1a9928314bb32545bd104fab2c36b332 | SHA256 | XHTML |
0fd6e081172d8576ad2f16ab6360a0086442560aa24ab1f4636a592f279c19ef | SHA256 | XHTML |
66de05ae4f4f185a514ad11daac0b7f944748ffa6885a7d7a826def45d305cfe | SHA256 | XHTML |
1a6ce74fc1487537936d769243f39b265fd3911e72e7caacaa793f1fffe52296 | SHA256 | XHTML |
e6d342fde640e5d5d9ef2f470d0f23ed660d7f19cc33470ec40a9f8e9b9c1561 | SHA256 | XHTML |
17f66f2b3e2f9ba8c8f739876f99e2d7abc81b264f3015d3de86267f007cc49b | SHA256 | XHTML |
10cecb7a032325024b9ba7a0ea5f1a910268078317ca4ca7dae9e06779837631 | SHA256 | XHTML |
83d4b0aea975acb7f80417748f179d8ef9ecbba9150b24e3354ef92e17ccf242 | SHA256 | XHTML |
201ad0967246bb0a5b3f7aa85f31395e750c0237959d86b9c2d9dbf5fbb951c4 | SHA256 | XHTML |
d4df2899a4569f7cb9ac5edce6b4eef8eba3031b7f96f74552734362afea18b7 | SHA256 | XHTML |
95beb4bd1a94c8db58dddeb926f656003e1dca2c66d04870380445b23840b536 | SHA256 | XHTML |
13f065a592246074d7d929dd4f977d247a69efa9e1dbbe3613f81d3d8f39d6f4 | SHA256 | XHTML |
a1d689a0839a143e371242fb217db82e0cbdfeff4daa49e6ffe5c5b3375fae3d | SHA256 | XHTML |
4b1d8e58c866a8b12e8987559287592ee54a482328e8c03d5666a761bcf10f92 | SHA256 | XHTML |
db63ca233296a239e4b8d7f28b2db776596bcb645d3958bc4b3447074d7635b9 | SHA256 | XHTML |
2da9941aae860aaa2d3bb7208c900549464955733457f529014d945a24737e79 | SHA256 | XHTML |
2636907826c9bc27ee4c7519979c0add5ad981e71edf7eb53002b8ab89fc8142 | SHA256 | XHTML |
e18955f5a9fb6abb30fd5dcbc840d34cce9bb1c70552cc36941139fc6e7304b5 | SHA256 | XHTML |
0ae813d5ea1c0114795174a48b57a90c0f719485e3c733bbd5403c77dab29298 | SHA256 | XHTML |
71e02cfc2c871768b8ae5ad9af9e9cb664e0a66be3f3c8d050b6d58f3cd4c07a | SHA256 | XHTML |
ad2c0c8d14d782610ed7173a5d0b4bd13524ceb1027d070a1cda312cfd60983a | SHA256 | XHTML |
1cbd7696840ec6a3442a8bf4f7deb545bbeeee68fb27e4352197953af976cf2a | SHA256 | XHTML |
0a4bcecdee823cc3c2d4ae2d5569edca7bc8372f5d37f62083782e92732a63c8 | SHA256 | XHTML |
afa7a8bb0cb0508f579b936488bbfff0142d458c26ef98904cb06e98f6b50f81 | SHA256 | XHTML |
265042be55ec0082a500a24cdb5da8b289c42116e23eddcfc80dfd24019f6412 | SHA256 | XHTML |
1b3db58482ad147faeda64eced7648bee08bfc78194e3f7bcb52cf1860d07a04 | SHA256 | XHTML |
821ee2a91cca1e17f890e099ee41a47cc5943149a10e81467e57803d6d5b02de | SHA256 | XHTML |
0e1eb8a5f850bc7712f78adcfe6c7c29215ea620ad2c36a0795016f0299d6ea4 | SHA256 | XHTML |
f9662c14db97db311d71b00ce33a41bbc4bc4ab6f05d8ccd99562e773d8948b1 | SHA256 | XHTML |
c7802521935c6dc3dc81e15ac952b9782ca1743dcd9e4e11030f0957d8f2a156 | SHA256 | XHTML |
56188e68f6f6bba34f6771056859f1a7232edef264fbe67e0c8b30c1ca569259 | SHA256 | XHTML |
a620f9af481001e2d96a2d210f086fa144731a1b95db32addcd148e09a627374 | SHA256 | XHTML |
df124b73f309e634ca7c226c5e1ae2545f45907a88a40249c8ac1d5e40eca43f | SHA256 | XHTML |
f94817a02884f73f9ed462c67581cda4fc169568f7636f01237a25da3df93d7c | SHA256 | XHTML |
5f7173cd548b227206e70419739a2f6ca4087ef693297b9b67a29fbcb4d1e928 | SHA256 | XHTML |
f59715593679ff13e92e14f8f98c6ead1cbe678f3a5ac28de8085c1a7132b02c | SHA256 | XHTML |
58d6c125ccab32414f63ba62cc7ba4a2500a0d2890506069ba7e0ac166799491 | SHA256 | XHTML |
51427e20fc02cb04948c2ab53378beb52727a6a84570f880aeaebd6be27f1dad | SHA256 | XHTML |
bbc97c086436385c32b0ac5f6cf35e7446f0e12e0412ed090e7099b873837795 | SHA256 | XHTML |
a7d060ea2dfd98f723aff909e5c88c3d8d3d54d96e5f6e7a09aad1de8d8ef10b | SHA256 | XHTML |
cba52f16695dc3d80a98c560a7614a3f91aaea242344b423b260d06362a2c9e0 | SHA256 | XHTML |
ab333d21c0fa8fe5b6cd620736fb04d7af53a6a0be604066617a1374fa7baa78 | SHA256 | XHTML |
a4b912413e39b4307613c8941af258750782e77d820c172155dfaaee6b32d2db | SHA256 | XHTML |
c863155cf6a39a376eef232737ba2922e324d8b05de36ddebe4068060b09a498 | SHA256 | XHTML |
bee43c5f1a714fdef911e5dc99fe27854f5db00de859dddc09e720eb56e1c53e | SHA256 | XHTML |
ca7a5daf2528233dae5c38d929a07ef30d5ca7d349df2ce842d795311f22fa2f | SHA256 | XHTML |
770223d8c0c7d5abd4d6c0215cf9479f7a0e32a1dfaaa3b42c71dfe26ccb986f | SHA256 | XHTML |
dacb0c04579116f6245ca0ee69a5d328c3f23e5d0c5f579133070fe0f06659d1 | SHA256 | XHTML |
0a06f536d08150ce6ea521a563fd321229b9e044ce993f9a667336a34d838b3f | SHA256 | XHTML |
57dd02447cf705fe570ed6b3051f3bff06e8506360ba667e02731332d04eb37c | SHA256 | XHTML |
0e0ce820f8b5deae3755ed372a0b898861a4cc7cb70cfd90197452773b078452 | SHA256 | XHTML |
dbdff73a7a6e6eae23c8cd5093b3df11f39cddf86e48b651e68c329df59ee0e8 | SHA256 | XHTML |
c32f28fc87f8efcd3f9c044f1898f3e712d4b4802c99df1525644ebfb3df2f2d | SHA256 | XHTML |
e867ce12e119eebe53de1acccd99fca09a9802d1432d31dafaf5d76b8a87f099 | SHA256 | XHTML |
92ee588be70e23ca459627ae22f05fba11589eeaeed0f8dd153416d952bb57e0 | SHA256 | XHTML |
1ab3b99af98b7d9fb13d5b6acfc1bf3f4aa2a751bea58ba060f386509ccc73d3 | SHA256 | XHTML |
b8f91aae00889eda914ef72b99688e920e113fb3723607250d2a1c949effaac3 | SHA256 | XHTML |
b95eea2bee2113b7b5c7af2acf6c6cbde05829fab79ba86694603d4c1f33fdda | SHA256 | XHTML |
7525cd06447204ce72e5d24eb1e96c142d72f9f8f5339d61b6151f430bda2dae | SHA256 | XHTML |
be801d78c112fae7a1cec1d20e1f2a85f28987d15c825c1773860bc7e99c5e87 | SHA256 | XHTML |
de2f0a2aafacfee9d7989cdafd0617211a44d320b0fba6c488f480d92dab0891 | SHA256 | XHTML |
66d30cc00a2445c5527049875e43c2c85a8995a0983502cd5e0276235bab8040 | SHA256 | XHTML |
450badddfae09a3eedb613e59f9a18d69632ee28d5e59e52c6d4bae151225f87 | SHA256 | XHTML |
d55a4a4596908abc5742f43e9b44b23951935feead10de52f3916ac5fd811a80 | SHA256 | XHTML |
7cdf0df1284b75a7d4e945d1d6a707c65e3527ae38aea7c9d82163c019c8203c | SHA256 | XHTML |
37c7adb7a719ec99c54b86faad0a2e5164599f0b85ecbc07683b89da0355c655 | SHA256 | XHTML |
efceb2cb0d0a332a630c04a8bce6f0e5dedd297ce7c0943f3783ee0749342ef3 | SHA256 | XHTML |
ce040948011f0ccc9309ab2cb08c7a80bf0337415818cf916e6e2e7ed70ed49e | SHA256 | XHTML |
5938c03b725f37f68ebf950edf4fd5688900e273ee0a55c305ff4fd9995d03b1 | SHA256 | XHTML |
112bd0f71522e05c21ad249a20534fb8d3306a73f5c39dd44bfb9e198a96e9f8 | SHA256 | XHTML |
cbfe9331e8a1b36f8e5be68f6588a6a116dfd63b474fcac618bc75854535e699 | SHA256 | XHTML |
c449c4be65021a4563da97ae4f150bed4f388236031d33e17953b7d6666381e1 | SHA256 | XHTML |
6c1e4a444e40b27db722be2321eb1c69455251940b30f0e2232103015b7af3cc | SHA256 | XHTML |
11b0f2bbb811f42dd463c247401fddd9c2efb2708b9be142573597ee869da29a | SHA256 | XHTML |
7c2bbaaa90b7f66b9ccfb3136905e8d07d8c8f1542aa605844319992a39133c9 | SHA256 | XHTML |
982dac7a43329d6e204e74d87d60c08e94ba3a46ccf36445b218b86f05e44a90 | SHA256 | XHTML |
5a70f39a3d87469146b0a8a92086675dc15e483aa412a0a9aa5dc9809bf8f22f | SHA256 | XHTML |
663c6f08b3aedb4323e0f73cab526ddcc1f6de53ea7084712940c1cb54d75ab0 | SHA256 | XHTML |
hxxps://newbie-housewives-poxxer-trailers[.]trycloudflare[.]com/zgur/preservation/selected[.]rar | URL | Malicious URL |
hxxps://newbie-housewives-poxxer-trailers[.]trycloudflare[.]com/zgur/seeing/prayers[.]rar | URL | Malicious URL |
hxxps://amsterdam-sheet-veteran-aka[.]trycloudflare[.]com/regular/presence[.]tar | URL | Malicious URL |
hxxps://amsterdam-sheet-veteran-aka[.]trycloudflare[.]com/preceding/baron[.]tar | URL | Malicious URL |
hxxps://tracked–radar-ni[.]trycloudflare[.]com/zgur/sensation/headstone[.]rar | URL | Malicious URL |
hxxps://cod-identification-imported-carl[.]trycloudflare[.]com/f/precaution[.]rtf | URL | Malicious URL |
hxxps://strange-hunger-appeared-res[.]trycloudflare[.]com/uss/senior/refuge[.]tar | URL | Malicious URL |
hxxps://strange-hunger-appeared-res[.]trycloudflare[.]com/gss/quest/presents[.]tar | URL | Malicious URL |
hxxps://nobody-principal-long-un[.]trycloudflare[.]com/pov/decide/barn[.]tar | URL | Malicious URL |
hxxps://molecular-throw-process-dealtime[.]trycloudflare[.]com/gss/quietly/seller[.]tar | URL | Malicious URL |
hxxps://tracked–radar-ni[.]trycloudflare[.]com/zgur/questions/preponderant[.]rar | URL | Malicious URL |
hxxps://tracked–radar-ni[.]trycloudflare[.]com/psvr/decay/barefooted[.]rar | URL | Malicious URL |
hxxps://newbie-housewives-poxxer-trailers[.]trycloudflare[.]com/psvr/rejoined/net[.]rar | URL | Malicious URL |
hxxps://sunrise-massive-joseph-commodities[.]trycloudflare[.]com/zsvr/sentiment/banisters[.]rar | URL | Malicious URL |
hxxps://wp-acm-configuration-fm[.]trycloudflare[.]com/uss/growth/days[.]tar | URL | Malicious URL |
hxxps://nobody-principal-long-un[.]trycloudflare[.]com/pov/intake/bargain[.]tar | URL | Malicious URL |
hxxps://strange-hunger-appeared-res[.]trycloudflare[.]com/uss/bargain/barton[.]tar | URL | Malicious URL |
hxxps://jurisdiction-xhtml-peace-surrey[.]trycloudflare[.]com/tcul/based/guarded[.]tar | URL | Malicious URL |
hxxps://tracked–radar-ni[.]trycloudflare[.]com/sudu/insufficient/neutral[.]rar | URL | Malicious URL |
hxxps://tracked–radar-ni[.]trycloudflare[.]com/sudu/decide/quest[.]rar | URL | Malicious URL |
hxxps://australian-prepared-derek-hands[.]trycloudflare[.]com/vo/nervous/bar[.]tar | URL | Malicious URL |
hxxps://bush-worcester-houses-statements[.]trycloudflare[.]com/sudu/headlong/headache[.]rar | URL | Malicious URL |
hxxps://expertise-sir-designs-columbus[.]trycloudflare[.]com/tu/lost/net[.]tar | URL | Malicious URL |
hxxps://australian-prepared-derek-hands[.]trycloudflare[.]com/vomr/regards/bananas[.]tar | URL | Malicious URL |
hxxps://australian-prepared-derek-hands[.]trycloudflare[.]com/vg/relax/quickly[.]tar | URL | Malicious URL |
hxxps://nobody-principal-long-un[.]trycloudflare[.]com/pov/preparations/sequel[.]tar | URL | Malicious URL |
hxxps://charter-blond-desired-promptly[.]trycloudflare[.]com/gmm/base/guarantee[.]tar | URL | Malicious URL |
hxxps://wp-acm-configuration-fm[.]trycloudflare[.]com/uss/heap/September[.]tar | URL | Malicious URL |
hxxps://expertise-sir-designs-columbus[.]trycloudflare[.]com/tu/grow/precaution[.]tar | URL | Malicious URL |
hxxps://jurisdiction-xhtml-peace-surrey[.]trycloudflare[.]com/tcg/instruct/instructor[.]tar | URL | Malicious URL |
hxxps://axxribute-homework-generator-lovers[.]trycloudflare[.]com/onp/decent2/decent[.]tar | URL | Malicious URL |
hxxps://jurisdiction-xhtml-peace-surrey[.]trycloudflare[.]com/tcu/headphones/bananas[.]tar | URL | Malicious URL |
hxxps://infected-gc-rhythm-yu[.]trycloudflare[.]com/ug/insurance/predicate[.]tar | URL | Malicious URL |
hxxps://mind-apple-slightly-twiki[.]trycloudflare[.]com/ug/daytime2/daytime[.]tar | URL | Malicious URL |
hxxps://infected-gc-rhythm-yu[.]trycloudflare[.]com/ug/quick/prediction[.]tar | URL | Malicious URL |
hxxps://amsterdam-sheet-veteran-aka[.]trycloudflare[.]com/seeming/quay[.]tar | URL | Malicious URL |
hxxps://longitude-powerpoint-geek-upgrade[.]trycloudflare[.]com/sg/precision2/precision[.]tar | URL | Malicious URL |
hxxps://amsterdam-sheet-veteran-aka[.]trycloudflare[.]com/regions/headmaster[.]tar | URL | Malicious URL |