intrigue-ident 0.49 → 0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/lib/checks/adobe.rb +13 -0
- data/lib/checks/amazon.rb +20 -9
- data/lib/checks/apache.rb +14 -0
- data/lib/checks/atlassian.rb +5 -2
- data/lib/checks/automattic.rb +51 -0
- data/lib/checks/banu.rb +28 -0
- data/lib/checks/base.rb +11 -0
- data/lib/checks/cisco.rb +12 -0
- data/lib/checks/citrix.rb +14 -0
- data/lib/checks/cloudflare.rb +8 -8
- data/lib/checks/craft.rb +25 -0
- data/lib/checks/docuwiki.rb +25 -0
- data/lib/checks/drupal.rb +4 -2
- data/lib/checks/f5.rb +14 -1
- data/lib/checks/generic.rb +19 -4
- data/lib/checks/gitlab.rb +4 -0
- data/lib/checks/google.rb +12 -1
- data/lib/checks/ibm.rb +63 -0
- data/lib/checks/ivanti.rb +27 -0
- data/lib/checks/jamf.rb +26 -0
- data/lib/checks/jekyll.rb +28 -0
- data/lib/checks/jive.rb +25 -0
- data/lib/checks/joomla.rb +1 -0
- data/lib/checks/jupyter.rb +26 -0
- data/lib/checks/lighttpd.rb +28 -0
- data/lib/checks/mailchimp.rb +25 -0
- data/lib/checks/microsoft.rb +39 -7
- data/lib/checks/openresty.rb +25 -0
- data/lib/checks/oracle.rb +59 -3
- data/lib/checks/pantheon.rb +26 -0
- data/lib/checks/php.rb +12 -1
- data/lib/checks/ruckus_wireless.rb +24 -0
- data/lib/checks/tableau.rb +26 -0
- data/lib/checks/zeit.rb +28 -0
- data/lib/checks/zimbra.rb +24 -0
- data/lib/checks/zscaler.rb +1 -1
- data/lib/intrigue-ident.rb +5 -5
- metadata +19 -2
@@ -0,0 +1,25 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Docuwiki < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Docuwiki",
|
11
|
+
:product => "Docuwiki",
|
12
|
+
:version => nil,
|
13
|
+
:match_type => :content_headers,
|
14
|
+
:match_content => /DokuWiki=/,
|
15
|
+
:match_details =>"Cookie match",
|
16
|
+
:references => ["https://www.dokuwiki.org/dokuwiki"],
|
17
|
+
:examples => ["https://docs.foxycart.com:443"],
|
18
|
+
:paths => ["#{url}"]
|
19
|
+
}
|
20
|
+
]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/checks/drupal.rb
CHANGED
@@ -9,6 +9,7 @@ module Check
|
|
9
9
|
:type => "application",
|
10
10
|
:vendor => "Drupal",
|
11
11
|
:product => "Drupal",
|
12
|
+
:tags => ["CMS"],
|
12
13
|
:match_details => "Drupal CMS",
|
13
14
|
:version => nil,
|
14
15
|
:match_type => :content_body,
|
@@ -22,12 +23,13 @@ module Check
|
|
22
23
|
:type => "application",
|
23
24
|
:vendor => "Drupal",
|
24
25
|
:product => "Drupal",
|
26
|
+
:tags => ["CMS"],
|
25
27
|
:match_details => "Drupal headers",
|
26
28
|
:version => nil,
|
27
29
|
:match_type => :content_headers,
|
28
|
-
:match_content => /x-
|
30
|
+
:match_content => /x-generator: Drupal/,
|
29
31
|
:dynamic_version => lambda { |x|
|
30
|
-
_first_header_capture(x,/x-generator: Drupal\ ([0-9]+)\ \(
|
32
|
+
_first_header_capture(x,/x-generator: Drupal\ ([0-9]+)\ \(/i,)
|
31
33
|
},
|
32
34
|
:paths => ["#{url}"]
|
33
35
|
}
|
data/lib/checks/f5.rb
CHANGED
@@ -9,7 +9,7 @@ module Check
|
|
9
9
|
:type => "application",
|
10
10
|
:vendor => "F5",
|
11
11
|
:product =>"BIG-IP APM",
|
12
|
-
:match_details =>"F5 BIG-IP APM",
|
12
|
+
:match_details =>"F5 BIG-IP APM default cookie",
|
13
13
|
:tags => ["tech:load_balancer"],
|
14
14
|
:version => nil,
|
15
15
|
:match_type => :content_cookies,
|
@@ -17,6 +17,19 @@ module Check
|
|
17
17
|
:hide => false,
|
18
18
|
:paths => ["#{url}"]
|
19
19
|
},
|
20
|
+
{
|
21
|
+
:type => "application",
|
22
|
+
:vendor => "F5",
|
23
|
+
:product =>"BIG-IP APM",
|
24
|
+
:match_details =>"F5 BIG-IP APM default logo",
|
25
|
+
:tags => ["tech:load_balancer"],
|
26
|
+
:version => nil,
|
27
|
+
:references => ["https://support.f5.com/kb/en-us/products/big-ip_apm/manuals/product/apm-customization-11-6-0/3.html"],
|
28
|
+
:match_type => :content_body,
|
29
|
+
:match_content => /<img src="\/public\/images\/my\/tr.gif\//,
|
30
|
+
:hide => false,
|
31
|
+
:paths => ["#{url}"]
|
32
|
+
},
|
20
33
|
{
|
21
34
|
:type => "hardware",
|
22
35
|
:vendor => "F5",
|
data/lib/checks/generic.rb
CHANGED
@@ -6,8 +6,22 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:type => "
|
10
|
-
:
|
9
|
+
:type => "none",
|
10
|
+
:vendor => nil,
|
11
|
+
:product =>"Authentication Required",
|
12
|
+
:match_details =>"www-authenticate header",
|
13
|
+
:tags => [],
|
14
|
+
:version => nil,
|
15
|
+
:hide => true,
|
16
|
+
:match_type => :content_headers,
|
17
|
+
:match_content => /^www-authenticate:.*$/,
|
18
|
+
:paths => ["#{url}"],
|
19
|
+
:examples => ["https://160.69.1.115:443"]
|
20
|
+
},
|
21
|
+
{
|
22
|
+
:type => "none",
|
23
|
+
:vendor => nil,
|
24
|
+
:product => "Generic Unauthorized",
|
11
25
|
:match_details =>"Generic Unauthorized",
|
12
26
|
:tags => ["error_page"],
|
13
27
|
:version => nil,
|
@@ -17,8 +31,9 @@ module Check
|
|
17
31
|
:paths => ["#{url}"]
|
18
32
|
},
|
19
33
|
{
|
20
|
-
:type => "
|
21
|
-
:
|
34
|
+
:type => "none",
|
35
|
+
:vendor => nil,
|
36
|
+
:product => "Content Missing (404)",
|
22
37
|
:match_details =>"Content Missing (404) - Could be an API, or just serving something at another location. TODO ... is this ECS-specific? (check header)",
|
23
38
|
:tags => ["error_page"],
|
24
39
|
:version => nil,
|
data/lib/checks/gitlab.rb
CHANGED
@@ -13,6 +13,10 @@ module Check
|
|
13
13
|
:version => nil,
|
14
14
|
:match_type => :content_cookies,
|
15
15
|
:match_content => /_gitlab_session/i,
|
16
|
+
:dynamic_version => lambda{ |x|
|
17
|
+
_first_body_capture(x,/window.gon={};gon.api_version=\"v([0-9\.])\"/i)
|
18
|
+
},
|
19
|
+
:examples => [ ],
|
16
20
|
:paths => ["#{url}"]
|
17
21
|
}
|
18
22
|
]
|
data/lib/checks/google.rb
CHANGED
@@ -6,7 +6,7 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:type => "
|
9
|
+
:type => "service",
|
10
10
|
:vendor => "Google",
|
11
11
|
:product => "Hosted",
|
12
12
|
:match_details => "Google Missing Page",
|
@@ -15,6 +15,17 @@ module Check
|
|
15
15
|
:match_content => /The requested URL <code>\/<\/code> was not found on this server\./,
|
16
16
|
:hide => true,
|
17
17
|
:paths => ["#{url}"]
|
18
|
+
},
|
19
|
+
{
|
20
|
+
:type => "application",
|
21
|
+
:vendor => "Google",
|
22
|
+
:product =>"Search Appliance",
|
23
|
+
:match_details =>"server header reports google search appliance",
|
24
|
+
:version => nil,
|
25
|
+
:match_type => :content_headers,
|
26
|
+
:match_content => /server: Google Search Appliance/i,
|
27
|
+
:paths => ["#{url}"],
|
28
|
+
:examples => ["http://161.107.1.43:80"]
|
18
29
|
}
|
19
30
|
]
|
20
31
|
end
|
data/lib/checks/ibm.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Ibm < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "IBM",
|
11
|
+
:product =>"Datapower",
|
12
|
+
:references => ["https://www.ibm.com/developerworks/community/blogs/HermannSW/entry/datapower_x_backside_transport_transfer_encoding_and_connection_header_fields9?lang=en"],
|
13
|
+
:version => nil,
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:match_content => /X-Backside-Transport:/i,
|
16
|
+
:match_details =>"header thrown by ibm datapower (on error?)",
|
17
|
+
:examples => ["https://css-ewebsvcs.freddiemac.com:443"],
|
18
|
+
:paths => ["#{url}"]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
:type => "application",
|
22
|
+
:vendor => "IBM",
|
23
|
+
:product =>"IBM Security Access Manager for Web",
|
24
|
+
:references => ["https://www.ibm.com/support/knowledgecenter/SSPREK_9.0.2.1/com.ibm.isam.doc/wrp_config/concept/con_sam_intro.html"],
|
25
|
+
:version => nil,
|
26
|
+
:match_type => :content_headers,
|
27
|
+
:match_content => /www-authenticate: Basic realm=\"IBM Security Access Manager for Web\"/i,
|
28
|
+
:match_details =>"IBM security access manager login prompt",
|
29
|
+
:examples => ["https://161.107.22.69:443"],
|
30
|
+
:paths => ["#{url}"]
|
31
|
+
},
|
32
|
+
{
|
33
|
+
:type => "application",
|
34
|
+
:vendor => "IBM",
|
35
|
+
:product =>"Tivoli Access Manager for e-business",
|
36
|
+
:references => ["https://www.ibm.com/support/knowledgecenter/en/SSPREK_6.1.0/com.ibm.itame.doc_6.1/am61_qsg_en.htm"],
|
37
|
+
:version => nil,
|
38
|
+
:match_type => :content_body,
|
39
|
+
:match_content => /<title>Access Manager for e-Business Login/i,
|
40
|
+
:match_details =>"Generic Ibm tivoli copyright",
|
41
|
+
:examples => ["https://161.107.1.22:443"],
|
42
|
+
:paths => ["#{url}"]
|
43
|
+
},
|
44
|
+
{
|
45
|
+
:type => "application",
|
46
|
+
:vendor => "IBM",
|
47
|
+
:product =>"WebSEAL",
|
48
|
+
:references => ["https://www.ibm.com/support/knowledgecenter/en/SSPREK_8.0.1.2/com.ibm.isamw.doc_8.0.1.2/wrp_config/task/tsk_submt_form_data_ws.html"],
|
49
|
+
:version => nil,
|
50
|
+
:match_type => :content_body,
|
51
|
+
:match_content => /<form method=\"POST\" action=\"\/pkmslogin.form\">/i,
|
52
|
+
:match_details =>"form action to submit to webseal (on ourselves)",
|
53
|
+
:examples => ["https://pseuat.fmrei.com:443"],
|
54
|
+
:paths => ["#{url}"]
|
55
|
+
}
|
56
|
+
|
57
|
+
]
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Ivanti < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Ivanti",
|
11
|
+
:tags => [],
|
12
|
+
:product =>"LANDESK Appliance",
|
13
|
+
:match_details =>"matched title",
|
14
|
+
:match_type => :content_body,
|
15
|
+
:version => nil,
|
16
|
+
:references => ["https://community.ivanti.com/community/all-products/systems/cloudservices"],
|
17
|
+
:match_content => /<title>LANDESK\(R\) Cloud Services Appliance/i,
|
18
|
+
:examples => ["https://techcentral.hormel.com/"],
|
19
|
+
:verify => ["aG9ybWVsZm9vZHMjSW50cmlndWU6OkVudGl0eTo6VXJpI2h0dHBzOi8vdGVjaGNlbnRyYWwuaG9ybWVsLmNvbTo0NDM="],
|
20
|
+
:paths => ["#{url}"]
|
21
|
+
}
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/checks/jamf.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Jamf < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Jamf",
|
11
|
+
:tags => [],
|
12
|
+
:product =>"Pro",
|
13
|
+
:match_details =>"jamf pro login page",
|
14
|
+
:match_type => :content_body,
|
15
|
+
:version => nil,
|
16
|
+
:dynamic_version => lambda { |x| _first_body_capture(x,/<title>Jamf Pro Login - Jamf Pro v(.*)</) },
|
17
|
+
:match_content => /<title>Jamf Pro Login - Jamf Pro v/i,
|
18
|
+
:examples => ["https://98.99.248.54:8443"],
|
19
|
+
:paths => ["#{url}"]
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Jekyll < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "service",
|
10
|
+
:vendor =>"Jekyll",
|
11
|
+
:product =>"Jekyll",
|
12
|
+
:match_details =>"server header for Jekyll",
|
13
|
+
:references => ["https://jekyllrb.com/"],
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /<meta name="generator" content="Jekyll v3.7.3"/i,
|
16
|
+
:dynamic_version => lambda { |x|
|
17
|
+
_first_body_capture(x,/<meta name="generator" content="Jekyll v(.*)"/i)
|
18
|
+
},
|
19
|
+
:examples => ["http://github.io:80"],
|
20
|
+
:paths => ["#{url}"]
|
21
|
+
}
|
22
|
+
]
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/checks/jive.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Jive < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "service",
|
10
|
+
:vendor => "Jive",
|
11
|
+
:tags => [],
|
12
|
+
:product =>"Platform",
|
13
|
+
:match_details =>"jive login page",
|
14
|
+
:match_type => :content_cookies,
|
15
|
+
:version => nil,
|
16
|
+
:match_content => /jive.login.ts=/i,
|
17
|
+
:examples => ["https://www.gsd.ouroath.com:443"],
|
18
|
+
:paths => ["#{url}"]
|
19
|
+
}
|
20
|
+
]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/checks/joomla.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Jupyter < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Jupyter",
|
11
|
+
:tags => [],
|
12
|
+
:product =>"Notebook",
|
13
|
+
:match_details =>"matched jupyterhub header",
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:version => nil,
|
16
|
+
:dynamic_version => lambda { |x| _first_header_capture(x,/^x-jupyterhub-version: (.*)$/) },
|
17
|
+
:match_content => /x-jupyterhub-version:/i,
|
18
|
+
:examples => ["https://18.18.154.11:443"],
|
19
|
+
:paths => ["#{url}"]
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Lighttpd < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Lighttpd",
|
11
|
+
:tags => [],
|
12
|
+
:product =>"Lighttpd",
|
13
|
+
:match_details =>"server header",
|
14
|
+
:version => nil,
|
15
|
+
:match_type => :content_headers,
|
16
|
+
:match_content => /server: lighttpd/i,
|
17
|
+
:dynamic_version => lambda { |x|
|
18
|
+
_first_header_capture(x,/server: lighttpd\/(.*)/i,)
|
19
|
+
},
|
20
|
+
:examples => ["http://98.99.246.234:80"],
|
21
|
+
:paths => ["#{url}"]
|
22
|
+
}
|
23
|
+
]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Mailchimp < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Mailchimp",
|
11
|
+
:product =>"Mandrill",
|
12
|
+
:match_details =>"login page",
|
13
|
+
:match_type => :content_body,
|
14
|
+
:version => nil,
|
15
|
+
:match_content => /<title>Log in to Mandrill/i,
|
16
|
+
:paths => ["#{url}"],
|
17
|
+
:examples => ["http://107.20.49.246:80"]
|
18
|
+
}
|
19
|
+
]
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/checks/microsoft.rb
CHANGED
@@ -10,7 +10,7 @@ module Check
|
|
10
10
|
:vendor => "Microsoft",
|
11
11
|
:product =>"ASP.NET",
|
12
12
|
:version => nil,
|
13
|
-
:dynamic_version => lambda{|x| x
|
13
|
+
:dynamic_version => lambda{|x| _body(x).scan(/ASP.NET Version:(.*)$/)[0].first.chomp },
|
14
14
|
:tags => ["error_page"],
|
15
15
|
:match_type => :content_body,
|
16
16
|
:match_content => /^.*ASP.NET is configured.*$/i,
|
@@ -22,7 +22,7 @@ module Check
|
|
22
22
|
:vendor => "Microsoft",
|
23
23
|
:product =>"ASP.NET",
|
24
24
|
:version => nil,
|
25
|
-
:dynamic_version => lambda{|x| x
|
25
|
+
:dynamic_version => lambda{|x| _body(x).scan(/ASP.NET Version:(.*)$/i)[0].first.chomp if x["details"]["hidden_response_data"].scan(/ASP.NET Version:(.*)$/i)[0] },
|
26
26
|
:match_type => :content_headers,
|
27
27
|
:match_content => /^x-aspnet-version:.*$/i,
|
28
28
|
:match_details =>"X-AspNet Header",
|
@@ -48,6 +48,18 @@ module Check
|
|
48
48
|
:match_content => /ASP.NET_SessionId.*$/i,
|
49
49
|
:paths => ["#{url}"]
|
50
50
|
},
|
51
|
+
{
|
52
|
+
:type => "application",
|
53
|
+
:vendor => "Microsoft",
|
54
|
+
:product =>"ASP.NET",
|
55
|
+
:match_details =>"ASPXAUTH cookie",
|
56
|
+
:version => nil,
|
57
|
+
:references => ["https://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/claims-auth---aspxauth-cookie-remains"],
|
58
|
+
:match_type => :content_cookies,
|
59
|
+
:match_content => /ASPXAUTH=/i,
|
60
|
+
:examples => ["https://marketplace.overdrive.com/Account/Login"],
|
61
|
+
:paths => ["#{url}"]
|
62
|
+
},
|
51
63
|
{
|
52
64
|
:type => "application",
|
53
65
|
:vendor => "Microsoft",
|
@@ -186,6 +198,29 @@ module Check
|
|
186
198
|
:match_content => /HTTP Error 503. The service is unavailable./,
|
187
199
|
:paths => ["#{url}"]
|
188
200
|
},
|
201
|
+
{
|
202
|
+
:type => "application",
|
203
|
+
:vendor =>"Microsoft",
|
204
|
+
:product =>"Kestrel",
|
205
|
+
:references => ["https://stackify.com/what-is-kestrel-web-server/"],
|
206
|
+
:match_details =>"kestrel in server header",
|
207
|
+
:version => nil,
|
208
|
+
:match_type => :content_headers,
|
209
|
+
:match_content => /server: Kestrel/i,
|
210
|
+
:examples => ["http://partner-staging.jet.com:80"],
|
211
|
+
:paths => ["#{url}"]
|
212
|
+
},
|
213
|
+
{
|
214
|
+
:type => "service",
|
215
|
+
:vendor =>"Microsoft",
|
216
|
+
:product =>"Office 365 API",
|
217
|
+
:match_details =>"office 365 api auth cookie",
|
218
|
+
:version => nil,
|
219
|
+
:match_type => :content_cookies,
|
220
|
+
:match_content => /x-ms-gateway-slice/i,
|
221
|
+
:examples => ["http://autodiscover.jet.com:80"],
|
222
|
+
:paths => ["#{url}"]
|
223
|
+
},
|
189
224
|
{
|
190
225
|
:type => "service",
|
191
226
|
:vendor =>"Microsoft",
|
@@ -197,7 +232,6 @@ module Check
|
|
197
232
|
:examples => ["http://outlook.newscorp.com:80"],
|
198
233
|
:paths => ["#{url}"]
|
199
234
|
},
|
200
|
-
|
201
235
|
{
|
202
236
|
:type => "application",
|
203
237
|
:vendor => "Microsoft",
|
@@ -206,7 +240,7 @@ module Check
|
|
206
240
|
:version => nil,
|
207
241
|
:match_type => :content_headers,
|
208
242
|
:match_content => /x-owa-version/,
|
209
|
-
:dynamic_version => lambda { |x| _first_header_capture(/x-owa-version:(.*)/) },
|
243
|
+
:dynamic_version => lambda { |x| _first_header_capture(x, /x-owa-version:(.*)/) },
|
210
244
|
:paths => ["#{url}"]
|
211
245
|
},
|
212
246
|
{
|
@@ -217,9 +251,7 @@ module Check
|
|
217
251
|
:version => nil,
|
218
252
|
:match_type => :content_body,
|
219
253
|
:match_content => /OwaPage\ =\ ASP.auth_logon_aspx/,
|
220
|
-
:dynamic_version => lambda { |x|
|
221
|
-
_first_body_capture x, /href=\"\/owa\/auth\/(.*)\/themes\/resources\/favicon.ico/
|
222
|
-
},
|
254
|
+
:dynamic_version => lambda { |x| _first_body_capture x, /href=\"\/owa\/auth\/(.*)\/themes\/resources\/favicon.ico/ },
|
223
255
|
:paths => ["#{url}"]
|
224
256
|
},
|
225
257
|
{
|