Já alguma vez sentiu que precisava de uma lupa para o seu tráfego de rede?
Conheça o Mitmproxy.
Esta potência de código aberto permite-lhe intercetar, modificar e analisar o tráfego HTTP/1, HTTP/2 e WebSocket. É perfeito para programadores Web, administradores de rede e profissionais de segurança ideais.
Este artigo cobre tudo o que precisa de saber sobre o Mitmproxy (se for um principiante). Fornece uma visão geral do serviço, seus prós e contras, etapas de instalação, uso básico e recursos avançados, como configuração SSL/TLS, automação Python e integração do Docker.

Isenção de responsabilidade: Este material foi desenvolvido estritamente para fins informativos. Não constitui uma aprovação de quaisquer atividades (incluindo atividades ilegais), produtos ou serviços. O usuário é o único responsável pelo cumprimento das leis aplicáveis, incluindo as leis de propriedade intelectual, quando utiliza os nossos serviços ou se baseia em qualquer informação aqui contida. Não aceitamos qualquer responsabilidade por danos resultantes da utilização dos nossos serviços ou das informações aqui contidas, seja de que forma for, exceto quando explicitamente exigido por lei.
Índice
- Visão geral do Mitmproxy
- O que é.
- Prós e contras
- Casos de utilização do Mitmproxy
- Como instalar o Mitmproxy (Guia passo a passo)
- Windows
- Linux
- macOS
- Primeiros passos com o Mitmproxy
- Iniciar o Mitmproxy
- Configurar o navegador ou o dispositivo
- Verificar a configuração
- Como usar o Mitmproxy
- Mais coisas que podem ser feitas com o Mitmproxy
- Utilizar a interface Web
- Usar o Mitmdump
- Configuração de certificados SSL/TLS
- Automatizar tarefas com Python
- Executando o Mitmproxy no Docker
- Secção FAQ
- Considerações Finais.
1. Visão geral do Mitmproxy
Mitmproxy is an open-source powerful toolset for intercepting, modifying, and analyzing network traffic (specifically HTTP/1, HTTP/2, and WebSockets). It’s an SSL/TLS-capable intercepting proxy. It is perfect for debugging, testing, and security assessments. Está disponível em três sabores para satisfazer todas as suas necessidades:
- Mitmproxy: Uma consola interactiva que lhe permite explorar a interceção de tráfego em pormenor.
- Mitmweb: Uma interface Web fácil de utilizar que se assemelha ao DevTools do Chrome.
- Mitmdump: Uma ferramenta de linha de comando que funciona como o tcpdump para criação de scripts e automação.
O que significa Mitmproxy?
A primeira parte da palavra -> MitM (Man-in-the-Middle) é um termo de cibersegurança que se refere a um tipo de ataque ou técnica. Neste caso, um atacante intercepta secretamente e possivelmente altera a comunicação entre duas partes que pensam estar a comunicar diretamente uma com a outra. O outro lado da palavra "proxy" (ou intermediário) refere-se ao intermediário entre o cliente e o servidor. Permite aos utilizadores intercetar, inspecionar e modificar o tráfego de rede. A Mitmproxy utiliza este conceito mas de forma controlada e ética.
Mitmproxy Prós e Contras
Todas as ferramentas têm os seus pontos altos e baixos e esta não é exceção. Nesta secção, vamos analisar as principais vantagens e as possíveis armadilhas da sua utilização. Isto ajudá-lo-á a determinar se é a combinação perfeita para as suas necessidades.
| Prós | Contras |
| Interceção e análise interactiva do tráfego: Captura, modificação e reprodução em tempo real do tráfego HTTP/HTTPS. | Curva de aprendizagem acentuada: Requer conhecimentos de redes e certificados. |
| Capacidades SSL/TLS: Gera certificados SSL/TLS para interceção segura. | Orientado por linha de comando: A dependência da CLI pode ser um desafio para os utilizadores da GUI. |
| Interfaces duplas e filtragem avançada: CLI e interface Web (mitmweb) com poderosas opções de filtragem. | Recursos intensivos: Elevadas exigências computacionais para grandes volumes de tráfego. |
| Scripting, automação e complementos personalizados: API Python para scripts e addons personalizados. | Problemas de compatibilidade: Problemas com determinadas aplicações e configurações complexas. |
| Suporte multiplataforma: Disponível para Windows, Linux e macOS. | Riscos de segurança: Necessita de medidas de segurança rigorosas para evitar ataques. |
| Livre e de código aberto: Acessível com o apoio da comunidade. | Configuração manual: Configuração complexa para ambientes Docker e de nuvem. |
Para que é que o recomendamos? Exemplos de casos de uso do Mitmproxy
- Depuração de aplicações. Use o Mitmproxy para capturar e analisar solicitações e respostas HTTP. Isso ajuda a identificar respostas lentas ou cargas excessivas para corrigir atrasos. Intercetar o tráfego para ver quais dados estão sendo enviados e recebidos também ajuda a depurar problemas relacionados a dados. Além disso, ajuda a simular várias respostas do servidor para ver como seu aplicativo lida com erros.
- Testes de penetração. Com o Mitmproxy, é possível capturar e ajustar o tráfego HTTP/HTTPS para imitar ataques (por exemplo, injeção de SQL, XSS) e identificar vulnerabilidades. Além disso, também é possível gravar e ajustar o tráfego legítimo para testar pontos fracos como ataques de repetição e fixação de sessão. Nessa área, o Mitmproxy também ajuda a intercetar o tráfego criptografado para verificar o manuseio de certificados, os padrões de criptografia e a segurança geral do HTTPS.
- Medidas de privacidade. O Mitmproxy é útil para capturar e inspecionar o tráfego para garantir que nenhuma informação sensível esteja sendo vazada. Também pode ser usado para verificar se o manuseio e a transmissão de dados estão em conformidade com os regulamentos de privacidade, como o GDPR. As pessoas também o utilizam para análise de serviços de terceiros. Analise o tráfego entre a sua aplicação e os serviços de terceiros para garantir que não estão a recolher dados desnecessários.
2. Como instalar o Mitmproxy (guia passo-a-passo)
a. Windows: Guia de instalação passo a passo
- Descarregar o instalador: Descarregue o instalador do Windows a partir do sítio Web oficial.
- Executar o instalador: Execute o ficheiro descarregado e siga as instruções no ecrã para concluir a instalação.

