分类
笔记

Wireshark解密HTTPS流量

原理

我们先回顾一下SSL/TLS的整个握手过程:

  • Clienthello:发送客户端的功能和首选项给服务器,在连接建立后,当希望重协商、或者响应服务器的重协商请求时会发送。
  • version:客户端支持的最佳协议版本
  • Random:共32字节,28字节随机数,4字节额外信息,受客户端时钟影响(为了避免浏览器指纹采集,现在一般会对4字节时钟做扭曲)
  • Session ID:32字节随机数,用于和服务器重建会话,为空表示新建会话
  • cipher suit:客户端支持的所有密码套件,按优先级排列
  • Compression:客户端支持的压缩算法,默认无压缩
  • Extensions:由任意数量的扩展组成,携带额外数据
  • ServerHello:
  • 选择客户端提供的参数反馈客户端
  • 服务器无需支持客户端支持的最佳版本,如果服务器不支持客户端版本,可以提供其他版本以期待客户端可以接受
  • Certificate:
  • 用于携带服务器X.509证书链
  • 主证书必须第一个发送,中间证书按照正确的顺序跟在主证书之后
  • 服务器必须保证发送的证书和选择的算法套件一致
  • Certificate消息时可选的
  • ServerKeyExchange: 携带密钥交换的额外数据,取决于加密套件
  • ServerHelloDone:服务器已将所有预计的握手消息发送完毕
  • ClientkeyExchange:携带客户端为密钥交换提供的信息
  • ChangeCipherSpec:发送端已取得用以连接参数的足够的信息
  • Finish:握手完成,消息内容加密,双方可以交换验证,整个握手完整性所需的数据
  • 算法:verrify_data = PRF(master_secret , finished_label,hash(handshake_message))

要解密HTTPS流量,需要得到加密密钥,加密密钥由主密钥、客户端随机数、服务器随机数生成。由上述握手过程可知,客户端随机数和服务器随机数在双方握手消息中传递,而主密钥(master_secret)则由预主密钥(pre_master_secret)结合两个随机数生成。预主密钥通过密码套件中的密钥交换算法进行交换(DH、RSA)。

因此,通过Wireshark解密HTTPS,可以从两个地方下手:1、密钥交换算法选择RSA,然后提取服务器的私钥,将私钥导入Wireshark,通过Wireshark解密密钥交换过程中传递的预主密钥,再结合之前的客户端和服务器随机数生成主密钥,进一步生成加密密钥,即可解密后续抓取到的加密报文。2、直接从客户端提取主密钥,结合客户端和服务器随机数生成加密密钥,实现对加密报文的解密。

下面演示两种方法解密HTTPS流量。

分类
笔记

破解WinRAR

最近WinRAR爆出一个存在十多年的漏洞,影响很大。全新的5.7版本已修复。

几年前WinRAR开始免费,但免费版会弹出广告。我在官方下载了最新WinRAR 5.7,然后导入注册文件。再打开WinRAR显示已注册。可WinRAR依然弹出广告。

源于强迫症,不肯屈服广告。但网上没有最新的正式破解版(有5.7 beta2版本),无奈只有自己动手了。

下载 Resource Hacker ,找到WinRAR安装目录,打开WinRAR.exe文件编辑。

分类
Windows

激活MS Office 2019

从MSDN下载官方office 2019镜像,安装后使用如下方法激活:

新建文本文档,输入以下代码:

@echo off
(cd /d "%~dp0")&&(NET FILE||(powershell start-process -FilePath '%0' -verb runas)&&(exit /B)) >NUL 2>&1
title Office 2019 Activator r/Piracy
echo Converting... & mode 40,25
(if exist "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office16")&(if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office16")&(for /f %%x in ('dir /b ..\root\Licenses16\ProPlus2019VL*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul)&(for /f %%x in ('dir /b ..\root\Licenses16\ProPlus2019VL*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul)
cscript //nologo ospp.vbs /unpkey:6MWKP >nul&cscript //nologo ospp.vbs /inpkey:NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP >nul&set i=1
:server
if %i%==1 set KMS_Sev=kms7.MSGuides.com
if %i%==2 set KMS_Sev=kms8.MSGuides.com
if %i%==3 set KMS_Sev=kms9.MSGuides.com
cscript //nologo ospp.vbs /sethst:%KMS_Sev% >nul
echo %KMS_Sev% & echo Activating...
cscript //nologo ospp.vbs /act | find /i "successful" && (echo Complete) || (echo Trying another KMS Server & set /a i+=1 & goto server)
pause >nul
exit

保存之后,修改文本文档后缀,将.txt修改为.bat

保持联网,然后以管理员身份运行,等待数秒,即可激活。

本方法通过kms密钥管理服务器激活,有效期为180天,但是根据国外论坛的说法,也就是等到180天后,会自动联网激活。