SHA1-хеш:
- 61586a0c47e3ae120bb53d73e47515da4deaefbb
Описание
Linux.BackDoor.Tsunami.1395 представляет собой троян, способный заражать компьютеры под управлением ОС Linux. Троян предназначен для создания ботнета и выполнения DoS-атак, в связи с чем имеет функции удаленного управления. Реализован в виде запакованного пакером UPX исполняемого файла формата ELF64, написанного на языке С. При упаковке «магическая» последовательность байтов в заголовке UPX была заменена на «\x0a\x00\x00\x00».
Принцип действия
Инициализация
При инициализации троян проверяет список процессов в системе на наличие инструментов strace и tcpdump. При обнаружении какого-либо из них он прекращает свою работу. В противном случае происходит запуск трояна, который для сокрытия своей активности подменяет имя своего процесса на случайную строку длиной от 12 до 32 символов.
Затем производится проверка доступа к директориям /dev/shm/, /var/tmp/, /var/lock/, /var/run/, /tmp/, создание скрытого файла .bawtz и его рекомендательная блокировка в одной из этих директорий, куда у трояна есть доступ, что обеспечивает запуск программы в одиночном экземпляре.
Далее троян открывает сокет на прослушивание по адресу 127.0.0.1:59000, проверяет наличие утилиты cron и добавляет строку "nameserver 8.8.8.8" в файл /etc/resolv.conf.
Закрепление в системе
Троян копирует себя в директории /dev/shm, /var/tmp, /var/lock, /var/run и домашний каталог пользователя.
Создает задачу для cron:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (- installed on Wed May 24 18:18:13 2023)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* * * * * /root/pty3.elf > /dev/null 2>&1 &
* * * * * /dev/shm/pty3.elf > /dev/null 2>&1 &
* * * * * /var/tmp/pty3.elf > /dev/null 2>&1 &
* * * * * /var/lock/pty3.elf > /dev/null 2>&1 &
* * * * * /var/run/pty3.elf > /dev/null 2>&1 &
Добавляет запуск трояна через /etc/inittab:
0:2345:respawn:/root/pty3.elf
0:2345:respawn:/dev/shm/pty3.elf
0:2345:respawn:/var/tmp/pty3.elf
0:2345:respawn:/var/lock/pty3.elf
0:2345:respawn:/var/run/pty3.elf
Соединение с сервером
Троян произвольно выбирает один из следующих серверов и подключается к нему на порт 8080:
185[.]62[.]137[.]56
162[.]249[.]2[.]189
165[.]22[.]217[.]181
68[.]66[.]253[.]100
46[.]149[.]233[.]35
185[.]61[.]149[.]22
45[.]132[.]242[.]233
i.l33t-ppl[.]info
i[.]de-zahlung[.]eu
i.deutschland-zahlung[.]net
i.shadow-mods[.]net
i.deutschland-zahlung[.]eu
173[.]255[.]240[.]191
31[.]131[.]24[.]229
Работа с управляющим сервером происходит по протоколу IRC. При подключении отправляет на сервер пакет следующего содержания: NICK <имя бота>\nUSER 0x1 localhost localhost :muhstik-11052018\n. Параметр <имя бота> формируется следующим образом: <arch>h<username><rand><isRoot>. При этом в качестве значения <username> используется результат выполнения одной из следующих команд:
nvram get router_name
cat /etc/ISP_name
/bin/uname –n
cat /etc/Model_name
Обработка входных данных
Троян получает от своего C&C-сервера два вида команд:
- <special> <command> <params>\n
- <command> <params>\n</pre>
Название | Описание |
---|---|
376 |
Отправляет на сервер 3 сообщения
|
422 | Делает то же самое, что и команда 376 |
433 | Обновляет переменную <имя пользователя и информация о привилегиях> |
NICK | Копирует в переменную <имя пользователя и информация о привилегиях> данные, переданные в параметре |
PING | Отправляет на сервер пакет: PONG <params>\n |
PRIVMSG | Выполнение дополнительных команд |
Последняя команда имеет следующие параметры, при этом само поле <params> имеет вид: #ex86 +OK !<command> <args>, а поле <special> имеет вид: <data>!:
Название | Описание | Аргументы |
---|---|---|
CBACK | Создает обратное соединение | IP-адрес и порт сервера |
GET | Скачивает файл | URL для скачивания файла и имя, под которым файл будет сохранен |
HELP | Отправляет на сервер описание команд | |
HTTP | Начинает DoS-атаку с помощью отправки HTTP-пакетов | IP-адрес, порт, время атаки, количество потоков, маршрут атаки, тип запроса |
IRC | Отправляет на сервер <params> | |
KILL | Закрывает программу | |
KILL_PORT | Закрывает сокет | Порт открытого сокета |
KILLALL | Уничтожает все порожденные подпроцессы | |
PAN | Начинает DoS-атаку с максимальным количеством потоков | IP-адрес, порт, время атаки |
SH | Выполняет команду в /bin/sh, добавляет программу в PATH | Команда передается в параметре |
SHS | Запускает два раза команду через вызов execve | Команда передается в параметре |
STD | Начинает DoS-атаку с помощью отправки строки на сервер | IP-адрес, порт, время атаки, отправляемая строка |
UDP | Начинает DoS-атаку с помощью отправки UDP-пакетов | IP-адрес, порт, время атаки |
UNKNOWN | Начинает DoS-атаку | IP-адрес, время атаки |
Поле <special> отправляется на сервер, если для команды не хватает аргументов.