- Verificar a instalação: Abra um prompt de comando e digite mitmproxy, mitmweb ou mitmdump para verificar a instalação. Se as ferramentas forem iniciadas corretamente, isso significa que a instalação foi bem-sucedida. Mas ainda assim, nenhum fluxo de tráfego está sendo capturado.

b. Linux: Usando Gerenciadores de Pacotes e Instalação de Fontes
Para instalar o Mitmproxy no Linux, pode utilizar gestores de pacotes ou instalar a partir da fonte.
Usando gerenciadores de pacotes:
Pode descarregar binários autónomos para a sua distribuição específica (visite a página sítio Web oficial para encontrar esses binários) ou usar os gerenciadores de pacotes respectivos a cada distribuição. Ambos os métodos fornecem binários pré-compilados que simplificam a instalação do mitmproxy. Ainda assim, os gerenciadores de pacotes oferecem gerenciamento de dependências e atualizações automatizadas.
Arch Linux:
|
1 |
sudo pacman -S mitmproxy |
Fedora:
|
1 |
sudo dnf install mitmproxy |
Debian/Ubuntu:
|
1 2 |
sudo apt update sudo apt install mitmproxy |

Instalação de origem:
Se preferir, também pode instalá-lo a partir da fonte. Todas as instruções estão abaixo.
|
1 2 |
git clone https://github.com/mitmproxy/mitmproxy.git cd mitmproxy |
Instalar dependências e construir:
|
1 2 |
tubagem install -r requisitos.txt pitão configuração.py install |
Usando pipx para gerenciamento de pacotes Python:
Instalar o pipx:
|
1 2 |
pitão -m tubagem install --user pipx pitão -m pipx caminho seguro |
Instalar o mitmproxy:
|
1 |
pipx install mitmproxy |
c. macOS: Instalação via Homebrew
Pré-requisito: Instalar o Homebrew: Se não tiveres instalado o Homebrew, segue as instruções em Sítio Web oficial da Homebrew.
Instalar o mitmproxy:
|
1 |
cerveja install mitmproxy |

