|Added to Dr.Web virus database:||2014-01-20|
|Virus description was added:||2015-07-15|
A Trojan that resides in the boot partition of the file system.
Once the infected device is turned on, the kernel image containing a modified init.rc script, /sbin/imei_chk, and /sbin/.bootinfo is extracted. After that, the init.rc script is read by the operating system.
The init.rc script has the following changes:
service imei_chk /sbin/imei_chk
socket imei_chk stream 666
Based on these commands, the operating system launches the /sbin/imei_chk bootkit and creates a socket with the same name.
/sbin/imei_chk acts as an installer of GoogleKernel.apk and libgooglekernel.so and as a gate though which GoogleKernel.apk can execute commands with root privileges via the socket at imei_chk.
Once launched, the bootkit extracts the GoogleKernel.apk and libgooglekernel.so files from its body and installs them as follows:
#scans /proc/mounts and identifies mounting /system
#remounts system to
mount -o remount,rw %s /system
chown system.system libgooglekernel.so
chmod 644 libgooglekernel.so
chown system.system GoogleKernel.apk
chmod 644 GoogleKernel.apk
mount -o remount,ro rootfs /system
pm enable com.android.googlekernel
Among environmental variables, the bootkit searches for the socket created on system startup and listens for the following commands:
cmds—can execute any command with root privileges via console,
get_mnt_dev_name—name of the mounted device,
get_channel_id—command results in the reply with 888888 or a string from /sbin/.bootinfo.
GoogleKernel.apk and libgooglekernel.so components
GoogleKernel.apk is a bot that operates as a service. It contains lib/armeabi/libgooglekernel.so that can be used when root privileges are not available. It closely communicates with the libgooglekernel.so library that performs main malicious actions and has a number of exported functions. Moreover, native code of this library can call Java classes using JNI.
Once launched, GoogleKernel.apk creates a system thread and calls the main exported function doWork.
Communication with the server
The bot communicates with several command and control servers and can receive lists with new addresses.
Step 1—get a domain list
First, the bot reads the configuration file and decrypts it.
Decryption routine is as follows:
The bot also examines the checksum of the file as follows:
File structure is as follows:
This file contains the list of domains separated by commas. If the file is missing, it is downloaded from http://info.[xxxxxxxxxx].com/data.i.
In reply to the download request, the bot receives an encrypted file with details on its checksum. An unchecked file is saved to /data/data/com.android.googlekernel/db/data.i.
Step 2—GET request and acquiring basic configuration data to activate bot's backup servers
GoogleKernel.apk consecutively sends GET requests to domains from the /data/data/com.android.googlekernel/db/data.i list for the %chanal_id%.json script. The chanal_id parameter is stored in the bot's body (the value equals 8008). Then the bot waits for a JSON object. The configuration file can contain the following commands:
- su—activate HZ_main (http://[xxxxxxxx]666.com:8090/backurl.do, [xxxxxxxx]666.com, [xxxxxxxx]666.com) and main (http://[xxxx]108.net/install.html, [xxx]6.com, [xxxx]fy.com, [xxx]jobs.com);
- type—activate MY_main (http://[xxxxxxx]999.com:8090/backurl.do, [xxxxxxxx6666].com);
- install—download and install an APK file on the device; the file contains additional parameters (id, app, main, ver, vercode, size, path);
- uninstall—remove APK (app).
Step 3—POST request and sending bot statistics
Depending on the command type (“su” (HZ_main, main) and “type” (MY_main)), relevant features and configuration files are activated. These functions are identical and differ only in domain names and path to saved settings.
Files are placed into the following directory:
bakdata.i—command and control server at [xxxxxxxxx]666.com
dns.i—DNS parameter domains
The bot sends a POST request and the /installreq.do /installreq2.do script with the bot's information in GZIP format (urlencode(JSON)) to [xxxxxxxxx666].com to port 8090 or 9090.
<?xml version='1.0' encoding='UTF-8 ' ?>
<PATH>D</PATH> #debug, release
Then the malicious program waits for a JSON command.
The following commands can be executed:
- addr—phone number (this feature is not implemented),
- install—install APK,
- uninstall—remove APK,
- dns—domains (ACTION_TEST_BROADCAST, TEST_BROADCAST_LABEL executes broadcast),
- cardid—server sends ID that is stored to a file,
This functions sends a GET report as follows:
The bot gets the following domains from the server:
[xxx]pfr.net, [xxx]ile.net, [xx]ppw.net, [xxx]tte.net
For Microsoft Windows OS:
- If the operating system (OS) can be loaded (either normally or in safe mode), download the curing utility Dr.Web CureIt! and run a full scan of your computer and the removable media you use.
- If you can't load the OS, change the BIOS settings to load your system from a CD or USB drive. Download the image of the emergency system repair disk Dr.Web® LiveDisk or the Dr.Web® LiveDisk recording utility onto a USB drive and prepare the relevant media. After booting up with this media, run a full scan and cure whatever threats have been detected.
- If your OS has been locked by malware from the Trojan.Winlock family, use our unlocking service. If you failed to find the unlock code, follow the instructions provided in Section 2.
- On the loaded OS, run a full scan of all disk partitions using the Dr.Web Anti-virus for Linux.
For Mac OS X:
Run a full system scan using the free Dr.Web Light Scanner for Mac OS X. You can download it from the Apple App Store.
- If the mobile device is operating normally, download and install the free anti-virus Dr.Web for Android Light. Perform a full system scan and carry out the recommendations for removing any detected threats.
- If the mobile device has been locked by Android.Locker ransomware (the screen will be telling you that you have broken some law or demanding a set ransom amount; or you will see some other announcement that prevents you from using the handheld normally), do the following:
- Start your smart phone or tablet in the safe mode (depending on the operating system version and specifications of the particular mobile device involved, this procedure can be performed in various ways; seek clarification from the user guide that was shipped with the device or contact its manufacturer);
- Once you have activated safe mode, install the free anti-virus Dr.Web for Android Light onto the infected handheld and perform a full scan of the system; follow the steps recommended for neutralising the threats that have been detected;
- Switch off your device and turn it on as normal.