工具简介
这个脚本工具可以通过Telegram Messenger中的音频通话来确定对话者的IP地址。另外,我编写了一个用于自动化的脚本。
关注【Hack分享吧】公众号,回复关键字【230914】获取下载链接
Wireshark和STUN
最近,我面临着在 Telegram Messenger 中确定对话者 IP 地址的任务。为此,我使用了网络流量分析工具Wireshark,在其中检测了STUN协议流量。
STUN(NAT 会话遍历实用程序)是一种标准化协议,旨在帮助 NAT(网络地址转换)后面的设备确定其外部 IP 地址以及其网关上使用的 NAT 类型。该协议的本质是使设备能够找到其公共 IP 地址并确定哪些端口可用于传出连接。
STUN消息中携带的关键属性之一是XOR-MAPPED-ADDRESS。该属性包含消息发送者的公网IP地址。数据包的方向准确地确定了此属性中包含谁的 IP 地址:如果该帧定向到我,XOR-MAPPED-ADDRESS将显示我的 IP,如果它是从我发送的,则显示我的对话者的 IP。
工具自动化
花了一点时间后,我决定使用控制台版本的Wireshark - tshark自动化获取 Telegram中对方IP的过程。
操作原理非常简单,启动后,5秒内,网络流量被转储到网络接口上,然后通过从XOR-MAPPED-ADDRESS属性中选择两个IP将其转换为文本格式,其中一个IP属于我们的客户端。
我们将这些地址与我们的公共地址进行比较,并获取远程客户端的 IP 地址(在此过程中,比较该 IP 是否属于 AS Telegram)。作为奖励,该脚本会请求获取有关 IP 地址的信息,因为客户端的 IP 不一定属于移动运营商,它也可以是公司网络。
如何在Telegram中查找IP?
在Linux或Mac上安装Telegram桌面客户端。
安装tshark(sudo apt install tshark或载适用于macOS的Wireshark,包含tshark)。
运行脚本,呼叫我们感兴趣的人等待。
我们已收到Telegram对话者的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
附言:它可以在具有termux和root访问权限的Android智能手机上运行。没有它就无法捕获流量,在termux上安装thshark很简单。
pkg install root-repo && pkg install tshark