Verificar a instalação:
Abra um terminal e digite mitmproxy, mitmweb ou mitmdump para verificar a instalação.

Utilizadores Mitmproxy, à procura de escalabilidade e desempenho?
Como é que o Rapidseedbox pode ajudar?
Tratamento de elevado volume de tráfego
Tempo de atividade garantido
Alcance Global
Anonimato reforçado
———
3. Primeiros passos com o Mitmproxy.
Uma vez instalado na sua plataforma, é altura de o utilizar. Nesta secção, aprenderemos a configuração e instalação básicas, os comandos básicos e como configurá-lo em diferentes dispositivos e navegadores.
Nota: Por padrão, o Mitmproxy inicia um HTTP. Também ouve http://localhost:8080.
a. Inicie o Mitmproxy:
- (Como mostrado na seção anterior) Abra um terminal e digite "mitmproxy" para iniciar a interface de linha de comando. A interface mitmproxy deve ter o aspeto da seguinte imagem de ecrã:

- Digite "mitmweb" para iniciar a interface Web. Esta será iniciada automaticamente (como mostra a imagem seguinte).
- Se não iniciar, abra o browser e aceda a http://localhost:8081.

- Mitmdump: Digite mitmdump para usar a ferramenta de linha de comando para scripting.

Resolver problemas!
Se vir a seguinte linha: "[12:10:38.265] A autoridade de certificação mitmproxy expirou! fazer o seguinte...
Esta mensagem de erro indica que a autoridade de certificação (CA) do Mitmproxy expirou. Para corrigir isso, vá em frente e exclua os arquivos relacionados à CA na sua pasta .mitmproxy para que uma nova CA possa ser gerada. Depois de excluir os arquivos de CA expirados, a ferramenta regenerará automaticamente uma nova CA ao reiniciar.
Eis os passos para resolver este problema:
Eliminar ficheiros relacionados com a CA:
|
1 |
rm -rf ~/.mitmproxy |
Reinicie o Mitmproxy:
|
1 |
mitmdump |

b. Configure o seu navegador ou dispositivo.
Para o utilizar, configure o seu browser ou dispositivo para receber todo o tráfego através do Mitmproxy. Pode configurar o proxy no Google Chrome, Mozilla Firefox, Microsoft Edge, ou em dispositivos como iOS (iPhone / iPad) ou Android. Mas tenha em atenção que as configurações do proxy mudam de browser para browser e de dispositivo para dispositivo.
Definir o proxy HTTP:
- Abra as definições de rede do seu browser ou dispositivo. Não sabe o que é um Proxy HTTP? Leia mais aqui (HTTP Proxy) e aprender as diferenças de Os proxies SOCKS5.
- Localize as definições de proxy (normalmente, estas encontram-se nas definições avançadas ou nas definições de ligação).
- Defina o proxy Web HTTP (1) para http://localhost:8080, ou 127.0.0.1:8080 (2), e clique em ok (3).

Instalando a CA Mitmproxy.
- Abra o seu browser e navegue até http://mitm.it. Aparecerá uma página que indica a instalação da Autoridade de Certificação (CA) Mitmproxy.
- Encontre a sua respectiva plataforma e descarregue o certificado. Se o download não for efectuado... siga as instruções apresentadas nesse mesmo http://mitm.it página.

- Pode verificar se o certificado CA do mtimproxy está instalado verificando os certificados do seu sistema.
- No macOS, aceda a Acesso às chaves > Certificados. Certifique-se de que o SSL está definido para "Confiar sempre"

