自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實戰(zhàn)介紹Windows下的PC客戶端常見漏洞挖掘

系統(tǒng) Windows
很多人都不敢去碰,而實際上PC客戶端的漏洞比大家想象中要容易的多,甚至你并不需要精通匯編語言就能很容易的挖到PC客戶端漏洞,不過匯編語言是PC客戶端漏洞發(fā)掘的基礎(chǔ),還是需要學(xué)好它。

0X00 為什么寫這篇文章

對于小白來說,web安全方面似乎已經(jīng)有了很完備的知識體系和漏洞發(fā)掘流程,剛剛?cè)腴T的朋友總是喜歡選擇web方向來作為自己的發(fā)展方向,因為針對web系統(tǒng)的滲透測試似乎獲得的成就感要更高,也有很多小白認(rèn)為web似乎更好學(xué),然而對于PC客戶端漏洞發(fā)掘,因為涉及到了一些計算機(jī)和操作系統(tǒng)底層的知識,很多人都不敢去碰,而實際上PC客戶端的漏洞比大家想象中要容易的多,甚至你并不需要精通匯編語言就能很容易的挖到PC客戶端漏洞,不過匯編語言是PC客戶端漏洞發(fā)掘的基礎(chǔ),還是需要學(xué)好它。

另外,挖掘PC客戶端漏洞和挖掘WEB漏洞是一樣的,都需要細(xì)心和耐心,你要學(xué)會關(guān)注每一個細(xì)節(jié),了解系統(tǒng)和軟件是如何協(xié)同工作的。本文主要講Windows下的PC客戶端漏洞發(fā)掘,為了淺顯易懂,不涉及ROP等高級內(nèi)存威脅和內(nèi)存溢出技術(shù),大佬請繞道。

0×01 工具

“工欲善其事,必先利其器” 。

PC客戶端漏洞挖掘主要是逆向工程和進(jìn)程監(jiān)控為主。

逆向工程方面我推薦兩個工具,一個是靜態(tài)分析之王:IDA pro,另一個是動態(tài)調(diào)試?yán)锩婧芎糜玫模篛llydbg(推薦大家用吾愛破解論壇版本的)這兩個逆向分析工具一查就可以查到,在這里就不多介紹了。

進(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)控,這兩個工具知名度不高,但是很好用。

ProcessExplorer進(jìn)程監(jiān)控

Autoruns進(jìn)程監(jiān)控工具

本地監(jiān)控工具里還有一種工具是專門監(jiān)控注冊表的工具,這里推薦幾個:

Process Monitor:一個強(qiáng)大的注冊表監(jiān)視工具,可以添加過濾規(guī)則,很方便。

Regshot:一個注冊表備份和比對工具,可以通過保存快照和比對快照的方式來找出注冊表中哪些值發(fā)生了變化。

RegfromApp:也是一個進(jìn)程監(jiān)控工具,可以選擇一個進(jìn)程之后跟蹤其對注冊表的修改。

網(wǎng)絡(luò)行為監(jiān)控工具當(dāng)然首推大名鼎鼎的Wireshark啦,當(dāng)然還有一個工具很小眾但是很好用,是歲月聯(lián)盟的工具,叫WSExplorer(進(jìn)程抓包)。

Wireshark

歲月聯(lián)盟的進(jìn)程抓包工具WSExplorer,非常方便,左側(cè)是進(jìn)程,右側(cè)是抓到的數(shù)據(jù)包。

有了以上這些工具,我們便可以對程序在我們的計算機(jī)上做了些什么了如指掌,知己知彼方能百戰(zhàn)百勝,便可以開始下一步的漏洞發(fā)掘了。

0×02 缺陷

對于開發(fā)者來說,開發(fā)一款完全沒有漏洞的程序是不可能的,特別是這個程序的體量及其龐大時,則其必定存在漏洞,我們需要知道的就是哪些位置容易出現(xiàn)漏洞。

客戶端的授權(quán)認(rèn)證漏洞:

一般正版的客戶端軟件都設(shè)有授權(quán)認(rèn)證模塊,這些授權(quán)認(rèn)證方式所需要達(dá)成的目的無非就是“買了的人能用,沒買的人不能用”,一般驗證采用注冊碼的形式并與個人計算機(jī)的機(jī)器碼相互綁定,或者與某種個人認(rèn)證機(jī)制相互綁定,以達(dá)到驗證的目的。授權(quán)認(rèn)證漏洞可以導(dǎo)致軟件和功能被破解,盜版程序流通等嚴(yán)重后果。授權(quán)認(rèn)證漏洞往往是開發(fā)者在開發(fā)時沒有注重授權(quán)認(rèn)證的保密性以及安全性所導(dǎo)致的。

