Extraindo certificados SSL da rede ou arquivos pcap

5

Eu apreciaria se alguém pudesse me indicar uma ferramenta ou abordagem para extrair certificados SSL / TLS de conexões HTTPS ativas (diretamente da rede) ou de um arquivo de rastreamento de rede (arquivo pcap). Eu tentei usar o ssldump, mas não consegui extrair os certificados. Eu também posso usar o Wireshark para isso (manualmente), mas eu quero fazer isso de forma automatizada. Eu estou usando uma plataforma Linux para isso. Obrigado

Edit: Eu quero extrair o certificado SSL que um servidor envia para o cliente (navegador) durante um handshake SSL. Eu quero usar um sniffer de rede (tcpdump) para capturar as conexões SSL em uma rede e, em seguida, extrair os certificados do arquivo pcap resultante (ou fazê-lo ao vivo).

    
por Apakoh 20.09.2011 / 06:04

3 respostas

3

Você precisa dos certificados em um formato específico (PEM / DER /...) ?

O ssldump pode mostrar certificados ASN.1 parseados com a opção -N e ler um arquivo pcap como entrada com -r. O comando a seguir pode mostrar os certificados em um formato legível.

ssldump -Nr file.pcap | awk 'BEGIN {c=0;} { if ($0 ~ /^[ ]+Certificate$/) {c=1; print "========================================";} if ($0 !~ /^ +/ ) {c=0;} if (c==1) print $0; }'

O script awk não é o mais limpo, mas faz o trabalho (melhorias mais do que bem-vindas).

A opção -x do ssldump mostrará a carga real do pacote (packet_data). Isso incluirá os campos do protocolo de camada de registro e handshake (ou seja, não apenas o certificado). Um script / código mais inteligente pode extraí-lo de lá e convertê-lo em um formato mais comum.

    
por 21.09.2011 / 00:32
1

A maneira mais fácil de extrair certificados X.509 de um arquivo PCAP com tráfego SSL (como HTTPS) é carregar o PCAP no software gratuito de código aberto NetworkMiner. Você encontrará o certificado extraído na guia "Arquivos" no NetworkMiner.

O NetworkMiner extrai automaticamente os certificados X.509 para o disco das sessões SSL / TLS indo para qualquer uma das seguintes portas TCP: 443, 465, 563, 992, 993, 994, 995, 989, 990, 5223, 8170, 8443, 9001 e 9030.

Você pode baixar o NetworkMiner aqui: link

Além disso, consulte este guia para saber como instalar e executar o NetworkMiner no Linux: link

    
por 14.04.2014 / 22:54
0

As conexões ativas geralmente são criptografadas com uma chave de sessão, definida no início da sessão. Você não pode espioná-los, mesmo que tenha todas as chaves, a menos que você tenha um dump do aperto de mão da sessão.

Mas você pode ver quais hosts e portas estão se comunicando. Certificados SSL de servidor são geralmente de porta e host, assim você pode verificar o certificado SSL do servidor facilmente com

openssl s_client -connect example.com:443

Em que example.com é um servidor e 443 é uma porta à qual seu cliente se conecta.

    
por 20.09.2011 / 06:13