Não é possível encaminhar o tráfego web através do Mitmproxy?
- Se, ao abrir a página Web (http://mitm.it), aparece a seguinte mensagem "If you can see this, traffic is not passing through mitmproxy" significa que o seu tráfego web não está a ser intercetado pelo mitmproxy.
- O mais provável é que não tenha definido corretamente a configuração do servidor proxy (no seu browser ou dispositivo). Além disso, certifique-se de que o mitmproxy está configurado corretamente e está a funcionar. E, em seguida, tente novamente.

c. Verificar a configuração.
- Abra o terminal e inicie o serviço com o seguinte comando: 'mitmproxy'
- Depois de o iniciar (se estiver corretamente configurado), verá o terminal receber fluxos HTTP e WSS.

4. Como usar o Mitmproxy.
A interface apresenta as seguintes informações.
- Secção de Fluxos: A parte principal do ecrã mostra a lista de fluxos HTTP e WebSocket interceptados. Cada linha representa um único pedido e resposta HTTP/WebSocket.
- Colunas:
- Hora: Mostra a hora em que o pedido foi capturado.
- Protocolo: Indica o protocolo utilizado (por exemplo, HTTP, WS para WebSocket).
- Método: Método HTTP utilizado (por exemplo, GET).
- Anfitrião e caminho: O anfitrião de destino e o caminho do pedido.
- Código de estado: O código de estado HTTP devolvido pelo servidor.
- Conteúdo: Mostra se a resposta tem conteúdo ou não.
- Duração: Tempo necessário para processar o pedido em milissegundos.
Informações pormenorizadas sobre o fluxo
- Fluxo selecionado: Na parte inferior, é apresentado o número de fluxos selecionados e um pequeno menu
- Fluxo: Indica o número de fluxos selecionados.
- Proxy: Mostra a configuração do proxy ativo.
- Outras opções: Pode utilizar teclas como o para Opções, e para Eventos, q para Sair e vários outros comandos para interagir com os fluxos. (mais sobre isso abaixo)

- Inspeção de um fluxo:
- Utilize as teclas de seta para navegar na lista de fluxos. Verá um símbolo ">>" a mover-se para cima e para baixo nos fluxos.
- Prima Enter para inspecionar um fluxo específico em pormenor. Isto permitir-lhe-á ver os cabeçalhos, o conteúdo e outras informações sobre o pedido e a resposta.
- Por exemplo, selecionámos o fluxo com o anfitrião mitm.it. Nesta secção, verá todas as informações sobre o cabeçalho. Além disso, pode deslocar-se pelos separadores: Pedido, Resposta e Outros detalhes.

- Filtragem de fluxos: Pode filtrar os fluxos premindo f e introduzindo os seus critérios de filtragem, tais como nomes de anfitrião ou tipos de pedidos específicos.
- Por exemplo, escrevemos "mitm.it" utilizando um filtro e agora só podemos ver os anfitriões mitm.it.

- Opções e configuração: Prima o para abrir o menu de opções, onde pode configurar várias definições para o Mitmproxy. Essas opções são: método, tamanho, tempo e url.

Opções do menu inferior do Mitmproxy
- Na interface, o menu inferior oferece várias opções para interagir com os fluxos capturados e configurar as definições do Mitmproxy.

Segue-se uma explicação pormenorizada de todas as opções apresentadas no menu inferior:
- Fluxo: Selecione o fluxo atualmente destacado para uma inspeção ou manipulação detalhada.
- Selecionar: Permite selecionar vários movimentos para operações em lote.
- Ajuda: Acesse a ajuda e a documentação para usar o Mitmproxy.
- q Sair: Sair da sessão.
- r Repetição: Reproduzir o pedido HTTP selecionado.
- E Eventos: Veja o log de eventos do Mitmproxy, que inclui mensagens e erros importantes.
- Exportação: Exportar fluxos selecionados para um ficheiro para posterior análise ou partilha.
- Opções: Abra o menu de opções para configurar as definições.
- d Eliminar: Eliminar o fluxo selecionado da lista.
- i Interceção: Intercetar pedidos para os modificar ou inspecionar antes de os reencaminhar para o servidor.
- Marca: Marcar movimentos para efetuar operações em lote como a eliminação ou a exportação.
- Filtro: Aplique filtros para visualizar apenas fluxos específicos com base em critérios como anfitrião, método ou código de estado.
- e Editar: Editar o pedido ou a resposta do fluxo selecionado.
- b Guardar o corpo: Guardar o corpo do fluxo selecionado num ficheiro.
- Limpar lista: Limpar todos os fluxos da lista.
- Guardar fluxos: Guardar todos os fluxos capturados num ficheiro.
- Modificar layout: Alternar entre diferentes modos de apresentação na interface.
- Ctrl+F Seguir novo: Seguir e destacar automaticamente novos fluxos à medida que são capturados.
Deseja mais ajuda com o Mitmproxy?
Ver ajuda: Prima '?' na interface mitmproxy para obter ajuda sensível ao contexto.

O que é que se segue?
Agora, está equipado com os conhecimentos necessários para começar a utilizar o Mitmproxy. E agora, o que vem a seguir?
- Iniciar a captura: À medida que o tráfego flui através do Mitmproxy, você verá as solicitações e respostas HTTP (ou WSS) em tempo real. Use a interface para inspecioná-los e modificá-los em tempo real.
- Analisar o tráfego: Procure padrões, anomalias ou dados específicos no tráfego capturado. A ferramenta permite-lhe dissecar cada pedido e resposta até aos mais ínfimos detalhes.
5. Mais coisas que podem ser feitas com o Mitmproxy
O Mitmproxy é mais do que um simples intercetor de tráfego web; é possível fazer muito mais com esta fantástica ferramenta. Abaixo estão mais cinco coisas interessantes que pode fazer com esta ferramenta.
a. Utilize a interface Web.
Utilize a interface integrada baseada na Web com uma GUI para facilitar a análise e a manipulação do tráfego. Como o iniciar?
- Iniciar o mitmweb: "mitmweb
- Abrir a interface Web: Aceda a http://localhost:8081 no seu browser.
b. Use o Mitmdump.
O Mitmdump vem com a instalação do Mitmproxy. É uma ferramenta de linha de comando não interativa projetada para scripting e automação.
- Iniciar o mitmdump: mitmdump
- Guardar o tráfego para um ficheiro: mitmdump -w outfile
- Filtrar e reproduzir o tráfego: mitmdump -nr infile -w outfile "~m post"
c. Configuração de certificados SSL/TLS
Traffic Interception isn’t complete without handling encrypted traffic. Mitmproxy simplifies SSL/TLS certificate setup so you can peek into HTTPS traffic seamlessly. How to do this?
- O serviço cria um certificado CA que será utilizado para assinar o tráfego intercetado.
- Navegue até http://mitm.it no seu browser e siga as instruções para instalar o certificado CA no seu dispositivo.
- Com o certificado CA instalado, o Mitmproxy irá descriptografar o tráfego HTTPS, permitindo inspecionar, modificar e analisar comunicações seguras, assim como o tráfego HTTP não criptografado.
d. Automatizar tarefas com Python
Vamos levar sua análise de tráfego para o próximo nível. A API Python do Mitmproxy permite-lhe automatizar tarefas e personalizar o tratamento do tráfego.
- Utilize Python para escrever addons personalizados que alargam a funcionalidade da ferramenta. Por exemplo, pode modificar automaticamente os pedidos ou registar padrões de tráfego específicos.
- Com a API Python, tem controlo total sobre o tráfego intercetado. Modifique cabeçalhos, altere caminhos de pedidos ou até mesmo bloqueie pedidos específicos com base em lógica personalizada.
e. Executando o Mitmproxy no Docker
Você ficará feliz em saber que o Mimtproxy é suportado pelo Docker (se você preferir ambientes em contêineres). O Mitmproxy no Docker se integra bem aos fluxos de trabalho de desenvolvimento modernos.
- Puxe a imagem do Docker: Baixe a imagem oficial do DockerHub: docker pull mitmproxy/mitmproxy
- Execute-o num contentor: docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy
6. Secção FAQ.
1. Como posso intercetar pedidos HTTP/HTTPS usando o Mitmproxy?
Para intercetar pedidos HTTP/HTTPS, configure seu navegador ou dispositivo para usar o Mitmproxy como proxy. Inicie-o no seu terminal e ele começará a capturar todo o tráfego que passa por ele. Pode então inspecionar e modificar esses pedidos em tempo real. Mais informações nas secções anteriores do post.
2. O Mitmproxy consegue lidar com grandes quantidades de tráfego de rede?
Sim, o Mitmproxy foi projetado para lidar com quantidades significativas de tráfego de rede. No entanto, para volumes muito altos, recomendamos garantir que seu hardware suporte a carga. A ferramenta oferece várias opções para otimizar o desempenho e gerenciar o tráfego de forma eficiente.
3. Como o Mitmproxy gerencia os certificados SSL/TLS?
O Mitmproxy gera um certificado de Autoridade Certificadora (CA) que deve ser instalado no seu dispositivo. Isto permite ao Mitmproxy intercetar e desencriptar o tráfego HTTPS. O certificado CA é usado para assinar outros certificados em tempo real. Isso faz com que o tráfego intercetado pareça confiável para o seu navegador ou aplicativo.
4. A utilização do Mitmproxy é segura?
O Mitmproxy é seguro (se for usado corretamente). Como prática recomendada, certifique-se de que o certificado CA gerado seja usado apenas em dispositivos e ambientes confiáveis. Atualize sempre o Mitmproxy para a versão mais recente para se beneficiar dos patches e melhorias de segurança. Mais importante ainda, lembre-se sempre de que a intercetação de tráfego só deve ser feita de forma ética e legal.
5. O Mitmproxy pode ser utilizado em diferentes ambientes de alojamento e servidores?
Sem dúvida. O Mitmproxy é compatível com vários ambientes de hospedagem e servidores. É possível configurá-lo em servidores locais, ambientes de nuvem e até mesmo em containers Docker.
6. Como posso executar o Mitmproxy num contentor Docker?
Para executar o Mitmproxy no Docker, extraia a imagem oficial do Mitmproxy do DockerHub usando o comando "docker pull mitmproxy/mitmproxy". Em seguida, inicie um contêiner com docker run -rm -it -p 8080:8080 mitmproxy/mitmproxy. Essa configuração permite intercetar o tráfego em um ambiente de contêiner. Isso é perfeito para a integração com fluxos de trabalho DevOps modernos.
7. Como posso usar a API Mitmproxy para manipulação de tráfego personalizado?
O Mitmproxy fornece uma poderosa API Python que permite escrever scripts personalizados para manipulação de tráfego. Com essa API, é possível automatizar tarefas, modificar requisições e respostas e implementar lógicas complexas. Para começar, escreva o seu script e execute o Mitmproxy com o sinalizador -s seguido do caminho do seu script.
8. O Mitmproxy pode ser utilizado para a recolha de dados da Web?
Sim, o Mitmproxy é uma ferramenta perfeita para a recolha de dados da Web. Permite-lhe capturar e modificar o tráfego da Web, facilitando a extração de dados das páginas Web. Ao analisar os pedidos e respostas HTTP, pode automatizar a recolha de dados de forma mais eficaz.
9. Qual é o processo de configuração do TLS/SSL no Mitmproxy?
Para configurar o TLS/SSL no Mitmproxy, é necessário iniciar um certificado CA no seu dispositivo. Isso permite que o Mitmproxy descriptografe o tráfego HTTPS. Configure seu cliente para confiar no certificado CA, garantindo a intercetação segura e contínua do tráfego criptografado.
10. Quais são algumas alternativas ou ferramentas semelhantes ao Mitmproxy?
Se estiver a explorar alternativas (ou ferramentas semelhantes) ao Mitmproxy, considere o seguinte:
- Fiddler pela sua interface fácil de utilizar e pelas suas poderosas capacidades de depuração de sessões Web
- Charles Proxy pelas suas funcionalidades de proxy SSL e de limitação da largura de banda
- Burp Suite para testes exaustivos de segurança de aplicações Web.
- OWASP ZAP fornece ferramentas de teste de segurança de código aberto
- O Wireshark oferece uma análise detalhada do protocolo de rede
- O Proxyman oferece uma interface moderna para a depuração do tráfego Web
- O HTTP Toolkit simplifica a interceção e depuração do tráfego HTTP(S) com uma configuração guiada.
7. Palavras finais.
Explorámos "superficialmente" as caraterísticas e capacidades do Mitmproxy. Este artigo guia cobre apenas a ponta do iceberg do que esta ferramenta incrível pode fazer.
Neste guia, abordamos as etapas de instalação para diferentes sistemas operacionais, configuração básica e uso. Além disso, aprofundamos as funcionalidades avançadas, como intercetação SSL/TLS, automação com Python e integração com o Docker.
Esperamos que, com este conhecimento, tire o máximo partido do Mitmproxy para a análise e manipulação do seu tráfego de rede.
0Comentários