客戶端的網(wǎng)絡(luò)服務(wù)漏洞:

這類漏洞一般是由于客戶端在發(fā)送數(shù)據(jù)包或接收時沒有進(jìn)行嚴(yán)格的認(rèn)證造成的,可導(dǎo)致無條件調(diào)用高級權(quán)限的服務(wù)。

客戶端功能邏輯漏洞:

這類漏洞一般是由客戶端功能設(shè)計不合理導(dǎo)致的,可以導(dǎo)致無授權(quán)的訪問等嚴(yán)重后果。

客戶端溢出漏洞:

這類漏洞包含屬于逆向工程中比較高難度的一塊,主要是由于開發(fā)時對內(nèi)存的錯誤管理,或者程序本身的執(zhí)行邏輯漏洞導(dǎo)致的。

本文僅介紹前三種漏洞。

0×03 實戰(zhàn)

客戶端功能邏輯漏洞:

挖掘這類漏洞應(yīng)主要關(guān)注客戶端功能之間的邏輯,與Web邏輯漏洞類似。但是不同的是,功能邏輯漏洞也包括在反編譯之后的部分,一般情況下通過修改關(guān)鍵call函數(shù)之上的跳轉(zhuǎn)邏輯來進(jìn)行漏洞挖掘,主要成因是客戶端邏輯過于簡單,采用了較少的邏輯判斷。這種漏洞在具有完備功能的客戶端上并不常見。

客戶端的授權(quán)認(rèn)證漏洞:

1.基于本地注冊表的破解:

某些軟件雖然使用網(wǎng)絡(luò)進(jìn)行授權(quán)驗證,但是由于其試用次數(shù)設(shè)計的驗證缺陷,可以導(dǎo)致通過修改注冊表來實現(xiàn)多次數(shù)的試用,導(dǎo)致“不付費也能用”,即出現(xiàn)了授權(quán)認(rèn)證漏洞。下面這款客戶端程序即是如此,我們在剛剛打開它的時候會提示試用次數(shù)還剩29次。

現(xiàn)在我們打開Process Monitor,使用過濾功能添加白名單使Pm僅顯示該進(jìn)程的相關(guān)信息。

添加過濾白名單,僅顯示該進(jìn)程。

關(guān)鍵部位做了處理。

之后停止所有捕獲,關(guān)閉并重啟客戶端,多次重復(fù)后我們監(jiān)控到每次客戶端打開時,會自動做一次RegsetValue(注冊表值修改),如下:

經(jīng)過測試后,發(fā)現(xiàn)剩余試用次數(shù)是用整數(shù)30減去注冊表中一個名為Nowtimes的鍵下面的值。

于是我們編寫一個BAT腳本,修改該客戶端指向的那個值,并讓他在客戶端啟動時自動運(yùn)行,即可鎖定試用次數(shù)為30次,不會減少。

Reg add HKCU\Software\客戶端名字\一個位置 /v Nowtimes /t REG_DWORD /d 0 /f

這個漏洞的成因主要是因為試用次數(shù)認(rèn)的方法太簡單了,不聯(lián)網(wǎng)不加密直接寫進(jìn)注冊表中,并且鍵名還那么淺顯易懂叫做“Nowtimes”,這種存在在注冊表的漏洞發(fā)掘和利用方法還是比較簡單的,但是問題是這樣的漏洞還蠻多的,所以大家在挖掘時注意關(guān)注注冊表。另外如果注冊表禁止監(jiān)控,我們可以用REGshot來保存前后的快照進(jìn)行比對分析。

2.基于網(wǎng)絡(luò)授權(quán)驗證的hosts欺騙破解

這一部分內(nèi)容需要用到一部分逆向工程的知識。這次破解的客戶端沒有設(shè)置試用機(jī)制,我們轉(zhuǎn)而把眼光放到它的網(wǎng)絡(luò)驗證模式上來,看看到底這個客戶端的網(wǎng)絡(luò)授權(quán)驗證方式是如何工作的。

關(guān)鍵位置打碼處理

隨便輸一個注冊碼進(jìn)去

隨便輸入一個注冊碼然后確定,根據(jù)彈出的錯誤窗口來定位到客戶端的注冊檢測驗證的函數(shù)處。拖入OLLYdbg查找字串“注冊碼有誤”,并跟蹤到匯編窗口。

