Come decodificare TLS in WireShark se riesco ad agganciare le chiamate API crittografiche dell'applicazione?

1

Ho collegato BCryptEncrypt e BCryptDecrypt chiamate di un eseguibile. Posso ottenere gli argomenti di input e i valori di output di queste funzioni. Questo programma chiama BCryptEncrypt per crittografare i dati inviati su TLS e chiama BCryptDecrypt per decrittografare i dati ricevuti da TLS. Quindi l'hook mi ha dato molti dati non criptati sul canale TLS.

Tuttavia, una singola richiesta HTTPS potrebbe suddividersi in più pacchetti TLS e, pertanto, durante ogni chiamata delle funzioni di cui sopra, il mio hook può ottenere solo una parte dell'intero flusso HTTPS.

Mi chiedo se c'è un modo per "decodificare" le acquisizioni TLS in WireShark, dato che ho già ottenuto il testo normale per tutti i dati crittografati per i pacchetti TLS. In modo da poter utilizzare il flusso HTTP Follow, la decompressione Gzip e molti altri extra in WireShark per aiutarmi ad analizzare l'acquisizione.

    
posta vaxiv 22.10.2017 - 07:47
fonte

1 risposta

0

Non c'è modo di permettere a Wireshark di lavorare direttamente sui dati a livello di applicazione che hai. Ma puoi creare un nuovo pcap basato su questi dati e poi usare Wireshark per analizzare questo pcap. Ad esempio questo può essere fatto con un po 'di Perl e il modulo Net :: PcapWriter che ti permette di creare facilmente un pcap e aggiungere connessioni TCP con i propri dati dell'applicazione:

use strict;
use Net::PcapWriter;
my $pcap = Net::PcapWriter->new('test.pcap');
my $conn = $pcap->tcp_conn('1.1.1.1',1234,'2.2.2.2',80);
$conn->write(0,"GET / HTTP/1.0\r\nHost:..."); # HTTP request from client
$conn->write(1,"HTTP/1.1 200 ok\r\n...");     # HTTP response from server

Probabilmente cose simili possono essere fatte con Python e la famosa scapy libreria.

    
risposta data 22.10.2017 - 08:24
fonte

Leggi altre domande sui tag