The ISO file has two main components.
The _meta.txt contains a PowerShell script, which is encrypted with a substitution cipher.
The downloader.exe is a .NET assembly.
It has a big dictionary with the substitution alphabet to decrypt the PowerShell script 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 downloader.exe also shows an error message to the user, claiming that the operating system is incompatible with the program.
https://www.gdatasoftware.com/fileadmin/web/general/images/blog/2022/01/chromeloader_main_msil.png
The PowerShell script downloads the Chrome extension archive.zip 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, it’s already noted 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.
https://www.gdatasoftware.com/fileadmin/web/general/images/blog/2022/01/chromeloader_config.png
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.
After identifying v0MM.T7 and v0MM.o7 as the ancor points for function string decoding, by replacing 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.
https://www.gdatasoftware.com/fileadmin/_processed_/a/6/chromeloader_switchcase_7ff59485b5.png
https://www.gdatasoftware.com/fileadmin/_processed_/8/9/chromeloader_searchhijacking_1d475d62c9.png
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.
https://www.gdatasoftware.com/fileadmin/web/general/images/blog/2022/01/chromeloader_adrequest.png