# QR codes on Twitter deliver malicious Chrome extension **[gdatasoftware.com/blog/2022/01/37236-qr-codes-on-twitter-deliver-malicious-chrome-extension](https://www.gdatasoftware.com/blog/2022/01/37236-qr-codes-on-twitter-deliver-malicious-chrome-extension)** 02/03/2022 G DATA Blog ISO file downloads are advertised via QR codes on Twitter and on supposedly free gaming sites, but they don't contain what they promise. ## QR codes on Twitter and malvertising [The loader for the malicious Chrome extension was initially analysed by @x3ph1 who dubbed](https://twitter.com/x3ph1/status/1480385761295970305) it ChromeLoader. To avoid misunderstandings with legitimate Chrome components we hereby refer to it as Choziosi loader. [The analysis on the loader is detailed but x3ph1 does not](https://github.com/xephora/Threat-Remediation-Scripts/tree/main/Threat-Track/CS_INSTALLER) describe the Chrome extension Choziosi, which got me intrigued. Twitter user [@th3_protoCOL found QR codes that circulate on Twitter and advertise pirated](https://twitter.com/th3_protoCOL/status/1480621526764322817) software to lure people into downloading an ISO. Reddit users also complain about malicious [ISO files on websites that provide Steam games. This tweet by @StopMalvertisin says the](https://twitter.com/StopMalvertisin/status/1480972727225761794) ISOs are downloaded via malicious advertisments. ----- Twitter QR codes promoting pirated software with Choziosi loader (click to enlarge) ----- Reddit user complaining that the infection regularly shuts down Chrome (click to enlarge) The ISO file[3] has two main components. The _meta.txt contains a PowerShell script, which is encrypted with a substitution cipher. The downloader.exe[2] is a .NET assembly. It has a big dictionary with the substitution alphabet to decrypt the PowerShell script[4] in _meta.txt. It adds the PowerShell commands as scheduled task named ChromeTask which runs every ten minutes. [Other variants of the same malware use dictionaries to combine words into a task name. The](https://twitter.com/x3ph1/status/1481454967617896450) downloader.exe also shows an error message to the user, claiming that the operating system is incompatible with the program. ----- downloader.exe schedules a task named ChromeTask which executes PowerShell The PowerShell script downloads the Chrome extension archive.zip[1] from a malware server and installs it. Due to the scheduled task this continues to happen every ten minutes. This explains why some Reddit users complain that Chrome closes itself all the time. This is a mishap of the malware developer because the annoyance factor will make it more likely that affected users clean their system as soon as possible. ## Malicious Chrome extension The Chrome extension itself has not been analysed yet. Possibly because of its hefty obfuscation. While trying to debug the extension within Chrome, I already noticed that the extension settings chrome://extensions are redirected to the general settings **chrome://settings. This prevents users from uninstalling the extension within Chrome.** The extension consists of four files. The application icon is called properties.png and shows a gearwheel. The manifest.json is part of every Chrome extension and has some metadata, e.g., about the icon location, extension name and permissions. The config.js contains the name of the extension, version number, C2 server and some form of id named _dd which is always sent as parameter to the server. The main script is the background.js. It features control flow obfuscation via switch-case statement hopping which cannot be deobfuscated automatically by currently available tools. [JavaScript Deobfuscator is able to perform intial cleanup, but the code remains unreadable.](https://deobfuscate.io/) After identifying v0MM.T7 and v0MM.o7 as the ancor points for function string decoding, I replaced the calls to these functions with their return value. A second pass to JavaScript Deobfuscator and manual cleanup of now unneeded functions leads to the final deobfuscated code[5]. ----- Control flow obfuscation via switch-case hopping (click to enlarge) ----- Deobfuscated code, search hijacking function (click to enlarge) The extension's main functionality is to serve advertisments and hijack search requests to Google, Yahoo and Bing. Every three hours analytics are sent to the C2. The extension requests advertisments from the C2 server every 30 minutes. The following image shows the extension's request to the C2 server in the first line and the server response in the second. The server provided a direct download link for a legitimate software product. first line: request to the server; second line: server response with a legitimate download link. ## Conclusion When I started to work on this, I had admittedly other expectations on the malware's functionality. For now the only purpose is getting revenue via unsolicited advertisments and search engine hijacking. But loaders often do not stick to one payload in the long run and malware authors improve their projects over time. We will likely see more of this threat in the future. ----- ## File hashes All mentioned files, including the decoded and deobfuscated files, are available for download on [MalwareBazaar.](https://bazaar.abuse.ch/browse/tag/Choziosi/) **Description** **SHA256** [1] Chrome extension [2] download.exe, .NET file 6b1db4f891aa9033b615978a3fcfef02f1904f4eba984ba756ff5cd755d6f0b4 2d4454d610ae48bf9ffbb7bafcf80140a286898a7ffda39113da1820575a892f [3] ISO 8840f385340fad9dd452e243ad1a57fb44acfd6764d4bce98a936e14a7d0bfa6 [4] Decrypted PowerShell script [5] Deobfuscated background.js **Karsten Hahn** Malware Analyst 2e958f481828ce7c59a3beab2ddac5561347e6f9bc25e6716c4524b845e83938 1c0254f0f811aadd6f1dad1cc5926f6b32fa2fb0866c35bf6a9f3dfad25fd9ca -----