Possiamo decifrare il traffico HTTPS / SSL catturato dal malware (Meterpreter) con le chiavi dalla memoria?

6

Una macchina sulla nostra rete è stata compromessa con Meterpreter.

Abbiamo catture di traffico dall'intero periodo del compromesso e un dump di memoria della macchina infetta in un momento in cui la connessione è stata stabilita.

Possiamo decodificare il traffico HTTPS / SSL che abbiamo acquisito?

Finora abbiamo usato il plug-in di dumpcerts di Volatility per estrarre alcuni certificati pubblici, ma non sono noti quelli privati. Sicuramente le chiavi private devono essere in memoria da qualche parte poiché la connessione è stata ancora stabilita?

La versione TLS è TLSv1 1.0. L'identificatore dell'algoritmo è sha256WithRSAEncryption.

    
posta Yara 18.10.2016 - 16:38
fonte

2 risposte

1

Sì, puoi estrarre le chiavi. La chiave privata e la chiave simmetrica sono presenti nella memoria della libreria crittografica (ad esempio OpenSSL). È necessario estrarre la chiave simmetrica per decrittografare il traffico TLS. OpenSSL mantiene questo nella struct SSL->session->master_key . Se non sai esattamente quale libreria viene utilizzata, un semplice approccio a forza bruta consisterebbe nell'estrarre tutti i buffer di dimensioni appropriate dalla memoria e tentare di decrittografare il flusso TLS con ciascuno fino a quando ha esito positivo.

Puoi anche utilizzare GDB, come descritto in estratto pre -modifiche chiave da un'applicazione OpenSSL , che può fornirti il segreto pre-master che puoi collegare a Wireshark. Mentre quella risposta si concentra sui dump della memoria live, dovrebbe funzionare altrettanto bene se si ha un coredump. Usa Volatility per scaricare la memoria del processo che è collegata alla libreria TLS, che puoi utilizzare su GDB. Se OpenSSL non è compilato con i simboli di debug, potresti dover ricorrere a un metodo di forza bruta.

    
risposta data 29.11.2017 - 05:46
fonte
0

Dipende un po 'dal tipo di dati che hai ancora nella tua memoria e dalle caratteristiche negoziate di TLS durante l'handshake. Wireshark può assisterti nella decodifica del traffico se puoi fornirlo, ad esempio, con il mastersecret del canale TLS.

    
risposta data 31.08.2017 - 01:02
fonte

Leggi altre domande sui tag