您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)如何解決Windows下的PC客戶(hù)端常見(jiàn)漏洞,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
0X00 為什么寫(xiě)這篇文章
對(duì)于小白來(lái)說(shuō),web安全方面似乎已經(jīng)有了很完備的知識(shí)體系和漏洞發(fā)掘流程,剛剛?cè)腴T(mén)的朋友總是喜歡選擇web方向來(lái)作為自己的發(fā)展方向,因?yàn)獒槍?duì)web系統(tǒng)的滲透測(cè)試似乎獲得的成就感要更高,也有很多小白認(rèn)為web似乎更好學(xué),然而對(duì)于PC客戶(hù)端漏洞發(fā)掘,因?yàn)樯婕暗搅艘恍┯?jì)算機(jī)和操作系統(tǒng)底層的知識(shí),很多人都不敢去碰,而實(shí)際上PC客戶(hù)端的漏洞比大家想象中要容易的多,甚至你并不需要精通匯編語(yǔ)言就能很容易的挖到PC客戶(hù)端漏洞,不過(guò)匯編語(yǔ)言是PC客戶(hù)端漏洞發(fā)掘的基礎(chǔ),還是需要學(xué)好它。
另外,挖掘PC客戶(hù)端漏洞和挖掘WEB漏洞是一樣的,都需要細(xì)心和耐心,你要學(xué)會(huì)關(guān)注每一個(gè)細(xì)節(jié),了解系統(tǒng)和軟件是如何協(xié)同工作的。本文主要講Windows下的PC客戶(hù)端漏洞發(fā)掘,為了淺顯易懂,不涉及ROP等高級(jí)內(nèi)存威脅和內(nèi)存溢出技術(shù),大佬請(qǐng)繞道。
0×01 工具
“工欲善其事,必先利其器” 。
PC客戶(hù)端漏洞挖掘主要是逆向工程和進(jìn)程監(jiān)控為主。
逆向工程方面我推薦兩個(gè)工具,一個(gè)是靜態(tài)分析之王:IDA pro,另一個(gè)是動(dòng)態(tài)調(diào)試?yán)锩婧芎糜玫模篛llydbg(推薦大家用吾愛(ài)破解論壇版本的)這兩個(gè)逆向分析工具一查就可以查到,在這里就不多介紹了。
進(jìn)程監(jiān)控工具主要分為進(jìn)程本地行為監(jiān)控和進(jìn)程網(wǎng)絡(luò)行為監(jiān)控。
本地行為監(jiān)控工具我推薦:ProcessExplorer進(jìn)程監(jiān)控和Autoruns進(jìn)程監(jiān)控,這兩個(gè)工具知名度不高,但是很好用。
ProcessExplorer進(jìn)程監(jiān)控
Autoruns進(jìn)程監(jiān)控工具
本地監(jiān)控工具里還有一種工具是專(zhuān)門(mén)監(jiān)控注冊(cè)表的工具,這里推薦幾個(gè):
Process Monitor:一個(gè)強(qiáng)大的注冊(cè)表監(jiān)視工具,可以添加過(guò)濾規(guī)則,很方便。
Regshot:一個(gè)注冊(cè)表備份和比對(duì)工具,可以通過(guò)保存快照和比對(duì)快照的方式來(lái)找出注冊(cè)表中哪些值發(fā)生了變化。
RegfromApp:也是一個(gè)進(jìn)程監(jiān)控工具,可以選擇一個(gè)進(jìn)程之后跟蹤其對(duì)注冊(cè)表的修改。
網(wǎng)絡(luò)行為監(jiān)控工具當(dāng)然首推大名鼎鼎的Wireshark啦,當(dāng)然還有一個(gè)工具很小眾但是很好用,是歲月聯(lián)盟的工具,叫WSExplorer(進(jìn)程抓包)。
Wireshark
歲月聯(lián)盟的進(jìn)程抓包工具WSExplorer,非常方便,左側(cè)是進(jìn)程,右側(cè)是抓到的數(shù)據(jù)包。
有了以上這些工具,我們便可以對(duì)程序在我們的計(jì)算機(jī)上做了些什么了如指掌,知己知彼方能百戰(zhàn)百勝,便可以開(kāi)始下一步的漏洞發(fā)掘了。
0×02 缺陷
對(duì)于開(kāi)發(fā)者來(lái)說(shuō),開(kāi)發(fā)一款完全沒(méi)有漏洞的程序是不可能的,特別是這個(gè)程序的體量及其龐大時(shí),則其必定存在漏洞,我們需要知道的就是哪些位置容易出現(xiàn)漏洞。
客戶(hù)端的授權(quán)認(rèn)證漏洞:
一般正版的客戶(hù)端軟件都設(shè)有授權(quán)認(rèn)證模塊,這些授權(quán)認(rèn)證方式所需要達(dá)成的目的無(wú)非就是“買(mǎi)了的人能用,沒(méi)買(mǎi)的人不能用”,一般驗(yàn)證采用注冊(cè)碼的形式并與個(gè)人計(jì)算機(jī)的機(jī)器碼相互綁定,或者與某種個(gè)人認(rèn)證機(jī)制相互綁定,以達(dá)到驗(yàn)證的目的。授權(quán)認(rèn)證漏洞可以導(dǎo)致軟件和功能被破解,盜版程序流通等嚴(yán)重后果。授權(quán)認(rèn)證漏洞往往是開(kāi)發(fā)者在開(kāi)發(fā)時(shí)沒(méi)有注重授權(quán)認(rèn)證的保密性以及安全性所導(dǎo)致的。
客戶(hù)端的網(wǎng)絡(luò)服務(wù)漏洞:
這類(lèi)漏洞一般是由于客戶(hù)端在發(fā)送數(shù)據(jù)包或接收時(shí)沒(méi)有進(jìn)行嚴(yán)格的認(rèn)證造成的,可導(dǎo)致無(wú)條件調(diào)用高級(jí)權(quán)限的服務(wù)。
客戶(hù)端功能邏輯漏洞:
這類(lèi)漏洞一般是由客戶(hù)端功能設(shè)計(jì)不合理導(dǎo)致的,可以導(dǎo)致無(wú)授權(quán)的訪問(wèn)等嚴(yán)重后果。
客戶(hù)端溢出漏洞:
這類(lèi)漏洞包含屬于逆向工程中比較高難度的一塊,主要是由于開(kāi)發(fā)時(shí)對(duì)內(nèi)存的錯(cuò)誤管理,或者程序本身的執(zhí)行邏輯漏洞導(dǎo)致的。
本文僅介紹前三種漏洞。
0×03 實(shí)戰(zhàn)
客戶(hù)端功能邏輯漏洞:
挖掘這類(lèi)漏洞應(yīng)主要關(guān)注客戶(hù)端功能之間的邏輯,與Web邏輯漏洞類(lèi)似。但是不同的是,功能邏輯漏洞也包括在反編譯之后的部分,一般情況下通過(guò)修改關(guān)鍵call函數(shù)之上的跳轉(zhuǎn)邏輯來(lái)進(jìn)行漏洞挖掘,主要成因是客戶(hù)端邏輯過(guò)于簡(jiǎn)單,采用了較少的邏輯判斷。這種漏洞在具有完備功能的客戶(hù)端上并不常見(jiàn)。
客戶(hù)端的授權(quán)認(rèn)證漏洞:
1.基于本地注冊(cè)表的破解:
某些軟件雖然使用網(wǎng)絡(luò)進(jìn)行授權(quán)驗(yàn)證,但是由于其試用次數(shù)設(shè)計(jì)的驗(yàn)證缺陷,可以導(dǎo)致通過(guò)修改注冊(cè)表來(lái)實(shí)現(xiàn)多次數(shù)的試用,導(dǎo)致“不付費(fèi)也能用”,即出現(xiàn)了授權(quán)認(rèn)證漏洞。下面這款客戶(hù)端程序即是如此,我們?cè)趧倓偞蜷_(kāi)它的時(shí)候會(huì)提示試用次數(shù)還剩29次。
現(xiàn)在我們打開(kāi)Process Monitor,使用過(guò)濾功能添加白名單使Pm僅顯示該進(jìn)程的相關(guān)信息。
添加過(guò)濾白名單,僅顯示該進(jìn)程。
關(guān)鍵部位做了處理。
之后停止所有捕獲,關(guān)閉并重啟客戶(hù)端,多次重復(fù)后我們監(jiān)控到每次客戶(hù)端打開(kāi)時(shí),會(huì)自動(dòng)做一次RegsetValue(注冊(cè)表值修改),如下:
經(jīng)過(guò)測(cè)試后,發(fā)現(xiàn)剩余試用次數(shù)是用整數(shù)30減去注冊(cè)表中一個(gè)名為Nowtimes的鍵下面的值。
于是我們編寫(xiě)一個(gè)BAT腳本,修改該客戶(hù)端指向的那個(gè)值,并讓他在客戶(hù)端啟動(dòng)時(shí)自動(dòng)運(yùn)行,即可鎖定試用次數(shù)為30次,不會(huì)減少。
Reg add HKCU\Software\客戶(hù)端名字\一個(gè)位置 /v Nowtimes /t REG_DWORD /d 0 /f
這個(gè)漏洞的成因主要是因?yàn)樵囉么螖?shù)認(rèn)的方法太簡(jiǎn)單了,不聯(lián)網(wǎng)不加密直接寫(xiě)進(jìn)注冊(cè)表中,并且鍵名還那么淺顯易懂叫做“Nowtimes”,這種存在在注冊(cè)表的漏洞發(fā)掘和利用方法還是比較簡(jiǎn)單的,但是問(wèn)題是這樣的漏洞還蠻多的,所以大家在挖掘時(shí)注意關(guān)注注冊(cè)表。另外如果注冊(cè)表禁止監(jiān)控,我們可以用REGshot來(lái)保存前后的快照進(jìn)行比對(duì)分析。
2.基于網(wǎng)絡(luò)授權(quán)驗(yàn)證的hosts欺騙破解
這一部分內(nèi)容需要用到一部分逆向工程的知識(shí)。這次破解的客戶(hù)端沒(méi)有設(shè)置試用機(jī)制,我們轉(zhuǎn)而把眼光放到它的網(wǎng)絡(luò)驗(yàn)證模式上來(lái),看看到底這個(gè)客戶(hù)端的網(wǎng)絡(luò)授權(quán)驗(yàn)證方式是如何工作的。
關(guān)鍵位置打碼處理
隨便輸一個(gè)注冊(cè)碼進(jìn)去
隨便輸入一個(gè)注冊(cè)碼然后確定,根據(jù)彈出的錯(cuò)誤窗口來(lái)定位到客戶(hù)端的注冊(cè)檢測(cè)驗(yàn)證的函數(shù)處。拖入OLLYdbg查找字串“注冊(cè)碼有誤”,并跟蹤到匯編窗口。
于是我們得到了注冊(cè)授權(quán)的服務(wù)器地址。為了進(jìn)一步驗(yàn)證,我們使用wireshark來(lái)分析這個(gè)客戶(hù)端注冊(cè)時(shí)的網(wǎng)絡(luò)請(qǐng)求。
<>可以看出客戶(hù)端攜帶著我們的機(jī)器碼和幾個(gè)其他數(shù)據(jù)請(qǐng)求了服務(wù)器的/verifycheck/login.php
再回到我們的匯編窗口中,我們可以看到幾個(gè)unicode的編碼,疑似服務(wù)器的返回,記錄下來(lái)。
直接用瀏覽器訪問(wèn),可以發(fā)現(xiàn)返回值和匯編窗口的記錄值中的一條相同,所以我們猜測(cè)可以構(gòu)造一個(gè)假服務(wù)器,修改主機(jī)的hosts文件來(lái)實(shí)現(xiàn)請(qǐng)求重定向,讓我們的服務(wù)器返回注冊(cè)成功的信息。
修改hosts文件,將服務(wù)器域名綁定到我們自己的假服務(wù)器的ip地址
在服務(wù)器上構(gòu)造不同的payload,可以得到客戶(hù)端不同的反應(yīng),說(shuō)明漏洞成功了一半。
至此我們可以排除掉其他的payload,從而確定一個(gè)格式化日期返回值是注冊(cè)成功的標(biāo)志。所以我們構(gòu)造一個(gè)格式化時(shí)間,并且重新打開(kāi)客戶(hù)端輸入任意注冊(cè)碼注冊(cè),即可看到注冊(cè)成功的窗口。
最終的payload
這一漏洞的成因?yàn)榭蛻?hù)端軟件在校驗(yàn)注冊(cè)碼返回時(shí)的數(shù)據(jù)太過(guò)簡(jiǎn)單,進(jìn)而非常容易構(gòu)造注冊(cè)成功的返回。并且客戶(hù)端的反編譯能力也非常差,敏感信息在反編譯后直接就能夠看到。在挖掘這一類(lèi)漏洞時(shí),我們需要一些逆向工程的基本知識(shí),以及計(jì)算機(jī)網(wǎng)絡(luò)的一些基礎(chǔ)知識(shí),重點(diǎn)關(guān)注客戶(hù)端與網(wǎng)絡(luò)服務(wù)器之間的通訊數(shù)據(jù),利用抓包工具來(lái)進(jìn)行漏洞挖掘。
客戶(hù)端的網(wǎng)絡(luò)服務(wù)漏洞:
由于想拿來(lái)做例子的漏洞廠商還沒(méi)有修復(fù),所以這里不放例子了。網(wǎng)絡(luò)服務(wù)漏洞發(fā)掘主要采用客戶(hù)端網(wǎng)絡(luò)請(qǐng)求分析的方式,主要的工具就是前面提到的進(jìn)程抓包工具以及Wireshark, 大部分網(wǎng)絡(luò)服務(wù)漏洞起因是由于在客戶(hù)端的網(wǎng)絡(luò)請(qǐng)求中沒(méi)有采取驗(yàn)證方式或者采取了安全性非常低的驗(yàn)證方式,從而使得任何人都可以以客戶(hù)端合法的名義來(lái)請(qǐng)求這個(gè)網(wǎng)絡(luò)服務(wù),實(shí)現(xiàn)沒(méi)有權(quán)限的調(diào)用私有網(wǎng)絡(luò)服務(wù)接口。常常出現(xiàn)在客戶(hù)端vip付費(fèi)資源的試聽(tīng)服務(wù),客戶(hù)端付費(fèi)的查詢(xún)功能接口處等,不安全的客戶(hù)端請(qǐng)求可以被攔截并分析,進(jìn)而實(shí)現(xiàn)越權(quán)調(diào)用無(wú)權(quán)限的資源或接口。在挖掘這類(lèi)漏洞時(shí),我們需要更多的關(guān)注客戶(hù)端的網(wǎng)絡(luò)傳輸層面上的東西,盡可能的分析客戶(hù)端的每一個(gè)通過(guò)網(wǎng)路服務(wù)器實(shí)現(xiàn)的功能,來(lái)進(jìn)行漏洞挖掘。
以上就是如何解決Windows下的PC客戶(hù)端常見(jiàn)漏洞,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。