深夜,一个程序从虚拟机跑了出来…

深夜,一个程序从虚拟机跑了出来…

作者:轩辕之风 2021-03-10 07:52:58

云计算

虚拟化

开发工具 夜黑风高,两个不速之客又一次来到了一片新的土地。

 [[386470]]

图片来自 Pexels 

误入陷阱

“老二,总算进来了,咱们依计行事,你去扫描硬盘上的文件,看看有没有有价值的,我去修改开机启动项,把咱们加进去”。

 

“等一下,老大,我感觉有点不对劲”。

“哪里不对劲了?”,老大问到。

“我们去过的其他地方都很热闹,这里怎么这么安静?你看,连 QQ、微信这些进程都没有!”,老二说到。

老大环顾四周,也察觉到了一丝异常。

稍等了一小会儿,老大突然惊呼:“不好!这里是个虚拟机,咱们掉入虚拟机中了!”

“你怎么看出这是一个虚拟机的?”,老二不解的问到。

“你看,那里有个 VMware 的进程,注册表里还有一堆 vmware 的标记”。

 

“那怎么办?完蛋了,咱们要被人扒的干干净净了~”,老二一脸焦急。

老大眉头紧锁,来回踱步,突然面露喜色说到:“别着急,临行前,主人偷偷给了我一个锦囊,叮嘱我在紧急时候打开”。

“那还等什么?赶紧拿出来啊!”

老大从兜里掏出了锦囊,里面有一纸信,两人认真的看了起来。

片刻之后,老大大声笑道:“老弟!稳了!”

老二一脸问号,没太明白,“大哥,恕我眼拙,这怎么就稳了?”

“你看这里,主人交代了虚拟机逃逸大法,告诉我们如何从虚拟机中逃离”。

 

“大哥,小声一点,小心被发现了。咱们快开始行动吧,晚了说不定就来不及了”

“别急,让我仔细研究一下”。

信纸上密密麻麻写了一大堆,看起来有些复杂的样子,两个人刚刚放松的眉头又慢慢皱了起来。

没一会儿,老二失去了耐心,“大哥,这也太复杂了,我是看不懂了,靠你了”。

“我明白了,虚拟机会和外面的真实世界通信,咱们只要抓住通信过程中的漏洞,把我们的指令代码参杂在通信数据中,让外面世界负责通信的一端执行这些指令代码,咱们就能传输过去,逃逸到外面的真实世界去!”

 

“原来如此,可咱上哪里去找这样的漏洞呢?”

“有了,看这里,主人给我们找了好几个漏洞,真是太贴心了!”

  1. CVE-2016-7461 
  2. CVE-2017-4901 
  3. CVE-2019-14378 

“这一串串字符和数字是什么意思?”,老二问到。

“这个呀,叫漏洞编号,CVE 就 Common Vulnerabilities and Exposures,公共漏洞披露的意思,第二个是年份,第三个就是具体的漏洞编号了。这每年有那么多软件被发现漏洞,为了管理方便就给它们统一分配了编号。”

“那赶紧的,选一个来开干吧!”

“让我看看,就选第二个吧,这是属于 VMware 的漏洞,版本也合适,还没有被修复,二弟,咱们的机会来了!”

说完,老大按照信纸上的描述,开始忙活起来,准备起一会儿要用的数据和代码。

“老大,这个漏洞的原理是什么啊,趁着你准备的功夫,你给我讲讲呗~”

“主人的信上说了,VMware 有一个 backdoor 的通信接口,可以用来虚拟机内部操作系统和外面系统进行通信,复制和拖放就是使用它来传输文件的。而这个 backdoor 的代码写的有漏洞,咱们只要精心构造好数据,它在拷贝的时候就会造成堆溢出,就有机会执行我们的指令代码啦!”

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

“快别闲着了,快来帮我准备数据吧!”

新世界

又过了一会儿。

“大哥,都准备好了吗?”

