搜索公眾號:暗網(wǎng)黑客可領(lǐng)全套網(wǎng)絡(luò)安全課程、配套攻防靶場#0x00 前言
大家好,我是tahf,一個從事安全行業(yè)快6年了小白貓。
相信每一個安全從業(yè)者都希望有一天能夠挖掘出漏洞并獲得屬于自己CVE編號,這也是當年我入職安全行業(yè)一個小小的夢想。
今天我想以自己挖掘的一個漏洞以及與廠商溝通的過程為例
來科普下,如何向廠商提交漏洞和申請CVE編號
如果有不對之處,歡迎大家批評指正~
#0x01 漏洞挖掘首先,漏洞提交的關(guān)鍵還是在于我們要先挖掘出一個漏洞。
我挖到的這個漏洞也有一定的機緣巧合。
去年我在對國產(chǎn)軟件的進程權(quán)限分離做研究時,發(fā)現(xiàn)很多類似電腦管家的軟件,都會在系統(tǒng)中注冊服務(wù)
因為系統(tǒng)服務(wù)一般都是System權(quán)限,非常方便這些管家軟件幫助用戶管理和配置電腦,這一點并沒有任何問題。
但是這些電腦管家的軟件大多都是需要以UI界面的形式與用戶交互
比如用戶點擊“一鍵診斷”和“磁盤清理”之類的操作
通過對電腦管家在系統(tǒng)啟動后的一系列進程創(chuàng)建過程的分析
我發(fā)現(xiàn)其UI進程是軟件注冊的系統(tǒng)服務(wù)創(chuàng)建的(比如調(diào)用CreateProcessAsUr)
并且有完整的UAC令牌, 對應(yīng)的Integrity為High。
對比國外一些類似的管理或殺毒軟件,他們也會注冊系統(tǒng)服務(wù)
他們的UI進程也是服務(wù)創(chuàng)建的
但是他們的UI進程并沒有完整的UAC令牌,對應(yīng)的Integrity為Medium。
那么,國產(chǎn)軟件中這些具有完整UAC令牌的進程一旦出現(xiàn)了問題
比如經(jīng)典的dll劫持漏洞,很容易導(dǎo)致攻擊者獲得Administrator的權(quán)限,從而Bypass UAC。
我去年發(fā)現(xiàn)的就是一個經(jīng)典的dll劫持漏洞,具體的分析將結(jié)合報告的撰寫來闡述。
#0x02 報告撰寫注意事項當我們發(fā)現(xiàn)漏洞后,肯定會編寫POC來進行驗證
那么驗證的過程需要保存好圖片(或動圖)、視頻形式的證據(jù),方便提交給廠商,然后就是撰寫漏洞報告。
漏洞報告其實是一個比較花費時間的事情,可能需要1-2天甚至更多的時間精力。
我之前也在ASRC、360SRC上提交過一些軟件的漏洞報告,個人感覺漏洞報告寫的越詳細,對我們提交者就越有利,因為廠商的安全人員一般會對報告中的漏洞進行復(fù)現(xiàn)。
如果報告圖文并茂,過程詳盡,那么廠商的安全人員完成復(fù)現(xiàn)的速度就越快,同時也會降低出現(xiàn)漏洞復(fù)現(xiàn)不了等問題的幾率。
我個人一般在撰寫報告時,會采用下面的框架:
漏洞摘要、漏洞利用條件、影響范圍、漏洞復(fù)現(xiàn)、漏洞分析、修復(fù)建議
另外,漏洞報告的架構(gòu)還需要看我們打算提交的平臺或廠商,有些SRC的平臺有自己的格式要求,我們按照要求遵守就好。
這里我挖掘到的是聯(lián)想電腦管家的漏洞,在http://cve.mitre.org/cve/request_id.html#cna_participants可以找到提交的郵箱和相關(guān)政策,在決定提交漏洞前,務(wù)必仔細閱讀相關(guān)條款。
另外,如果給國外的廠商提交,我們的報告一定要是英文版本,英文好可以直接寫
當然也可以讓google翻譯,但是機翻后請務(wù)必保證關(guān)鍵技術(shù)詞匯正確,語句盡可能通順。
我在給聯(lián)想的PSIRT通過郵件發(fā)送漏洞報告時(一開始我發(fā)的中文版本,覺得畢竟是聯(lián)想嘛)
結(jié)果對方回復(fù)要求我提交英文報告,哎,加油寫英文吧。
下面是我提交報告時的來往郵件,供參考:
#0x03 撰寫報告下面我就把我提交的報告(采用中英文對照的方式,以英文為主)給大家分享一下:
首先是報告的開題,可以把郵件中的信息再重復(fù)一下
因為這個pdf報告可能被轉(zhuǎn)給廠商的安全響應(yīng)人員
但也許他們遇到問題時想與我們聯(lián)系,所以最好在報告開頭留下郵箱。
## 1、漏洞摘要
注:漏洞摘要,簡單表述下漏洞就好,對一些關(guān)鍵詞可以采用加粗的方式。
------中文對照------
在聯(lián)想電腦管家中發(fā)現(xiàn)一處本地權(quán)限提升漏洞,攻擊者在具有本地用戶權(quán)限后,可利用該漏洞繞過 UAC 的保護機制,以管理員權(quán)限執(zhí)行任意代碼,從而提升其權(quán)限。
## 2、漏洞利用條件
注:漏洞利用條件,最好能提供存在漏洞的軟件對應(yīng)的版本和軟件的下載地址,這樣非常方便廠商進行復(fù)現(xiàn)。
------中文對照------
聯(lián)想電腦管家有2個版本,分為 ThinkPad 定制版和非定制版。
漏洞利用只需要客戶機安裝有聯(lián)想電腦管家(LenovoPCManager)2種版本中的1種即可:
1、從聯(lián)想官網(wǎng) https://guanjia.lenovo.com.cn 下載非定制版(lenovopcmanager_apps.exe,版本為2.8.90.11211)。
2、從https://pcmgr.lenovo.com.cn/moreversions.html 下的ThinkPad定制版
(lenovopcmanager_preload_thinkpad_smb_apps.exe,版本為2.8.80.11261)。
##3、漏洞影響
注:漏洞影響,這部分可以寫寫漏洞的影響范圍和危害
因為這款軟件在中國地區(qū)是聯(lián)想電腦中系統(tǒng)預(yù)裝的(尤其是ThinkPad系列)
并且在電腦售賣的廣告中也提到了這款軟件,影響范圍比較大,所以我著重在報告中說明了這點。
同時也可以在這部分列舉一些可能導(dǎo)致的危害。
------中文對照------
目前聯(lián)想在中國地區(qū)銷量很大,需要注意的是,聯(lián)想在中國地區(qū)銷售的PC及筆記本(包含ThinkPad系列)
默認操作系統(tǒng)中就安裝有聯(lián)想電腦管家(LenovoPCManager)軟件。
2張圖片,是在中國地區(qū)售賣的聯(lián)想ThinkPad系列筆記本電腦的詳細宣傳海報,均帶有預(yù)裝聯(lián)想電腦管家的字樣。
可見,該漏洞影響范圍較大,尤其是在中國地區(qū)。
我對聯(lián)想電腦管家的2個版本進行了漏洞驗證工作,結(jié)果如下:
版本 安裝程序數(shù)字簽名時間戳 (發(fā)行日期)是否存在漏洞2.8.90.111312019年11月13日存在且可利用2.8.80.8082(ThinkPad定制版)2019年6月14日存在且可利用
該漏洞除了引發(fā)嚴重的權(quán)限提升問題外,還可能造成其他嚴重的安全問題:
1、攻擊者可以利用其他方式,比如office漏洞、rar解壓漏洞、瀏覽器漏洞等攻擊手段,只要能將惡意代碼下載至C:ursUrNameAppDataLocalMicrosoftWindowsApps目錄中,就有較大可能造成遠程代碼執(zhí)行。
2、該漏洞還可被攻擊者用來作為持久化的手段,通過該漏洞讓惡意代碼在主機上實現(xiàn)Administrator權(quán)限的自啟動。
3、該漏洞為攻擊者規(guī)避安全防護軟件創(chuàng)造了條件,可以讓攻擊者使用“白+黑”(帶有數(shù)字簽名的正常程序+惡意代碼的動態(tài)庫)方式有效規(guī)避殺軟的檢測和查殺。
不會挖漏洞?沒有經(jīng)驗?沒關(guān)系!
小白是如何挖掘漏洞的視頻教程
文末有視頻領(lǐng)取方式,免費分享
## 4、漏洞復(fù)現(xiàn)
注:漏洞復(fù)現(xiàn),是非常重要的部分?。。?/p>
廠商的安全響應(yīng)人員將參照這部分的內(nèi)容進行復(fù)現(xiàn),所以這塊盡可能詳盡些。
我在提交報告時,考慮到報告里面已經(jīng)有POC代碼的圖片
就沒有再提交POC代碼和編譯后的dll文件
但后來廠商還是聯(lián)系我,希望我提供POC代碼和編譯后的dll文件,方便他們進行驗證。
所以在提交時,也可以將POC打包一并提交。
另外,我們自己觸發(fā)漏洞和漏洞利用的環(huán)境信息也需要要告訴廠商。
----中文對照------
我以最新的2.8.90.11131版本為例,在已打最新系統(tǒng)補丁的Win10系統(tǒng)上來復(fù)現(xiàn)該漏洞。
環(huán)境:
Win10 1903版,x64系統(tǒng),中文專業(yè)版(已打最新補?。?/p>
正常安裝聯(lián)想電腦管家(官網(wǎng)最新版本2.8.90.11131)lenovopcmanager_apps.exe
上圖為我復(fù)現(xiàn)使用的系統(tǒng)版本和安裝好后聯(lián)想電腦管家的版本信息。
上圖是正常安裝聯(lián)想電腦管家后的默認軟件目錄。
我使用的用戶是操作系統(tǒng)安裝后的正常用戶tahf,組信息見上圖。
------中文對照------
POC編寫:
編寫驗證漏洞使用的poc.dll動態(tài)庫。我使用VS2010編寫一個dll動態(tài)庫,核心代碼如下。
為了更好的驗證漏洞,在POC里讓其創(chuàng)建cmd.exe進程,并在C盤根目錄寫一個文件。
有時啟動的進程可能由于父進程的原因而結(jié)束
所以我同時采用寫文件和創(chuàng)建進程2種方式來驗證。
如果漏洞存在,這個flag.txt文件的創(chuàng)建者應(yīng)該為Administrator。
------中文對照------
驗證漏洞:
主要分為2個步驟:
1、將編譯后的poc.dll(請按x86動態(tài)庫編譯)重命名為LAVMsgBoxView.dll,并拷貝至C:Urs ahfAppDataLocalMicrosoftWindowsApps目錄下。
該目錄對于當前用戶是具備文件讀寫權(quán)限的。
2、讓主機重啟。
除了讓主機重啟能夠觸發(fā)漏洞外,經(jīng)過驗證
發(fā)現(xiàn)當用戶將聯(lián)想電腦管家退出后,再啟動聯(lián)想電腦管家也會觸發(fā)漏洞。
------中文對照------
主機重啟后,等待幾分鐘時間,就會出現(xiàn)上圖情況。
我在poc.dll中會執(zhí)行創(chuàng)建cmd.exe進程和在C盤根目錄寫入flag.txt的代碼
可見,聯(lián)想電腦管家加載了我編寫的poc.dll,并執(zhí)行了poc中的代碼。
同時我在彈出的cmd.exe中檢查了當前的權(quán)限,并檢查了flag.txt文件屬性的所有者信息,可見poc中的代碼是以Administrator的權(quán)限執(zhí)行的,繞過了系統(tǒng)的UAC保護機制,導(dǎo)致權(quán)限提升。
------中文對照------
上圖是使用Procexp.exe監(jiān)控程序查看進程,可見其右側(cè)Integrity為High.
------中文對照------
上圖是使用Procmon.exe監(jiān)控進程的創(chuàng)建過程,可見我的poc.dll是被LenovoTray.exe進程加載并執(zhí)行的。
綜上所述,在具有本地賬戶的權(quán)限下,利用該漏洞,可在繞過系統(tǒng)的UAC機制,使惡意代碼直接以Administrator的權(quán)限執(zhí)行,造成權(quán)限提升。
## 5、漏洞分析
注:漏洞分析,一般廠商安全響應(yīng)部門驗證漏洞后,會將情況反饋給業(yè)務(wù)或者開發(fā)部門
所以漏洞分析這部分對開發(fā)部門是比較有幫助的
可以讓開發(fā)者大致了解是哪里出現(xiàn)了bug。
------中文對照------
通過Procmon.exe監(jiān)控進程行為,我確認了是LenovoTray.exe進程加載了我編寫的poc.dll。
上圖可見,LenovoTray.exe進程的Integrity為High級別
其在嘗試搜索并加載LAVMsgBoxView.dll,這是導(dǎo)致該漏洞可被利用的核心所在。
由于該進程是用戶進程,按照Windows系統(tǒng)dll搜索順序,它會搜索:
1、進程同目錄下
2、C:WindowsSyswow64由于它是個32位的進程
3、C:Windows
4、系統(tǒng)環(huán)境變量Path中的路徑
5、當前用戶環(huán)境變量Path中的路徑(由于該進程是用戶進程,所以會搜索當前用戶環(huán)境變量Path中的路徑)
而在Win10和Win8系統(tǒng)中,每個用戶的環(huán)境變量Path中都默認有%USERPROFILE%AppDataLocalMicrosoftWindowsApps
而這個目錄當前用戶是完全控制權(quán)限,因此可以成功利用該漏洞達成Bypass UAC的效果。
## 6、修復(fù)建議
注:修復(fù)建議,根據(jù)漏洞類型給出合理的修補意見即可。
------中文對照------
一種解決方法是,在LoadLibrary函數(shù)中采用全路徑
另一種是使用LoadLibraryExw函數(shù),并利用dwFlags參數(shù)來控制dll搜索的路徑。
當然,如何在dll加載時能夠?qū)ζ溥M行有效的校驗最好。
#0x04 與廠商溝通當我寫好英文的報告,并通過郵件的方式提交后,廠商很快回復(fù)了我。
一般這種大廠商會詢問我們的披露計劃。
為了保證漏洞不被惡意利用
我建議不要太早披露,而且在給廠商的回復(fù)中,可以加上一句
我們希望跟廠商配合,在廠商修復(fù)漏洞后再考慮披露相關(guān)信息。
如果你感覺過了好久,廠商都沒有回復(fù),那么也可以客氣地再發(fā)送郵件詢問進度。
之后,在廠商驗證并確認漏洞后,它可能會詢問你有關(guān)致謝的信息
并通告他們的修復(fù)計劃和發(fā)布公告的大致時間。
大的廠商都會與我們確認信息,只要大家有耐心,溝通過程語氣友善,廠商還是非常好交流的。
另外,對于大的廠商來說
在漏洞修復(fù)后,他們還會將新版本的程序發(fā)給我們希望我們進行驗證,保證漏洞被有效修復(fù)。
我也把整個漏洞提交過程的時間線列出來,供大家參考。
2019年11月,挖掘出漏洞并撰寫報告
2019年12月初,提交漏洞報告(以英文版本時間為準)
2019年12月初,提交報告一周后,廠商回應(yīng),開始驗證漏洞
2019年12月中旬,漏洞驗證完成,確認漏洞,廠商申請CVE
2019年1月初,漏洞修補完成
2019年1月底,廠商發(fā)布公告和致謝
#0x05 感受總體感受是挖掘漏洞不易,因為可能一時的疏忽或者不細致,就有可能導(dǎo)致我們與漏洞錯失交臂。
同時,一份完善的漏洞報告和良好的溝通是我們與廠商友善協(xié)作的橋梁,也讓我們離CVE編號更近了一步。
大廠商總體還是很友善的,有了一次良性互動的經(jīng)驗,慢慢積累,我們肯定就會有第二次、第三次(之后還向他們提交了其它聯(lián)想軟件的漏洞并也得到了確認和CVE編號)。
另外,我也感覺到作為安全人員,一方面我們需要加強自身的技術(shù)能力,挖掘
更多的漏洞
另一方面,也可以加強自身的非技術(shù)能力(比如文字表達、與人溝通、組織協(xié)調(diào)等)
這些能力都會讓我們進步更快,成長更多。
最后,希望自己的上述分享能夠給大家?guī)硇椭?,祝大家身體健康,多挖漏洞!
小白是如何挖掘漏洞的
合理合法用來實戰(zhàn)訓(xùn)練入侵
模擬靶場和黑客工具課件附贈靶場工具
掃碼直接領(lǐng)取上述全套視頻教程+靶場鏈接+工具
免費免費?。。?!
作者:tahf
轉(zhuǎn)載自:https://bbs.ichunqiu.com/thread-56908-1-1.html
本文發(fā)布于:2023-02-28 21:01:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1677715848100223.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:createprocessasuser.doc
本文 PDF 下載地址:createprocessasuser.pdf
| 留言與評論(共有 0 條評論) |