diff --git a/data/js/detect/os.js b/data/js/detect/os.js index 47250c2d32..bb747342d1 100644 --- a/data/js/detect/os.js +++ b/data/js/detect/os.js @@ -1,25 +1,27 @@ // Case matters, see lib/msf/core/constants.rb // All of these should match up with constants in ::Msf::HttpClients -clients_opera = "Opera"; -clients_ie = "MSIE"; -clients_ff = "Firefox"; -clients_chrome= "Chrome"; -clients_safari= "Safari"; +clients_opera = "Opera"; +clients_ie = "MSIE"; +clients_ff = "Firefox"; +clients_chrome = "Chrome"; +clients_safari = "Safari"; -// All of these should match up with constants in ::Msf::OperatingSystems -oses_linux = "Linux"; -oses_windows = "Microsoft Windows"; -oses_mac_osx = "Mac OS X"; -oses_freebsd = "FreeBSD"; -oses_netbsd = "NetBSD"; -oses_openbsd = "OpenBSD"; +// The name of the operating system name +oses_linux = "Linux"; +oses_android = "Android"; +oses_windows = "Windows"; +oses_mac_osx = "Mac OS X"; +oses_apple_ios = "iOS"; +oses_freebsd = "FreeBSD"; +oses_netbsd = "NetBSD"; +oses_openbsd = "OpenBSD"; // All of these should match up with the ARCH_* constants -arch_armle = "armle"; -arch_x86 = "x86"; -arch_x86_64 = "x86_64"; -arch_ppc = "ppc"; +arch_armle = "armle"; +arch_x86 = "x86"; +arch_x86_64 = "x86_64"; +arch_ppc = "ppc"; window.os_detect = {}; @@ -32,6 +34,8 @@ window.os_detect = {}; window.os_detect.getVersion = function(){ //Default values: var os_name; + var os_vendor; + var os_device; var os_flavor; var os_sp; var os_lang; @@ -119,11 +123,10 @@ window.os_detect.getVersion = function(){ // Android 2.3.6, opera mini 7.1 // Opera/9.80 (Android; Opera Mini/7.29530/27.1407; U; en) Presto/2.8.119 Version/11.101.10 if (navigator.userAgent.indexOf("Android")) { - os_name = oses_linux; - os_flavor = "Android"; + os_name = oses_android; } else if (navigator.userAgent.indexOf("iPhone")) { - os_name = oses_mac_osx; - os_flavor = "iPhone"; + os_name = oses_apple_ios; + os_device = "iPhone"; } break; // A few are ambiguous, record them here @@ -161,18 +164,18 @@ window.os_detect.getVersion = function(){ // "Version" in the UA, see example above. Grab the webkit version // instead. =/ if (platform.match(/ipod/)) { - os_name = oses_mac_osx; - os_flavor = "iPod"; + os_name = oses_apple_ios; + os_device = "iPod"; arch = arch_armle; search = "AppleWebKit"; } else if (platform.match(/ipad/)) { - os_name = oses_mac_osx; - os_flavor = "iPad"; + os_name = oses_apple_ios; + os_device = "iPad"; arch = arch_armle; search = "AppleWebKit"; } else if (platform.match(/iphone/)) { - os_name = oses_mac_osx; - os_flavor = "iPhone"; + os_name = oses_apple_ios; + os_device = "iPhone"; arch = arch_armle; } else if (platform.match(/macintel/)) { os_name = oses_mac_osx; @@ -185,7 +188,7 @@ window.os_detect.getVersion = function(){ // Android and maemo arch = arch_armle; if (navigator.userAgent.match(/android/i)) { - os_flavor = 'Android'; + os_name = oses_android; } } } else if (platform.match(/windows/)) { @@ -301,13 +304,17 @@ window.os_detect.getVersion = function(){ } if (version.match(/Windows/)) { os_name = oses_windows; + // Technically these will mismatch server OS editions, but those are + // rarely used as client systems and typically have the same exploit + // characteristics as the associated client. switch(version) { - case "Windows NT 5.0": os_flavor = "2000"; break; - case "Windows NT 5.1": os_flavor = "XP"; break; - case "Windows NT 5.2": os_flavor = "2003"; break; - case "Windows NT 6.0": os_flavor = "Vista"; break; - case "Windows NT 6.1": os_flavor = "7"; break; - case "Windows NT 6.2": os_flavor = "8"; break; + case "Windows NT 5.0": os_name = "Windows 2000"; break; + case "Windows NT 5.1": os_name = "Windows XP"; break; + case "Windows NT 5.2": os_name = "Windows 2003"; break; + case "Windows NT 6.0": os_name = "Windows Vista"; break; + case "Windows NT 6.1": os_name = "Windows 7"; break; + case "Windows NT 6.2": os_name = "Windows 8"; break; + case "Windows NT 6.3": os_name = "Windows 8.1"; break; } } if (version.match(/Linux/)) { @@ -326,17 +333,17 @@ window.os_detect.getVersion = function(){ var buildid = navigator.buildID; switch(buildid) { - case "2008041514": ua_version = "3.0.0.b5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2008041515": ua_version = "3.0.0.b5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "2008052312": ua_version = "3.0.0"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2008041514": ua_version = "3.0.0.b5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2008041515": ua_version = "3.0.0.b5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "2008052312": ua_version = "3.0.0"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2008052906": ua_version = "3.0.0"; os_name = oses_windows; break; - case "2008052909": ua_version = "3.0.0.rc1"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2008052909": ua_version = "3.0.0.rc1"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2008052912": ua_version = "3.0.0"; os_name = oses_linux; break; - case "2008060309": ua_version = "3.0.0"; os_name = oses_linux; os_flavor = "Ubuntu"; break; + case "2008060309": ua_version = "3.0.0"; os_name = oses_linux; os_vendor = "Ubuntu"; break; case "2008070205": ua_version = "2.0.0.16"; os_name = oses_windows; break; case "2008070206": ua_version = "3.0.1"; os_name = oses_linux; break; case "2008070208": ua_version = "3.0.1"; os_name = oses_windows; break; - case "2008071222": ua_version = "3.0.1"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2008071222": ua_version = "3.0.1"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2008072820": switch (navigator.productSub) { case "2008072820": ua_version = "3.0.1"; os_name = oses_linux; break; @@ -345,10 +352,10 @@ window.os_detect.getVersion = function(){ case "2008082909": ua_version = "2.0.0.17"; os_name = oses_windows; break; case "2008091618": ua_version = "3.0.2"; os_name = oses_linux; break; case "2008091620": ua_version = "3.0.2"; os_name = oses_windows; break; - case "2008092313": ua_version = "3.0.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2008092313": ua_version = "3.0.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2008092416": ua_version = "3.0.3"; os_name = oses_linux; break; case "2008092417": ua_version = "3.0.3"; os_name = oses_windows; break; - case "2008092510": ua_version = "3.0.4"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2008092510": ua_version = "3.0.4"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2008101315": switch (navigator.productSub) { case "2008101315": ua_version = "3.0.3"; os_name = oses_linux; break; @@ -356,63 +363,63 @@ window.os_detect.getVersion = function(){ } break; case "2008102918": ua_version = "2.0.0.18"; os_name = oses_windows; break; case "2008102920": ua_version = "3.0.4"; break; - case "2008112309": ua_version = "3.0.4"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Iceweasel 3.0.4 / Debian Testing (Lenny) - case "2008111317": ua_version = "3.0.5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2008111318": ua_version = "3.0.5"; os_name = oses_linux; os_flavor = "Ubuntu"; break; + case "2008112309": ua_version = "3.0.4"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Iceweasel 3.0.4 / Debian Testing (Lenny) + case "2008111317": ua_version = "3.0.5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2008111318": ua_version = "3.0.5"; os_name = oses_linux; os_vendor = "Ubuntu"; break; case "2008120119": ua_version = "2.0.0.19"; os_name = oses_windows; break; case "2008120121": ua_version = "3.0.5"; os_name = oses_linux; break; case "2008120122": ua_version = "3.0.5"; os_name = oses_windows; break; - case "2008121623": ua_version = "2.0.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; break; // browsershots: Firefox 2.0.0.19 / Ubuntu 8.04 LTS (Hardy Heron) + case "2008121623": ua_version = "2.0.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; break; // browsershots: Firefox 2.0.0.19 / Ubuntu 8.04 LTS (Hardy Heron) case "2008121709": ua_version = "2.0.0.20"; os_name = oses_windows; break; case "2009011912": ua_version = "3.0.6"; os_name = oses_linux; break; case "2009011913": ua_version = "3.0.6"; os_name = oses_windows; break; - case "2009012615": ua_version = "3.0.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2009012616": ua_version = "3.0.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009012615": ua_version = "3.0.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2009012616": ua_version = "3.0.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2009021906": ua_version = "3.0.7"; os_name = oses_linux; break; case "2009021910": ua_version = "3.0.7"; os_name = oses_windows; break; - case "2009030422": ua_version = "3.0.8"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009030422": ua_version = "3.0.8"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2009032608": ua_version = "3.0.8"; os_name = oses_linux; break; case "2009032609": ua_version = "3.0.8"; os_name = oses_windows; break; - case "2009032711": ua_version = "3.0.9"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009032711": ua_version = "3.0.9"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; case "2009033100": switch (navigator.productSub) { - case "2009033100": ua_version = "3.0.8"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "2009042113": ua_version = "3.0.9"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009033100": ua_version = "3.0.8"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "2009042113": ua_version = "3.0.9"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; } break; case "2009040820": ua_version = "3.0.9"; os_name = oses_linux; break; case "2009040821": ua_version = "3.0.9"; os_name = oses_windows; break; - case "2009042113": ua_version = "3.0.10"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2009042114": ua_version = "3.0.10"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "2009042113": ua_version = "3.0.10"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2009042114": ua_version = "3.0.10"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "2009042315": ua_version = "3.0.10"; os_name = oses_linux; break; case "2009042316": ua_version = "3.0.10"; os_name = oses_windows; break; - case "20090427153806": ua_version = "3.5.0.b4"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20090427153807": ua_version = "3.5.0.b4"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; + case "20090427153806": ua_version = "3.5.0.b4"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20090427153807": ua_version = "3.5.0.b4"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; case "2009060214": ua_version = "3.0.11"; os_name = oses_linux; break; case "2009060215": ua_version = "3.0.11"; os_name = oses_windows; break; case "2009060308": switch (navigator.productSub) { - case "2009060308": ua_version = "3.0.11"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2009070811": ua_version = "3.0.12"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009060308": ua_version = "3.0.11"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2009070811": ua_version = "3.0.12"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; } break; case "2009060309": switch (navigator.productSub) { - case "2009060309": ua_version = "3.0.11"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "2009070811": ua_version = "3.0.12"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "2009060309": ua_version = "3.0.11"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "2009070811": ua_version = "3.0.12"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; } break; - case "2009060310": ua_version = "3.0.11"; os_name = oses_linux; os_flavor = "BackTrack"; break; - case "2009062005": ua_version = "3.0.11"; os_name = oses_linux; os_flavor = "PCLunixOS"; break; + case "2009060310": ua_version = "3.0.11"; os_name = oses_linux; os_vendor = "BackTrack"; break; + case "2009062005": ua_version = "3.0.11"; os_name = oses_linux; os_vendor = "PCLunixOS"; break; case "20090624012136": ua_version = "3.5.0"; os_name = oses_mac_osx; break; case "20090624012820": ua_version = "3.5.0"; os_name = oses_linux; break; - case "20090701234143": ua_version = "3.5.0"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20090702060527": ua_version = "3.5.0"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; + case "20090701234143": ua_version = "3.5.0"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20090702060527": ua_version = "3.5.0"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; case "2009070610": ua_version = "3.0.12"; os_name = oses_linux; break; case "2009070611": ua_version = "3.0.12"; os_name = oses_windows; break; - case "2009070811": ua_version = "3.0.13"; os_name = oses_linux; os_flavor = "Ubuntu"; break; + case "2009070811": ua_version = "3.0.13"; os_name = oses_linux; os_vendor = "Ubuntu"; break; case "20090715083437": ua_version = "3.5.1"; os_name = oses_mac_osx; break; case "20090715083816": ua_version = "3.5.1"; os_name = oses_linux; break; case "20090715094852": ua_version = "3.5.1"; os_name = oses_windows; break; - case "2009072202": ua_version = "3.0.12"; os_name = oses_linux; os_flavor = "Oracle"; break; - case "2009072711": ua_version = "3.0.12"; os_name = oses_linux; os_flavor = "CentOS"; break; + case "2009072202": ua_version = "3.0.12"; os_name = oses_linux; os_vendor = "Oracle"; break; + case "2009072711": ua_version = "3.0.12"; os_name = oses_linux; os_vendor = "CentOS"; break; case "20090729211433": ua_version = "3.5.2"; os_name = oses_mac_osx; break; case "20090729211829": ua_version = "3.5.2"; os_name = oses_linux; break; case "20090729225027": ua_version = "3.5.2"; os_name = oses_windows; break; @@ -422,34 +429,34 @@ window.os_detect.getVersion = function(){ case "20090824085743": ua_version = "3.5.3"; os_name = oses_linux; break; case "20090824101458": ua_version = "3.5.3"; os_name = oses_windows; break; case "2009082707": ua_version = "3.0.14"; break; - case "2009090216": ua_version = "3.0.14"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20090914014745": ua_version = "3.5.3"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; - case "20090915065903": ua_version = "3.5.3"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86_64; break; - case "20090915070141": ua_version = "3.5.3"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86; break; - case "20091007090112": ua_version = "3.5.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 - case "20091007095328": ua_version = "3.5.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "2009090216": ua_version = "3.0.14"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20090914014745": ua_version = "3.5.3"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; + case "20090915065903": ua_version = "3.5.3"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86_64; break; + case "20090915070141": ua_version = "3.5.3"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86; break; + case "20091007090112": ua_version = "3.5.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 + case "20091007095328": ua_version = "3.5.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 case "2009101600": switch (navigator.productSub) { case "2009101600": ua_version = "3.0.15"; break; // Can be either Mac or Linux - case "20091016": ua_version = "3.5.4"; os_name = oses_linux; os_flavor = "SUSE"; arch = arch_x86; break; + case "20091016": ua_version = "3.5.4"; os_name = oses_linux; os_vendor = "SUSE"; arch = arch_x86; break; } break; case "2009101601": ua_version = "3.0.15"; os_name = oses_windows; break; case "20091016081620": ua_version = "3.5.4"; os_name = oses_mac_osx; break; case "20091016081727": ua_version = "3.5.4"; os_name = oses_linux; break; case "20091016092926": ua_version = "3.5.4"; os_name = oses_windows; break; - case "20091020122601": ua_version = "3.5.4"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "20091020122601": ua_version = "3.5.4"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 case "2009102814": switch (navigator.productSub) { - case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "2009121602": ua_version = "3.0.16"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "2010010604": ua_version = "3.0.17"; os_name = oses_linux; os_flavor = "Mint"; break; - case "2010021501": ua_version = "3.0.17;xul1.9.0.18"; os_name = oses_linux; os_flavor = "Mint"; arch = arch_x86; break; - case "2010021502": ua_version = "3.0.17;xul1.9.0.18"; os_name = oses_linux; os_flavor = "Mint"; arch = arch_x86_64; break; + case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "2009121602": ua_version = "3.0.16"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "2010010604": ua_version = "3.0.17"; os_name = oses_linux; os_vendor = "Mint"; break; + case "2010021501": ua_version = "3.0.17;xul1.9.0.18"; os_name = oses_linux; os_vendor = "Mint"; arch = arch_x86; break; + case "2010021502": ua_version = "3.0.17;xul1.9.0.18"; os_name = oses_linux; os_vendor = "Mint"; arch = arch_x86_64; break; } break; case "2009102815": switch (navigator.productSub) { - case "2009102815": ua_version = "3.0.15"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "2009102815": ua_version = "3.0.15"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; } break; case "20091029152254": ua_version = "3.6.0.b1"; os_name = oses_linux; break; case "20091029171059": ua_version = "3.6.0.b1"; os_name = oses_windows; break; @@ -457,23 +464,23 @@ window.os_detect.getVersion = function(){ case "20091102141836": ua_version = "3.5.5"; os_name = oses_linux; break; case "20091102152451": ua_version = "3.5.5"; os_name = oses_windows; break; case "2009110421": ua_version = "3.0.15"; os_name = oses_freebsd; arch = arch_x86; break; - case "20091106091959": ua_version = "3.5.5"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; - case "20091106140514": ua_version = "3.5.5"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20091106145609": ua_version = "3.5.5"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; + case "20091106091959": ua_version = "3.5.5"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; + case "20091106140514": ua_version = "3.5.5"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20091106145609": ua_version = "3.5.5"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; case "20091108163911": ua_version = "3.6.0.b2"; os_name = oses_linux; break; case "20091108181924": ua_version = "3.6.0.b2"; os_name = oses_windows; break; case "20091109125225": switch (navigator.productSub) { - case "20091109": ua_version = "3.5.5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20091215": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; + case "20091109": ua_version = "3.5.5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20091215": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; } break; - case "20091109134913": ua_version = "3.5.5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "20091109134913": ua_version = "3.5.5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "20091115172547": ua_version = "3.6.0.b3"; os_name = oses_linux; break; case "20091115182845": ua_version = "3.6.0.b3"; os_name = oses_windows; break; case "20091124201530": ua_version = "3.6.0.b4"; os_name = oses_mac_osx; break; case "20091124201751": ua_version = "3.6.0.b4"; os_name = oses_linux; break; case "20091124213835": ua_version = "3.6.0.b4"; os_name = oses_windows; break; - case "2009120100": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "SUSE"; break; + case "2009120100": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "SUSE"; break; case "20091201203240": ua_version = "3.5.6"; os_name = oses_mac_osx; break; case "20091201204959": ua_version = "3.5.6"; os_name = oses_linux; break; case "20091201220228": ua_version = "3.5.6"; os_name = oses_windows; break; @@ -482,74 +489,74 @@ window.os_detect.getVersion = function(){ case "20091204132459": ua_version = "3.6.0.b5"; os_name = oses_linux; break; case "20091204132509": ua_version = "3.6.0.b5"; os_name = oses_mac_osx; break; case "20091204143806": ua_version = "3.6.0.b5"; os_name = oses_windows; break; - case "20091215230859": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20091215230946": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20091215231400": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 + case "20091215230859": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20091215230946": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20091215231400": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 case "20091215231754": switch (navigator.productSub) { - case "20091215": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100106": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "20091215": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100106": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 } break; case "2009121601": switch (navigator.productSub) { - case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "2010010604": ua_version = "3.0.17"; os_name = oses_linux; os_flavor = "Ubuntu"; break; // Could also be Mint x86-64 + case "2009121601": ua_version = "3.0.16"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "2010010604": ua_version = "3.0.17"; os_name = oses_linux; os_vendor = "Ubuntu"; break; // Could also be Mint x86-64 } break; - case "2009121602": ua_version = "3.0.17"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "20091216104148": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Mandriva"; break; - case "20091216132458": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20091216132537": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20091216142458": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20091216142519": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "2009121708": ua_version = "3.0.16"; os_name = oses_linux; os_flavor = "CentOS"; arch = arch_x86; break; + case "2009121602": ua_version = "3.0.17"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "20091216104148": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Mandriva"; break; + case "20091216132458": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20091216132537": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20091216142458": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20091216142519": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "2009121708": ua_version = "3.0.16"; os_name = oses_linux; os_vendor = "CentOS"; arch = arch_x86; break; case "20091221151141": ua_version = "3.5.7"; os_name = oses_mac_osx; break; case "20091221152502": ua_version = "3.5.7"; os_name = oses_linux; break; case "2009122115": ua_version = "3.0.17"; break; // Can be either Mac or Linux case "20091221164558": ua_version = "3.5.7"; os_name = oses_windows; break; case "2009122116": ua_version = "3.0.17"; os_name = oses_windows; break; - case "2009122200": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "SUSE"; break; - case "20091223231431": ua_version = "3.5.6"; os_name = oses_linux; os_flavor = "PCLunixOS"; arch = arch_x86; break; + case "2009122200": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "SUSE"; break; + case "20091223231431": ua_version = "3.5.6"; os_name = oses_linux; os_vendor = "PCLunixOS"; arch = arch_x86; break; case "20100105194006": ua_version = "3.6.0.rc1"; os_name = oses_mac_osx; break; case "20100105194116": ua_version = "3.6.0.rc1"; os_name = oses_linux; break; case "20100105212446": ua_version = "3.6.0.rc1"; os_name = oses_windows; break; - case "2010010604": ua_version = "3.0.18"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "20100106054534": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 - case "20100106054634": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 - case "2010010605": ua_version = "3.0.18"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100106211825": ua_version = "3.5.7"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100106212742": ua_version = "3.5.7"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; - case "20100106215614": ua_version = "3.5.7"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100110112429": ua_version = "3.5.7"; os_name = oses_linux; os_flavor = "Mandriva"; break; + case "2010010604": ua_version = "3.0.18"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "20100106054534": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 + case "20100106054634": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "2010010605": ua_version = "3.0.18"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100106211825": ua_version = "3.5.7"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100106212742": ua_version = "3.5.7"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; + case "20100106215614": ua_version = "3.5.7"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100110112429": ua_version = "3.5.7"; os_name = oses_linux; os_vendor = "Mandriva"; break; case "20100115132715": ua_version = "3.6.0"; os_name = oses_mac_osx; break; case "20100115133306": ua_version = "3.6.0"; os_name = oses_linux; break; case "20100115144158": ua_version = "3.6.0"; os_name = oses_windows; break; - case "20100125074043": ua_version = "3.6.0"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 - case "20100125074127": ua_version = "3.6.0"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 - case "20100125204847": ua_version = "3.6.0"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86; break; // Could also be Mint x86 - case "20100125204903": ua_version = "3.6.0"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "20100125074043": ua_version = "3.6.0"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; // Could also be Mint x86 + case "20100125074127": ua_version = "3.6.0"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; // Could also be Mint x86-64 + case "20100125204847": ua_version = "3.6.0"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86; break; // Could also be Mint x86 + case "20100125204903": ua_version = "3.6.0"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86_64; break; // Could also be Mint x86-64 case "20100202152834": ua_version = "3.5.8"; os_name = oses_mac_osx; break; case "20100202153512": ua_version = "3.5.8"; os_name = oses_linux; break; case "20100202165920": ua_version = "3.5.8"; os_name = oses_windows; break; case "2010020219": ua_version = "3.0.18"; os_name = oses_mac_osx; break; case "2010020220": ua_version = "3.0.18"; os_name = oses_windows; break; - case "2010020400": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "SUSE"; break; - case "20100212131909": ua_version = "3.6.0.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100212132013": ua_version = "3.6.0.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100216105329": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100216105348": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100216105410": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100216110009": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "2010021718": ua_version = "3.0.18"; os_name = oses_linux; os_flavor = "CentOS"; arch = arch_x86; break; - case "20100218022359": ua_version = "3.6.0.4"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100218022705": ua_version = "3.6.0.4"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100218112915": ua_version = "3.5.8"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; - case "20100222120605": ua_version = "3.6.0.5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100222120717": ua_version = "3.6.0.5"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100301015346": ua_version = "3.6.0"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100305054927": ua_version = "3.6.0"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; - case "20100307204001": ua_version = "3.6.0"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100308142847": ua_version = "3.6.0.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100308151019": ua_version = "3.6.0.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "2010020400": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "SUSE"; break; + case "20100212131909": ua_version = "3.6.0.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100212132013": ua_version = "3.6.0.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100216105329": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100216105348": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100216105410": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100216110009": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "2010021718": ua_version = "3.0.18"; os_name = oses_linux; os_vendor = "CentOS"; arch = arch_x86; break; + case "20100218022359": ua_version = "3.6.0.4"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100218022705": ua_version = "3.6.0.4"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100218112915": ua_version = "3.5.8"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; + case "20100222120605": ua_version = "3.6.0.5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100222120717": ua_version = "3.6.0.5"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100301015346": ua_version = "3.6.0"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100305054927": ua_version = "3.6.0"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; + case "20100307204001": ua_version = "3.6.0"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100308142847": ua_version = "3.6.0.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100308151019": ua_version = "3.6.0.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "2010031218": ua_version = "3.0.19"; break; // Mac OS X or Linux case "2010031422": ua_version = "3.0.19"; os_name = oses_windows; break; case "20100315075757": ua_version = "3.5.9"; os_name = oses_linux; break; @@ -558,48 +565,48 @@ window.os_detect.getVersion = function(){ case "20100316055951": ua_version = "3.6.2"; os_name = oses_mac_osx; break; case "20100316060223": ua_version = "3.6.2"; os_name = oses_linux; break; case "20100316074819": ua_version = "3.6.2"; os_name = oses_windows; break; - case "2010031700": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "SUSE"; break; - case "20100323102218": ua_version = "3.6.2"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100323102339": ua_version = "3.6.2"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100323194640": ua_version = "3.6.2"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; - case "20100324182054": ua_version = "3.6.2"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100330071911": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100330072017": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100330072020": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100330072034": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; + case "2010031700": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "SUSE"; break; + case "20100323102218": ua_version = "3.6.2"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100323102339": ua_version = "3.6.2"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100323194640": ua_version = "3.6.2"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; + case "20100324182054": ua_version = "3.6.2"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100330071911": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100330072017": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100330072020": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100330072034": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; case "20100401064631": ua_version = "3.6.3"; os_name = oses_mac_osx; break; case "20100401074458": ua_version = "3.6.3"; os_name = oses_linux; break; case "20100401080539": ua_version = "3.6.3"; os_name = oses_windows; break; - case "20100401144201": ua_version = "3.6.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2010040116": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2010040118": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2010040119": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100401213457": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "2010040121": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "2010040123": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "2010040200": ua_version = "3.0.19"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100402010516": ua_version = "3.5.9"; os_name = oses_linux; os_flavor = "Mint"; arch = arch_x86_64; break; - case "20100402041908": ua_version = "3.6.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100403042003": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100403082016": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100404024515": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100404024646": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100404104043": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "PClinuxOS"; arch = arch_x86_64; break; - case "20100409151117": ua_version = "3.6.3.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100409170726": ua_version = "3.6.3.2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100412125148": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; + case "20100401144201": ua_version = "3.6.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2010040116": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2010040118": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2010040119": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100401213457": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "2010040121": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "2010040123": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "2010040200": ua_version = "3.0.19"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100402010516": ua_version = "3.5.9"; os_name = oses_linux; os_vendor = "Mint"; arch = arch_x86_64; break; + case "20100402041908": ua_version = "3.6.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100403042003": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100403082016": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100404024515": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100404024646": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100404104043": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "PClinuxOS"; arch = arch_x86_64; break; + case "20100409151117": ua_version = "3.6.3.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100409170726": ua_version = "3.6.3.2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100412125148": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; case "20100413152922": ua_version = "3.6.4.b1"; os_name = oses_mac_osx; break; case "20100413154310": ua_version = "3.6.4.b1"; os_name = oses_linux; break; case "20100413172113": ua_version = "3.6.4.b1"; os_name = oses_windows; break; - case "20100415062243": ua_version = "3.6.3.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100415103754": ua_version = "3.6.3.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100416101101": ua_version = "3.6.3.2"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; - case "2010041700": ua_version = "3.6.4.1"; os_name = oses_linux; os_flavor = "SUSE"; break; - case "20100419015333": ua_version = "3.6.3"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; - case "20100423043606": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86_64; break; - case "20100423140709": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100423141150": ua_version = "3.6.3"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100423142835": ua_version = "3.6.3"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; + case "20100415062243": ua_version = "3.6.3.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100415103754": ua_version = "3.6.3.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100416101101": ua_version = "3.6.3.2"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; + case "2010041700": ua_version = "3.6.4.1"; os_name = oses_linux; os_vendor = "SUSE"; break; + case "20100419015333": ua_version = "3.6.3"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; + case "20100423043606": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86_64; break; + case "20100423140709": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100423141150": ua_version = "3.6.3"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100423142835": ua_version = "3.6.3"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; case "20100502202326": ua_version = "3.6.4.b2"; os_name = oses_linux; break; case "20100502202401": ua_version = "3.6.4.b2"; os_name = oses_mac_osx; break; case "20100502221517": ua_version = "3.6.4.b2"; os_name = oses_windows; break; @@ -609,69 +616,69 @@ window.os_detect.getVersion = function(){ case "20100504085637": ua_version = "3.5.10"; os_name = oses_linux; break; case "20100504085753": ua_version = "3.5.10"; os_name = oses_mac_osx; break; case "20100504093643": ua_version = "3.5.10"; os_name = oses_windows; break; - case "2010050600": ua_version = "3.5.10"; os_name = oses_linux; os_flavor = "SUSE"; break; - case "2010051300": ua_version = "3.6.4.1"; os_name = oses_linux; os_flavor = "SUSE"; break; + case "2010050600": ua_version = "3.5.10"; os_name = oses_linux; os_vendor = "SUSE"; break; + case "2010051300": ua_version = "3.6.4.1"; os_name = oses_linux; os_vendor = "SUSE"; break; case "20100513134853": ua_version = "3.6.4.b4"; os_name = oses_mac_osx; break; case "20100513140540": ua_version = "3.6.4.b4"; os_name = oses_linux; break; case "20100513144105": ua_version = "3.6.4.b4"; os_name = oses_windows; break; - case "20100513190740": ua_version = "3.6.3"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; + case "20100513190740": ua_version = "3.6.3"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; case "20100523180910": ua_version = "3.6.4.b5"; os_name = oses_mac_osx; break; case "20100523181754": ua_version = "3.6.4.b5"; os_name = oses_linux; break; case "20100523185824": ua_version = "3.6.4.b5"; os_name = oses_windows; break; case "20100527084110": ua_version = "3.6.4.b6"; os_name = oses_mac_osx; break; case "20100527085242": ua_version = "3.6.4.b6"; os_name = oses_linux; break; case "20100527093236": ua_version = "3.6.4.b6"; os_name = oses_windows; break; - case "2010061100": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "SUSE"; break; + case "2010061100": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "SUSE"; break; case "20100611134546": ua_version = "3.6.4.b7"; os_name = oses_mac_osx; break; case "20100611135942": ua_version = "3.6.4.b7"; os_name = oses_linux; break; case "20100611143157": ua_version = "3.6.4.b7"; os_name = oses_windows; break; - case "20100622203044": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100622203045": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100622204750": ua_version = "3.5.10"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86_64; break; - case "20100622204830": ua_version = "3.5.10"; os_name = oses_linux; os_flavor = "Fedora"; arch = arch_x86; break; - case "20100622205038": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "PClinuxOS"; arch = arch_x86_64; break; - case "20100623081410": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "CentOS"; arch = arch_x86_64; break; - case "20100623081921": ua_version = "3.6.4"; os_name = oses_linux; os_flavor = "CentOS"; arch = arch_x86; break; - case "20100623155731": ua_version = "3.6.4.b7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100623200132": ua_version = "3.6.4.b7"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "20100622203044": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100622203045": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100622204750": ua_version = "3.5.10"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86_64; break; + case "20100622204830": ua_version = "3.5.10"; os_name = oses_linux; os_vendor = "Fedora"; arch = arch_x86; break; + case "20100622205038": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "PClinuxOS"; arch = arch_x86_64; break; + case "20100623081410": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "CentOS"; arch = arch_x86_64; break; + case "20100623081921": ua_version = "3.6.4"; os_name = oses_linux; os_vendor = "CentOS"; arch = arch_x86; break; + case "20100623155731": ua_version = "3.6.4.b7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100623200132": ua_version = "3.6.4.b7"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "20100625222733": ua_version = "3.6.6"; os_name = oses_linux; break; case "20100625223402": ua_version = "3.6.6"; os_name = oses_mac_osx; break; case "20100625231939": ua_version = "3.6.6"; os_name = oses_windows; break; - case "20100626104508": ua_version = "3.6.4"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86; break; - case "20100627211341": ua_version = "3.6.4"; os_name = oses_freebsd; os_flavor = "PC-BSD"; arch = arch_x86_64; break; - case "20100628082832": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "PClinuxOS"; arch = arch_x86_64; break; - case "20100628124739": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100628143222": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100628232431": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100629034705": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100629105354": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Mandriva"; arch = arch_x86; break; - case "20100630130433": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "20100626104508": ua_version = "3.6.4"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86; break; + case "20100627211341": ua_version = "3.6.4"; os_name = oses_freebsd; os_vendor = "PC-BSD"; arch = arch_x86_64; break; + case "20100628082832": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "PClinuxOS"; arch = arch_x86_64; break; + case "20100628124739": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100628143222": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100628232431": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100629034705": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100629105354": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Mandriva"; arch = arch_x86; break; + case "20100630130433": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "20100630131607": ua_version = "4.0.0.b1"; os_name = oses_mac_osx; break; case "20100630132217": ua_version = "4.0.0.b1"; os_name = oses_linux; break; case "20100630141702": ua_version = "4.0.0.b1"; os_name = oses_windows; break; - case "20100630174226": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86_64; break; - case "20100630180611": ua_version = "3.6.6"; os_name = oses_linux; os_flavor = "Sabayon"; arch = arch_x86; break; - case "20100709115208": ua_version = "3.6.7.b1"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86; break; - case "20100709183408": ua_version = "3.6.7.b1"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; - case "20100716093011": ua_version = "3.6.7.b2"; os_name = oses_linux; os_flavor = "Ubuntu"; arch = arch_x86_64; break; + case "20100630174226": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86_64; break; + case "20100630180611": ua_version = "3.6.6"; os_name = oses_linux; os_vendor = "Sabayon"; arch = arch_x86; break; + case "20100709115208": ua_version = "3.6.7.b1"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86; break; + case "20100709183408": ua_version = "3.6.7.b1"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; + case "20100716093011": ua_version = "3.6.7.b2"; os_name = oses_linux; os_vendor = "Ubuntu"; arch = arch_x86_64; break; case "20101203075014": ua_version = "3.6.13"; os_name = oses_windows; break; - case "20101206122825": ua_version = "3.6.13"; os_name = oses_linux; os_flavor = "Ubuntu"; break; + case "20101206122825": ua_version = "3.6.13"; os_name = oses_linux; os_vendor = "Ubuntu"; break; case "20110318052756": ua_version = "4.0"; os_name = oses_windows; break; // browsershots: Firefox 4.0 / Windows XP - case "20110420144310": ua_version = "3.5.19"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Firefox 3.5.19 / Debian 4.0 (Etch) + case "20110420144310": ua_version = "3.5.19"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Firefox 3.5.19 / Debian 4.0 (Etch) case "20110615151330": ua_version = "5.0"; os_name = oses_windows; break; // browsershots: Firefox 5.0 / Windows XP case "20110811165603": ua_version = "6.0"; os_name = oses_windows; break; // browsershots: Firefox 6.0 / Windows XP - case "20110830092941": ua_version = "6.0.1"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Firefox 6.0.1 / Debian 4.0 (Etch) + case "20110830092941": ua_version = "6.0.1"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Firefox 6.0.1 / Debian 4.0 (Etch) case "20110922153450": ua_version = "7.0"; os_name = oses_windows; break; // browsershots: Firefox 7.0 / Windows XP - case "20110928134238": ua_version = "7.0.1"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Firefox 7.0.1 / Debian 4.0 (Etch) + case "20110928134238": ua_version = "7.0.1"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Firefox 7.0.1 / Debian 4.0 (Etch) case "20111104165243": ua_version = "8.0"; os_name = oses_windows; break; // browsershots: Firefox 8.0 / Windows XP - case "20111115183813": ua_version = "8.0"; os_name = oses_linux; os_flavor = "Ubuntu"; break; // browsershots: Firefox 8.0 / Ubuntu 9.10 (Karmic Koala) + case "20111115183813": ua_version = "8.0"; os_name = oses_linux; os_vendor = "Ubuntu"; break; // browsershots: Firefox 8.0 / Ubuntu 9.10 (Karmic Koala) case "20111216140209": ua_version = "9.0"; os_name = oses_windows; break; // browsershots: Firefox 9.0 / Windows XP case "20120129021758": ua_version = "10.0"; os_name = oses_windows; break; // browsershots: Firefox 10.0 / Windows 2000 - case "20120201083324": ua_version = "3.5.16"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Iceweasel 3.5.16 / Debian 4.0 (Etch) - case "20120216013254": ua_version = "3.6.27"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Firefox 3.6.27 / Debian 4.0 (Etch) - case "20120216100510": ua_version = "10.0.2"; os_name = oses_linux; os_flavor = "Ubuntu"; break; // browsershots: Firefox 10.0.2 / Ubuntu 9.10 (Karmic Koala) - case "20120310010316": ua_version = "11.0"; os_name = oses_linux; os_flavor = "Ubuntu"; break; // browsershots: Firefox 11.0 / Ubuntu 9.10 (Karmic Koala) - case "20120310194926": ua_version = "11.0"; os_name = oses_linux; os_flavor = "Ubuntu"; break; + case "20120201083324": ua_version = "3.5.16"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Iceweasel 3.5.16 / Debian 4.0 (Etch) + case "20120216013254": ua_version = "3.6.27"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Firefox 3.6.27 / Debian 4.0 (Etch) + case "20120216100510": ua_version = "10.0.2"; os_name = oses_linux; os_vendor = "Ubuntu"; break; // browsershots: Firefox 10.0.2 / Ubuntu 9.10 (Karmic Koala) + case "20120310010316": ua_version = "11.0"; os_name = oses_linux; os_vendor = "Ubuntu"; break; // browsershots: Firefox 11.0 / Ubuntu 9.10 (Karmic Koala) + case "20120310194926": ua_version = "11.0"; os_name = oses_linux; os_vendor = "Ubuntu"; break; case "20120312181643": // It is disconcerting that a buildID is the same on Windows // and Mac, need to examine more versions on Mac. @@ -682,9 +689,9 @@ window.os_detect.getVersion = function(){ os_name = oses_windows; // browsershots: Firefox 11.0 / Windows XP } break; - case "20120314195616": ua_version = "12.0"; os_name = oses_linux; os_flavor = "Debian"; break; // browsershots: Firefox 12.0 / Debian 4.0 (Etch) - case "20120423142301": ua_version = "12.0"; os_name = oses_linux; os_flavor = "Ubuntu"; break; - case "20120424151700": ua_version = "12.0"; os_name = oses_linux; os_flavor = "Fedora"; break; + case "20120314195616": ua_version = "12.0"; os_name = oses_linux; os_vendor = "Debian"; break; // browsershots: Firefox 12.0 / Debian 4.0 (Etch) + case "20120423142301": ua_version = "12.0"; os_name = oses_linux; os_vendor = "Ubuntu"; break; + case "20120424151700": ua_version = "12.0"; os_name = oses_linux; os_vendor = "Fedora"; break; default: version = this.searchVersion("Firefox", navigator.userAgent); // Verify whether the ua string is lying by checking if it contains @@ -714,64 +721,67 @@ window.os_detect.getVersion = function(){ // share. os_name = oses_windows; ua_name = clients_ie; - version = ScriptEngineMajorVersion().toString(); - version += ScriptEngineMinorVersion().toString(); - version += ScriptEngineBuildVersion().toString(); + version_maj = ScriptEngineMajorVersion().toString(); + version_min = ScriptEngineMinorVersion().toString(); + version_build = ScriptEngineBuildVersion().toString(); + + version = version_maj + version_min + version_build; + //document.write("ScriptEngine: "+version+"
"); switch (version){ case "514615": // IE 5.00.2920.0000, 2000 Advanced Server SP0 English ua_version = "5.0"; - os_flavor = "2000"; + os_name = "Windows 2000"; os_sp = "SP0"; break; case "515907": - os_flavor = "2000"; + os_name = "Windows 2000"; os_sp = "SP3"; //or SP2: oCC.getComponentVersion('{22d6f312-b0f6-11d0-94ab-0080c74c7e95}', 'componentid') => 6,4,9,1109 break; case "518513": - os_flavor = "2000"; + os_name = "Windows 2000"; os_sp = "SP4"; break; case "566626": // IE 6.0.2600.0000, XP SP0 English // IE 6.0.2800.1106, XP SP1 English ua_version = "6.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP0"; break; case "568515": // IE 6.0.3790.0, 2003 Standard SP0 English ua_version = "6.0"; - os_flavor = "2003"; + os_name = "Windows 2003"; os_sp = "SP0"; break; case "568820": // IE 6.0.2900.2180, xp sp2 english - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP2"; break; case "568827": - os_flavor = "2003"; + os_name = "Windows 2003"; os_sp = "SP1"; break; case "568831": //XP SP2 -OR- 2K SP4 - if (os_flavor == "2000"){ + if (os_name == "2000"){ os_sp = "SP4"; } else{ - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP2"; } break; case "568832": - os_flavor = "2003"; + os_name = "Windows 2003"; os_sp = "SP2"; break; case "568837": // IE 6.0.2900.2180, XP Professional SP2 Korean ua_version = "6.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP2"; break; case "5716599": @@ -782,7 +792,7 @@ window.os_detect.getVersion = function(){ // Since this scriptengine applies to more than one major version of // IE, rely on the object detection below to determine ua_version. //ua_version = "6.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP3"; break; case "575730": @@ -797,19 +807,19 @@ window.os_detect.getVersion = function(){ case "5718066": // IE 7.0.5730.13, XP Professional SP3 English ua_version = "7.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP3"; break; case "5722589": // IE 7.0.5730.13, XP Professional SP3 English ua_version = "7.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP3"; break; case "576000": // IE 7.0.6000.16386, Vista Ultimate SP0 English ua_version = "7.0"; - os_flavor = "Vista"; + os_name = "Windows Vista"; os_sp = "SP0"; break; case "580": @@ -821,13 +831,13 @@ window.os_detect.getVersion = function(){ case "5816762": // IE 8.0.7600.16385, Windows 7 English ua_version = "8.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP0"; break; case "5817514": // IE 8.0.7600.17514, Windows 7 SP1 English ua_version = "8.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "5818702": @@ -835,80 +845,103 @@ window.os_detect.getVersion = function(){ case "5822960": // IE 8.0.6001.18702, XP Professional SP3 Greek ua_version = "8.0"; - os_flavor = "XP"; + os_name = "Windows XP"; os_sp = "SP3"; break; case "9016406": // IE 9.0.7930.16406, Windows 7 64-bit ua_version = "9.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP0"; break; case "9016441": // IE 9.0.8112.16421, Windows 7 32-bit English ua_version = "9.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "9016443": // IE 9.0.8112.16421, Windows 7 Polish // Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) ua_version = "9.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "9016446": // IE 9.0.8112.16421, Windows 7 English (Update Versions: 9.0.7 (KB2699988) // Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MASA; InfoPath.3; MS-RTC LM 8; BRI/2)Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MASA; InfoPath.3; MS-RTC LM 8; BRI/2) ua_version = "9.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "9016464": // browsershots.org, MSIE 7.0 / Windows 2008 R2 - os_flavor = "2008R2"; + os_name = "Windows 2008R2"; ua_version = "9.0"; break; case "9016470": // IE 9.0.8112.16421 / Windows 7 SP1 ua_version = "9.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "10016720": // IE 10.0.9200.16721 / Windows 7 SP1 ua_version = "10.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "11016428": // IE 11.0.9600.16428 / Windows 7 SP1 ua_version = "11.0"; - os_flavor = "7"; + os_name = "Windows 7"; os_sp = "SP1"; break; case "10016384": // IE 10.0.9200.16384 / Windows 8 x86 ua_version = "10.0"; - os_flavor = "8"; + os_name = "Windows 8"; os_sp = "SP0"; break; case "1000": // IE 10.0.8400.0 (Pre-release + KB2702844), Windows 8 x86 English Pre-release ua_version = "10.0"; - os_flavor = "8"; + os_name = "Windows 8"; os_sp = "SP0"; break; + case "11016426": + // IE 11.0.9600.16476 / KB2898785 (Technically: 11.0.2) Windows 8.1 x86 English + ua_version = "11.0"; + os_name = "Windows 8.1"; + break; default: unknown_fingerprint = version; break; } + // Trust reported versions of 9, 10, and 11 until we have a better method + if (!ua_version) { + switch(version_maj) { + case "11": + ua_version = "11.0"; + os_name = "Windows 8.1"; + break; + case "10": + ua_version = "10.0"; + os_name = "Windows 8"; + break; + case "9": + ua_version = "9.0"; + break; + } + } + if (!ua_version) { // The ScriptEngine functions failed us, try some object detection if (document.documentElement && (typeof document.documentElement.style.maxHeight)!="undefined") { // IE8 detection straight from IEBlog. Thank you Microsoft. try { + // Technically this also applies to 9.0, 10.0, and 11.0... ua_version = "8.0"; document.documentElement.style.display = "table-cell"; } catch(e) { @@ -936,7 +969,7 @@ window.os_detect.getVersion = function(){ if (!os_name && navigator.platform == "Win32") { os_name = oses_windows; } //-- - // Flavor + // Figure out the type of Windows //-- if (!ua_is_lying) { version = useragent.toLowerCase(); @@ -953,27 +986,28 @@ window.os_detect.getVersion = function(){ else if (version.indexOf("mac") != -1) { os_name = oses_mac_osx; } else if (version.indexOf("linux") != -1) { os_name = oses_linux; } } - if (os_name == oses_windows && (!os_flavor || 0 == os_flavor.length)) { - if (version.indexOf("windows 95") != -1) { os_flavor = "95"; } - else if (version.indexOf("windows nt 4") != -1) { os_flavor = "NT"; } - else if (version.indexOf("win 9x 4.9") != -1) { os_flavor = "ME"; } - else if (version.indexOf("windows 98") != -1) { os_flavor = "98"; } - else if (version.indexOf("windows nt 5.0") != -1) { os_flavor = "2000"; } - else if (version.indexOf("windows nt 5.1") != -1) { os_flavor = "XP"; } - else if (version.indexOf("windows nt 5.2") != -1) { os_flavor = "2003"; } - else if (version.indexOf("windows nt 6.0") != -1) { os_flavor = "Vista"; } - else if (version.indexOf("windows nt 6.1") != -1) { os_flavor = "7"; } - else if (version.indexOf("windows nt 6.2") != -1) { os_flavor = "8"; } + if (os_name == oses_windows) { + if (version.indexOf("windows 95") != -1) { os_name = "Windows 95"; } + else if (version.indexOf("windows nt 4") != -1) { os_name = "Windows NT"; } + else if (version.indexOf("win 9x 4.9") != -1) { os_name = "Windows ME"; } + else if (version.indexOf("windows 98") != -1) { os_name = "Windows 98"; } + else if (version.indexOf("windows nt 5.0") != -1) { os_name = "Windows 2000"; } + else if (version.indexOf("windows nt 5.1") != -1) { os_name = "Windows XP"; } + else if (version.indexOf("windows nt 5.2") != -1) { os_name = "Windows 2003"; } + else if (version.indexOf("windows nt 6.0") != -1) { os_name = "Windows Vista"; } + else if (version.indexOf("windows nt 6.1") != -1) { os_name = "Windows 7"; } + else if (version.indexOf("windows nt 6.2") != -1) { os_name = "Windows 8"; } + else if (version.indexOf("windows nt 6.3") != -1) { os_name = "Windows 8.1"; } } - if (os_name == oses_linux && (!os_flavor || 0 == os_flavor.length)) { - if (version.indexOf("gentoo") != -1) { os_flavor = "Gentoo"; } - else if (version.indexOf("ubuntu") != -1) { os_flavor = "Ubuntu"; } - else if (version.indexOf("debian") != -1) { os_flavor = "Debian"; } - else if (version.indexOf("rhel") != -1) { os_flavor = "RHEL"; } - else if (version.indexOf("red hat") != -1) { os_flavor = "RHEL"; } - else if (version.indexOf("centos") != -1) { os_flavor = "CentOS"; } - else if (version.indexOf("fedora") != -1) { os_flavor = "Fedora"; } - else if (version.indexOf("android") != -1) { os_flavor = "Android"; } + if (os_name == oses_linux && (!os_vendor || 0 == os_vendor.length)) { + if (version.indexOf("gentoo") != -1) { os_vendor = "Gentoo"; } + else if (version.indexOf("ubuntu") != -1) { os_vendor = "Ubuntu"; } + else if (version.indexOf("debian") != -1) { os_vendor = "Debian"; } + else if (version.indexOf("rhel") != -1) { os_vendor = "RHEL"; } + else if (version.indexOf("red hat") != -1) { os_vendor = "RHEL"; } + else if (version.indexOf("centos") != -1) { os_vendor = "CentOS"; } + else if (version.indexOf("fedora") != -1) { os_vendor = "Fedora"; } + else if (version.indexOf("android") != -1) { os_vendor = "Android"; } } //-- @@ -1031,7 +1065,9 @@ window.os_detect.getVersion = function(){ this.ua_is_lying = ua_is_lying; this.os_name = os_name; + this.os_vendor = os_vendor; this.os_flavor = os_flavor; + this.os_device = os_device; this.os_sp = os_sp; this.os_lang = os_lang; this.arch = arch; @@ -1039,7 +1075,7 @@ window.os_detect.getVersion = function(){ this.ua_version = ua_version; this.ua_version = ua_version; - return { os_name:os_name, os_flavor:os_flavor, os_sp:os_sp, os_lang:os_lang, arch:arch, ua_name:ua_name, ua_version:ua_version }; + return { os_name:os_name, os_vendor:os_vendor, os_flavor:os_flavor, os_device:os_device, os_sp:os_sp, os_lang:os_lang, arch:arch, ua_name:ua_name, ua_version:ua_version }; }; // function getVersion window.os_detect.searchVersion = function(needle, haystack) { diff --git a/documentation/samples/modules/exploits/ie_browser.rb b/documentation/samples/modules/exploits/ie_browser.rb index 3580436400..fcbeade692 100644 --- a/documentation/samples/modules/exploits/ie_browser.rb +++ b/documentation/samples/modules/exploits/ie_browser.rb @@ -29,7 +29,7 @@ class Metasploit4 < Msf::Exploit::Remote :ua_minver => "8.0", :ua_maxver => "10.0", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :rank => NormalRanking }) @@ -85,6 +85,8 @@ class Metasploit4 < Msf::Exploit::Remote os_name = 'Windows 7' when '6.2' os_name = 'Windows 8' + when '6.3' + os_name = 'Windows 8.1' end targets.each do |t| diff --git a/lib/msf/core/constants.rb b/lib/msf/core/constants.rb index d000aeb4cb..4ce79e1276 100644 --- a/lib/msf/core/constants.rb +++ b/lib/msf/core/constants.rb @@ -58,14 +58,17 @@ module HttpClients UNKNOWN = "Unknown" end + module OperatingSystems LINUX = "Linux" MAC_OSX = "Mac OS X" - WINDOWS = "Microsoft Windows" + WINDOWS = "Windows" FREEBSD = "FreeBSD" NETBSD = "NetBSD" OPENBSD = "OpenBSD" VMWARE = "VMware" + ANDROID = "Android" + APPLE_IOS = "iOS" module VmwareVersions ESX = "ESX" @@ -79,8 +82,10 @@ module OperatingSystems TWOK3 = "2003" VISTA = "Vista" TWOK8 = "2008" + TWOK12 = "2012" SEVEN = "7" EIGHT = "8" + EIGHTONE = "8.1" end UNKNOWN = "Unknown" @@ -104,5 +109,4 @@ LICENSES = BSD_LICENSE, ARTISTIC_LICENSE, UNKNOWN_LICENSE - ] - + ] \ No newline at end of file diff --git a/lib/msf/core/exploit/http/server.rb b/lib/msf/core/exploit/http/server.rb index 2798d64567..698cbb5db8 100644 --- a/lib/msf/core/exploit/http/server.rb +++ b/lib/msf/core/exploit/http/server.rb @@ -258,18 +258,19 @@ module Exploit::Remote::HttpServer # Report#report_client, and Msf::DBManager#report_host namely: # +:ua_name+:: a brief identifier for the client, e.g. "Firefox" # +:ua_ver+:: the version number of the client, e.g. "3.0.11" - # +:os_name+:: one of the Msf::OperatingSystems constants - # +:os_flavor+:: something like "XP" or "Gentoo" + # +:os_name+:: something like "Windows XP", "Windows 7", or "Linux" + # +:os_flavor+:: something like "Enterprise", "Pro", or "Home" # +:os_lang+:: something like "English", "French", or "en-US" # +:arch+:: one of the ARCH_* constants # # Unknown values may be nil. # def fingerprint_user_agent(ua_str) + fp = { :ua_string => ua_str } - # always check for IE last because everybody tries to - # look like IE + # Guess the browser type based on the user agent + # Check for IE last since its often impersonated case (ua_str.downcase) # Chrome tries to look like Safari, so check it first when /chrome\/(\d+(:?\.\d+)*)/ @@ -292,58 +293,70 @@ module Exploit::Remote::HttpServer else fp[:ua_name] = HttpClients::UNKNOWN end + + # Guess the language case (ua_str.downcase) when /(en-us|en-gb)/ fp[:os_lang] = $1 end + + # Guess the general OS type case (ua_str.downcase) - when /windows/ + when /windows|win32/ fp[:os_name] = OperatingSystems::WINDOWS fp[:arch] = ARCH_X86 when /linux/ fp[:os_name] = OperatingSystems::LINUX - when /iphone/ - fp[:os_name] = OperatingSystems::MAC_OSX + when /iphone|ipad/ + fp[:os_name] = OperatingSystems::APPLE_IOS fp[:arch] = 'armle' when /mac os x/ fp[:os_name] = OperatingSystems::MAC_OSX else fp[:os_name] = OperatingSystems::UNKNOWN end + + # Determine the specific OS variant + + # Note that we assume windows variants are the + # client version and mismatch server editions. + case (ua_str.downcase) when /windows 95/ - fp[:os_flavor] = '95' + fp[:os_name] = 'Windows 95' when /windows 98/ - fp[:os_flavor] = '98' + fp[:os_name] = 'Windows 98' when /windows nt 4/ - fp[:os_flavor] = 'NT' + fp[:os_name] = 'Windows NT' when /windows nt 5.0/ - fp[:os_flavor] = '2000' + fp[:os_name] = 'Windows 2000' when /windows nt 5.1/ - fp[:os_flavor] = 'XP' + fp[:os_name] = 'Windows XP' when /windows nt 5.2/ - fp[:os_flavor] = '2003' + fp[:os_name] = 'Windows 2003' when /windows nt 6.0/ - fp[:os_flavor] = 'Vista' + fp[:os_name] = 'Windows Vista' when /windows nt 6.1/ - fp[:os_flavor] = '7' + fp[:os_name] = 'Windows 7' when /windows nt 6.2/ - fp[:os_flavor] = '8' + fp[:os_name] = 'Windows 8' + when /windows nt 6.3/ + fp[:os_name] = 'Windows 8.1' when /gentoo/ - fp[:os_flavor] = 'Gentoo' + fp[:os_vendor] = 'Gentoo' when /debian/ - fp[:os_flavor] = 'Debian' + fp[:os_vendor] = 'Debian' when /ubuntu/ - fp[:os_flavor] = 'Ubuntu' + fp[:os_vendor] = 'Ubuntu' when /fedora/ - fp[:os_flavor] = 'Fedora' + fp[:os_vendor] = 'Fedora' when /red hat|rhel/ - fp[:os_flavor] = 'RHEL' + fp[:os_vendor] = 'RHEL' when /android/ - fp[:os_flavor] = 'Android' - else - fp[:os_flavor] = '' + fp[:os_name] = OperatingSystems::ANDROID end + + # Guess the architecture case (ua_str.downcase) when /ppc/ fp[:arch] = ARCH_PPC diff --git a/lib/msf/core/exploit/remote/browser_exploit_server.rb b/lib/msf/core/exploit/remote/browser_exploit_server.rb index 902befc114..6aeb9c7319 100644 --- a/lib/msf/core/exploit/remote/browser_exploit_server.rb +++ b/lib/msf/core/exploit/remote/browser_exploit_server.rb @@ -45,8 +45,11 @@ module Msf :source => 'source', # Either 'script' or 'headers' :ua_name => 'ua_name', # Example: MSIE :ua_ver => 'ua_ver', # Example: 8.0, 9.0 - :os_name => 'os_name', # Example: Microsoft Windows - :os_flavor => 'os_flavor', # Example: XP, 7 + :os_name => 'os_name', # Example: Windows 7, Linux + :os_flavor => 'os_flavor', # Example: Home, Enterprise, etc + :os_device => 'os_device', # Example: iPad, iPhone, etc + :os_vendor => 'os_vendor', # Example: Microsoft, Ubuntu, Apple, etc + :os_sp => 'os_sp', # Example: SP2 :language => 'language', # Example: en-us :arch => 'arch', # Example: x86 :proxy => 'proxy', # 'true' or 'false' @@ -203,8 +206,8 @@ module Msf # Returns the target profile based on the tag. Each profile has the following structure: # 'cookie_name' => # { - # :os_name => 'Windows', - # :os_flavor => 'something' + # :os_name => 'Windows 7', + # :os_flavor => 'Enterprise', # ...... etc ...... # } # A profile should at least have info about the following: @@ -212,8 +215,8 @@ module Msf # should be more accurate in some scenarios like browser compatibility mode # :ua_name : The name of the browser # :ua_ver : The version of the browser - # :os_name : The name of the OS - # :os_flavor : The flavor of the OS (example: XP) + # :os_name : The name of the OS ("Windows XP") + # :os_flavor : The edition of the OS ("Home") # :language : The system's language # :arch : The system's arch # :proxy : Indicates whether proxy is used @@ -354,7 +357,7 @@ module Msf <%= js_os_detect %> <%= js_ajax_post %> <%= js_misc_addons_detect %> - <%= js_ie_addons_detect if os == OperatingSystems::WINDOWS and client == HttpClients::IE %> + <%= js_ie_addons_detect if os.match(/^Windows/) and client == HttpClients::IE %> function objToQuery(obj) { var q = []; @@ -370,6 +373,8 @@ module Msf var d = { "<%=REQUIREMENT_KEY_SET[:os_name]%>" : osInfo.os_name, "<%=REQUIREMENT_KEY_SET[:os_flavor]%>" : osInfo.os_flavor, + "<%=REQUIREMENT_KEY_SET[:os_vendor]%>" : osInfo.os_vendor, + "<%=REQUIREMENT_KEY_SET[:os_device]%>" : osInfo.os_device, "<%=REQUIREMENT_KEY_SET[:ua_name]%>" : osInfo.ua_name, "<%=REQUIREMENT_KEY_SET[:ua_ver]%>" : osInfo.ua_version, "<%=REQUIREMENT_KEY_SET[:arch]%>" : osInfo.arch, @@ -377,7 +382,7 @@ module Msf "<%=REQUIREMENT_KEY_SET[:silverlight]%>" : window.misc_addons_detect.hasSilverlight() }; - <% if os == OperatingSystems::WINDOWS and client == HttpClients::IE %> + <% if os.match(/^Windows/) and client == HttpClients::IE %> d['<%=REQUIREMENT_KEY_SET[:office]%>'] = window.ie_addons_detect.getMsOfficeVersion(); <% clsid = @requirements[:clsid] @@ -537,10 +542,10 @@ module Msf arch = browser_info[:arch] platform = browser_info[:os_name] - # Fix names for consisntecy so our API can find the right one + # Fix names for consistency so our API can find the right one # Originally defined in lib/msf/core/constants.rb platform = platform.gsub(/^Mac OS X$/, 'OSX') - platform = platform.gsub(/^Microsoft Windows$/, 'Windows') + platform = platform.gsub(/^Windows.*$/, 'Windows') regenerate_payload(cli, platform, arch).encoded end diff --git a/lib/rex/exploitation/js/detect.rb b/lib/rex/exploitation/js/detect.rb index c7c9f40bcd..04df435fa4 100644 --- a/lib/rex/exploitation/js/detect.rb +++ b/lib/rex/exploitation/js/detect.rb @@ -15,10 +15,12 @@ class Detect # Provides several javascript functions for determining the OS and browser versions of a client. # # getVersion(): returns an object with the following properties - # os_name - OS name, one of the Msf::OperatingSystems constants - # os_flavor - OS flavor as a string (e.g.: "XP", "2000") + # os_name - OS name such as "Windows 8", "Linux", "Mac OS X" + # os_flavor - OS flavor as a string such as "Home", "Enterprise", etc # os_sp - OS service pack (e.g.: "SP2", will be empty on non-Windows) # os_lang - OS language (e.g.: "en-us") + # os_vendor - A company or organization name such as Microsoft, Ubuntu, Apple, etc + # os_device - A specific piece of hardware such as iPad, iPhone, etc # ua_name - Client name, one of the Msf::HttpClients constants # ua_version - Client version as a string (e.g.: "3.5.1", "6.0;SP2") # arch - Architecture, one of the ARCH_* constants diff --git a/lib/rex/proto/http/handler/proc.rb b/lib/rex/proto/http/handler/proc.rb index 58b350cc26..6976e14908 100644 --- a/lib/rex/proto/http/handler/proc.rb +++ b/lib/rex/proto/http/handler/proc.rb @@ -36,7 +36,7 @@ class Handler::Proc < Handler def on_request(cli, req) begin procedure.call(cli, req) - rescue Errno::EPIPE + rescue Errno::EPIPE, ::Errno::ECONNRESET, ::Errno::ENOTCONN, ::Errno::ECONNABORTED elog("Proc::on_request: Client closed connection prematurely", LogSource) rescue elog("Proc::on_request: #{$!.class}: #{$!}\n\n#{$@.join("\n")}", LogSource) diff --git a/modules/auxiliary/server/browser_autopwn.rb b/modules/auxiliary/server/browser_autopwn.rb index 8bbdeda05b..82bbf94316 100644 --- a/modules/auxiliary/server/browser_autopwn.rb +++ b/modules/auxiliary/server/browser_autopwn.rb @@ -774,8 +774,12 @@ class Metasploit3 < Msf::Auxiliary # Reject exploits whose OS doesn't match that of the # victim. Note that host_info comes from javascript OS # detection, NOT the database. + + # Note that the os_name could be a string, a regex, or + # an array of strings and regexes. + if host_info[:os_name] != "undefined" - unless s[:os_name].include?(host_info[:os_name]) + unless client_matches_module_spec?(host_info[:os_name], s[:os_name]) vprint_status("Rejecting #{s[:name]} for non-matching OS") next end @@ -821,6 +825,29 @@ class Metasploit3 < Msf::Auxiliary return response end + + # + # Determines whether a browser string matches an exploit module specification + # Example: :os_name => ( 'Windows' | /Windows/ | ['Windows', 'Mac OS X'] ) + # + def client_matches_module_spec?(client_str, module_spec) + if module_spec.kind_of?(::String) + return !! (client_str == module_spec) + end + + if module_spec.kind_of?(::Regexp) + return !! client_str.match(module_spec) + end + + if module_spec.kind_of?(::Array) + return !! exploit_spec.map{ |spec| + client_matches_module_spec?(client_str, spec) + }.include?(true) + end + + false + end + # # Yields each module that exports autopwn_info, filtering on MATCH and EXCLUDE options # @@ -874,6 +901,8 @@ class Metasploit3 < Msf::Auxiliary os_flavor = nil os_sp = nil os_lang = nil + os_device = nil + os_vendor = nil arch = nil ua_name = nil ua_ver = nil @@ -895,15 +924,19 @@ class Metasploit3 < Msf::Auxiliary if (0 < detected_version.length) detected_version = Rex::Text.decode_base64(Rex::Text.uri_decode(detected_version)) print_status("JavaScript Report: #{detected_version}") - (os_name, os_flavor, os_sp, os_lang, arch, ua_name, ua_ver) = detected_version.split(':') + + + (os_name, os_vendor, os_flavor, os_device, os_sp, os_lang, arch, ua_name, ua_ver) = detected_version.split(':') if framework.db.active note_data = { } - note_data[:os_name] = os_name if os_name != "undefined" - note_data[:os_flavor] = os_flavor if os_flavor != "undefined" - note_data[:os_sp] = os_sp if os_sp != "undefined" - note_data[:os_lang] = os_lang if os_lang != "undefined" - note_data[:arch] = arch if arch != "undefined" + note_data[:os_name] = os_name if os_name != 'undefined' + note_data[:os_vendor] = os_vendor if os_vendor != 'undefined' + note_data[:os_flavor] = os_flavor if os_flavor != 'undefined' + note_data[:os_device] = os_device if os_device != 'undefined' + note_data[:os_sp] = os_sp if os_sp != 'undefined' + note_data[:os_lang] = os_lang if os_lang != 'undefined' + note_data[:arch] = arch if arch != 'undefined' print_status("Reporting: #{note_data.inspect}") # Reporting stuff isn't really essential since we store all @@ -959,7 +992,9 @@ class Metasploit3 < Msf::Auxiliary @targetcache[key][:host] = {} @targetcache[key][:host][:os_name] = os_name + @targetcache[key][:host][:os_vendor] = os_vendor @targetcache[key][:host][:os_flavor] = os_flavor + @targetcache[key][:host][:os_device] = os_device @targetcache[key][:host][:os_sp] = os_sp @targetcache[key][:host][:os_lang] = os_lang diff --git a/modules/exploits/android/browser/webview_addjavascriptinterface.rb b/modules/exploits/android/browser/webview_addjavascriptinterface.rb index 40c5461117..2ffed4ab19 100644 --- a/modules/exploits/android/browser/webview_addjavascriptinterface.rb +++ b/modules/exploits/android/browser/webview_addjavascriptinterface.rb @@ -66,8 +66,8 @@ class Metasploit3 < Msf::Exploit::Remote 'DefaultTarget' => 0, 'BrowserRequirements' => { :source => 'script', - :os_flavor => "Android", - :arch => ARCH_ARMLE + :os_name => /^Android/, + :arch => ARCH_ARMLE } )) end diff --git a/modules/exploits/multi/browser/firefox_escape_retval.rb b/modules/exploits/multi/browser/firefox_escape_retval.rb index de67d612ef..ebcf8fc013 100644 --- a/modules/exploits/multi/browser/firefox_escape_retval.rb +++ b/modules/exploits/multi/browser/firefox_escape_retval.rb @@ -18,7 +18,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::FF, # :ua_minver => "3.5", # :ua_maxver => "3.5", - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking, # reliable memory corruption # :vuln_test => nil, diff --git a/modules/exploits/multi/browser/mozilla_compareto.rb b/modules/exploits/multi/browser/mozilla_compareto.rb index cf49018f3d..1b34966225 100644 --- a/modules/exploits/multi/browser/mozilla_compareto.rb +++ b/modules/exploits/multi/browser/mozilla_compareto.rb @@ -20,7 +20,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::FF, # :ua_minver => "1.0", # :ua_maxver => "1.7.10", - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking, # reliable memory corruption # :vuln_test => "if (typeof InstallVersion != 'undefined') { is_vuln = true; }", diff --git a/modules/exploits/multi/browser/opera_configoverwrite.rb b/modules/exploits/multi/browser/opera_configoverwrite.rb index 72aa51c2a7..817677bf5e 100644 --- a/modules/exploits/multi/browser/opera_configoverwrite.rb +++ b/modules/exploits/multi/browser/opera_configoverwrite.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote autopwn_info({ :ua_name => HttpClients::OPERA, :ua_maxver => "9.10", - :os_name => [ OperatingSystems::WINDOWS, OperatingSystems::LINUX ], + :os_name => [ /^Windows/, /^Mac OS X/, ], :javascript => true, :rank => ExcellentRanking, # reliable cmd exec, cleans up after itself :vuln_test => nil, diff --git a/modules/exploits/osx/browser/mozilla_mchannel.rb b/modules/exploits/osx/browser/mozilla_mchannel.rb index b7de8a41ba..0285c5fe90 100644 --- a/modules/exploits/osx/browser/mozilla_mchannel.rb +++ b/modules/exploits/osx/browser/mozilla_mchannel.rb @@ -15,7 +15,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::FF, # :ua_minver => "3.6.16", # :ua_maxver => "3.6.16", - # :os_name => OperatingSystems::MAC_OSX, + # :os_name => 'Mac OS X', # :javascript => true, # :rank => NormalRanking, #}) diff --git a/modules/exploits/osx/browser/safari_metadata_archive.rb b/modules/exploits/osx/browser/safari_metadata_archive.rb index 0c6eef1bb1..6c8f1f1535 100644 --- a/modules/exploits/osx/browser/safari_metadata_archive.rb +++ b/modules/exploits/osx/browser/safari_metadata_archive.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote #autopwn_info({ # :ua_name => HttpClients::SAFARI, # :ua_maxver => '2.0.2', - # :os_name => [ OperatingSystems::MAC_OSX ], + # :os_name => [ 'Mac OS X' ], # :javascript => false, # :rank => ExcellentRanking, # reliable cmd execution # :vuln_test => nil, diff --git a/modules/exploits/osx/browser/safari_user_assisted_download_launch.rb b/modules/exploits/osx/browser/safari_user_assisted_download_launch.rb index f1d8270b9d..5188f17428 100644 --- a/modules/exploits/osx/browser/safari_user_assisted_download_launch.rb +++ b/modules/exploits/osx/browser/safari_user_assisted_download_launch.rb @@ -60,7 +60,7 @@ class Metasploit3 < Msf::Exploit::Remote 'BrowserRequirements' => { :source => 'script', :ua_name => HttpClients::SAFARI, - :os_name => OperatingSystems::MAC_OSX, + :os_name => 'Mac OS X', # On 10.6.8 (Safari 5.x), a dialog never appears unless the user # has already manually launched the dropped exe diff --git a/modules/exploits/windows/browser/adobe_flash_mp4_cprt.rb b/modules/exploits/windows/browser/adobe_flash_mp4_cprt.rb index f9273b9133..45421e9545 100644 --- a/modules/exploits/windows/browser/adobe_flash_mp4_cprt.rb +++ b/modules/exploits/windows/browser/adobe_flash_mp4_cprt.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote include Msf::Exploit::RopDb include Msf::Exploit::Remote::BrowserAutopwn autopwn_info({ - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :method => "GetVariable", :classid => "ShockwaveFlash.ShockwaveFlash", :rank => NormalRanking, # reliable memory corruption diff --git a/modules/exploits/windows/browser/adobe_flash_rtmp.rb b/modules/exploits/windows/browser/adobe_flash_rtmp.rb index e36cc12fe3..0fa3a62191 100644 --- a/modules/exploits/windows/browser/adobe_flash_rtmp.rb +++ b/modules/exploits/windows/browser/adobe_flash_rtmp.rb @@ -13,7 +13,7 @@ class Metasploit3 < Msf::Exploit::Remote include Msf::Exploit::Remote::BrowserAutopwn autopwn_info({ - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :ua_name => HttpClients::IE, :ua_minver => "6.0", :ua_maxver => "8.0", diff --git a/modules/exploits/windows/browser/adobe_toolbutton.rb b/modules/exploits/windows/browser/adobe_toolbutton.rb index 5432fbf4f3..08ab245f7d 100644 --- a/modules/exploits/windows/browser/adobe_toolbutton.rb +++ b/modules/exploits/windows/browser/adobe_toolbutton.rb @@ -49,8 +49,7 @@ class Metasploit3 < Msf::Exploit::Remote 'BrowserRequirements' => { :source => /script|headers/i, - :os_name => Msf::OperatingSystems::WINDOWS, - :os_flavor => Msf::OperatingSystems::WindowsVersions::XP, + :os_name => /^Windows XP/, :ua_name => Msf::HttpClients::IE }, 'Targets' => diff --git a/modules/exploits/windows/browser/aladdin_choosefilepath_bof.rb b/modules/exploits/windows/browser/aladdin_choosefilepath_bof.rb index 433d73d80e..326b6b426c 100644 --- a/modules/exploits/windows/browser/aladdin_choosefilepath_bof.rb +++ b/modules/exploits/windows/browser/aladdin_choosefilepath_bof.rb @@ -47,7 +47,7 @@ class Metasploit3 < Msf::Exploit::Remote :source => /script|headers/i, :clsid => "{09F68A41-2FBE-11D3-8C9D-0008C7D901B6}", :method => "ChooseFilePath", - :os_name => /win/i + :os_name => /^Windows/, }, 'Targets' => [ diff --git a/modules/exploits/windows/browser/apple_quicktime_marshaled_punk.rb b/modules/exploits/windows/browser/apple_quicktime_marshaled_punk.rb index a9d460988b..cc4ec639b4 100644 --- a/modules/exploits/windows/browser/apple_quicktime_marshaled_punk.rb +++ b/modules/exploits/windows/browser/apple_quicktime_marshaled_punk.rb @@ -13,7 +13,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :javascript => true, # :rank => NormalRanking, # reliable memory corruption diff --git a/modules/exploits/windows/browser/apple_quicktime_mime_type.rb b/modules/exploits/windows/browser/apple_quicktime_mime_type.rb index 84edee8e8d..c11f1b7cfb 100644 --- a/modules/exploits/windows/browser/apple_quicktime_mime_type.rb +++ b/modules/exploits/windows/browser/apple_quicktime_mime_type.rb @@ -14,7 +14,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::SAFARI, # :ua_maxver => '5.0.1', # :ua_maxver => '5.1.7', diff --git a/modules/exploits/windows/browser/apple_quicktime_rtsp.rb b/modules/exploits/windows/browser/apple_quicktime_rtsp.rb index 7387c651f7..4bdc997690 100644 --- a/modules/exploits/windows/browser/apple_quicktime_rtsp.rb +++ b/modules/exploits/windows/browser/apple_quicktime_rtsp.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # # No particular browser. Works on at least IE6 and Firefox 1.5.0.3 # :javascript => true, # :rank => NormalRanking, # reliable memory corruption diff --git a/modules/exploits/windows/browser/apple_quicktime_smil_debug.rb b/modules/exploits/windows/browser/apple_quicktime_smil_debug.rb index 96d57cf54b..d1b915fa95 100644 --- a/modules/exploits/windows/browser/apple_quicktime_smil_debug.rb +++ b/modules/exploits/windows/browser/apple_quicktime_smil_debug.rb @@ -13,7 +13,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking, # reliable memory corruption # :vuln_test => nil, diff --git a/modules/exploits/windows/browser/apple_quicktime_texml_font_table.rb b/modules/exploits/windows/browser/apple_quicktime_texml_font_table.rb index 3db798b445..16a0324d57 100644 --- a/modules/exploits/windows/browser/apple_quicktime_texml_font_table.rb +++ b/modules/exploits/windows/browser/apple_quicktime_texml_font_table.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking #}) diff --git a/modules/exploits/windows/browser/blackice_downloadimagefileurl.rb b/modules/exploits/windows/browser/blackice_downloadimagefileurl.rb index 28b8003a0a..a434b4f0b7 100644 --- a/modules/exploits/windows/browser/blackice_downloadimagefileurl.rb +++ b/modules/exploits/windows/browser/blackice_downloadimagefileurl.rb @@ -14,7 +14,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :javascript => true, # :rank => NormalRanking, diff --git a/modules/exploits/windows/browser/cisco_playerpt_setsource.rb b/modules/exploits/windows/browser/cisco_playerpt_setsource.rb index 6f6f1a828b..c397e34f21 100644 --- a/modules/exploits/windows/browser/cisco_playerpt_setsource.rb +++ b/modules/exploits/windows/browser/cisco_playerpt_setsource.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{9E065E4A-BD9D-4547-8F90-985DC62A5591}", # :method => "SetSource", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/cisco_playerpt_setsource_surl.rb b/modules/exploits/windows/browser/cisco_playerpt_setsource_surl.rb index 98caf4c686..b29e8b7649 100644 --- a/modules/exploits/windows/browser/cisco_playerpt_setsource_surl.rb +++ b/modules/exploits/windows/browser/cisco_playerpt_setsource_surl.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{9E065E4A-BD9D-4547-8F90-985DC62A5591}", # :method => "SetSource", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/clear_quest_cqole.rb b/modules/exploits/windows/browser/clear_quest_cqole.rb index 0f8dff21d5..ab762cc4c4 100644 --- a/modules/exploits/windows/browser/clear_quest_cqole.rb +++ b/modules/exploits/windows/browser/clear_quest_cqole.rb @@ -15,7 +15,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{94773112-72E8-11D0-A42E-00A024DED613}", # :method => "RegisterSchemaRepoFromFileByDbSet", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/crystal_reports_printcontrol.rb b/modules/exploits/windows/browser/crystal_reports_printcontrol.rb index 3a1a2953dc..b925d1d8bc 100644 --- a/modules/exploits/windows/browser/crystal_reports_printcontrol.rb +++ b/modules/exploits/windows/browser/crystal_reports_printcontrol.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => NormalRanking, # :classid => "{88DD90B6-C770-4CFF-B7A4-3AFD16BB8824}", # :method => "ServerResourceVersion" diff --git a/modules/exploits/windows/browser/hp_alm_xgo_setshapenodetype_exec.rb b/modules/exploits/windows/browser/hp_alm_xgo_setshapenodetype_exec.rb index b136a41c9f..9c325d2641 100644 --- a/modules/exploits/windows/browser/hp_alm_xgo_setshapenodetype_exec.rb +++ b/modules/exploits/windows/browser/hp_alm_xgo_setshapenodetype_exec.rb @@ -15,7 +15,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "7.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{C3B92104-B5A7-11D0-A37F-00A0248F0AF1}", # :method => "SetShapeNodeType", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/hp_loadrunner_writefilebinary.rb b/modules/exploits/windows/browser/hp_loadrunner_writefilebinary.rb index 2a9cfd1ae2..71d9465d9d 100644 --- a/modules/exploits/windows/browser/hp_loadrunner_writefilebinary.rb +++ b/modules/exploits/windows/browser/hp_loadrunner_writefilebinary.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => Rank, # :classid => "{8D9E2CC7-D94B-4977-8510-FB49C361A139}", # :method => "WriteFileBinary" diff --git a/modules/exploits/windows/browser/hp_loadrunner_writefilestring.rb b/modules/exploits/windows/browser/hp_loadrunner_writefilestring.rb index f6a01d021d..22d7172a2d 100644 --- a/modules/exploits/windows/browser/hp_loadrunner_writefilestring.rb +++ b/modules/exploits/windows/browser/hp_loadrunner_writefilestring.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :os_ver => OperatingSystems::WindowsVersions::XP, # :rank => NormalRanking, # :classid => "{8D9E2CC7-D94B-4977-8510-FB49C361A139}", diff --git a/modules/exploits/windows/browser/ibm_spss_c1sizer.rb b/modules/exploits/windows/browser/ibm_spss_c1sizer.rb index c85c94dcc8..4af85dd1bb 100644 --- a/modules/exploits/windows/browser/ibm_spss_c1sizer.rb +++ b/modules/exploits/windows/browser/ibm_spss_c1sizer.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => NormalRanking, # :classid => "{24E04EBF-014D-471F-930E-7654B1193BA9}", # :method => "TabCaption" diff --git a/modules/exploits/windows/browser/ibm_tivoli_pme_activex_bof.rb b/modules/exploits/windows/browser/ibm_tivoli_pme_activex_bof.rb index c841580762..883218d643 100644 --- a/modules/exploits/windows/browser/ibm_tivoli_pme_activex_bof.rb +++ b/modules/exploits/windows/browser/ibm_tivoli_pme_activex_bof.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn # #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :ua_minver => "6.0", # :ua_maxver => "8.0", diff --git a/modules/exploits/windows/browser/ie_cbutton_uaf.rb b/modules/exploits/windows/browser/ie_cbutton_uaf.rb index 7ea0cc7822..532f8dab45 100644 --- a/modules/exploits/windows/browser/ie_cbutton_uaf.rb +++ b/modules/exploits/windows/browser/ie_cbutton_uaf.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "8.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => GoodRanking #}) diff --git a/modules/exploits/windows/browser/ie_cgenericelement_uaf.rb b/modules/exploits/windows/browser/ie_cgenericelement_uaf.rb index 01864436ff..de6caa3a59 100644 --- a/modules/exploits/windows/browser/ie_cgenericelement_uaf.rb +++ b/modules/exploits/windows/browser/ie_cgenericelement_uaf.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote :ua_minver => "8.0", :ua_maxver => "8.0", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :rank => GoodRanking }) diff --git a/modules/exploits/windows/browser/ie_createobject.rb b/modules/exploits/windows/browser/ie_createobject.rb index 14309fb53d..c5fc357021 100644 --- a/modules/exploits/windows/browser/ie_createobject.rb +++ b/modules/exploits/windows/browser/ie_createobject.rb @@ -23,7 +23,7 @@ class Metasploit3 < Msf::Exploit::Remote # than the max by setting to 6.1 (which doesn't really exist). :ua_maxver => "6.1", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :method => [ 'CreateObject', 'GetObject' ], :classid => [ diff --git a/modules/exploits/windows/browser/indusoft_issymbol_internationalseparator.rb b/modules/exploits/windows/browser/indusoft_issymbol_internationalseparator.rb index b3f677f8cc..cf39ed622d 100644 --- a/modules/exploits/windows/browser/indusoft_issymbol_internationalseparator.rb +++ b/modules/exploits/windows/browser/indusoft_issymbol_internationalseparator.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => NormalRanking, # :classid => "{3c9dff6f-5cb0-422e-9978-d6405d10718f}", # :method => "InternationalSeparator" diff --git a/modules/exploits/windows/browser/inotes_dwa85w_bof.rb b/modules/exploits/windows/browser/inotes_dwa85w_bof.rb index 5670eedd15..a40fdc954b 100644 --- a/modules/exploits/windows/browser/inotes_dwa85w_bof.rb +++ b/modules/exploits/windows/browser/inotes_dwa85w_bof.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => Rank, # :classid => "{0F2AAAE3-7E9E-4b64-AB5D-1CA24C6ACB9C}", # :method => "Attachment_Times" diff --git a/modules/exploits/windows/browser/keyhelp_launchtripane_exec.rb b/modules/exploits/windows/browser/keyhelp_launchtripane_exec.rb index 3d8782b686..72317863d0 100644 --- a/modules/exploits/windows/browser/keyhelp_launchtripane_exec.rb +++ b/modules/exploits/windows/browser/keyhelp_launchtripane_exec.rb @@ -14,7 +14,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :javascript => true, # :rank => NormalRanking, diff --git a/modules/exploits/windows/browser/mozilla_interleaved_write.rb b/modules/exploits/windows/browser/mozilla_interleaved_write.rb index c39594143b..f62321d4fd 100644 --- a/modules/exploits/windows/browser/mozilla_interleaved_write.rb +++ b/modules/exploits/windows/browser/mozilla_interleaved_write.rb @@ -18,7 +18,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::FF, # :ua_minver => "3.6.8", # :ua_maxver => "3.6.11", - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking, # :vuln_test => "if (typeof InstallVersion != 'undefined') { is_vuln = true; }", diff --git a/modules/exploits/windows/browser/mozilla_mchannel.rb b/modules/exploits/windows/browser/mozilla_mchannel.rb index 8399836c1d..1237acf1dd 100644 --- a/modules/exploits/windows/browser/mozilla_mchannel.rb +++ b/modules/exploits/windows/browser/mozilla_mchannel.rb @@ -14,7 +14,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::FF, # :ua_minver => "3.6.16", # :ua_maxver => "3.6.16", - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :javascript => true, # :rank => NormalRanking, #}) diff --git a/modules/exploits/windows/browser/mozilla_nstreerange.rb b/modules/exploits/windows/browser/mozilla_nstreerange.rb index d239ef9219..ed1b822549 100644 --- a/modules/exploits/windows/browser/mozilla_nstreerange.rb +++ b/modules/exploits/windows/browser/mozilla_nstreerange.rb @@ -15,7 +15,7 @@ class Metasploit3 < Msf::Exploit::Remote :ua_name => HttpClients::FF, :ua_minver => "3.5", :ua_maxver => "3.6.16", - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :javascript => true, :rank => NormalRanking, :vuln_test => "if (navigator.userAgent.indexOf('Windows NT 5.1') != -1 || navigator.javaEnabled()) { is_vuln = true; }", diff --git a/modules/exploits/windows/browser/ms06_067_keyframe.rb b/modules/exploits/windows/browser/ms06_067_keyframe.rb index 607cc5e58f..4af5adb8ac 100644 --- a/modules/exploits/windows/browser/ms06_067_keyframe.rb +++ b/modules/exploits/windows/browser/ms06_067_keyframe.rb @@ -22,7 +22,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_name => HttpClients::IE, # :ua_minver => "6.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => 'DirectAnimation.PathControl', # :method => 'KeyFrame', # :rank => NormalRanking # reliable memory corruption diff --git a/modules/exploits/windows/browser/ms08_078_xml_corruption.rb b/modules/exploits/windows/browser/ms08_078_xml_corruption.rb index 31fc8794b7..8b1f4ac2ba 100644 --- a/modules/exploits/windows/browser/ms08_078_xml_corruption.rb +++ b/modules/exploits/windows/browser/ms08_078_xml_corruption.rb @@ -18,7 +18,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "7.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it #}) diff --git a/modules/exploits/windows/browser/ms09_002_memory_corruption.rb b/modules/exploits/windows/browser/ms09_002_memory_corruption.rb index 635c0a5b8a..458e8c24e3 100644 --- a/modules/exploits/windows/browser/ms09_002_memory_corruption.rb +++ b/modules/exploits/windows/browser/ms09_002_memory_corruption.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "7.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it #}) diff --git a/modules/exploits/windows/browser/ms09_072_style_object.rb b/modules/exploits/windows/browser/ms09_072_style_object.rb index c33b60fee7..23be1dd31f 100644 --- a/modules/exploits/windows/browser/ms09_072_style_object.rb +++ b/modules/exploits/windows/browser/ms09_072_style_object.rb @@ -18,7 +18,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it # :rank => LowRanking # exploitable on ie7/vista #}) diff --git a/modules/exploits/windows/browser/ms10_002_aurora.rb b/modules/exploits/windows/browser/ms10_002_aurora.rb index 31049e7c9b..d43eda0800 100644 --- a/modules/exploits/windows/browser/ms10_002_aurora.rb +++ b/modules/exploits/windows/browser/ms10_002_aurora.rb @@ -18,7 +18,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "6.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it #}) diff --git a/modules/exploits/windows/browser/ms10_018_ie_behaviors.rb b/modules/exploits/windows/browser/ms10_018_ie_behaviors.rb index 957a4d8908..af231bd7c6 100644 --- a/modules/exploits/windows/browser/ms10_018_ie_behaviors.rb +++ b/modules/exploits/windows/browser/ms10_018_ie_behaviors.rb @@ -36,7 +36,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it #}) diff --git a/modules/exploits/windows/browser/ms10_090_ie_css_clip.rb b/modules/exploits/windows/browser/ms10_090_ie_css_clip.rb index 0649d42364..624f386ce4 100644 --- a/modules/exploits/windows/browser/ms10_090_ie_css_clip.rb +++ b/modules/exploits/windows/browser/ms10_090_ie_css_clip.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :vuln_test => nil, # no way to test without just trying it #}) diff --git a/modules/exploits/windows/browser/ms11_003_ie_css_import.rb b/modules/exploits/windows/browser/ms11_003_ie_css_import.rb index 9a6010dcb2..555ca45d7b 100644 --- a/modules/exploits/windows/browser/ms11_003_ie_css_import.rb +++ b/modules/exploits/windows/browser/ms11_003_ie_css_import.rb @@ -15,7 +15,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "7.0", # Should be 6 # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # # Not strictly a vuln check, but an exploitability check since a # # specific version of .NET is required to make the ROP work. # :vuln_test => "if (/.NET CLR 2\\.0\\.50727/.test(navigator.userAgent)) { is_vuln = true }else{ is_vuln = false }", diff --git a/modules/exploits/windows/browser/ms11_050_mshtml_cobjectelement.rb b/modules/exploits/windows/browser/ms11_050_mshtml_cobjectelement.rb index 188a52c080..ada3d6273d 100644 --- a/modules/exploits/windows/browser/ms11_050_mshtml_cobjectelement.rb +++ b/modules/exploits/windows/browser/ms11_050_mshtml_cobjectelement.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "7.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS + # :os_name => /^Windows/ #}) def initialize(info={}) diff --git a/modules/exploits/windows/browser/ms12_004_midi.rb b/modules/exploits/windows/browser/ms12_004_midi.rb index fe074d86ee..29b4d7710e 100644 --- a/modules/exploits/windows/browser/ms12_004_midi.rb +++ b/modules/exploits/windows/browser/ms12_004_midi.rb @@ -16,12 +16,11 @@ class Metasploit3 < Msf::Exploit::Remote :ua_minver => "6.0", :ua_maxver => "8.0", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :vuln_test => %Q| var v = window.os_detect.getVersion(); var os_name = v['os_name']; - var os_flavor = v['os_flavor']; - if (os_name == 'Microsoft Windows' && os_flavor == 'XP') {is_vuln = true;} else { is_vuln = false; } + if (os_name.indexOf('Windows XP') == 0) {is_vuln = true;} else { is_vuln = false; } |, }) diff --git a/modules/exploits/windows/browser/ms12_037_ie_colspan.rb b/modules/exploits/windows/browser/ms12_037_ie_colspan.rb index 46d4cbf27b..544228399f 100644 --- a/modules/exploits/windows/browser/ms12_037_ie_colspan.rb +++ b/modules/exploits/windows/browser/ms12_037_ie_colspan.rb @@ -11,7 +11,7 @@ class Metasploit3 < Msf::Exploit::Remote include Msf::Exploit::Remote::HttpServer::HTML #include Msf::Exploit::Remote::BrowserAutopwn #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_minver => "8.0", # :ua_maxver => "8.0", # :rank => NormalRanking, # reliable memory corruption diff --git a/modules/exploits/windows/browser/ms13_022_silverlight_script_object.rb b/modules/exploits/windows/browser/ms13_022_silverlight_script_object.rb index aad80f2983..f414fe3bfd 100644 --- a/modules/exploits/windows/browser/ms13_022_silverlight_script_object.rb +++ b/modules/exploits/windows/browser/ms13_022_silverlight_script_object.rb @@ -59,7 +59,7 @@ class Metasploit3 < Msf::Exploit::Remote 'BrowserRequirements' => { :source => /script|headers/i, - :os_name => Msf::OperatingSystems::WINDOWS, + :os_name => /^Windows/, :ua_name => Msf::HttpClients::IE, :silverlight => "true" }, diff --git a/modules/exploits/windows/browser/ms13_037_svg_dashstyle.rb b/modules/exploits/windows/browser/ms13_037_svg_dashstyle.rb index 8dc9aa65a7..322f8085c7 100644 --- a/modules/exploits/windows/browser/ms13_037_svg_dashstyle.rb +++ b/modules/exploits/windows/browser/ms13_037_svg_dashstyle.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "8.0", # :ua_maxver => "8.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => Rank #}) diff --git a/modules/exploits/windows/browser/ms13_080_cdisplaypointer.rb b/modules/exploits/windows/browser/ms13_080_cdisplaypointer.rb index 33b35ee5d0..4b61f98a88 100644 --- a/modules/exploits/windows/browser/ms13_080_cdisplaypointer.rb +++ b/modules/exploits/windows/browser/ms13_080_cdisplaypointer.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote :ua_minver => "8.0", :ua_maxver => "8.0", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :rank => NormalRanking }) diff --git a/modules/exploits/windows/browser/ms13_090_cardspacesigninhelper.rb b/modules/exploits/windows/browser/ms13_090_cardspacesigninhelper.rb index 2de5599e9d..2e19c9a857 100644 --- a/modules/exploits/windows/browser/ms13_090_cardspacesigninhelper.rb +++ b/modules/exploits/windows/browser/ms13_090_cardspacesigninhelper.rb @@ -62,7 +62,7 @@ class Metasploit3 < Msf::Exploit::Remote :source => /script|headers/i, :clsid => "{19916E01-B44E-4E31-94A4-4696DF46157B}", :method => "requiredClaims", - :os_name => Msf::OperatingSystems::WINDOWS + :os_name => /^Windows/ }, 'Targets' => [ @@ -379,4 +379,4 @@ cccccccc ?? ??? 001f58d4 48 00 9c 02 84 14 5c 75-e8 ac 9c 02 1b 00 00 00 H.....\u........ 001f58e4 e8 52 19 00 ed 7e a1 ea-00 01 08 ff 08 00 00 00 .R...~.......... 001f58f4 90 01 00 00 f0 00 00 00-00 00 00 00 01 00 00 00 ................ -=end \ No newline at end of file +=end diff --git a/modules/exploits/windows/browser/msxml_get_definition_code_exec.rb b/modules/exploits/windows/browser/msxml_get_definition_code_exec.rb index a821d4759c..f265b49e00 100644 --- a/modules/exploits/windows/browser/msxml_get_definition_code_exec.rb +++ b/modules/exploits/windows/browser/msxml_get_definition_code_exec.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote :ua_minver => "6.0", :ua_maxver => "9.0", :javascript => true, - :os_name => OperatingSystems::WINDOWS, + :os_name => /^Windows/, :classid => "{f6D90f11-9c73-11d3-b32e-00C04f990bb4}", :method => "definition", :rank => GoodRanking diff --git a/modules/exploits/windows/browser/novell_groupwise_gwcls1_actvx.rb b/modules/exploits/windows/browser/novell_groupwise_gwcls1_actvx.rb index f5efd9b11a..762d475e36 100644 --- a/modules/exploits/windows/browser/novell_groupwise_gwcls1_actvx.rb +++ b/modules/exploits/windows/browser/novell_groupwise_gwcls1_actvx.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => NormalRanking, # :classid => "{601D7813-408F-11D1-98D7-444553540000}", # :method => "SetEngine" diff --git a/modules/exploits/windows/browser/ntr_activex_check_bof.rb b/modules/exploits/windows/browser/ntr_activex_check_bof.rb index 9b72d04c9f..db181598ff 100644 --- a/modules/exploits/windows/browser/ntr_activex_check_bof.rb +++ b/modules/exploits/windows/browser/ntr_activex_check_bof.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{E6ACF817-0A85-4EBE-9F0A-096C6488CFEA}", # :method => "Check", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/ntr_activex_stopmodule.rb b/modules/exploits/windows/browser/ntr_activex_stopmodule.rb index b7d998d5e8..bd5393157c 100644 --- a/modules/exploits/windows/browser/ntr_activex_stopmodule.rb +++ b/modules/exploits/windows/browser/ntr_activex_stopmodule.rb @@ -16,7 +16,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "7.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{E6ACF817-0A85-4EBE-9F0A-096C6488CFEA}", # :method => "StopModule", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/oracle_autovue_setmarkupmode.rb b/modules/exploits/windows/browser/oracle_autovue_setmarkupmode.rb index 0da727daa7..3628c48b2c 100644 --- a/modules/exploits/windows/browser/oracle_autovue_setmarkupmode.rb +++ b/modules/exploits/windows/browser/oracle_autovue_setmarkupmode.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => "{B6FCC215-D303-11D1-BC6C-0000C078797F}", # :method => "SetMarkupMode", # :rank => NormalRanking diff --git a/modules/exploits/windows/browser/quickr_qp2_bof.rb b/modules/exploits/windows/browser/quickr_qp2_bof.rb index 8e173c5c33..1b16a6413a 100644 --- a/modules/exploits/windows/browser/quickr_qp2_bof.rb +++ b/modules/exploits/windows/browser/quickr_qp2_bof.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => Rank, # :classid => "{05D96F71-87C6-11D3-9BE4-00902742D6E0}", # :method => "Attachment_Times" diff --git a/modules/exploits/windows/browser/siemens_solid_edge_selistctrlx.rb b/modules/exploits/windows/browser/siemens_solid_edge_selistctrlx.rb index 37f3aeeb95..d87a146397 100644 --- a/modules/exploits/windows/browser/siemens_solid_edge_selistctrlx.rb +++ b/modules/exploits/windows/browser/siemens_solid_edge_selistctrlx.rb @@ -17,7 +17,7 @@ class Metasploit3 < Msf::Exploit::Remote # :ua_minver => "6.0", # :ua_maxver => "9.0", # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => Rank, # :classid => "{5D6A72E6-C12F-4C72-ABF3-32F6B70EBB0D}" #}) diff --git a/modules/exploits/windows/browser/synactis_connecttosynactis_bof.rb b/modules/exploits/windows/browser/synactis_connecttosynactis_bof.rb index 39741a0c92..fc061b50b4 100644 --- a/modules/exploits/windows/browser/synactis_connecttosynactis_bof.rb +++ b/modules/exploits/windows/browser/synactis_connecttosynactis_bof.rb @@ -19,7 +19,7 @@ class Metasploit3 < Msf::Exploit::Remote # :javascript => true, # :classid => "{C80CAF1F-C58E-11D5-A093-006097ED77E6}", # :method => "ConnectToSynactis", - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :rank => AverageRanking #}) diff --git a/modules/exploits/windows/browser/tom_sawyer_tsgetx71ex552.rb b/modules/exploits/windows/browser/tom_sawyer_tsgetx71ex552.rb index a749d68d7e..cbfe4a67dc 100644 --- a/modules/exploits/windows/browser/tom_sawyer_tsgetx71ex552.rb +++ b/modules/exploits/windows/browser/tom_sawyer_tsgetx71ex552.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn # #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :ua_minver => "6.0", # :ua_maxver => "8.0", diff --git a/modules/exploits/windows/browser/wellintech_kingscada_kxclientdownload.rb b/modules/exploits/windows/browser/wellintech_kingscada_kxclientdownload.rb index a493e8b846..64907de362 100644 --- a/modules/exploits/windows/browser/wellintech_kingscada_kxclientdownload.rb +++ b/modules/exploits/windows/browser/wellintech_kingscada_kxclientdownload.rb @@ -42,7 +42,7 @@ class Metasploit3 < Msf::Exploit::Remote 'BrowserRequirements' => { :source => /script|headers/i, - :os_name => Msf::OperatingSystems::WINDOWS, + :os_name => /^Windows/, :ua_name => /MSIE|KXCLIE/i }, 'Payload' => diff --git a/modules/exploits/windows/browser/winzip_fileview.rb b/modules/exploits/windows/browser/winzip_fileview.rb index c45e9cc946..efdc583d37 100644 --- a/modules/exploits/windows/browser/winzip_fileview.rb +++ b/modules/exploits/windows/browser/winzip_fileview.rb @@ -14,7 +14,7 @@ class Metasploit3 < Msf::Exploit::Remote #autopwn_info({ # :ua_name => HttpClients::IE, # :javascript => true, - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :classid => '{A09AE68F-B14D-43ED-B713-BA413F034904}', # :method => 'CreateNewFolderFromName', # :rank => NormalRanking # reliable memory corruption diff --git a/modules/exploits/windows/browser/wmi_admintools.rb b/modules/exploits/windows/browser/wmi_admintools.rb index 07fbf4052a..e887578a82 100644 --- a/modules/exploits/windows/browser/wmi_admintools.rb +++ b/modules/exploits/windows/browser/wmi_admintools.rb @@ -12,7 +12,7 @@ class Metasploit3 < Msf::Exploit::Remote #include Msf::Exploit::Remote::BrowserAutopwn # #autopwn_info({ - # :os_name => OperatingSystems::WINDOWS, + # :os_name => /^Windows/, # :ua_name => HttpClients::IE, # :rank => NormalRanking, # :vuln_test => nil,