Xenomorph » софт » Сканер портов в личном кабинете Ростелекома
20 июня 2019; 09:54

Сканер портов в личном кабинете Ростелекома

Категория: софт

Источник: habr.com (18.06.19)

Сегодня я совершенно случайно обнаружил, что личный кабинет Ростелекома занимается совершенно вредоносной деятельностью, а именно, сканирует локальные сервисы на моём компьютере. Так как добиться от Ростелекома вменяемой информации практически нереально, решил указать про данную проблему на Хабре, чтобы хабровчане были в курсе, что можно ожидать весьма сомнительное поведение даже от крупных и серьёзных игроков.

А теперь, собственно детали.

Придя утром на работу, я обнаружил в логе системы замечательные строчки от VNC:

Connections: rejecting blacklisted connection: 127.0.0.1::22715


Т.е. кто-то с локалхоста пытается залезть на порт 5900, значит это вирус или ещё что-то похуже. Конечно же, меня пробил холодный пот, и я пошёл искать данного вредителя. Быстрый анализ показал, что долбёжка идёт каждые 10 минут и делается 11 попыток подключиться. Осталось выяснить, кто это делает.

Раз коннекшен блокируется, надо сделать так, чтобы кто-то сидел на нём. Самый простой способ для меня оказался в том, чтобы поднять на ноде интеллектуальный tcp-сервер, который ничего не делает и просто держит соединение.

server.listen(5900, function () {});


Посмотрел, кто туда подключился, оказалось, что это Firefox:



Дальше я пошёл выяснять, какой же из табов или расширений фаерфокса это делает. Оказалось, что ни аbout:peformance, ни аbout:networking не показывают id процесса, который может делать сетевые запросы. Зато я выяснил, что это основной процесс браузера, а не дополнительный для вкладок или расширений, что затруднило выяснение вредителя (да, у меня как всегда открыта куча вкладок и найти нужную — достаточно тяжело).

Но с помощью терпения, я нашёл замечательную вкладку, в девелоперской консоли которой оказались замечательные строчки:



И этой вкладкой оказался Личный кабинет Ростелекома. После этого выяснилось, что запросы идут следующего вида:



14 достаточно интересных портов:



Большинство портов — это средства для удалённого управления компьютером. Выходит, далее следует ожидать попыток проникновения на эти порты снаружи. Зачем это может быть?

У меня в голове следующие варианты:

1) Личный кабинет взломан, и идёт попытка выяснить уязвимые компьютеры и подсадить пользователю троян
2) Это осознанное решение Ростелекома и попытка сделать что-то нехорошее пользователю
3) Это осознанное решение Ростелекома и попытка собрать данные о пользователе

При этом мой компьютер не находится в сети Ростелекома, так что данные действия выглядят весьма и весьма грязно.

UPD: Дополнение от sashablashenkov

Судя по этой странице, это какой-то Dynatrace Real user monitoring

Dynatrace is the only vendor to capture the full visibility of customer experience across every digital transaction. No sampling of data, Dynatrace gives you a complete picture, from the frontend to the backend.
Monitor user journeys
Replay individual customer transactions for rapid problem handling
Dynatrace provides a single problem notification that identifies the root cause of the problem
Identify and resolve technical issues proactively
Но зачем оно сканирует порты — не понять


UPD2: runalsh уточнил, что это не Dynatrace, а group-ib

Ещё немножко деталей. Скрипт находится по адресу:

https://lk.rt.ru/ruxitagentjs_ICA2SVfhqrux_10169190521113456.js


Т.е. это не какие-то внешние счётчики или аналитика, а собственный скрипт.

Данный скрипт обфусцирован и функция, обращающаяся к портам выглядит как-то так:

Aa: function () {
        var a = this.Tg();
        this.Qh(a);
        for (var e = 0; e < this.Ye.length; e++) (function (c, f) {
          if (!d.F.N(f.Gg, c) || !d.T.jh() || d.T.wb() || d.T.dc()) {
            var e = (new Date).getTime(),
            g = d.D.mb(Oa(1939), window.location[Ma(1402)] + $e(1358) + c),
            k;
            g.then(function () {
              clearTimeout(k);
              f.Ec(c, ua(1117), (new Date).getTime() - e, a)
            }).then(void 0, function () {
              clearTimeout(k);
              f.wc[c] ? delete f.wc[c] : f.Ec(c, Lb(1430), (new Date).getTime() - e, a)
            });
            k = G(function () {
              f.wc[c] = !0;
              g.te().abort();
              f.Ec(c, Mc(1251), (new Date).getTime() - e, a)
            }, f.$e || 10000)
          }
        }) (this.Ye[e], this)
      },


В массиве Ye, как раз и содержатся данные 14 портов, инициализируется он таким образом:

this.Ye = b[Uh(1218)];


Т.е. кроме минификации, в Ростелекоме добавили ещё и обфускацию, значит они подозревали, что делают что-то не очень хорошее, и надо бы это скрыть.

Что с этим делать дальше, я не знаю. Понятно, что стоит настроить браузеры для защиты от подобного (удивительно, но Firefox почему-то пропустил порт 5900, хотя решил заблокировать другие). Писать в Ростелеком — смысла нет, ибо ответы у них всегда однотипные и не отличаются какой-то разумностью.

Ну а всем остальным знать, что сканирование портов может быть не только на подозрительных сайтах, но и таких приличных, как Ростелеком.

* * *

Обфуска́ция (от лат. obfuscare — затенять, затемнять; и англ. obfuscate — делать не очевидным, запутанным, сбивать с толку) или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

«Запутывание» кода может осуществляться на уровне алгоритма, исходного текста и/или ассемблерного текста. Для создания запутанного ассемблерного текста могут использоваться специализированные компиляторы, использующие не очевидные или недокументированные возможности среды исполнения программы. Существуют также специальные программы, производящие обфускацию, называемые обфускаторами (англ. obfuscator).
© ru.wikipedia.org



_

Теги: Ростелеком, сайт, интернет, кабинет

© habr.com

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.