国产精品久av福利在线观看_亚洲一区国产精品_亚洲黄色一区二区三区_欧美成人xxxx_国产精品www_xxxxx欧美_国产精品久久婷婷六月丁香_国产特级毛片

錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
實(shí)戰(zhàn)VMware虛擬機(jī)逃逸漏洞

作者: 佚名  日期:2017-07-25 20:59:48   來源: 本站整理

 最近長亭把Pwn2Own中遺憾的在比賽前一天被補(bǔ)上的漏洞利用發(fā)了出來,Amat大佬的博客有這篇文章,同時(shí)在長亭知乎專欄有楊博士發(fā)的中文版。 但是并沒有公開的exp,如何真正實(shí)現(xiàn)呢?自己花了十幾天才寫出exp,其中踩坑無數(shù),本著分享精神,于是就有了本文。
0x01 Backdoor
backdoor是vmware實(shí)現(xiàn)的一套Guest和Host通信的機(jī)制,我們不需要去深入研究這種機(jī)制如何實(shí)現(xiàn)的,只需要大概了解一下這個(gè)機(jī)制的實(shí)現(xiàn)。 先看通信的代碼,這部分代碼在open-vm-tools的github上也有,鏈接在此。由于需要在VS中編譯,所以需要先轉(zhuǎn)換成為intel的asm格式。

在正常操作系統(tǒng)中直接執(zhí)行in指令會(huì)導(dǎo)致出錯(cuò),因?yàn)檫@是特權(quán)指令。但是在Guest中這個(gè)錯(cuò)誤會(huì)被vmware捕獲,然后傳給vmware-vmx.exe進(jìn)程內(nèi)部進(jìn)行通信。 
而后面我們需要操作的message,全部通過backdoor通信方式來通信。 關(guān)于message的操作,open-vm-tools里面也有相關(guān)實(shí)現(xiàn),鏈接在此。直接拿過來用就行了。 有了Message_Send和Message_Recv這些函數(shù),我們就可以直接在Guest里面與Host進(jìn)程進(jìn)行通信。 需要注意的是Backdoor通信在Guest內(nèi)部不需要管理員權(quán)限,所以此bug可在普通用戶觸發(fā)。
0x02 Drag and Drop RPCI
RPCI是基于backdoor實(shí)現(xiàn)的通信方式。open-vm-tools相關(guān)實(shí)現(xiàn)在此。可以直接使用這個(gè)發(fā)送RPC的函數(shù)。 這個(gè)漏洞存在在DnD操作的v3版本代碼中,對(duì)應(yīng)bug代碼在此。
ida中更加明顯: 

由于沒有realloc或者totalsize的判斷,導(dǎo)致第二個(gè)包的totalsize可以改成一個(gè)大值,payloadsize因此也可以變大導(dǎo)致一個(gè)堆溢出。
 順帶一提,發(fā)送DnD操作的命令在dndCPTransportGuestRpc.hpp中。 通過閱讀open-vm-tools的代碼,可以得出RPC的發(fā)送對(duì)應(yīng)路徑: 
rpcv3util::SendMsg->DnDCPTransportGuestRpc::SendPacket->RpcChannel_Send->Message_Send->backdoor
0x03逆向分析
看完相關(guān)的open-vm-tools的代碼之后,開始逆向vmware-vmx.exe,我的版本是12.5.2.13578,workstation是12.5.2-build4638234版本。 
首先很容易通過字符串“tools.capability.dnd_version”的xref找到對(duì)應(yīng)的處理函數(shù)。 

bindfun只是把對(duì)應(yīng)的參數(shù)值寫入了全局變量,其實(shí)是一個(gè)表。bindfun參數(shù)4就是對(duì)應(yīng)rpc命令的處理函數(shù),而rpc命令函數(shù)的參數(shù)3和參數(shù)4分別是我們發(fā)送的RPC原始request和RPCrequest的長度。參數(shù)5和參數(shù)6是我們得到的 reply的地址和reply的長度。 

