访问的网站能否检测到我是否正在使用虚拟机(例如 vmware、vbox 等)?
如果我访问一个网站,它可以检测我是否使用虚拟机?
更具体地说是 Vmware 映像?
如果网站能够.. 我该如何预防?
感恩,钦奇拉
If i access an website, it can detect if im using a virtual machine ?
More specifically an Vmware image?
And if the website is able to..
How can i prevent it?
Thankful, Chinchila
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
接受的答案并不完全正确。
有时甚至可以简单地使用 JavaScript 通过检测屏幕分辨率来检测窗口操作系统来完成此操作,如下所述:
http://carnal0wnage.attackresearch.com/2009 /04/Detecting-vmware-with-javascript-or-how.html
或通过检测您的 MAC 地址(VMware 使用固定 MAC 范围),如下所述:
http://jeremiahgrossman.blogspot.co.il/2009 /08/web-pages-detecting-virtualized.html
要避免这些问题,请不要使用重新调整大小的窗口并更改您的机器的 MAC 地址。还有其他方法可以使用 JAVA 小程序(可能是 ActiveX 插件)以及其他东西来检测您是否在虚拟机中...
The accepted answer is not exactly correct.
This can sometimes be done even simply using JavaScript by detecting your screen resolution to detect a windowed operating system as explained here:
http://carnal0wnage.attackresearch.com/2009/04/detecting-vmware-with-javascript-or-how.html
or by detecting your MAC address (VMware uses fixed MAC ranges) as explained here:
http://jeremiahgrossman.blogspot.co.il/2009/08/web-pages-detecting-virtualized.html
To circumvent these problems, don't use re-sized windows and change your machine's MAC address. There are other ways to detect you are in a VM using JAVA applets maybe ActiveX plugins and probably other things as well...
有几种方法可以确定您是否在虚拟机上,以下是最常用的
通过 WebGL:WebGL 是一种 Javascript API,随 Google Chrome、Firefox 等浏览器一起提供。这将泄漏 GPU 名称和渲染器的供应商名称。使用虚拟机时,它会泄漏与在物理机上使用浏览器时不同的渲染数据。例如,Google Chrome 显示渲染器的名称为“Google SwiftShader”(用于没有 3D 图形硬件的机器。),Firefox 显示渲染器的名称为“llvmpipe”(这也是软件渲染器)。这将使网站了解您位于虚拟机上。有关 WebGL 的更多信息,请查看此链接。
通过WebRTC:它将本地IP地址泄漏到网站(在chrome上测试)但firefox不会泄漏
此外,虚拟框在网络摄像头名称的前缀中添加了一个字符串“VirtualBox”。假设您使用虚拟机并允许网络摄像头访问某个网站,它将能够看到网络摄像头名称以及前缀“VirtualBox”。为了防止这种情况,您可以检查一次此解决方案(https://askubuntu.com/a/1357986/699463)
如果你想了解更多关于此类泄漏的信息,那么一定要使用这个网站https://browserleaks.com/ 来执行 webrtc、webgl 等泄漏测试,它还将展示避免这种情况的方法。一种泄漏。
There are few ways to determine whether you are on a Virtual Machine and below are the most used
Through WebGL: WebGL is a Javascript API that comes with the browsers like Google Chrome, Firefox, etc. This will leak the GPU name and the Vendor name of the renderer. While using a Virtual Machine, It will leak different rendered data than while using the browser on a physical machine. For example, Google Chrome shows Renderer's name as "Google SwiftShader"(It is used on machines without 3D graphics hardware.), Firefox Shows the renderer's name as "llvmpipe"(This is also a software renderer). It will lead to understanding to the website that you are on a Virtualised Machine. For more information regarding WebGL Check this link.
Through WebRTC: It will leak the local IP address to the website(Tested on chrome) but firefox is not leaking somehow
Also, the Virtual box adds a string "VirtualBox" in the prefix to the webcam name. Suppose you are using a Virtual machine and gave webcam access to some website, it will be able to see the webcam name along with the prefix "VirtualBox”. To prevent that you can check this solution once (https://askubuntu.com/a/1357986/699463)
If you want to know more about this kind of leaks, then definitely use this website https://browserleaks.com/ to perform leaking tests like webrtc, webgl, and more. It will also show the ways to avoid this kind of leaks.
Web 服务器只能通过其用户代理字符串告知有关 Web 浏览器的详细信息。除非您使用特殊的 Web 浏览器(不太可能)检测到它正在虚拟机中运行,否则 Web 服务器不应该知道。无论如何,UA 字符串很容易更改为您想要的任何内容,因此您始终可以假装成您不是的东西。
查看这篇有用的维基百科文章。
Web servers can only tell details about the web browsers through their user agent string. Unless you're using a special web browser (unlikely) that detects that it's running in a VM, then the web server shouldn't know. In any case, UA strings are easy to change to whatever you'd like them to be, so you can always pretend to be something you're not.
Check out this useful Wikipedia article.