当前位置: 首页 > article >正文

获取Telegram的用户IP地址

最近有个需求,查了些资料发现,Telegram有语音通话功能,也可以类似QQ一样通过语音通话的连接获取对方的IP地址, Denis Simonov (原文为俄语)发表过一篇文章,演示了如何通过 Telegram 语音呼叫获取目标人员的IP地址,只需5秒的呼叫时间就能拿到IP。原文在这:https://n0a.pw/telegram-get-remote-ip/,我尝试复现了下

获取IP复现

Telegram使用了STUN协议流量。STUN(NAT会话遍历)是一种标准化协议,旨在帮助 NAT(网络地址转换)后面的设备确定其外部 IP 地址以及其网关上使用的 NAT 类型。该协议的本质是使设备能够了解其公共 IP 地址并确定哪些端口可用于传出连接。

STUN消息中携带的关键属性之一是XOR-MAPPED-ADDRESS。该属性包含消息发送者的公共IP地址。数据包的方向准确地确定了此属性中包含谁的 IP 地址:如果该帧定向到我,XOR-MAPPED-ADDRESS将显示我的 IP,如果它是从我发送的,则显示我的对话者的 IP。

图片

1. 启动wireshark
2. 语音呼叫目标
3. 一旦被接听,只需等待大约5 或10 秒后我们应该有足够的数据包来找出目标的 IP
4. 在Wireshark中我们通过stun进行过滤

图片

5. 目标的IP地址,是携带XOR-XXXXX-ADDRESS数据包,所以我们可以过滤: 'stun 或 stun.att.用户名 或 stun.att.ipv4-xord 或 stun.att.ipv4'

图片

6. 通过查看每个数据包的 IP 地址来检查数据包。这可以通过检查数据包并在属性部分中查找 XOR-XXXX-ADDRESS或通过查看数据包的目标地址来查看。数据包。

图片

7. 以下 IP可以排除:
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

  1. 安装适用于 Linux 或 Mac 的Telegram 桌面。

  2. 安装tshark(sudo apt install tshark或下载适用于 macOS 的 Wireshark。包含 tshark)。

  3. 运行脚本

  4. 语音呼叫要获取的IP地址的人

  5. 收获结果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。


http://www.kler.cn/a/487849.html

相关文章:

  • 推荐一个边玩游戏边学编程网站
  • 【Git】配置相关操作
  • RS-232与RS-485介绍
  • kubernetes第七天
  • 如何将 DotNetFramework 项目打包成 NuGet 包并发布
  • 埋地碳钢设备间 雨水回用一体化设备 微型雨水处理站
  • micro-app【微前端系列教程】通信
  • 【Git】修改已提交人的用户名和邮箱
  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之21 项目主页:基于资源的交互系统--以RESTful 风格设计构建 聊天窗口
  • 手机租赁平台开发全解析 让租赁变得更简单便捷
  • C#调用MyLibxl来生成EXCEL的订货清单
  • 【Docker项目实战】使用Docker部署Enclosed笔记应用程序
  • Linux 进程入门:带你走进操作系统的核心地带(1)
  • NoETL 自动化指标平台如何帮助企业实现战略目标与执行目标对齐?
  • 【服务器】ubuntu20.04安装cuda12.01(使用runfile安装)
  • 3d打印材料是塑料么?pla petg
  • 网络运维与网络安全介绍之二的补
  • 【Notepad++】Notepad++如何删除包含某个字符串所在的行
  • 三甲医院等级评审八维数据分析应用(七)--数据资产管理与价值挖掘篇
  • iOS中的设计模式(二)- 原型模式