SHA1:
- cf20c882dcc427bff822fa2c54fab39397a8d6e7 (codeX)
- 873ba485d40199ab7f7ebe1258aa56e09625f3af (codeX, decrypted)
- 0f5d2fe52f15adb6813bd398dcc1e10de52e2953 (main.js)
Description
A module of the MonsterInstall trojan. It’s downloaded as a 0-0-3-0-worker.7z archive by the Trojan.MonsterInstall.2 component.
The contents of the archive:
- node_modules,
- 7za.exe,
- codeX,
- main.js,
- sysnode.exe (executable Node.js file).
Operating routine
main.js reads the codeX file, decrypts it using XOR with a string “xor” and executes it.
The codeX file creates the MoonTitleWorker mutual exclusion, then forms a json with information about the system and the trojan:
{"userId": id, "starter": [], "worker": [], "source": [], "osInfo": {"isX64": True, "osString": "Windows 7 Enterprise"}}
Afterwards it sends the information to the http://xyi-sosi-guboi-trisi[.]xyz:1001/getApps server via POST request. Response from the server may contain information about the apps that must be installed. An example of the server response:
{
"body": {
"apps": [{
"hash": "452f8e156c5c3206b46ea0fe61a47b247251f24d60bdba31c41298cd5e8eba9a",
"size": 8137466,
"version": [2, 0, 0, 2],
"link": "xmr-1-64.7z",
"path": "%pf%\Microsoft JDX\64",
"runComand": "%path%\moonlight.exe start.js",
"name": "xmr64"
}]
},
"head": "O~¨^Óå+ßzIçsG¬©®üS„ʶ$êL–LùθZ\f\u0019ÐÐ\u000e\u0004\u001cÀU¯\u0011š)áUÚ\u001flß²A\u001fôÝÔ숱y%\"DP»^¯«FUâ\u001cÔû\u001dµ´Jï#¬ÌȹÎÚª?\r—]Yj·÷õ³—\u001e°ÖÒ\\鉤d’BT\u0019·¦FõVQ°Aç’)\u001cõªµ¦ýûHlb͸þ}éŒ\u0000jvÔ%S;Ã×þA\u0011ß‘I[´\u0004ýÚ\u0007Z:ZÂ\n–ñz#ÈBö›²2\u0007ήJw±è®TVoŸå\bÖR3½ù;ƒó\u0011ÉÌÅÖàð06ÓeÕþˆ”7Ùš\u0011•»”˜¢5µgôÛc˜®&L\u000fê.?!Çæ}¨\u001eÕ—J#A¼_Ì\u0015càñb"
}
The trojan downloads versions of the app that are not on the device. To do this, it sends a POST request with the same information that was in the last request, but to a different URL: http://xyi-sosi-guboi-trisi[.]xyz:1001/<link>, where <link> is a “link” parameter for a corresponding application from the server’s response.
The trojan checks if the size and hash of the downloaded file fits the information from the “hash” and “size” parameters sent by the server. If the description matches, the trojan moves the file to a path from the “path” parameter and executes a command from the "runCommand” field. Information about the downloaded app is saved in the registry: [HKLM\SOFTWARE\Microsoft\MoonTitle\apps\].
If a running older version of the app is still running, the trojan deletes it and installs as described earlier.
Depending on the system version, the server responds with an xmr-1.7z or xmr-1-64.7z archive (Trojan.MonsterInstall.4).