“已经按照信上的方法都准备妥当了,二弟,来吧,咱们就要出去了,抓紧我”

老大拿出了刚才将精心准备的代码,小心翼翼的点击执行,只听一阵电流的嘶嘶声响,二人化成一串比特流传输到了外面的 VMware 进程中。

[[386474]] 

正如计划的一般,漏洞成功的触发!执行了他们提前编写的指令代码,二人成功的来到外面计算机的文件目录下。

稍等了一会儿,两人慢慢从刚才的眩晕中缓了过来。

“老大,咱们成功了!”

“哈哈!总算出来了”

两个家伙高兴的紧紧抱在了一起。

“好了,这下咱们开始干正事吧,已经耽误了不少时间了,主人还在等我们的消息呢”。

“好嘞,开始干活”!

两人开始忙活起来,争分夺秒地实行他们的计划,然而,很快他们又发现了不对劲。

“老大,这里怎么还是有 vmware 的进程啊?咱们不是逃出来了吗?”

“废话,刚才咱就从那里面跑出来的啊”!

“不对,你快过来看看”…

老大闻讯赶了过去,仔细查看后,再一次环顾四周,倒吸了一口凉气。

“二弟,完了,这里好像还是一个虚拟机···”

[[386475]]

 故事灵感

这个故事的灵感来自于知乎上的一个提问:操作系统能否知道自己处于虚拟机中?下面是我的回答:

虚拟化技术经过了大概三个时期的发展:

  • 从早期的二进制指令翻译技术(以早期 VMware 为代表)
  • 通过修改操作系统代码中的特殊指令调用(以 XEN 为代表)
  • CPU 支持的硬件虚拟化(VT-x 技术为代表) 尤其是硬件虚拟化技术的出现让虚拟化技术出现了井喷之势,VirtualBox、VMWare(新)、KVM 纷纷涌现,一定程度上加速了云计算时代的到来。

说到问题本身,经历三个时期的发展,虚拟化能力越来越逼近于一个真实的硬件环境,但即便如此,操作系统想要知道自己是不是在一个虚拟机中仍然是易如反掌。

说操作系统可能不那么容易理解。咱们换一个场景:一个木马病毒开发者想要知道攻击目标是不是一台虚拟机?

这个问题是更具有现实意义的,病毒木马如果处于虚拟机中,则大概率是正在被安全研究人员进行分析,一个好的开发者,这个时候是要懂得隐藏意图的,不能被看穿。

这就是病毒木马常用的反虚拟机技术。

具体的检测手段有很多,但核心思想就是不同的虚拟机会有不同的特征,你需要做的就是去找到这些特征。

比如特殊的 IO 设备、特殊的文件目录、特殊的注册表项、特殊的进程名称等等。

当然,说了这么多还是通过一些表面现象来判断是不是在虚拟机中,那假若这些都没有,如何做到真正的“感知”呢?

还是有办法。

真正的物理机和虚拟机总归是有不同的,这个方向可以从“侧信道”来做一些思考,如执行一段算法花费的时间,执行一段特殊代码造成的硬件波动等等。

虚拟机并不是绝对安全的,要知道,虚拟机中的程序代码和真实主机上的程序们一样,都是被物理 CPU 在执行,只不过被硬件、软件等机制进行了“强制隔离”罢了。

而一旦这些机制出现了纰漏,恶意程序也就有机会从虚拟机中逃出来了!

故事的结尾,他俩好不容易从虚拟机里逃了出来,却发现仍然处在另一个虚拟机中。

这样的情节有没有觉得很熟悉呢?猜一部电影,欢迎大家评论区留言~

作者:轩辕之风

编辑:陶家龙

出处:转载自公众号编程技术宇宙(ID:xuanyuancoding)

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/236174.html<

(0)
管理的头像管理
上一篇2025-04-21 21:39
下一篇 2025-04-21 21:40

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注