Мануал по работе с Telegram — Telerecon, Telesint, Similar Channels и немного Google Sheets
Telerecon, Telesint, Similar Channels и немного Google Sheets
В этом мануале я прошёлся по базовым и более продвинутым методам проведения OSINT расследования в Телеграм, будь то человек или сообщество (канал/-ы, группа). "Продвинутая" часть мануала сконцентрирована на интересной связке Telerecon'a, Telesint'a и Telegram Similar Channels; а так же пара мелочей по работе с таблицами (вспоминаем уроки информатики)
Оглавление
Как узнать дату регистрации пользователя
В каких соц. сетях сидит человек
Работа с Telegram Similar Channels
- Информация о пользователе
- Выгрузка сообщений из группы/канала
- Что пишет пользователь в разных группах
- Поиск "энтити" в сообщениях пользователя
- Анализ связей пользователя
- Визуализация ссылок на другие каналы
Подготовка к работе
Нам понадобится набор из нескольких инструментов, который не ограничивается ботами в Телеграм. Первым делом нам нужно установить Python. Если у вас всё ещё его нету, то скачать его можно с официального сайта.
После установки, откройте консоль (Win+R > "cmd"
) и введите в неё python. Если вам не выдало ошибки — вы всё сделали правильно.
Установка Telerecon
Telerecon — инструмент для работы с Телеграмом который упрощает многие задачи, но подробнее об этом позже. Скачать его можно с Гитхаба. Необязательно там регестрироваться или качать их приложение, просто перейдите по ссылке, нажмите на зеленую кнопку "Code" > "Download ZIP". Скаченный архив выгрузите в удобное для вас место.
Открываем консоль, переходим в папку куда вы выгрузили архив и вводим следующие команды:
pip install -r requirements.txt
Таким образом мы устанавливаем все необходимые для работы Telerecon'a библиотеки.
python -m spacy download en_core_web_sm
Этот модуль требуется для работы некоторых функций.
Далее запускаем python setup.py. Вас попросят ввести API ключ, API хэш, номер телефона и код, который пришёл вам в Телеграм. Настоятельно рекомендую использовать левый аккаунт! Получить API ключ и хэш можно на my.telegram.org.
В дальнейшем запустить Telerecon можно будет командой python launcher.py
Установка Similar Channels от @soxoj
Telegram Similar Channels — инструмент от soxoj, который написал оболочку для эксплуатации новой функции Телеграма "Похожие Каналы".
Установка такая же, как и с Telerecon: скачиваем репозиторий как архив, выгружаем в любую папку, открываем консоль и устанавливаем requirements.txt командой pip install -r requirements.txt
Вам так же может потребоваться новая версия telethon, так что запустите следующее:
pip install --upgrade telethon
Далее в файл transforms/credentials.py добавьте свои API ID и API Hash полученные с https://my.telegram.org/
Узнать дату регистрации пользователя
Вопрос продолжает оставаться актуальным, хоть на него отвечалось уже несколько раз. Узнать 100% достоверную дату регистрации нельзя, но можно узнать примерную.
Бот @creationdatebot покажет приблизительную дату регистрации. Это поможет проверить не является ли аккаунт фейком, к примеру.
Для работы этого бота вам понадобится ID пользователя. Его можно получить используя никнейм в Telerecon или используя сторонние клиенты Телеграма. Или просто перешлите сообщение пользователя боту.
Рекомендую вам сохранить ID пользователя. Никнейм может поменяться, а вот ID — нет.
В каких других соц. сетях сидит человек
Если мы знаем о пользователе из Телеграма, то не помешало бы знать где он ещё сидит. Есть несколько способов это узнать, но мы остановимся на двух: по имени/никнейму и по аватарке.
По имени/никнейму
Многие из нас используют один и тот же ник везде: кто по глупости/лени, а кто-то в интересах личного бренда.
В целях проверки существования ника на разных сервисах был сначала создан sherlock, а затем и его более мощный форк — Maigret. Последним можно пользоваться прямо из Телеграма, причём совершенно бесплатно.
Просто откройте бота и введите имя или никнейм пользователя в Телеграм. Бот выдаст вам HTML отчёт со списком сервисов, форумов и соц. сетей где этот ник используется.
Иногда попадаются false positives, так что рекомендую вручную проверять то что вам вернул бот.
По аватарке
С аватарами такая же история как и с никнеймами — мы часто используем одну и ту же везде, будь то это хорошая фотография или аниме-вайфу. Есть несколько способов для reverse image search, но я опишу только 3 из них.
Один из самых лучших и самых дорогих сервисов. Показывает где конкретная фотография или лицо светилось в интернете. С недавних пор сервис не работает с фотографиями детей/подростков, хотя иногда пропускает и такое.
Бесплатный для некомерческого использования. Сервис ищет только по конкретной картинке, а не по лицу.
Поиск по изображениям в Google, Yandex или том же Bing могут быть хорошей альтернативой выше упомянутым сервисам. Говорят что Yandex лучше ищет людей по лицу.
Работа с Telesint
Telesint — бот от @JSDio который позволяет просмотреть в каких группах состоит пользователь. Пожалуй один из самых лучших OSINT инструментов для работы с Телеграмом.
По умолчанию вам доступно 3 бесплатных запроса. Пополнить кол-во запросов можно добавив группу которой ещё нету в базе или заплатив денежку. Сервис будет крайне полезен для следующих этапов.
Просто введите ник или ID пользователя и он вернёт вам список из открытых и закрытых групп где состоит пользователь, а так же является ли он где-то админом.
Работа с Telegram Similar Channels
Запустите скрипт через консоль используя python search.py и введите имя канала. На выходе вы получите два файла в удобных для работы формата — json и csv.
Основным отличием и преимуществом этого метода перед встроенной функцией в самом приложении Телеграма это возможность работы с 10, 100 и 1000 каналов за раз. Это можно использовать как в построении сети каналов схожей тематики для дальнейшего изучения, так и для поиска групп привязанных к этим каналам.
Работа с Telerecon
Некоторые функции говорят сами за себя, а на некоторых я зострю особое внимание.
Информация о пользователе
Выбрав первый пункт Telerecon вернёт информацию о пользователе включая его ID.
Выгрузка сообщений из группы/канала
Для выгрузки абсолютно всех сообщений из группы или канала выбираем 5 пункт и вводим ссылку без "https://", хоть тул и говорит обратное.
Для выгрузки только ссылок начинающихся на t.me выбираем 6 пункт.
Прежде чем это делать лучше проверьте, сколько всего сообщений находится на канале или в группе. Сделать это можно скопировав ссылку на последнее сообщение и просмотрев на номер после имени канала — t.me/<name>/12732, "12732" будет номером поста, а значит и их кол-вом. Telerecon будет качать все сообщения и это может занять очень много времени.
Что пишет пользователь в разных группах
Есть два варианта исхода событий:
Если вас интересует только одна группа: выбираем пункт 3, вводим никнейм, а затем ссылку на группу.
Если у вас есть список из нескольких групп, то создаём текстовый файл со списком ссылок и выбираем 4 пункт.
Telerecon спросит вас хотите ли вы скачать медиа, но в контексте этого мануала нам это не нужно.
В конце на выход вы получите две таблицы: <nickname>_messages и <nickname>_network. Нас пока интересует первый со списком всех сообщений пользователя в группах где он состоит.
Поиск "энтити" в сообщениях пользователя
В функциях Telerecon'a так же присутствует возможность получить список упоминания определенных обьектов в сообщениях пользователя; такие как имена, имейлы, номера телефонов и прочее.
Для этого выберем 10 пункт и введём никнейм пользователя.
Важно! Для того что бы эта функция работала вам нужно уже иметь файл с сообщениями "на руках", иначе вам выдаст ошибку.
Есть так же очень похожая функция выгрузки NER (Named Entity Recognition), запустить её можно командой номер 13. На выходе вы получите следующий рапорт:
В отличии от предыдущей функции PDF не включает ссылки на сообщения, по-этому придется искать их вручную в таблице.
Анализ связей пользователя
Можно построить "список связей" пользователя собрав все аккаунты на чьи сообщения он отвечал (подразумевается что у вас уже есть таблица с сообщениями); таким образом можно понять с кем связан человек. Однако что бы это сделать есть два пути: "из коробки" и хитро-выдуманный. Я опишу оба.
После того как мы выгрузили сообщения пользователя из групп мы получили два файла: <nickname>_messages и <nickname>_network. Имея вторую таблицу на руках выбираем 9 пункт и получаем картину где мало что понятно и всё некрасиво:
Открываем файл <nickname>_network в Excel или Google Sheets:
Выбираем удобный для нас пустой столбец, скажем L, и вводим следущую функцию что бы получить уникальные значения из списка риплаев (без повторений):
=UNIQUE(A1:A135)
Где A1:A135 -- диапазон ячеек, которые нас интересуют. Получаем на выход вот это:
Далее выбираем следующий от выбранного столбец и вводим функцию, которая покажет кол-во повторений текста в столбце:
"A1:135" — диапазон где ищем, а L2 — что ищем. Расширяем формулу на все ники в таблице и получаем удобный для работы список:
В целях наглядности отображения можно использовать Gephi, Excel, Google Sheets или что вашей душе угодно.
Визуализация ссылок на другие каналы
Функционал чем-то похож на цитирование в TG Stat. Для этого выбираем 7 пункт и вводим название канала.
На выходе получаем таблицу всех ссылок на другие каналы:
А поигравшись с тем же Google Sheets, Excel или Gephi можно создать простенькую визуализацию на примере этой: