MTProxy Jumper: Criando um Comutador Automático de Servidores Proxy para Telegram

MTProxy Jumper: Criando um Comutador Automático de Servidores Proxy para Telegram

Este artigo explora o desenvolvimento de um software em Python que atua como um MTProxy para o Telegram, alternando automaticamente entre diferentes servidores proxy. O objetivo é contornar bloqueios e garantir uma conexão estável, utilizando o protocolo FakeTLS para mascarar o tráfego.

MundiX News·26 de maio de 2026·10 min de leitura·👁 27 views

No cenário atual, com as recentes notícias envolvendo o Telegram, foram realizados experimentos com o protocolo MTProxy. A ideia principal é desenvolver um software que se comporte como um servidor MTProxy para o cliente Telegram, facilitando a troca de dados com outros servidores MTProxy. Idealmente, esses servidores externos deveriam ser detectados automaticamente, e a troca entre eles também deveria ocorrer de forma automática.

O código é escrito em Python, servindo como uma solução experimental para uma implementação rápida. Caso o software demonstre ser útil, a possibilidade de reescrevê-lo em C é considerada. Do protocolo MTProxy, apenas a parte relacionada às conexões que imitam TLS (FakeTLS, com a chave do proxy começando com "ee") é implementada. Outros tipos de conexão parecem mais vulneráveis a interferências de DPI (Deep Packet Inspection), tornando-os menos vantajosos.

O software é projetado para ser executado em um computador. A verificação de funcionamento é realizada nos clientes Telegram Desktop e Unigram no Windows. Do ponto de vista do cliente, o software se apresenta como um servidor MTProxy comum, com a conexão sendo estabelecida da maneira padrão. Após aceitar a conexão do cliente, o software tenta estabelecer uma conexão com um servidor MTProxy externo. Se bem-sucedido, o software encaminha todos os dados recebidos do cliente para o servidor externo e vice-versa, realizando a transcodificação necessária devido à criptografia do protocolo. Caso a conexão com o servidor externo falhe ou seja interrompida, a conexão com o cliente é imediatamente fechada. Espera-se que, ao detectar isso, o cliente Telegram tente se reconectar ao nosso software, repetindo o processo.

O servidor MTProxy externo é selecionado a partir de uma lista, que pode ser definida previamente ou baixada de uma URL especificada. Para os experimentos, foi necessário um proxy funcional. A opção mais confiável foi configurar um na própria máquina, utilizando o mtg (disponível em https://github.com/9seconds/mtg) e executando-o através de mtg run config.toml. O arquivo de configuração config.toml foi baseado em example.config.toml, com pequenas modificações:

toml
secret = "ee367a189aee18fa31c190054efd4a8e9573746f726167652e676f6f676c65617069732e636f6d"
bind-to = "127.0.0.1:3128"

[network]
proxies = [
    "socks5://127.0.0.1:9150"
]

[defense.blocklist]
enabled = false

Nessa configuração, o mtg aceita conexões na porta 3128 via MTProxy e garante a troca com os servidores Telegram através de um proxy SOCKS5 na porta 9150. O Tor Browser, em execução, estabelece um proxy SOCKS5 na porta 9150, que pode ser utilizado por outros aplicativos. No nosso caso, ele é necessário para garantir uma comunicação confiável com os servidores Telegram em um ambiente com interferência de DPI.

As chaves de proxy podem ser "simples" (32 dígitos hexadecimais), "dd" (iniciando com "dd" seguido de 32 dígitos hexadecimais), "ee" (iniciando com "ee" seguido de 32 dígitos hexadecimais e um nome de domínio simulado) e "estranhas" (formato não correspondente a nenhum dos anteriores). Ao conectar, o cliente escolhe o protocolo a ser usado dependendo do tipo de chave. As chaves "ee" correspondem ao protocolo com FakeTLS, que é o foco principal. Os demais tipos de chave correspondem ao protocolo MTProxy "puro", sem encapsulamento em TLS. O formato "dd" envolve ofuscação, mas sua eficácia é questionável. Os formatos "estranhos" não foram analisados em detalhes, mas podem envolver algo semelhante a Base64 e também podem usar o protocolo "puro".

O protocolo MTProxy com FakeTLS imita HTTPS (HTTP/2 via TLS 1.2). O cliente envia um pacote Client Hello, onde os campos Random e server_name são importantes. Random é usado para armazenar um resumo calculado com base no conteúdo do pacote, na chave do proxy de 16 bytes e no tempo atual. server_name contém o nome de domínio simulado. O servidor proxy envia três pacotes TLS: Server Hello, Change Cipher Spec, Application Data. O campo Random é importante aqui também, sendo usado para armazenar um resumo calculado com base no conteúdo dos três pacotes e no resumo do pacote Client Hello. Os pacotes Application Data e Change Cipher Spec são trocados continuamente entre o cliente e o servidor. No primeiro, os dados do protocolo MTProxy "puro" são encapsulados, enquanto o segundo é geralmente ignorado. O conteúdo do primeiro pacote Application Data (que vem com Server Hello) é ignorado. No segundo pacote Application Data, os primeiros 64 bytes, juntamente com a chave do proxy de 16 bytes, são usados para gerar as chaves usadas para criptografar o restante do segundo pacote e o conteúdo de todos os pacotes Application Data subsequentes.

O software atua como intermediário entre o cliente Telegram e o servidor MTProxy externo. Para o cliente, ele se apresenta como um servidor MTProxy, e para o servidor externo, como um cliente. O software aguarda conexões de entrada do cliente. Para cada conexão aceita:

  • O pacote Client Hello é recebido do cliente e validado.
  • O campo de extensão server_name é substituído no pacote.
  • O campo Random é recalculado.
  • Uma conexão é estabelecida com o servidor proxy externo (veja abaixo o princípio de seleção da lista).
  • O pacote Client Hello modificado é enviado ao servidor.
  • O pacote Server Hello (mais dois - veja o parágrafo anterior) é recebido do servidor e validado.
  • O campo Random é recalculado no pacote.
  • O pacote Server Hello modificado (mais dois) é enviado ao cliente.
  • Em seguida, os pacotes Application Data e Change Cipher Spec são enviados em loop, nas direções do cliente para o servidor e do servidor para o cliente:
    • Change Cipher Spec diretamente.
    • Application Data após descriptografia e criptografia com a chave necessária.

Se a conexão com o servidor for interrompida ou dados inválidos forem recebidos, as conexões com o cliente e o servidor são interrompidas; presume-se que, nesse caso, o cliente tentará restabelecer a conexão.

O algoritmo mais simples para selecionar um servidor proxy da lista é escolher o próximo na lista e, quando a lista terminar, retornar ao início. Na prática, isso não funciona muito bem, pois apenas alguns proxies em listas públicas funcionam, e levará muito tempo para percorrer os servidores se a conexão for interrompida. Atualmente, o seguinte algoritmo é implementado. Ao receber um pacote Server Hello válido do servidor, um contador para esse servidor é incrementado em 1. Quando uma nova conexão é estabelecida com o cliente e é necessário selecionar um servidor proxy da lista, um dos servidores com um valor de contador positivo é selecionado, e o contador é decrementado em 1. Se não houver nenhum contador positivo, o servidor é selecionado pelo algoritmo mais simples.

Esse algoritmo permite que, em caso de interrupção aleatória da conexão, as tentativas de conexão sejam feitas em primeiro lugar com os servidores com os quais as conexões foram bem-sucedidas anteriormente. A questão do "fe02" foi abordada, com uma solução para corrigir o pacote. No entanto, nenhuma diferença foi notada. Os servidores que foram bloqueados por DPI (que no log aparece como uma interrupção de conexão após o envio do Client Hello ao servidor) continuaram a ser bloqueados. Possivelmente, no caso, o bloqueio é feito por IP, ou o DPI reage a outros sinais. Experimentos podem ser continuados aqui. Quase todos os campos podem ser alterados, pois, para o protocolo MTProxy no Client Hello, nada importa além do campo Random.

Possíveis problemas incluem a instabilidade e imprevisibilidade da conexão, baixa velocidade e vazamento de metadados para o proprietário do servidor externo, embora a criptografia seja prometida para as mensagens. Os servidores proxy podem adicionar um "canal patrocinado" à força, e com a troca automática de proxy, isso acontece repentinamente. As chamadas no Telegram ignoram o proxy, então, se estiverem quebradas, não serão corrigidas.

O repositório do projeto está disponível em: https://codeberg.org/bokurwa/mtjumper-py.git. É necessário ter Python instalado. Para executar, execute os seguintes comandos:

bash
git clone https://codeberg.org/bokurwa/mtjumper-py.git
cd mtjumper-py
pip install pycryptodome
python mtjumper.py

No código-fonte, as seguintes linhas podem ser úteis para modificação:

python
OUR_CONFIG_URL = "tg://proxy?server=127.0.0.1&port=13128&type=mtproto&secret=ee0000000000000000000000000000000078787878"

TARGET_CONFIG_URLS = [
  "tg://proxy?server=127.0.0.1&port=3128&type=mtproto&secret=ee367a189aee18fa31c190054efd4a8e9573746f726167652e676f6f676c65617069732e636f6d",
  "@ https://raw.githubusercontent.com/SoliSpirit/mtproto/refs/heads/master/all_proxies.txt",
]

OUR_CONFIG_URL é o link que pode ser aberto no Telegram. Onde é possível alterar a porta, se não for satisfatório 13128, e o endereço para 0.0.0.0, para que o nosso proxy possa ser acessado de outros computadores na rede local. TARGET_CONFIG_URLS é a lista de links para servidores proxy. Se @ estiver no início, é um link para baixar a lista de proxies (na versão atual, a lista é baixada apenas uma vez na inicialização). Por padrão, os URLs do ambiente de teste e o URL de uma das listas de proxy são inseridos lá.

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.