SHA1:
- cd176f314662363af782fc539213db8f1171a664
A multicomponent Trojan for Android which is downloaded and run by other malware programs. Android.Loki.16.origin tries to get root privileges and install its components in the system catalog.
Once launched, Android.Loki.16.origin sends information about an infected device to the server. The information is sent in the JSON format, for example:
{
"chanel": "25425",
"brand":,
"model":,
"product":,
"android":,
"linux_v":,
"sdk":,
"imei":,
"imsi":,
"abi":"armeabi-v7a",
"country":"US",
"service": "ApiSs.lists",
"vd": "version 201611111348",
"vc": "3",
}
where
- "chanel": – whole number;
- "brand": – device manufacturer;
- "model” – name of a device;
- "product": – full device name;
- “android”—operating system version;
- “linux_v” – Linux kernel version;
- “sdk” – SDK version of the operation system;
- “imei” – IMEI identifier;
- "imsi": – IMSI identifier;
- "abi": – platform architecture;
- "country": – user’s geolocation
- "service": – request for a list of exploits needed to be downloaded;
- "vd": – a version of a malware program specified in the file AndroidManifest.xml;
- "vc": – a constant.
Sent information is compressed with the class DeflaterOutputStream and is encrypted with the AES algorithm. The server replies with a compressed and encrypted JSON file containing parameters for downloading exploits and an additional malicious module:
{
"dmd5": "AEB2053BCA56D736152884095C052328.zip",
"dparam": "tag_test",
"durl": "http://**.***.64.76:10001/?&service=ApiKl.get",
"dtype": 0,
"list": [
{
"xurl":
"http://**.***.64.76:10001/?&service=ApiSs.get&xmd5=C9194C261C5D8E50F7BE098CBBE464AE.zip",
"xmd5": "C9194C261C5D8E50F7BE098CBBE464AE",
"xtype": 0
},
{
"xurl":
"http://**.***0.64.76:10001/?&service=ApiSs.get&xmd5=FEA7150DFACAF4887FEBD56360F7C0B9.zip",
"xmd5": "FEA7150DFACAF4887FEBD56360F7C0B9",
"xtype": 0
}
]
}
where
- "dmd5": – a name of an archive with the malware component Android.Loki.28;
- "durl": – a link for downloading Android.Loki.28;
- "list": – a list of exploits needed to be downloaded.
After the exploits are downloaded and unpacked, Android.Loki.16.origin executes them one by one. The following parameters are sent:
argv[n] | Value |
---|---|
0 | /data/data/<package_name>/files/sclplu/xcache/<exploit_name> |
1 | "7e832e21a8178d83" |
2 | System.currentTimeMillis() / 1000 % 43200 |
3 | /data/data/<package_name>/files/sclplu/xcache (catalog with exploits) |
4 | path to Android.Loki.28 |
5 | /storage/sdcard/.googlex9/.xamdecoq0962|<google advertizing id>|<android device id>|<MAC-адрес>|<IMEI>|<channel ID (number from the initial request of the Trojan)>|<dparam (a parameter received from the server)> |
Before launch of the main code, every exploit perform the following actions:
- Checks a number of arguments.
- Compares the value argv[1] with a hard-coded string.
- Verifies that the value argv[2] is in certain limits.
Then an exploit which has successfully got the root privileges creates the file crsh.sh in the catalog /data/data/<package_name>/files/sclplu/xcache. The file contains the following script which then run:
#!/system/bin/sh
<путь к Android.Loki.28> 0e7e68c92b889bed <argv[2]>
/data/data/<package_name>/files/sclplu/xcache <argv[5]>
rm $0
The script, in its turn, runs Android.Loki.28.