Class: Rex::Exploitation::JavascriptOSDetect

Inherits:
JSObfu
  • Object
show all
Defined in:
lib/rex/exploitation/javascriptosdetect.rb

Overview

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_sp - OS service pack (e.g.: “SP2”, will be empty on non-Windows) os_lang - OS language (e.g.: “en-us”) 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

The following functions work on the version returned in obj.ua_version

ua_ver_cmp(a, b): returns -1, 0, or 1 based on whether a < b, a == b, or a > b respectively ua_ver_lt(a, b): returns true if a < b ua_ver_gt(a, b): returns true if a > b ua_ver_eq(a, b): returns true if a == b

Instance Attribute Summary

Attributes inherited from JSObfu

#ast

Instance Method Summary collapse

Methods inherited from JSObfu

#<<, #obfuscate, #sym, #to_s

Constructor Details

#initialize(custom_js = '', opts = {}) ⇒ JavascriptOSDetect

Returns a new instance of JavascriptOSDetect.



31
32
33
34
35
36
37
38
# File 'lib/rex/exploitation/javascriptosdetect.rb', line 31

def initialize(custom_js = '', opts = {})
  @js = custom_js
  @js += ::File.read(::File.join(::File.dirname(__FILE__), "javascriptosdetect.js"))

  super @js

  return @js
end