Pergunta

Eu tenho um aplicativo local (que não escrevi e não posso mudar) que fala com um serviço da Web remoto. Ele usa https e eu gostaria de ver o que está no tráfego.

Existe alguma maneira de fazer isso? Eu preferiria um sistema Windows, mas fico feliz em configurar um proxy no Linux se isso facilitar as coisas.

O que estou considerando:

  1. Redirecionando o site hackeando meu arquivo hosts (ou configurando DNS alternativo).
  2. Instalando um servidor HTTPS nesse site, com um certificado auto-signitado (mas confiável).
  3. Aparentemente, o Wireshark pode ver o que está no HTTPS se você o alimenta a chave privada. Eu nunca tentei isso.
  4. De alguma forma, proxy esse tráfego para o servidor real (ou seja, é um "ataque" de homem no meio-médio).

Isso soa sensato? O Wireshark pode realmente ver o que há no tráfego HTTPS? Alguém pode me apontar para um proxy adequado (e configuração para o mesmo)?

Foi útil?

Solução

Faz Violinista faça o que você quiser?

O que é Fiddler?

Fiddler é um proxy de depuração da web que registra todo o tráfego HTTP (s) entre o seu computador e a Internet. O Fiddler permite inspecionar todo o tráfego HTTP (s), definir pontos de interrupção e "brincar" com dados de entrada ou saída. O Fiddler inclui um poderoso subsistema de script baseado em eventos e pode ser estendido usando qualquer idioma .NET.

Fiddler é freeware e pode depurar o tráfego de praticamente qualquer aplicativo, incluindo o Internet Explorer, Mozilla Firefox, Opera e milhares.

Outras dicas

O Wireshark pode definitivamente exibir fluxos criptografados TLS/SSL como texto simples. No entanto, você definitivamente precisará da chave privada do servidor para fazê -lo. A chave privada deve ser adicionada ao Wireshark como uma opção SSL sob preferências. Observe que isso só funciona se você pode seguir o fluxo SSL desde o início. Não funcionará se uma conexão SSL for reutilizada.

Para o Internet Explorer, esta (reutilização da sessão SSL) pode ser evitada limpando o estado SSL usando a caixa de diálogo Opções da Internet. Outros ambientes podem exigir reiniciar um navegador ou até mesmo reiniciar um sistema (para evitar a reutilização da sessão SSL).

A outra restrição -chave é que uma cifra RSA deve ser usada. O Wireshark não pode decodificar o fluxo TLS/SSL que usa DFH (Diffie-Hellman).

Supondo que você possa satisfazer as restrições acima, o comando "siga SSL Stream" clique com o botão direito do mouse funciona bastante bem.

Você precisa configurar um proxy para o seu aplicativo local e, se não honrar as configurações de proxy, colocar um proxy transparente e rotear todo o tráfego HTTPS para ele antes de sair. Algo assim pode ser o "homem" no meio: http://crypto.stanford.edu/ssl-mitm

Além disso, aqui estão breves instruções sobre como arquivar isso com o Wireshark: http://predev.wikidot.com/decrypt-sl-raffic

Você também deve considerar Charles. Da descrição do produto no momento desta resposta:

Charles é um proxy / proxy reverso de proxy / http http que permite que um desenvolvedor visualize todo o tráfego HTTP e SSL / HTTPS entre sua máquina e a Internet. Isso inclui solicitações, respostas e cabeçalhos HTTP (que contêm os cookies e informações sobre armazenamento em cache).

Eu recomendaria o Wireshark, é a melhor ferramenta a seguir em diferentes peças de tráfego. Embora, não tenho certeza do que você pode ver com o SSL ativado. Talvez, se você fornecer um certificado?

  1. For using https proxy to monitor, it depends on the type of handshake. If you local application does not check the server's certificate by CA's signature which you can not fake, and the server does not check your local application's certificate ( or if you have one to setup on https proxy) then you can set up a https proxy to monitor the https traffic. Otherwise, I think it is impossible to monitor traffic with https proxy.

  2. Another way you can try is to add instrumentation probe at the routines of your client program where it send and receive messages from its https library. It needs some reverse engineering work, but should work for you for all situations.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top