設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

嚇人!半夜,這個(gè)程序從虛擬機(jī)里跑出來(lái)了

編程技術(shù)宇宙 2022/11/7 19:56:40 責(zé)編:遠(yuǎn)生

本文來(lái)自微信公眾號(hào):編程技術(shù)宇宙 (ID:xuanyuancoding),作者:軒轅之風(fēng) O

誤入陷阱

夜黑風(fēng)高,兩個(gè)不速之客又一次來(lái)到了一片新的土地。

“老二,總算進(jìn)來(lái)了,咱們依計(jì)行事,你去掃描硬盤上的文件,看看有沒(méi)有有價(jià)值的,我去修改開(kāi)機(jī)啟動(dòng)項(xiàng),把咱們加進(jìn)去”

“等一下,老大,我感覺(jué)有點(diǎn)不對(duì)勁”

“哪里不對(duì)勁了?”,老大問(wèn)到。

“我們?nèi)ミ^(guò)的其他地方都很熱鬧,這里怎么這么安靜?你看,連 QQ、微信這些進(jìn)程都沒(méi)有!”,老二說(shuō)到。

老大環(huán)顧四周,也察覺(jué)到了一絲異常。

稍等了一小會(huì)兒,老大突然驚呼:“不好!這里是個(gè)虛擬機(jī),咱們掉入虛擬機(jī)中了!”

“你怎么看出這是一個(gè)虛擬機(jī)的?”,老二不解的問(wèn)到。

“你看,那里有個(gè) vmware 的進(jìn)程,注冊(cè)表里還有一堆 vmware 的標(biāo)記”

“那怎么辦?完蛋了,咱們要被人扒的干干凈凈了~”,老二一臉焦急。

老大眉頭緊鎖,來(lái)回踱步,突然面露喜色說(shuō)到:“別著急,臨行前,主人偷偷給了我一個(gè)錦囊,叮囑我在緊急時(shí)候打開(kāi)”

“那還等什么?趕緊拿出來(lái)??!”

老大從兜里掏出了錦囊,里面有一紙信,兩人認(rèn)真的看了起來(lái)。

片刻之后,老大大聲笑道:“老弟!穩(wěn)了!”

老二一臉問(wèn)號(hào),沒(méi)太明白,“大哥,恕我眼拙,這怎么就穩(wěn)了?”

“你看這里,主人交代了虛擬機(jī)逃逸大法,告訴我們?nèi)绾螐奶摂M機(jī)中逃離”

“大哥,小聲一點(diǎn),小心被發(fā)現(xiàn)了。咱們快開(kāi)始行動(dòng)吧,晚了說(shuō)不定就來(lái)不及了”

“別急,讓我仔細(xì)研究一下”

信紙上密密麻麻寫了一大堆,看起來(lái)有些復(fù)雜的樣子,兩個(gè)人剛剛放松的眉頭又慢慢皺了起來(lái)。

沒(méi)一會(huì)兒,老二失去了耐心,“大哥,這也太復(fù)雜了,我是看不懂了,靠你了”

“我明白了,虛擬機(jī)會(huì)和外面的真實(shí)世界通信,咱們只要抓住通信過(guò)程中的漏洞,把我們的指令代碼參雜在通信數(shù)據(jù)中,讓外面世界負(fù)責(zé)通信的一端執(zhí)行這些指令代碼,咱們就能傳輸過(guò)去,逃逸到外面的真實(shí)世界去!

“原來(lái)如此,可咱上哪里去找這樣的漏洞呢?”

“有了,看這里,主人給我們找了好幾個(gè)漏洞,真是太貼心了!”

CVE-2016-7461

CVE-2017-4901

CVE-2019-14378

“這一串串字符和數(shù)字是什么意思?”,老二問(wèn)到。

“這個(gè)呀,叫漏洞編號(hào),CVE 就 Common Vulnerabilities and Exposures,公共漏洞披露的意思,第二個(gè)是年份,第三個(gè)就是具體的漏洞編號(hào)了。這每年有那么多軟件被發(fā)現(xiàn)漏洞,為了管理方便就給它們統(tǒng)一分配了編號(hào)?!?/p>

“那趕緊的,選一個(gè)來(lái)開(kāi)干吧!”

“讓我看看,就選第二個(gè)吧,這是屬于 VMware 的漏洞,版本也合適,還沒(méi)有被修復(fù),二弟,咱們的機(jī)會(huì)來(lái)了!”

說(shuō)完,老大按照信紙上的描述,開(kāi)始忙活起來(lái),準(zhǔn)備起一會(huì)兒要用的數(shù)據(jù)和代碼。

“老大,這個(gè)漏洞的原理是什么啊,趁著你準(zhǔn)備的功夫,你給我講講唄~”

“主人的信上說(shuō)了,VMware 有一個(gè) backdoor 的通信接口,可以用來(lái)虛擬機(jī)內(nèi)部操作系統(tǒng)和外面系統(tǒng)進(jìn)行通信,復(fù)制和拖放就是使用它來(lái)傳輸文件的。而這個(gè) backdoor 的代碼寫的有漏洞,咱們只要精心構(gòu)造好數(shù)據(jù),它在拷貝的時(shí)候就會(huì)造成堆溢出,就有機(jī)會(huì)執(zhí)行我們的指令代碼啦!”

“牛皮!主人真牛皮”,老二感嘆道!

“快別閑著了,快來(lái)幫我準(zhǔn)備數(shù)據(jù)吧!”

新世界

又過(guò)了一會(huì)兒。

