获取IP复现
2. 语音呼叫目标
3. 一旦被接听,只需等待大约5 或10 秒后我们应该有足够的数据包来找出目标的 IP
4. 在Wireshark中我们通过stun进行过滤
a) 私有 IP,例如 192.168.XX、10.XXX 等。
b) 我们的公共 IP 地址。
c) 属于 Telegram 的地址:
有个方便的技巧,使用wireshark 获取已通过stun 协议查询的所有地址,而无需手动查看数据包: 在工具栏中我们点击Statistics -> Endpoints,选择限制显示过滤器勾选(使用wireshark中的stun过滤器),只显示与stun通信期间使用的IP,就可以方便的筛查。
自动化脚本
原帖作者 (Denis Simonov) 在他的 GitHub 上发布了一个脚本以方便利用:https://github.com/n0a/telegram-get-remote-ip
安装适用于 Linux 或 Mac 的Telegram 桌面。
安装tshark(sudo apt install tshark或下载适用于 macOS 的 Wireshark。包含 tshark)。
运行脚本
语音呼叫要获取的IP地址的人
收获结果IP
以Ubuntu 20为例安装和启动
$ sudo apt update
$ sudo apt install -y python3-pip python3-venv tshark
$ git clone https://github.com/n0a/telegram-get-remote-ip
$ cd telegram-get-remote-ip
$ python3 -m venv venv
$ source ./venv/bin/activate
$ sudo pip3 install -r requirements.txt
$ sudo python3 tg_get_ip.py
遇到的小坑:为了保护 Telegram 用户的隐私,默认情况下,仅针对“我的联系人”激活 Telegram 通话中的点对点 (P2P) 选项。Telegram 设置 > 隐私和安全 > 通话,可以选择是否对所有人、联系人使用 P2P。