最近有個需求,查了些資料發現,Telegram有語音通話功能,也可以類似QQ一樣通過語音通話的連接獲取對方的IP地址,Denis Simonov (原文為俄語)發表過一篇文章,演示了如何通過 Telegram 語音呼叫獲取目標人員的IP地址,只需5秒的呼叫時間就能拿到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
安裝適用于 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。
文章轉自軍機故閣
處。
-
網關
+關注
關注
9文章
4096瀏覽量
50567 -
NAT
+關注
關注
0文章
133瀏覽量
16158 -
ip地址
+關注
關注
0文章
285瀏覽量
16913 -
Wireshark
+關注
關注
0文章
47瀏覽量
6473
原文標題:獲取Telegram的用戶IP地址
文章出處:【微信號:菜鳥學信安,微信公眾號:菜鳥學信安】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論