可以看出這個(gè)命令有一個(gè)參數(shù),也就是版本號(hào)。
其他的RPC命令類似,在發(fā)送“vmx.capability.dnd_version”命令的時(shí)候,對(duì)應(yīng)的處理函數(shù)中如果發(fā)現(xiàn)當(dāng)前版本和設(shè)置的版本不一致,就會(huì)調(diào)用函數(shù)創(chuàng)建新的 object,把原來的版本的object銷毀。
 

 

DnD和CP的Object的size都是一樣的,都是0xa8大小。
 

0x04 漏洞利用
Amat大佬的文章中推薦用info-set和info-get來操作堆,其中info-set對(duì)應(yīng)的handle函數(shù)內(nèi)部很復(fù)雜,通過windbg動(dòng)態(tài)調(diào)試,可以發(fā)現(xiàn)我們發(fā)送“info-set guestinfo.test1 “+’a'*0xa7可以創(chuàng)建一個(gè)0xa8大小的buffer。實(shí)際測試我在malloc和free下斷點(diǎn),整個(gè)info-set過程大概有10-13次malloc(size=0xa8),也有 接近10次的free操作,最終剩下一個(gè)buffer。也就是說整個(gè)info-set過程干擾很大。
 info-get可以讀取剛剛set的值,這就沒什么好說。 關(guān)于windows的LFH的風(fēng)水,由于info-set中有多次malloc 0xa8操作,所以比較困難。我沒有什么好的辦法,目前我exp成功率還是比較低。 
思路大概就是把內(nèi)存變成這個(gè)樣子:

