Поддержка
Круглосуточная поддержка

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

Linux.Aliande.1

Добавлен в вирусную базу Dr.Web: 2016-08-28

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

SHA1:

  • 3e71d70d910f85f546c526aa3a28f23455a19489

Вредоносная программа, предназначенная для взлома устройств под управлением ОС Linux методом перебора паролей по словарю (брутфорс) по протоколу SSH.

После запуска троянец считывает хранящиеся в нем конфигурационные данные:

cfg->IsWork = 0;
cfg->IsConnected = 0;
cfg->Thread = 50;
cfg->ThreadScan = 100;
cfg->Timeout = 15;
cfg->TimeoutScan = 2;
if ( runtime_writeBarrier.enabled )
{
  runtime_writebarrierptr((uintptr *)&cfg->Good, (uintptr)_r0_1);
  cfg = (ssh_bot_engine_Singleton *)v17;
}
else
{
  cfg->Good.list = _r0_1;
}
cfg->JsonForStart.str = 0;
cfg->JsonForStart.len = 0;
cfg->AutoStart = 0;
cfg->Validatebl = 0;
cfg->HostForCheckInfoIP.str = 0;
cfg->HostForCheckInfoIP.len = 0;
cfg->IsAddToSourceScan = 1;
cfg->City.str = "null";
cfg->City.len = 4;
cfg->State.str = "null";
cfg->State.len = 4;

Затем вредоносная программа отсылает на управляющий сервер POST-запрос, содержащий значение параметра “key”. В ответ троянец получает конфигурационные данные в формате JSON следующего вида:

{
  "host":"***.***.***.***:1337",
  "hostCheck":"***.***.***.***:1488",
  "timeoutScan":"4",
  "logins":["admin","root","pi","alpine","ubnt","sshd"],
  "passwords":["admin","root","pi","raspberry","alpine","ubnt","sshd","password","openelec"],
  "manualdisconnect":true
}

Выполнив синтаксический разбор полученных данных, троянец подключается к серверу, указанному в параметре “host”, с использованием библиотеки SocketIO, при этом используется обычный (не безопасный) веб-сокет. Если параметр "AutoStart" в хранящейся в структуре троянца конфигурации имеет ненулевое значение, вредоносная программа присваивает флагу "IsWork" значение «1» и отправляет информацию о собственном статусе на управляющий сервер. После этого значение флага “IsWork" устанавливается равным «0», и троянец читает параметры своего запуска из секции JsonForStart встроенных конфигурационных данных.

Затем вредоносная программа устанавливает обработчики для событий "start", "stop", "killbot", "clearlog" и запускает отдельный поток, в котором с периодичностью в 2 минуты проверяет состояние подключения к управляющему серверу путем отправки GET-запросов. Если сервер не возвращает в ответ значение "true", бот завершает свою работу.

Отправка статуса

Троянец собирает информацию об операционной системе зараженного устройства и заполняет следующую структуру:

struct ssh_bot_structs_Hardware
{
  uint64 Memory;
  string OS;
  string Logical_cpu;
  string Processor;
  int32 Physical_cpu;
  string Cpu_load;
};

С использованием этой информации, параметров конфигурации, а также списка взломанных устройств формируется JSON следующего вида:

{
    "status": {
            "Work":False,
            "result":[],  // bruted devices
            "hardware": {
                "memory":4096,
                "os":"linux 8.3",
                "logical_cpu":4,
                "processor":"Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz",
                "physical_cpu":2,
                "cpu_load":"0.01"
            },
            "parameters": {
                "country":"",
                "thread":"50",
                "threadscan":"100",
                "state":"null",
                "city":"null",
                "timeout":"15"
            },
            "validatebl":False
    }
}

С использованием этого JSON троянец создает событие «Status».

Start

Троянец принимает на вход JSON, который сохраняет в своей конфигурации в поле JsonForStart. Фактически, JsonForStart частично дублирует встроенную конфигурацию:

{
    "threadscan": 0,
    "thread": 0,
    "timeout": 0,
    "validatebl": false,
    "country": "",
    "state": "",
    "city": ""
}

Если флаг “IsWork" в конфигурации троянца имеет ненулевое значение, вредоносная программа сообщает об ошибке путем создания события "result_start" со строкой "fail", и отсылает сведения о статусе на управляющий сервер. Затем проверяются значения параметров “threadscan”, “thread” и “timeout” — если хотя бы одно из них меньше или равно нулю, троянец сообщает об ошибке и выходит из обработчика.

Затем вредоносная программа читает значения (при их наличии) следующих полей: "validatebl", "country", "state", "city" и формирует с использованием этих значений POST-запрос на управляющий сервер. Имя host извлекается из конфигурации троянца. В качестве ответа поступает список подсетей для последующего взлома.

Далее вредоносная программа снова отсылает POST-запрос на управляющий сервер со значением “key” для обновления конфигурации. После чего троянец запускает два новых потока: один с интервалом в 3 секунды проверяет статус вредоносной программы, второй используется для управления процессом взлома удаленных узлов.

Управление взломом

С интервалом в 10 минут троянец запрашивает с управляющего сервера конфигурацию. С интервалом в 3 минуты обновляет список подсетей для взлома и генерирует список IP-адресов атакуемых узлов на основе указанных подсетей.

Создает отдельные пулы для сканирующего и перебирающего пароли потоков. Сканирующий поток получает IP-адрес из очереди, проверяет, возможно ли установить соединение с портом 22. Если в конфигурации установлен флаг “Validatebl”, путем отправки GET-запроса проверяет IP-адрес и добавляет его в очередь.

Взлом

Троянец перебирает комбинации login:password по списку, пытаясь авторизоваться на атакуемом устройстве по протоколу SSH. В случае успеха через SSH-туннель отправляет GET-запрос на сервер "http://whoer.com:80", и получает оттуда IP-адрес. Отправляет GET-запрос на адрес "http://<hostCheck>/?ip=<ip>", в ответ получает структуру JSON следующего вида (значение <hostCheck> берется из конфигурации бота):

{
    "country":"",
    "region":"",
    "city":"",
    "zip":"",
    "blacklist": {
        "status": ""
    }
}

Затем вредоносная программа проверяет значение "status" на совпадение со строкой "listed". Если совпадение обнаружено, сохраняет "login", "password", "host", "country", "region", "city", "blacklisted" (этот параметр имеет значение "1", если параметр "status" совпадает с параметром "listed"), "zip" в список взломанных устройств.

Stop

Останавливает все потоки сканирования и взлома.

Killbot

Создает событие "result_killbot" со строкой "success" и завершает свою работу.

Clearlog

Очищает список взломанных устройств (cfg->Good), отсылает на управляющий сервер собственный статус. Создает событие "result_clearlog" со строкой "success".

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


Linux

На загруженной ОС выполните полную проверку всех дисковых разделов с использованием продукта Антивирус Dr.Web для Linux.

Демо бесплатно

На 1 месяц (без регистрации) или 3 месяца (с регистрацией и скидкой на продление)

Скачать Dr.Web

По серийному номеру