WireShark如何破解SSL加密網(wǎng)絡(luò)數(shù)據(jù)包
WireShark如何破解SSL加密網(wǎng)絡(luò)數(shù)據(jù)包
一般來(lái)說(shuō),我們用WireShark來(lái)抓取包進(jìn)行分析是沒(méi)有多大問(wèn)題的,但碰到的是用SSL/TLS等加密手段加密過(guò)的網(wǎng)絡(luò)數(shù)據(jù)的時(shí)候,往往我們只能束手無(wú)策。請(qǐng)看下面學(xué)習(xí)啦小編整理的解決方法!
WireShark破解SSL加密網(wǎng)絡(luò)數(shù)據(jù)包的方法
相信能訪(fǎng)問(wèn)到這篇文章的同行基本上都會(huì)用過(guò)流行的網(wǎng)絡(luò)抓包工具WireShark,用它來(lái)抓取相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)包來(lái)進(jìn)行問(wèn)題分析或者其他你懂的之類(lèi)的事情。一般來(lái)說(shuō),我們用WireShark來(lái)抓取包進(jìn)行分析是沒(méi)有多大問(wèn)題的。但這里有個(gè)問(wèn)題是,如果你碰到的是用SSL/TLS等加密手段加密過(guò)的網(wǎng)絡(luò)數(shù)據(jù)的時(shí)候,往往我們只能束手無(wú)策。在過(guò)去的話(huà),如果我們擁有的該傳輸會(huì)話(huà)的私鑰的話(huà)我們還是可以將它提供給WireShark來(lái)讓其對(duì)這些加密數(shù)據(jù)包進(jìn)行解密的,但這已經(jīng)是想當(dāng)年還用RSA進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)加密的年代的事情了。當(dāng)今大家都已經(jīng)逐漸擁抱前向加密技術(shù)PFS 的時(shí)代了,所以該方法就不再適用了。因?yàn)榍跋蚣用芗夹g(shù)的目的就是讓每個(gè)數(shù)據(jù)交互都使用的是不同的私鑰,所以你像以前RSA時(shí)代一樣想只用一個(gè)私鑰就能把整個(gè)session會(huì)話(huà)的網(wǎng)絡(luò)數(shù)據(jù)包都破解出來(lái)的話(huà)是不可能的了。所以這將是一個(gè)挺惱火的事情。
大家先別火起,這里我來(lái)告訴你另外一個(gè)簡(jiǎn)單的方法來(lái)解決這個(gè)問(wèn)題!其實(shí)Firefox和Chrome瀏覽器都支持用日記文件的方式記錄下用來(lái)加密TLS數(shù)據(jù)包對(duì)稱(chēng)會(huì)話(huà)秘鑰的。這樣你就可以在WireShark中指定該文件來(lái)快速完成你的破解目的了。請(qǐng)繼續(xù)往下看具體的步驟。首先你需要配置一個(gè)環(huán)境變量。
3.1 在Windows下的配置:
怎么去到環(huán)境變量配置頁(yè)面相信不需要我多說(shuō)了,畢竟國(guó)內(nèi)還是Windows的天下。
在上圖的位置增加一個(gè)新的叫做“SSLKEYLOGFILE”的環(huán)境變量并指定其路徑到你想要保存你的會(huì)話(huà)私鑰的地方。
3.2 在Linux或者M(jìn)AC OS X上的配置:
$ export SSLKEYLOGFILE=~/path/to/sslkeylog.log
當(dāng)然,如果你想在你的系統(tǒng)每次啟動(dòng)的時(shí)候都指定該日記路徑的話(huà),你可以在你的Linux下執(zhí)行下面的動(dòng)作:
~/.bashrc
或者在你的MAC OS X上執(zhí)行以下命令:
~/.MacOSX/environment
這樣我們下次啟動(dòng)Firefox或者Chrome的開(kāi)發(fā)者模式的時(shí)候,TLS秘鑰就會(huì)自動(dòng)寫(xiě)入到該指定文件下面了。為了支持這個(gè)功能,你當(dāng)前的WireShark版本必須是1.6或者更新。我們僅僅要做的就是先進(jìn)入偏好設(shè)置頁(yè)面:
展開(kāi)協(xié)議選項(xiàng):
找到SSL選項(xiàng)然后如下圖所示打開(kāi)上面設(shè)置好的會(huì)話(huà)秘鑰保存文件:
下圖就是我們通常見(jiàn)到的WireShark抓到TLS數(shù)據(jù)包后的顯示結(jié)果:
This is what it looks like when you switch to the “Decrypted SSL Data” tab. Note that we can now see the request information in plain-text! Success!大家可以看到WireShark下面會(huì)有一個(gè)“已解密的SSL Data”的標(biāo)簽,點(diǎn)擊之后你就可以如下圖所示的看到已經(jīng)解密的TLS數(shù)據(jù)包的相信信息了:
通過(guò)本文我真心希望你能從中學(xué)到一些東西,該方法讓我們能夠如此直截了當(dāng)?shù)娜グ裈LS數(shù)據(jù)包給破解出來(lái)。這種方式的另外一個(gè)值得一提的好處是,給會(huì)話(huà)過(guò)程中的兩臺(tái)機(jī)器根本不需要安裝任何Wireshark工具,因?yàn)槟銜?huì)擔(dān)心安裝上去會(huì)搞得問(wèn)題是做多錯(cuò)多都不知道哪里出問(wèn)題了。你只需要做的是把他們上面的該會(huì)話(huà)秘鑰文件指定到一個(gè)網(wǎng)絡(luò)共享文件夾然后用另外一個(gè)已經(jīng)機(jī)器上安裝WireShark并如前所示指定該秘鑰文件進(jìn)行抓包就了事了。
看了“WireShark如何破解SSL加密網(wǎng)絡(luò)數(shù)據(jù)包”的人還看了