“大哥,都準(zhǔn)備好了嗎?”

“已經(jīng)按照信上的方法都準(zhǔn)備妥當(dāng)了,二弟,來(lái)吧,咱們就要出去了,抓緊我”

老大拿出了剛才將精心準(zhǔn)備的代碼,小心翼翼的點(diǎn)擊執(zhí)行,只聽(tīng)一陣電流的嘶嘶聲響,二人化成一串比特流傳輸?shù)搅送饷娴?VMware 進(jìn)程中。

正如計(jì)劃的一般,漏洞成功的觸發(fā)!執(zhí)行了他們提前編寫的指令代碼,二人成功的來(lái)到外面計(jì)算機(jī)的文件目錄下。

稍等了一會(huì)兒,兩人慢慢從剛才的眩暈中緩了過(guò)來(lái)。

“老大,咱們成功了!”

“哈哈!總算出來(lái)了”

兩個(gè)家伙高興的緊緊抱在了一起。

“好了,這下咱們開(kāi)始干正事吧,已經(jīng)耽誤了不少時(shí)間了,主人還在等我們的消息呢”

“好嘞,開(kāi)始干活”

兩人開(kāi)始忙活起來(lái),爭(zhēng)分奪秒地實(shí)行他們的計(jì)劃,然而,很快他們又發(fā)現(xiàn)了不對(duì)勁。

“老大,這里怎么還是有 vmware 的進(jìn)程???咱們不是逃出來(lái)了嗎?”

“廢話,剛才咱就從那里面跑出來(lái)的啊”

“不對(duì),你快過(guò)來(lái)看看”

老大聞?dòng)嵹s了過(guò)去,仔細(xì)查看后,再一次環(huán)顧四周,倒吸了一口涼氣。

“二弟,完了,這里好像還是一個(gè)虛擬機(jī)???”

【完】

故事靈感

這個(gè)故事的靈感來(lái)自于知乎上的一個(gè)提問(wèn):操作系統(tǒng)能否知道自己處于虛擬機(jī)中?

下面是我的回答:

虛擬化技術(shù)經(jīng)過(guò)了大概三個(gè)時(shí)期的發(fā)展:

從早期的二進(jìn)制指令翻譯技術(shù)(以早期 VMware 為代表)

通過(guò)修改操作系統(tǒng)代碼中的特殊指令調(diào)用(以 XEN 為代表)

CPU 支持的硬件虛擬化(VT-x 技術(shù)為代表)尤其是硬件虛擬化技術(shù)的出現(xiàn)讓虛擬化技術(shù)出現(xiàn)了井噴之勢(shì),VirtualBox、VMWare(新)、KVM 紛紛涌現(xiàn),一定程度上加速了云計(jì)算時(shí)代的到來(lái)。

關(guān)于虛擬化技術(shù)的發(fā)展,可以參考我的這篇文章:

懂了!VMware、KVM、Docker 原來(lái)是這么回事兒

說(shuō)到問(wèn)題本身,經(jīng)歷三個(gè)時(shí)期的發(fā)展,虛擬化能力越來(lái)越逼近于一個(gè)真實(shí)的硬件環(huán)境,但即便如此,操作系統(tǒng)想要知道自己是不是在一個(gè)虛擬機(jī)中仍然是易如反掌。

說(shuō)操作系統(tǒng)可能不那么容易理解。咱們換一個(gè)場(chǎng)景:一個(gè)木馬病毒開(kāi)發(fā)者想要知道攻擊目標(biāo)是不是一臺(tái)虛擬機(jī)?

這個(gè)問(wèn)題是更具有現(xiàn)實(shí)意義的,病毒木馬如果處于虛擬機(jī)中,則大概率是正在被安全研究人員進(jìn)行分析,一個(gè)好的開(kāi)發(fā)者,這個(gè)時(shí)候是要懂得隱藏意圖的,不能被看穿。

這就是病毒木馬常用的反虛擬機(jī)技術(shù)。

具體的檢測(cè)手段有很多,但核心思想就是不同的虛擬機(jī)會(huì)有不同的特征,你需要做的就是去找到這些特征。比如特殊的 IO 設(shè)備、特殊的文件目錄、特殊的注冊(cè)表項(xiàng)、特殊的進(jìn)程名稱等等。

當(dāng)然,說(shuō)了這么多還是通過(guò)一些表面現(xiàn)象來(lái)判斷是不是在虛擬機(jī)中,那假若這些都沒(méi)有,如何做到真正的“感知”呢?

還是有辦法。

真正的物理機(jī)和虛擬機(jī)總歸是有不同的,這個(gè)方向可以從“側(cè)信道”來(lái)做一些思考,如執(zhí)行一段算法花費(fèi)的時(shí)間,執(zhí)行一段特殊代碼造成的硬件波動(dòng)等等。

虛擬機(jī)并不是絕對(duì)安全的,要知道,虛擬機(jī)中的程序代碼和真實(shí)主機(jī)上的程序們一樣,都是被物理 CPU 在執(zhí)行,只不過(guò)被硬件、軟件等機(jī)制進(jìn)行了“強(qiáng)制隔離”罷了。

而一旦這些機(jī)制出現(xiàn)了紕漏,惡意程序也就有機(jī)會(huì)從虛擬機(jī)中逃出來(lái)了!

故事的結(jié)尾,他倆好不容易從虛擬機(jī)里逃了出來(lái),卻發(fā)現(xiàn)仍然處在另一個(gè)虛擬機(jī)中。

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:虛擬機(jī),程序

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知