SHA1: 14215a93ed5d0a86f31aab0b2d7be6db8a45a371
Описание
Троянская программа-бэкдор, предназначенная для работы на Android-устройствах. Ее основными функциями являются осуществление DDoS-атак и удаленное выполнение команд на устройстве жертвы.
Принцип действия
Вредоносная программа Android.Pandora.2 была выявлена в результате исследования случаев заражения защищенного системного раздела нескольких ТВ-приставок одного модельного ряда. Само заражение предположительно происходило через эксплуатацию незакрытых уязвимостей операционной системы Android.
Бэкдор устанавливается в системную область устройств вместе с рядом вспомогательных компонентов. В процессе анализа заражений были выявлены следующие объекты:
- /system/bin/pandoraspearrk;
- /system/bin/supervisord;
- /system/bin/rootsudaemon.sh (в некоторых случаях вместо файла rootsudaemon.sh может устанавливаться файл preinstall.sh);
- /system/bin/s.conf;
- /system/xbin/busybox;
- /system/bin/curl.
Файл pandoraspearrk — непосредственно троянская программа Android.Pandora.2.
Файл supervisoid — утилита-супервизор, которая отслеживает состояние целевого исполняемого файла и в случае завершения его работы запускает вновь. В данном случае она контролирует состояние бэкдора, используя для этого конфигурацию из файла s.conf.
Файлы busybox и curl представляют собой невредоносные инструменты BusyBox (набор UNIX-утилит различной функциональности) и curl (утилита для передачи данных через различные сетевые протоколы).
Файлы rootsudaemon.sh и preinstall.sh — скрипты. Первый выполняет запуск файла supervisoid от имени root и имеет следующую структуру:
#!/system/bin/sh
/system/xbin/daemonsu --auto-daemon &
/system/bin/supervisord -c /system/bin/s.conf &
Второй — создает ряд директорий, производит установку APK-пакетов и также запускает файл supervisoid.
#!/system/bin/sh
MARK=/sdcard/symbol_thirdpart_apks_installed
PKGS=/system/preinstall/
MARK1=/data/local/symbol_xbmc_file_coped
ANDROID_DIR=/sdcard/Android
DATA_DIR=/sdcard/Android/data
if [ ! -e $MARK ]; then
echo "booting the first time, so pre-install some APKs."
busybox find $PKGS -name "*\.apk" -exec sh /system/bin/pm install {} \;
touch $MARK
echo "OK, installation complete."
fi
if [ ! -e $MARK1 ]; then
echo "booting the first time, so pre-install some APKs."
echo "lml in kodi.sh22!!!"
if [ ! -e $ANDROID_DIR ];then
echo "no android dir ,we need make android dir first."
log -t cw "lml in kodi.sh33!!!"
busybox mkdir /sdcard/Android
fi
log -t cw "lml in kodi.sh44!!!"
if [ ! -e $DATA_DIR ];then
echo "no android dir ,we need make data dir first."
log -t cw "lml in kodi.sh55!!!"
busybox mkdir /sdcard/Android/data
fi
log -t cw "lml in kodi.sh66!!!"
rm /sdcard/Android/data/org.xbmc.kodi/ -rf
busybox unzip -o /system/media/org.xbmc.kodi.zip -d /sdcard/Android/data/
touch $MARK1
echo "OK, installation complete."
fi
/system/bin/supervisord -c /system/bin/s.conf &
В частности, он устанавливает программу-медиацентр для Android TV под названием Kodi® media center (org.xbmc.kodi).
Взаимодействие с C&C-сервером
Для связи с C&C-сервером бэкдор считывает его адрес из параметров командной строки или из зашифрованного алгоритмом Blowfish файла /data/.ms, либо использует встроенный список:
- ok3[.]mflve[.]com
- pcn[.]panddna[.]com
- apz[.]bsaldo[.]com
- abcr[.]ftsym1[.]com
Далее выполняется проверка наличия каталогов /htv и /koocan. Впоследствии в них копируется новая версия бэкдора при выполнении команды на его самообновление.
Троян подключается к серверу по полученному адресу и формирует строку с id вида:
1000@12.00-00.00-10000000@0002@
При этом числовое содержимое этой строки может варьироваться в зависимости от того, получил ли троян доступ к /dev/block/hide, /dev/block/mtdblock5 или /dev/block/mtdblock4 и получил ли оттуда определенные данные.
Полученная строка шифруется алгоритмом Blowfish с ключом zAw2xidjP3eHQ, преобразуется в модифицированный Base64 и передается на C&C-сервер. В ответ Android.Pandora.2 получает команду.
Выполнение команд
Поступающие бэкдору команды имеют формат <...>@<команда>@<аргумент 1>@<аргумент 2>@....
Команда | Название | Аргументы | Описание |
---|---|---|---|
11 | addns | tmpdnsip, tmpdns | Добавить запись в /etc/hosts. |
12 | del_dns | host | Убрать запись из /etc/hosts. |
21 | URL | Выполнить автообновление троянского приложения. | |
31 | syn | host (опционально - port) | Выполнить DDoS-атаку на заданный host через 80 порт, либо через порт, указанный в аргументах команды. |
32 | udp | host | Выполнить DDoS-атаку по протоколу UDP. |
33 | icmp | host | Выполнить DDoS-атаку по протоколу ICMP. |
34 | mix | host | Выполнить DDoS-атаку по протоколам ICMP, UDP и SYN одновременно. |
35 | smurf | host | Выполнить DDoS-атаку по протоколу ICMP. |
36 | tagr3 | host (IP-адрес или hostname) | Выполнить DDoS-атаку. |
37 | сс | Неизвестно | Запустить поток для выполнения заданного действия. |
38 | dnsflood | Неизвестно | Выполнить атаку типа DNS Query Flood. |
88 | shell | host, port | Открыть Reverse Shell до host:port (либо до /system/bin/sh, либо до ksh). |
110 | stopall | Остановить все процессы, выполняющие DDoS-атаки (для каждой команды на DDoS-атаку по умолчанию создается 50 процессов). | |
3000 | lbs | Неизвестно, IP | Записать адрес C&C-сервера в /data/.ms и подключиться к нему. |
5000 | URL | Записать адрес С&С-сервера в /data/.ms. | |
5555 | Неизвестно | Обновить адрес С&C-сервера в /data/.ms. | |
6269 | Команда | Смонтировать раздел /system в режиме rw, выполнить команду, записать вывод команды в лог, смонтировать раздел /system в режиме ro. |
Подмена файла /etc/hosts
При обращении к C&C-серверу Android.Pandora.2 получает ссылку на загрузку необходимого злоумышленникам файла hosts, который зашифрован Blowfish и закодирован модифицированным вариантом Base64.
После расшифровки бэкдор подменяет этим файлом оригинальный системный файл, расположенный в /etc/hosts.