于是我們得到了注冊授權(quán)的服務(wù)器地址。為了進(jìn)一步驗證,我們使用wireshark來分析這個客戶端注冊時的網(wǎng)絡(luò)請求。

<>可以看出客戶端攜帶著我們的機(jī)器碼和幾個其他數(shù)據(jù)請求了服務(wù)器的/verifycheck/login.php

再回到我們的匯編窗口中,我們可以看到幾個unicode的編碼,疑似服務(wù)器的返回,記錄下來。

直接用瀏覽器訪問,可以發(fā)現(xiàn)返回值和匯編窗口的記錄值中的一條相同,所以我們猜測可以構(gòu)造一個假服務(wù)器,修改主機(jī)的hosts文件來實現(xiàn)請求重定向,讓我們的服務(wù)器返回注冊成功的信息。

修改hosts文件,將服務(wù)器域名綁定到我們自己的假服務(wù)器的ip地址

在服務(wù)器上構(gòu)造不同的payload,可以得到客戶端不同的反應(yīng),說明漏洞成功了一半。

 

至此我們可以排除掉其他的payload,從而確定一個格式化日期返回值是注冊成功的標(biāo)志。所以我們構(gòu)造一個格式化時間,并且重新打開客戶端輸入任意注冊碼注冊,即可看到注冊成功的窗口。

 

最終的payload

這一漏洞的成因為客戶端軟件在校驗注冊碼返回時的數(shù)據(jù)太過簡單,進(jìn)而非常容易構(gòu)造注冊成功的返回。并且客戶端的反編譯能力也非常差,敏感信息在反編譯后直接就能夠看到。在挖掘這一類漏洞時,我們需要一些逆向工程的基本知識,以及計算機(jī)網(wǎng)絡(luò)的一些基礎(chǔ)知識,重點關(guān)注客戶端與網(wǎng)絡(luò)服務(wù)器之間的通訊數(shù)據(jù),利用抓包工具來進(jìn)行漏洞挖掘。

客戶端的網(wǎng)絡(luò)服務(wù)漏洞:

由于想拿來做例子的漏洞廠商還沒有修復(fù),所以這里不放例子了。網(wǎng)絡(luò)服務(wù)漏洞發(fā)掘主要采用客戶端網(wǎng)絡(luò)請求分析的方式,主要的工具就是前面提到的進(jìn)程抓包工具以及Wireshark, 大部分網(wǎng)絡(luò)服務(wù)漏洞起因是由于在客戶端的網(wǎng)絡(luò)請求中沒有采取驗證方式或者采取了安全性非常低的驗證方式,從而使得任何人都可以以客戶端合法的名義來請求這個網(wǎng)絡(luò)服務(wù),實現(xiàn)沒有權(quán)限的調(diào)用私有網(wǎng)絡(luò)服務(wù)接口。常常出現(xiàn)在客戶端vip付費資源的試聽服務(wù),客戶端付費的查詢功能接口處等,不安全的客戶端請求可以被攔截并分析,進(jìn)而實現(xiàn)越權(quán)調(diào)用無權(quán)限的資源或接口。在挖掘這類漏洞時,我們需要更多的關(guān)注客戶端的網(wǎng)絡(luò)傳輸層面上的東西,盡可能的分析客戶端的每一個通過網(wǎng)路服務(wù)器實現(xiàn)的功能,來進(jìn)行漏洞挖掘。

 

責(zé)任編輯:武曉燕 來源: Freebuf
相關(guān)推薦

2010-05-31 15:55:42

2011-06-08 14:30:54

SkypeWindows微軟

2009-11-05 13:00:25

WCF客戶端

2010-07-19 16:30:19

Telnet客戶端

2020-12-24 17:10:54

DockerLinux微信

2012-03-15 09:42:02

虛擬化vmware.瘦客戶端

2011-03-25 14:25:38

NagiosWindows監(jiān)控

2020-04-02 11:20:23

Zoom漏洞黑客

2022-08-30 15:29:51

crictlnerdctl命令

2023-03-31 13:31:45

2014-07-17 15:47:52

2010-12-30 12:13:03

Skype宕機(jī)Windows客戶端漏

2009-12-02 14:37:17

2011-08-17 16:50:54

2010-05-28 09:31:10

修改SVN密碼

2012-01-13 10:29:37

ibmdw

2011-10-26 20:17:05

2011-04-06 14:24:27

Nagios監(jiān)控Linux

2021-08-22 14:52:00

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2020-03-16 09:00:00

Linux郵件客戶端
點贊
收藏

51CTO技術(shù)棧公眾號