En annan sak som du kan göra, som kanske är överdriven men som är användbar i andra scenarier, är att fånga upp skapandet av TLS-masterhemligheten med 48 byte. För många Windows-applikationer (inklusive IE) händer detta i lsass.exe
i följande funktion (hämtad från Win7 SP1 32-bit):
Samtal: ncrypt! _Tls1ComputeMasterKey @ 32 + 0x57 EIP: ncrypt! _PRF @ 40 + 0x11a
Du kan sedan dekryptera de fångade paketen efter det faktum i Wireshark genom att ställa in (Pre) -Master-Secret-logg filnamn
i SSL inställningarna till en fil som ser ut som:
RSA session-ID: 87492B3586DE289FAE1598B0A19CC7BCCB69371993F2C0DF32438034E06FE3FBMaster-Key: F58C0EFA2BF87602646B318400DFEB0C8CCDE59408C9F13C6D923F6208743BD34EA8BA17BCE02B9BD8DFED5A58036068
sessionen ID här hittar du i TLS-rubrikerna (okrypterad) för den ström du är intresserad av. (Låt dig inte luras av RSA - det här fungerar för alla TLS-anslutningar oavsett vilken chiffer som används.)
Fördelen med den här metoden är att eftersom du inte gör en man i mitten, behöver klientapplikationen inte lita på din CA, är särskilt praktiskt om du försöker vända skadlig kod som faktiskt gör krypto rätt.
Nackdelen är att du måste kunna felsöka lsass.exe
, vilket kan vara knepig; det finns lite information om hur du gör det här.