如果一旦沒有布局成功。。vmware-vmx就會(huì)崩潰。。。 
如果你正好掛了windbg調(diào)試器。。那么整個(gè)host就會(huì)其卡無比。。未知bug。只能緩慢的對(duì)windbg調(diào)試器按q退出調(diào)試。 
推薦安裝windbg的pykd插件,大愛python。 我寫了個(gè)小腳本用來輔助調(diào)試:(其實(shí)就是打印rax)
from pykd import *
import sys
s=''
if len(sys.argv)>1:
s=sys.argv[1]+' '
print s+'Object at '+hex(reg('rax'))
所以就可以在attach上vmx進(jìn)程的時(shí)候這么輸入:bp 7FF7E394C4D8 "!py dumprax DnD;gc;";bp 7FF7E394BF68 "!py dumprax 
CP;gc;";bp 7FF7E3DA05AB "!py dumprax vuln;gc;";bp 7FF7E3DA05DB;bp 
7ff7e38c1b2d;bp 7ff7`e38f1dc2;g
第一個(gè)地址是DnD Object malloc完畢后的下一條指令,第二個(gè)地址是CP Object的,第三個(gè)是vuln的,第四個(gè)地址是memcpy觸發(fā)的地方,后面兩個(gè)是gadget地址。
因?yàn)?a target="_blank" href="http://m.anyphys.com" class="UBBWordLink">windows中進(jìn)程重啟后基地址還是不會(huì)變,所以只要你不重啟電腦,可以一直用。
通過一些布局(運(yùn)氣)變成了如上的內(nèi)存之后,就可以開始leak了。
主要是通過覆蓋info-set的value buffer,修改value buffer內(nèi)部的值,如果此時(shí)info-get讀取的valuebuffer值不同,那就說明被覆蓋了。
而如果溢出到了Object頭部,從info-get讀取的信息就會(huì)包含vtable的地址,從而泄露出程序基地址。
當(dāng)然這個(gè)過程中有可能觸發(fā)RtlHeapFree等堆函數(shù)然。。因?yàn)槎裞hunk頭被覆蓋,理所當(dāng)然崩潰。。。
0x05 DnD Object 覆蓋
如果覆蓋的是DnD Object,那么在DnD_TransportBufAppendPacket函數(shù)結(jié)束之后的上層函數(shù)會(huì)立刻發(fā)生調(diào)用。

所以在這之前,需要先在一塊內(nèi)存布局好vtable,原文推薦使用“unity.window.contents.chunk” 命令,這個(gè)RPC命令會(huì)把我們的參數(shù)復(fù)制進(jìn)去data段上一個(gè)堆指針內(nèi)部。
這個(gè)全局變量指針由命令“unity.window.contents.start” 創(chuàng)建。
這兩個(gè)unity的命令。。有反序列化操作而且沒有官方文檔可以看,只能自己慢慢debug,摸索出對(duì)應(yīng)的結(jié)構(gòu)。。具體的結(jié)構(gòu)請(qǐng)看文章末尾的Github代碼。
call之后,首先需要一個(gè)stack pivot到堆上,然后就是愉快的ROP。
需要說明的是,vmware中的data段居然是rwx的。。直接復(fù)制shellcode上去就能執(zhí)行了。 

具體的ROP見文章末尾的Github代碼。
0x06 CopyPaste Object 覆蓋
如果覆蓋的是CP Object,那么覆蓋掉vtable之后,vmx進(jìn)程不會(huì)崩潰,原文推薦使用cp命令觸發(fā)vtable調(diào)用,而我用了這個(gè)Object的destructor。也就是再把版本設(shè) 置回4的話,程序會(huì)調(diào)用vtable中對(duì)應(yīng)的destructor. 
通過上面提到的”unity.window.contents.start“命令可以設(shè)置一個(gè)qword大小的gadget在程序的數(shù)據(jù)段上,而之前已經(jīng)通過leak得到了程序的基地址,所 以可以得到這個(gè)gadget的指針的地址。
這個(gè)點(diǎn)不是特別好用,寄存器的值不是很方便,但最終依然找到了合適的gadget來利用。詳細(xì)ROP見文章末尾Github 代碼。
0x07 最后說兩句
這個(gè)漏洞能不能穩(wěn)定利用,關(guān)鍵在于堆布局做的怎么樣,這個(gè)方面我研究不多。。以后還得繼續(xù)看。長亭在這種情況能達(dá)到60-80%的成功率,太厲害了。 
該漏洞在VMware Workstation 12.5.5之后被修補(bǔ)。
如果文章中有任何錯(cuò)誤請(qǐng)?jiān)谠u(píng)論指出,謝謝各位表哥。



熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請(qǐng)求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對(duì)講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動(dòng)時(shí)提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號(hào):遼ICP備2023002984號(hào)-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    欧美亚洲国产精品| 97超碰人人在线| 欧美午夜黄色| caoporn视频在线| 国产精品超碰| 亚洲激情中文| 国产成人精品www牛牛影视| 中文字幕第一页久久| 在线看不卡av| 中文字幕日韩在线视频| 国产精品日韩在线一区| 天堂精品一区二区三区| 人妻丰满熟妇av无码区app| 免费看污黄网站| 青青青视频在线免费观看| 这里只有精品国产| 国产馆av播放| 欧美人体大胆444www| 3d欧美精品动漫xxxx无尽| 自拍偷拍一区| 精品一区二区成人精品| 亚洲自拍另类综合| 日韩电影免费观看中文字幕| 日韩男女性生活视频| 亚洲永久激情精品| 久久黄色一级视频| 精品免费囯产一区二区三区| 欧美bbbbxxxx| 日本蜜桃在线观看| 菁菁伊人国产精品| 国产一二精品视频| 欧美日韩免费看| 欧美日韩国产91| 一区二区视频在线观看| 六十路息与子猛烈交尾| 曰批又黄又爽免费视频| 4444免费观看| 日韩成人亚洲| 久久深夜福利| 欧美午夜片在线免费观看| 欧美日韩成人免费| 中文字幕av导航| 一区二区三区在线播放视频| 极品美女一区二区三区视频| 欧美日韩久久中文字幕| 国产天堂在线| 欧美中文字幕一区二区| wwww国产精品欧美| 日韩精品久久久久久久玫瑰园| 国产在线日韩在线| 久久av免费一区| 粗大的内捧猛烈进出视频| 在线免费观看一级片| 免费亚色电影在线观看| 成人网av.com/| 精品一区二区三区免费毛片爱| 日韩欧美在线网址| 国产成人欧美在线观看| 精品久久久久久久无码| 一区二区视频免费| 伊人75在线| 久久97久久97精品免视看秋霞| 99视频精品免费视频| 亚洲人成电影在线播放| 亚洲精品动漫| 亚洲国产91色在线| 深夜福利网站| 久久精品免费网站| 色综合天天综合给合国产| 男人的天堂www| 美国av一区二区三区| 另类人妖一区二区av| 国产精品久久影视| 亚洲一区二区少妇| 91精品国产视频| 久久爱com| 亚洲第一福利网| 91骚色在线| 午夜啪啪免费视频| 4hu四虎永久在线影院成人| av网站在线看| 天天操天天爽天天射| 亚洲不卡一区二区三区| 91精品国产经典在线观看| 艳母动漫在线免费观看| 国产精品夜夜嗨| 亚欧黄色av| 一本大道东京热无码aⅴ| 精品大片一区二区| 91小视频网站| 国产成人在线电影| 亚洲男人天堂久久| 影音先锋日韩有码| 免费在线毛片网站| 久久婷婷开心| 国产精品久久久久久久| 少妇伦子伦精品无吗| 日韩电影免费在线观看中文字幕| 久久97久久97精品免视看秋霞| 女同性互吃奶乳免费视频| 韩国无码一区二区三区精品| 精品国产乱码一区二区三区四区 | 伊人成人在线观看| 欧美亚洲成人网| 国产成人高清视频| 成人在线免费电影| 国产激情在线观看视频| 亚洲一区视频在线观看视频| 国产无遮挡裸体视频在线观看| 一级全黄裸体免费视频| 狠狠色综合网站久久久久久久| 国产精品99一区二区三| 精品国产一级片| 91精品国产综合久久香蕉| 久久久一二三| 天天爱天天色| 亚洲妇熟xx妇色黄蜜桃| 欧美大尺度在线观看| 久久精品国产秦先生| av小片在线| 中文字幕欧美人妻精品一区蜜臀| 日本高清视频免费在线观看| 欧美成人精品xxx| 日韩欧美第一区| 午夜精品久久久久久久99樱桃| a美女胸又www黄视频久久| 中文一区在线| 日韩天堂在线| 免费99热在线观看| 欧洲性xxxx| 国产视频一视频二| 亚洲欧美成人一区二区在线电影| 国产一区二区影院| **在线精品| 亚洲人成影院在线| 欧美久久久久久久久久久| 国产精品成人免费电影| 久久爱www久久做| av网站大全在线观看| 黄色小视频在线免费看| 91久久精品国产91久久| 亚洲色大成网站www久久九九| 国产激情久久| 一级黄色在线| 亚洲videos| 国产又黄又猛又粗又爽| 在线观看日本一区| 久久99国产精品自在自在app| 亚洲一区二区视频在线观看| 99精品免费| 亚洲天堂激情| 亚洲欧美日韩一区在线观看| 999久久久免费精品国产| 久久99高清| 秋霞影视一区二区三区| 国精产品一区一区三区mba下载| se在线视频| 亚洲精品国产精品国| 亚洲人成无码www久久久| 欧美中文字幕在线播放| 日韩精品一区二区三区在线| 国产亲近乱来精品视频| 日韩系列在线| 大菠萝精品导航| 成人18网址在线观看| 久久久久久久久久网站| 日本黄色a视频| 久久久久久有精品国产| 欧美日韩精品国产| 麻豆成人av在线| 欧美男人操女人视频| 亚洲丝袜精品| 少妇与大狼拘作爱性a| 韩国av永久免费| 中文字幕欧美在线观看| 视频区 图片区 小说区| 九九久久九九久久| 蜜桃成人在线| 久久精彩视频| 亚洲国产精品www| 亚洲一区二区三区加勒比| 久久天天东北熟女毛茸茸| 国产三级中文字幕| 成人欧美一区二区三区在线湿哒哒| 日韩精品一区二区三区视频在线观看| 欧美日韩日本视频| heyzo一本久久综合| 天堂精品中文字幕在线| 激情综合在线| 男人的天堂亚洲| 中文字幕亚洲综合久久五月天色无吗''| 免费观看亚洲天堂| 最美情侣韩剧在线播放| 欧美性受xxxx黑人爽| 中文字幕一区二区人妻痴汉电车 | 男人天堂av片| 免费亚洲一区二区| 51精品国产黑色丝袜高跟鞋| 国产精品一二区| 国产欧美欧洲在线观看|