- Регистрация
- Окт 16, 2022
- Сообщения
- 1,233
- Реакции
- 214
- Награды
- 2
Нашел старенькую статью, хз актуально или нет.
Рассказываю о том, как мне удалось определить IP адрес своего собеседника в Telegram при помощи аудио вызова в мессенджере. Плюс написал bash-скрипт для автоматизации.
Wireshark и протокол STUN
Принцип работы довольно простой. После старта в течении 5 секунд идет дамп сетевого трафика на сетевом интерфейсе, затем конвертируется в текстовый формат с выделением двух IP из атрибута XOR-MAPPED-ADDRESS, где один из IP принадлежит нашему клиенту.
Демонстрация работы скрипта
Сравниваем адреса с нашим публичным адресом и получаем IP адрес удаленного клиента. Бонусом скрипт делает host и предлагает запустить whois, так как не обязательно IP клиента будет принадлежать сотовому оператору. Это может быть и корпоративная сетка тоже.
chmod +x tg_get_ip.sh
sudo ./tg_get_ip.sh
PS. Возможна работа на Android смартфонах с termux и root доступом. Без него трафик не захватить. thshark на termux ставиться легко: pkg install root-repo && pkg install tshark.
Проект на github: https://github.com/n0a/telegram-get-remote-ip
Telegram: получаем IP адрес собеседника
Рассказываю о том, как мне удалось определить IP адрес своего собеседника в Telegram при помощи аудио вызова в мессенджере. Плюс написал bash-скрипт для автоматизации.
Wireshark и STUN
Однажды мне понадобилось определить IP адрес своего собеседника в мессенджере Telegram. Для этого я расчехлил Wireshark и обнаружил STUN трафик, который позволяет клиенту, находящемуся за сервером трансляции адресов, определить свой внешний IP-адрес, способ трансляции адреса и порта во внешней сети.Помимо всего прочего, в атрибутах указывается параметр XOR-MAPPED-ADDRESS, который содержит публичный IP адрес, мой и удаленного собеседника. Очевидно, что это зависит от направления пакета. Если фрейм летит мне, то XOR-MAPPED-ADDRESS содержит мой IP, если от меня – собеседника.Проще говоря основное назначение STUN – дать возможность различным девайсам (за NAT’ом) узнать их public IP-адрес и найти пробросы портов.
Автоматизация
Потратив немного времени решил автоматизировать процесс получения IP своего визави в Telegram с помощью консольной версии Wireshark – tshark.Принцип работы довольно простой. После старта в течении 5 секунд идет дамп сетевого трафика на сетевом интерфейсе, затем конвертируется в текстовый формат с выделением двух IP из атрибута XOR-MAPPED-ADDRESS, где один из IP принадлежит нашему клиенту.
Сравниваем адреса с нашим публичным адресом и получаем IP адрес удаленного клиента. Бонусом скрипт делает host и предлагает запустить whois, так как не обязательно IP клиента будет принадлежать сотовому оператору. Это может быть и корпоративная сетка тоже.
Как узнать IP в Telegram?
- Устанавливаем Telegram desktop для Linux или Mac.
- Устанавливаем tshark (sudo apt install tshark или скачиваем Wireshark для macOS. tshark идет в комплекте).
- Звоним тому, чей IP адрес нам интересен. Обязательно дожидаемся ответа, так как до этого STUN не передает нужных нам атрибутов.
- Запускаем скрипт.
- Profit! Мы получили IP нашего Telegram собеседника!
- Можно класть трубку.
Установка и запуск
wget https://raw.githubusercontent.com/n0a/telegram-get-remote-ip/main/tg_get_ip.shchmod +x tg_get_ip.sh
sudo ./tg_get_ip.sh
PS. Возможна работа на Android смартфонах с termux и root доступом. Без него трафик не захватить. thshark на termux ставиться легко: pkg install root-repo && pkg install tshark.
Проект на github: https://github.com/n0a/telegram-get-remote-ip

