Blog de Zscaler
Reciba en su bandeja de entrada las últimas actualizaciones del blog de Zscaler
Tracking Updates to Raspberry Robin
Introduction
Raspberry Robin, also known as Roshtyak, is a malicious downloader that has been actively targeting systems since 2021 and primarily spreads through infected USB devices. Despite limited public reporting, Raspberry Robin continues to evolve and adopt new techniques to improve its functionality and evade detection. Further insights into Raspberry Robin are available in our previous technical analysis.
In this blog, we outline the latest updates to Raspberry Robin, including improved obfuscation methods, a shift from AES-CTR to ChaCha-20 for network encryption, a new local privilege escalation exploit (CVE-2024-38196), and the use of invalid TOR onion domains to complicate the process of extracting Indicators of Compromise (IOCs).
Key Takeaways
- Raspberry Robin is an advanced malware downloader that has been active since 2021.
- The developers have improved the malware’s obfuscation methods by adding multiple initialization loops to functions with a flattened control flow, making brute-force decryption less efficient.
- The network encryption algorithm has changed from AES (CTR mode) to Chacha-20.
- Raspberry Robin has added a new local privilege escalation (LPE) exploit (CVE-2024-38196) to gain elevated privileges on targeted systems.
- The malware embeds invalid command-and-control (C2) server (TOR onion) domains.
- Certain values, such as the RC4 key seed, are randomized per sample/campaign.
Technical Analysis
In this section, we describe the most significant changes we observed in Raspberry Robin’s functionality. It is worth noting that most of these changes were implemented shortly after our previous publication.
Obfuscation
Raspberry Robin continues to use the same obfuscation techniques discussed in our prior analysis of the malware. However, we have observed three notable changes, which we discuss below.
Initialization loops
One key update is the addition of extra initialization loops to the functions that have a flattened control flow. Previously, it was possible to brute-force the decryption key of each obfuscated function. To counter this, the developers introduced multiple loops, making brute-force efforts inefficient. This modification adds extra junk and obfuscated code into the function.
Obfuscated stack pointers
Another notable update is Raspberry Robin’s use of obfuscated stack pointers. This technique disrupts the decompilation process of IDA, since IDA assumes that the accessed pointer will be a large value. The output result is a failed function decompilation. To address this issue, analysts must manually fix the function’s stack.
The figure below shows how Raspberry Robin's obfuscated stack pointers interfere with the decompilation process of IDA.

Figure 1: Example of Raspberry Robin’s new obfuscated stack pointers.
Obfuscated conditional statements
The third notable change is the obfuscation of conditional statements. This modification further complicates the analysis of Raspberry Robin's logic during code analysis.

Figure 2: Example of Raspberry Robin’s obfuscation for conditional statements.
Network communication
Although the network encryption process of Raspberry Robin remains nearly the same, ThreatLabz has identified some key changes:
- Raspberry Robin now uses the ChaCha-20 encryption algorithm instead of AES-CTR for encrypting network data. While the 32-byte encryption key is hardcoded in the binary, the
counterandnoncevalues are randomly generated per request. - Raspberry Robin continues to use a 16-byte RC4 key. However, the 8-byte random seed is now appended to the end of the key, rather than the beginning. Additionally, hardcoded portions of the key vary between samples and campaigns.
- While the CRC-64 algorithm remains the same, its initial values are now randomized per sample/campaign.
The random counter and nonce values for ChaCha-20 are prepended to the encrypted data using the following structure.
struct encryptionInfo
{
uint32_t nonce_part2;
uint32_t nonce_part3;
uint32_t counter;
uint32_t nonce_part1;
};
Command-and-control (C2) onion domain obfuscation
Raspberry Robin has also updated its method of embedding intentionally corrupted TOR onion domains. Starting in early 2024, Raspberry Robin included a hardcoded algorithm within its TOR module to dynamically correct decrypted C2 domains. The Python code example below shows an example of the domain correction algorithm.

By early 2025, the threat actors modified this part of the code and the algorithm is different per sample/campaign. An example is shown in the figure below.

Figure 3: Raspberry Robin C2 dynamic correction algorithm.
Additional Updates
Beyond the primary changes, ThreatLabz identified several other noteworthy updates:
- Raspberry Robin developers have introduced expiration dates within the malware’s binary code. Each sample we analyzed includes an allowed execution period of one week.
- Raspberry Robin now leverages CVE-2024-38196 to achieve elevated privileges on targeted systems.
- The memory mapping used for communication between the core module and TOR module now varies per sample/campaign. Different offsets are applied for storing data.
Conclusion
Raspberry Robin remains active, now employing updated obfuscation techniques, encryption methods, and tactics to avoid detection and hinder reverse-engineering analysis. While it has not garnered as much attention as other prominent malware families, its continuous improvements make it a significant threat for security teams.
Zscaler Coverage
Zscaler’s multilayered cloud security platform detects indicators related to Raspberry Robin at various levels. The figure below depicts the Zscaler Cloud Sandbox, showing detection details for Raspberry Robin.

Figure 4: Zscaler Cloud Sandbox report for Raspberry Robin.
In addition to sandbox detections, Zscaler’s multilayered cloud security platform detects indicators related to Raspberry Robin at various levels with the following threat names:
Indicators Of Compromise (IOCs)
SHA256 | Description |
|---|---|
5b0476043da365be5325260f1f0811ea81c018a8acc9cee4cd46cb7348c06fc6 | Raspberry Robin DLL |
05c6f53118d363ee80989ef37cad85ee1c35b0e22d5dcebd8a6d6a396a94cb65 | Raspberry Robin DLL |
Indicators of Compromise (IOCs) | Description |
|---|---|
ves2owzq3uqyikb4zoeumzr4uxpi3twmy5qa5fdc4g7btpc43x5ahxyd.onion:9211 | C2 server domain |
df643p7juf4hhz3nqy4lychm2xslc645bozk3egqhsj46k6xqoy4xvad.onion:13201 | C2 server domain |
d7qiqd6srhy4poo2q6vbn7bx4b2wl7nrclswfqprmldzuarbfz3rglid.onion:52295 | C2 server domain |
d7qiqd6srhy4poo2q6vbn7bx4b2wl7nrclswfqprmldzuarbfz3rglid.onion:63185 | C2 server domain |
yo2a27uulrkraxfdwfcx7zokonpsux5qlufqsu7ial45uitm5v2seyyd.onion:60939 | C2 server domain |
oqki6m6qejavp7c5smafqa34locotxqbeh4scltzrhucgafykzzbh6ad.onion:1342 | C2 server domain |
c5empmuptwtgmehonawb6pzd4ifupervyqduqpop2m3idsgbcwdtrdad.onion:53120 | C2 server domain |
jsfnao46dnqos2avnrcvwlotr6xzqbp6uxfvl4mnkh6uyg6fch4bciqd.onion:56005 | C2 server domain |
el4ccbgrbeyqdc4vn74tdtfstksdmwj66qdi7e77vucafwvvm7ozvgad.onion:6212 | C2 server domain |
g7w5uxhxw5mp5jmshvevd273qvkph2if5xnvrjemthe6ok5q5dtek4ad.onion:58387 | C2 server domain |
cunm2jbjumfxl6tfrtzkmpk7h722oxxqqfaw2iinkalt7ijf77ch27qd.onion:10192 | C2 server domain |
r4gihskhiti437bonklmq24d6dl6swuw7zg5iseehjcepd3abbyyqsid.onion:62377 | C2 server domain |
mh3ibr5n4abi3fr3rlaar7wr3p2ptjrcon3jcp6tuqxscxfii4pegkid.onion:24793 | C2 server domain |
x76mtemtxl5fucgccu2nz4morfmpwwe44xp3ovkgsguzsntlh7ukn4id.onion:12656 | C2 server domain |
xzxdiwnw354odly55y7twfrimzys5574eaw57ttetyyo4up5ww6v25ad.onion:20938 | C2 server domain |
ipatoez4ldch3vabmz6lcawxtoogkmg5alxvwdm7fwzng7flvlz47ryd.onion:45505 | C2 server domain |
wlfeie2rk6utw3y5aykjisr3yj6c7hme43st2weo4jmtok6zxw33hyad.onion:31059 2fio6wjjlq4pihqf6qhefaqnkkfonkgbiu4uw3jvzhcuysejme4oxwyd.onion:6849 | C2 server domain |
bpe2vrpvh5ri7odgbqxhr6mjaxe3zvekcexzdwpaiorq3xcbttrxywid.onion:22316 | C2 server domain |
42lidqllkggf7tsgymwk4jzfmawdinwav5vkii3l3wsqcrk4k5ncrrad.onion:30971 | C2 server domain |
vvftwyeaxr3f32t3etseadhvfx42ylza5g5gpg3zqp3e46tie2w34iyd.onion:13066 | C2 server domain |
3c6vus267hplojma4d3qckohjgxnhattb2vkkwcm6anilylzqkzdakad.onion:48285 | C2 server domain |
ztnjv2hf4gxl7x7f27qhhfxehdd4cd6cdfwjw6u7njmqxjgllzm6kgid.onion:17249 | C2 server domain |
okindaw6oogkyrdjghbqdcmbcrxersox5yphfod2uy363g5go72tx7qd.onion:37435 | C2 server domain |
uxfjrthzy6c6a7d2zqk47x4ltjm6hmftbroghxk4vfjva6mftpsmkbyd.onion:49600 | C2 server domain |
3gqcnr6wlxmv3dunl6rb4mcosa7ttedzbgya42burisj4qoeudl77nad.onion:40763 | C2 server domain |
kykggujjvvag7p4nmptsfuyqrqtqiqqun3pimsuupecmpoez2gph4vqd.onion:34469 | C2 server domain |
d4fsxtbvffjubsxmhczl6mt2wqukyao23vzi2dd7nahpcrwrhvkualid.onion:52210 | C2 server domain |
s54ui6ju3aa5w3anmo3lgwn53hm7us3lj5venw3eqyogoel6e6uv7fad.onion:14826 | C2 server domain |
3rp2g7y5jyalwmihkagfvwdh3fjvbecor3vz4j6vwaxdnmi6onf2hrid.onion:24849 | C2 server domain |
ag2qts4t6fy6x475c5xuknlwdugdoy33oueejdv5lkfavah73g6mvlyd.onion:4853 | C2 server domain |
qtnf675tghndtnnrosx2lsrvktbq7iw3noetckags2fb2ci7cujzxfyd.onion:20325 | C2 server domain |
4l4abrrv5j7662dioqthd5fz5u4oxbpfradwt3ntliw2gfnikgers6qd.onion:35870 | C2 server domain |
glhdxhgiqrboqrgw2dmwutpocyilxxuahxc6v3lfpfxhihahw4tjfeid.onion:4647 | C2 server domain |
csn3i3femv6dx362p4qesombr3e7gm5skcxkuqrymuaxeqqwmnrnvxyd.onion:13609 | C2 server domain |
knvocjqt6znfp4lba3j237i5kjnxgmk6niqk72w3wb22bfif6i7wufad.onion:46367 | C2 server domain |
yuuexutjzjmul7wldcecq6mpr2v5dyblw5n77elnoikttxfk3y54gnad.onion:20247 | C2 server domain |
ysbbw6ghpxos5jzcmdjydrrl3clqdvwfygejrktre4bixr3zo63vk7yd.onion:9080 | C2 server domain |
xwm5hhm4oalqhe4u67dfsqovxygkxox4bleir4isyqpncskamxa7bead.onion:65293 | C2 server domain |
gutayapi55tb5dmjhlmlwk3owg4aqy5fbyw7uk4skoagzv3le4ge6kad.onion:54050 | C2 server domain |
iz3iltwsdsaiqptqxba52bvwouzwoi56fw7vqbiw3znjo2jmifxmiuqd.onion:44714 | C2 server domain |
ia5ynzyztblk7vde74szyhy6a7f57dqg6jvysnrm34fv2aivlcornzqd.onion:55782 | C2 server domain |
j3w64lohpdl2fynduq7tey7v5kc5nfieblmi5g2znuadn75lkrgdi3yd.onion:33534 | C2 server domain |
4x34ze2b5l7fh5b4miyvkg44ohajj2pb7hcewt3jt3wlccfbezejrgyd.onion:61565 | C2 server domain |
sgk5c76pgs7a3qfhzvmey2ecnunsfdbykgjxvunnbpnn3ixlu7a5eqyd.onion:57063 | C2 server domain |
ztgk5ebmxcq3onksgg3guxpe4abz4cktcfa5lgubcgyde3ojkbvyjnad.onion:3574 | C2 server domain |
5lqerrumqsknnphthjiwg45uas7xcer65am4vs7z4zheshmx6hxyh2yd.onion:33774 | C2 server domain |
5oiwshn53yari5pza6ca3rxctq47e4azf6wzsvyidmt3j55d5lf7rvyd.onion:54638 | C2 server domain |
7jfv34s2axfur4euvzqzzowyqksby7hyt3sizuxvucxoc6ma46qjooqd.onion:37085 | C2 server domain |
soraykkm25es2phzeszxpinfhcbqgyn7i4tznb4atvks3gnsynm7avad.onion:21586 | C2 server domain |
tfjhxbhmr3vrmjrhc543npj4nk64jksodoclyjuqfn5aflmi44f657id.onion:29543 | C2 server domain |
7ray5zki7gjzms3bzbivwtcacyt4raaz6bixzmmgu6ljy5pjfpebowqd.onion:432 | C2 server domain |
z5qg6hpu7sxjyws2fqxei2peywu2tttq6lxs5ybxesgffqmjpedyeuyd.onion:37022 | C2 server domain |
werbjkqsmcugdcbdn5yvriyy6q4m2qfk3mg7cf6sujzandkwlsnlucid.onion:18703 | C2 server domain |
aqumyf4ecfgbxgcnrels2qd2cq5obbnwr4zr37cqw3tg7v5o6kuhqqyd.onion:37737 | C2 server domain |
wmdlzzdfkxikxrlw42rf75ug62semr3h6soc6tyoom3bb75zi7hjbrid.onion:3569 | C2 server domain |
6g6z6zsz7xc2ywqunbzzc4u2uv7yakc5aiaqbojbajmfioj3dfkzbnqd.onion:11703 | C2 server domain |
ne2vesxuik5dkz4vynmfped6rjfsjehmkajhkcpcjr5m3c3hc5bx5oad.onion:27842 | C2 server domain |
7gb5jc3mr32qqyae2s3o5r4fpima2cqpuogpbcmwk7wyvwmqxpr4wdid.onion:62326 | C2 server domain |
daorqgcuse6jzt7r22si2q4t7rjz622vxd5xhq4v4rzcyukltnqg3pyd.onion:31817 | C2 server domain |
¿Este post ha sido útil?
Descargo de responsabilidad: Esta entrada de blog ha sido creada por Zscaler con fines únicamente informativos y se proporciona "tal cual" sin ninguna garantía de exactitud, integridad o fiabilidad. Zscaler no asume ninguna responsabilidad por cualquier error u omisión o por cualquier acción tomada en base a la información proporcionada. Cualquier sitio web de terceros o recursos vinculados en esta entrada del blog se proporcionan solo por conveniencia, y Zscaler no es responsable de su contenido o prácticas. Todo el contenido está sujeto a cambios sin previo aviso. Al acceder a este blog, usted acepta estos términos y reconoce su exclusiva responsabilidad de verificar y utilizar la información según convenga a sus necesidades.
Reciba en su bandeja de entrada las últimas actualizaciones del blog de Zscaler
Al enviar el formulario, acepta nuestra política de privacidad.


