intrigue-ident 0.4 → 0.6
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 +0 -1
- data/Gemfile.lock +0 -6
- data/data/logos/apache.png +0 -0
- data/data/logos/generic.png +0 -0
- data/data/logos/oracle_java.png +0 -0
- data/data/logos/php.png +0 -0
- data/data/logos/varnish.png +0 -0
- data/intrigue-ident.gemspec +2 -2
- data/lib/checks/acquia.rb +26 -0
- data/lib/checks/adobe.rb +38 -0
- data/lib/checks/akamai.rb +6 -4
- data/lib/checks/amazon.rb +54 -8
- data/lib/checks/apache.rb +113 -0
- data/lib/checks/aruba.rb +6 -3
- data/lib/checks/atlassian.rb +46 -28
- data/lib/checks/automattic.rb +189 -0
- data/lib/checks/axis.rb +24 -0
- data/lib/checks/banu.rb +28 -0
- data/lib/checks/base.rb +58 -0
- data/lib/checks/checkpoint.rb +55 -0
- data/lib/checks/chef.rb +16 -12
- data/lib/checks/cisco.rb +85 -12
- data/lib/checks/citrix.rb +81 -6
- data/lib/checks/cloudflare.rb +40 -30
- data/lib/checks/cpanel.rb +8 -6
- data/lib/checks/craft.rb +25 -0
- data/lib/checks/django.rb +8 -6
- data/lib/checks/docuwiki.rb +25 -0
- data/lib/checks/drupal.rb +25 -8
- data/lib/checks/f5.rb +35 -7
- data/lib/checks/fastly.rb +22 -7
- data/lib/checks/generic.rb +34 -6
- data/lib/checks/gitlab.rb +12 -6
- data/lib/checks/google.rb +19 -6
- data/lib/checks/grafana.rb +8 -6
- data/lib/checks/groovy.rb +24 -0
- data/lib/checks/heroku.rb +27 -0
- data/lib/checks/hp.rb +25 -0
- data/lib/checks/ibm.rb +77 -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/jenkins.rb +24 -18
- data/lib/checks/jive.rb +25 -0
- data/lib/checks/jobvite.rb +25 -0
- data/lib/checks/joomla.rb +9 -6
- data/lib/checks/jupyter.rb +26 -0
- data/lib/checks/lighttpd.rb +28 -0
- data/lib/checks/limesuvey.rb +8 -6
- data/lib/checks/lithium.rb +15 -11
- data/lib/checks/lotus.rb +27 -0
- data/lib/checks/magento.rb +8 -6
- data/lib/checks/mailchimp.rb +25 -0
- data/lib/checks/mcafee.rb +8 -6
- data/lib/checks/mediawiki.rb +31 -32
- data/lib/checks/microsoft.rb +240 -34
- data/lib/checks/microtik.rb +27 -0
- data/lib/checks/nagios.rb +8 -6
- data/lib/checks/new_relic.rb +25 -0
- data/lib/checks/nginx.rb +40 -0
- data/lib/checks/okta.rb +25 -0
- data/lib/checks/ookla.rb +27 -0
- data/lib/checks/openresty.rb +25 -0
- data/lib/checks/oracle.rb +208 -17
- data/lib/checks/palo_alto.rb +6 -4
- data/lib/checks/pantheon.rb +26 -0
- data/lib/checks/pardot.rb +8 -6
- data/lib/checks/perfectsense.rb +27 -0
- data/lib/checks/pfsense.rb +8 -9
- data/lib/checks/php.rb +41 -0
- data/lib/checks/phpmyadmin.rb +8 -6
- data/lib/checks/ping_identity.rb +27 -0
- data/lib/checks/pivotal.rb +24 -0
- data/lib/checks/plesk.rb +41 -0
- data/lib/checks/pulse_secure.rb +27 -0
- data/lib/checks/rabbitmq.rb +15 -11
- data/lib/checks/restlet.rb +28 -0
- data/lib/checks/ruckus_wireless.rb +24 -0
- data/lib/checks/sailpoint.rb +27 -0
- data/lib/checks/sap.rb +43 -0
- data/lib/checks/tableau.rb +26 -0
- data/lib/checks/team_city.rb +8 -6
- data/lib/checks/telerik.rb +23 -8
- data/lib/checks/varnish.rb +8 -11
- data/lib/checks/vmware.rb +38 -0
- data/lib/checks/webmin.rb +41 -0
- data/lib/checks/wp_engine.rb +10 -6
- data/lib/checks/yaws.rb +29 -0
- data/lib/checks/zeit.rb +28 -0
- data/lib/checks/zendesk.rb +39 -0
- data/lib/checks/zimbra.rb +24 -0
- data/lib/checks/zscaler.rb +28 -0
- data/{ident.rb → lib/intrigue-ident.rb} +66 -32
- data/lib/traverse_exceptions.rb +196 -0
- data/util/check.rb +20 -0
- data/util/list.rb +9 -0
- metadata +58 -9
- data/lib/checks/asp_net.rb +0 -70
- data/lib/checks/cloudfront.rb +0 -41
- data/lib/checks/spring.rb +0 -31
- data/lib/checks/tomcat.rb +0 -22
- data/lib/checks/wordpress.rb +0 -120
data/lib/checks/joomla.rb
CHANGED
@@ -3,16 +3,19 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Joomla < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Joomla!",
|
11
|
+
:tags => ["CMS"],
|
12
|
+
:product =>"Joomla!",
|
13
|
+
:match_details =>"Known Joomla Admin Page",
|
14
|
+
:match_type => :content_body,
|
12
15
|
:version => nil,
|
13
|
-
:
|
16
|
+
:match_content => /files_joomla/i,
|
14
17
|
:references => ["https://twitter.com/GreyNoiseIO/status/987547246538391552"],
|
15
|
-
:paths => ["#{
|
18
|
+
:paths => ["#{url}/administrator/manifests/files/joomla.xml"]
|
16
19
|
}
|
17
20
|
]
|
18
21
|
end
|
@@ -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
|
data/lib/checks/limesuvey.rb
CHANGED
@@ -3,15 +3,17 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class LimeSurvey < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor =>"LimeSurvey",
|
11
|
+
:product =>"LimeSurvey",
|
12
|
+
:match_details =>"LimeSurvey",
|
13
|
+
:match_type => :content_body,
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:paths => ["#{
|
15
|
+
:match_content => /Donate to LimeSurvey/,
|
16
|
+
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
17
19
|
end
|
data/lib/checks/lithium.rb
CHANGED
@@ -3,23 +3,27 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Lithium < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Lithium",
|
11
|
+
:product =>"Lithium",
|
12
|
+
:match_details =>"Lithium Community Management",
|
13
|
+
:match_type => :content_cookies,
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:paths => ["#{
|
15
|
+
:match_content => /LithiumVisitor/i,
|
16
|
+
:paths => ["#{url}"]
|
15
17
|
},
|
16
18
|
{
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
19
|
+
:type => "application",
|
20
|
+
:vendor => "Lithium",
|
21
|
+
:product =>"Lithium",
|
22
|
+
:match_details =>"Lithium Community Management",
|
23
|
+
:match_type => :content_cookies,
|
20
24
|
:version => nil,
|
21
|
-
:
|
22
|
-
:paths => ["#{
|
25
|
+
:match_content => /LiSESSIONID/i,
|
26
|
+
:paths => ["#{url}"]
|
23
27
|
}
|
24
28
|
]
|
25
29
|
end
|
data/lib/checks/lotus.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Lotus < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Lotus",
|
11
|
+
:product =>"Domino",
|
12
|
+
:match_details =>"Lotus Domino",
|
13
|
+
:match_type => :content_headers,
|
14
|
+
:version => nil,
|
15
|
+
:match_content => /server: Lotus-Domino/i,
|
16
|
+
:examples => [
|
17
|
+
"https://12.237.144.251:443"
|
18
|
+
],
|
19
|
+
:paths => ["#{url}"]
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/checks/magento.rb
CHANGED
@@ -3,15 +3,17 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Magento < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Magento",
|
11
|
+
:product =>"Magento",
|
12
|
+
:match_details =>"Magento",
|
13
|
+
:match_type => :content_body,
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:paths => ["#{
|
15
|
+
:match_content => /Mage.Cookies.path/i,
|
16
|
+
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
17
19
|
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/mcafee.rb
CHANGED
@@ -3,15 +3,17 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Mcafee < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "McAfee",
|
11
|
+
:product =>"EPolicy Orchestrator",
|
12
|
+
:match_details =>"McAfee EPolicy Orchestrator",
|
13
|
+
:match_type => :content_body,
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:paths => ["#{
|
15
|
+
:match_content => /McAfee Agent Activity Log/i,
|
16
|
+
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
17
19
|
end
|
data/lib/checks/mediawiki.rb
CHANGED
@@ -1,38 +1,37 @@
|
|
1
1
|
module Intrigue
|
2
2
|
module Ident
|
3
3
|
module Check
|
4
|
-
|
5
|
-
|
6
|
-
def generate_checks(uri)
|
7
|
-
[
|
8
|
-
{
|
9
|
-
:name => "MediaWiki",
|
10
|
-
:description => "MediaWiki",
|
11
|
-
:type => :content_body,
|
12
|
-
:version => nil,
|
13
|
-
:content => /<a href="\/\/www.mediawiki.org\/">Powered by MediaWiki<\/a>/,
|
14
|
-
:paths => ["#{uri}"]
|
15
|
-
}
|
16
|
-
]
|
17
|
-
end
|
4
|
+
class MediaWiki < Intrigue::Ident::Check::Base
|
18
5
|
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor =>"MediaWiki",
|
11
|
+
:product =>"MediaWiki",
|
12
|
+
:match_details =>"powered by tag",
|
13
|
+
:match_type => :content_body,
|
14
|
+
:version => nil,
|
15
|
+
:match_content => /<a href="\/\/www.mediawiki.org\/">Powered by MediaWiki<\/a>/,
|
16
|
+
:paths => ["#{url}"]
|
17
|
+
},
|
18
|
+
{
|
19
|
+
:type => "application",
|
20
|
+
:vendor =>"MediaWiki",
|
21
|
+
:product =>"MediaWiki",
|
22
|
+
:match_details =>"generator tag",
|
23
|
+
:match_type => :content_body,
|
24
|
+
:match_content => /<meta name=\"generator\" content=\"MediaWiki/,
|
25
|
+
:version => nil,
|
26
|
+
:dynamic_version => lambda { |x| _first_body_capture(x,/<meta name=\"generator\" content=\"MediaWiki\ (.*?)\"\/>/) },
|
27
|
+
:examples => ["http://2004.appsecusa.org:80"],
|
28
|
+
:verify => ["b3dhc3AjSW50cmlndWU6OkVudGl0eTo6VXJpI2h0dHA6Ly8yMDA0LmFwcHNlY3VzYS5vcmc6ODA="],
|
29
|
+
:paths => ["#{url}"]
|
30
|
+
}
|
31
|
+
]
|
19
32
|
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
33
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
{
|
30
|
-
:name => "Yoast Wordpress SEO Plugin", # won't be used if we have
|
31
|
-
:description => "Yoast Wordpress SEO Plugin",
|
32
|
-
:type => "content",
|
33
|
-
:content => /<!-- \/ Yoast WordPress SEO plugin. -->/,
|
34
|
-
:test_site => "https://ip-50-62-231-56.ip.secureserver.net",
|
35
|
-
:dynamic_name => lambda{|x| x.scan(/the Yoast WordPress SEO plugin v.* - h/)[0].gsub("the ","").gsub(" - h","") }
|
36
|
-
}
|
37
|
-
]},
|
38
|
-
=end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/checks/microsoft.rb
CHANGED
@@ -3,63 +3,269 @@ module Ident
|
|
3
3
|
module Check
|
4
4
|
class Microsoft < Intrigue::Ident::Check::Base
|
5
5
|
|
6
|
-
def generate_checks(
|
6
|
+
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Microsoft",
|
11
|
+
:product =>"ASP.NET",
|
11
12
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
13
|
+
:dynamic_version => lambda{|x| _body(x).scan(/ASP.NET Version:(.*)$/)[0].first.chomp },
|
14
|
+
:tags => ["error_page"],
|
15
|
+
:match_type => :content_body,
|
16
|
+
:match_content => /^.*ASP.NET is configured.*$/i,
|
17
|
+
:match_details =>"ASP.Net Error Message",
|
18
|
+
:paths => ["#{url}"]
|
15
19
|
},
|
16
20
|
{
|
17
|
-
:
|
18
|
-
:
|
21
|
+
:type => "application",
|
22
|
+
:vendor => "Microsoft",
|
23
|
+
:product =>"ASP.NET",
|
19
24
|
:version => nil,
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
25
|
+
:dynamic_version => lambda{|x| _body(x).scan(/ASP.NET Version:(.*)$/i)[0].first.chomp if _body(x).scan(/ASP.NET Version:(.*)$/i)[0] },
|
26
|
+
:match_type => :content_headers,
|
27
|
+
:match_content => /^x-aspnet-version:.*$/i,
|
28
|
+
:match_details =>"X-AspNet Header",
|
29
|
+
:paths => ["#{url}"]
|
30
|
+
},
|
31
|
+
{
|
32
|
+
:type => "application",
|
33
|
+
:vendor => "Microsoft",
|
34
|
+
:product =>"ASP.NET",
|
35
|
+
:match_details =>"Asp.Net Default Cookie",
|
36
|
+
:version => nil,
|
37
|
+
:match_type => :content_cookies,
|
38
|
+
:match_content => /ASPSESSIONID.*$/i,
|
39
|
+
:paths => ["#{url}"]
|
40
|
+
},
|
41
|
+
{
|
42
|
+
:type => "application",
|
43
|
+
:vendor => "Microsoft",
|
44
|
+
:product =>"ASP.NET",
|
45
|
+
:match_details =>"Asp.Net Default Cookie",
|
46
|
+
:version => nil,
|
47
|
+
:match_type => :content_cookies,
|
48
|
+
:match_content => /ASP.NET_SessionId.*$/i,
|
49
|
+
:paths => ["#{url}"]
|
24
50
|
},
|
25
51
|
{
|
26
|
-
:
|
27
|
-
:
|
52
|
+
:type => "application",
|
53
|
+
:vendor => "Microsoft",
|
54
|
+
:product =>"ASP.NET",
|
55
|
+
:match_details =>"ASPXAUTH cookie",
|
28
56
|
:version => nil,
|
29
|
-
:
|
30
|
-
:
|
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
|
+
},
|
63
|
+
{
|
64
|
+
:type => "application",
|
65
|
+
:vendor => "Microsoft",
|
66
|
+
:product =>"ASP.NET MVC",
|
67
|
+
:match_details =>"Asp.Net MVC Header",
|
68
|
+
:version => nil,
|
69
|
+
:match_type => :content_headers,
|
70
|
+
:match_content => /x-aspnetmvc-version/i,
|
71
|
+
:paths => ["#{url}"]
|
72
|
+
},
|
73
|
+
{
|
74
|
+
:type => "application",
|
75
|
+
:vendor => "Microsoft",
|
76
|
+
:product =>"ASP.NET",
|
77
|
+
:match_details =>"WebResource.axd link in the page",
|
78
|
+
:version => nil,
|
79
|
+
:match_type => :content_body,
|
80
|
+
:match_content => /WebResource.axd?d=/i,
|
81
|
+
:paths => ["#{url}"]
|
82
|
+
},
|
83
|
+
{
|
84
|
+
:type => "application",
|
85
|
+
:vendor => "Microsoft",
|
86
|
+
:product =>"ASP.NET",
|
87
|
+
:match_details =>"Microsoft ASP.NET",
|
88
|
+
:version => nil,
|
89
|
+
:match_type => :content_headers,
|
90
|
+
:match_content => /x-powered-by: ASP.NET/,
|
91
|
+
:examples => [],
|
92
|
+
:paths => ["#{url}"]
|
93
|
+
},
|
94
|
+
{
|
95
|
+
:type => "application",
|
96
|
+
:vendor => "Microsoft",
|
97
|
+
:product =>"Forefront TMG",
|
98
|
+
:match_details =>"Microsoft Forefront Threat Management Gateway",
|
99
|
+
:version => nil,
|
100
|
+
:match_type => :content_cookies,
|
101
|
+
:match_content => /<title>Microsoft Forefront TMG/,
|
102
|
+
:paths => ["#{url}"]
|
103
|
+
},
|
104
|
+
{
|
105
|
+
:type => "application",
|
106
|
+
:vendor => "Microsoft",
|
107
|
+
:product =>"Forefront TMG",
|
108
|
+
:match_details =>"Microsoft Forefront Threat Management Gateway",
|
109
|
+
:version => nil,
|
110
|
+
:match_type => :content_headers,
|
111
|
+
:match_content => /via:\ 1.1\ TMGSRVR/,
|
112
|
+
:paths => ["#{url}"]
|
113
|
+
},
|
114
|
+
|
115
|
+
{
|
116
|
+
:type => "application",
|
117
|
+
:vendor => "Microsoft",
|
118
|
+
:product => "IIS",
|
119
|
+
:match_details =>"server header",
|
120
|
+
:version => nil,
|
121
|
+
:dynamic_version => lambda { |x|
|
122
|
+
_first_header_capture x, /server: Microsoft-IIS\/(.*)/
|
123
|
+
},
|
124
|
+
:match_type => :content_headers,
|
125
|
+
:match_content => /server: Microsoft-IIS\//,
|
126
|
+
:examples => ["http://168.75.243.138:80","http://freightmanager.nucornet.com:80"],
|
127
|
+
:paths => ["#{url}"]
|
128
|
+
},
|
129
|
+
{
|
130
|
+
:type => "application",
|
131
|
+
:vendor => "Microsoft",
|
132
|
+
:product =>"IIS",
|
133
|
+
:match_details =>"Microsoft IIS 8.0",
|
134
|
+
:version => "8.0",
|
135
|
+
:match_type => :content_body,
|
136
|
+
:match_content => /<img src=\"iis-8.png\"/,
|
137
|
+
:examples => ["http://66.162.2.18:80"],
|
138
|
+
:paths => ["#{url}"]
|
139
|
+
},
|
140
|
+
{
|
141
|
+
:type => "application",
|
142
|
+
:vendor => "Microsoft",
|
143
|
+
:product =>"IIS",
|
144
|
+
:match_details =>"Microsoft IIS 8.5",
|
145
|
+
:version => "8.5",
|
146
|
+
:match_type => :content_body,
|
147
|
+
:match_content => /<img src=\"iis-85.png\"/,
|
31
148
|
:examples => ["http://103.1.221.151:80"],
|
32
|
-
:paths => ["#{
|
149
|
+
:paths => ["#{url}"]
|
33
150
|
},
|
34
151
|
{
|
35
|
-
:
|
36
|
-
:
|
152
|
+
:type => "application",
|
153
|
+
:vendor => "Microsoft",
|
154
|
+
:product =>"IIS",
|
155
|
+
:match_details =>"Microsoft IIS Unauthorized (403)",
|
156
|
+
:tags => ["error_page"],
|
37
157
|
:version => nil,
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
158
|
+
:match_type => :content_body,
|
159
|
+
:hide => true,
|
160
|
+
:match_content => /Error Code: 403 Forbidden. The server denied the specified Uniform Resource Locator \(URL\)/,
|
161
|
+
:examples => ["http://199.233.74.45:80"],
|
162
|
+
:paths => ["#{url}"]
|
42
163
|
},
|
43
164
|
{
|
44
|
-
:
|
45
|
-
:
|
165
|
+
:type => "application",
|
166
|
+
:vendor => "Microsoft",
|
167
|
+
:product =>"IIS",
|
168
|
+
:match_details =>"Microsoft IIS Missing Resource (404)",
|
46
169
|
:tags => ["error_page"],
|
47
170
|
:version => nil,
|
48
|
-
:
|
171
|
+
:match_type => :content_body,
|
49
172
|
:hide => true,
|
50
|
-
:
|
51
|
-
:
|
173
|
+
:match_content => /HTTP Error 404. The requested resource is not found./,
|
174
|
+
:examples => ["http://66.162.2.74:80"],
|
175
|
+
:paths => ["#{url}"]
|
52
176
|
},
|
53
177
|
{
|
54
|
-
:
|
55
|
-
:
|
178
|
+
:type => "application",
|
179
|
+
:vendor => "Microsoft",
|
180
|
+
:product =>"IIS",
|
181
|
+
:match_details =>"Microsoft IIS Generic Error - 403",
|
56
182
|
:tags => ["error_page"],
|
57
183
|
:version => nil,
|
58
|
-
:
|
184
|
+
:match_type => :content_body,
|
59
185
|
:hide => true,
|
60
|
-
:
|
61
|
-
:paths => ["#{
|
62
|
-
}
|
186
|
+
:match_content => /403 Forbidden. The server denied the specified Uniform Resource Locator (URL)/,
|
187
|
+
:paths => ["#{url}"]
|
188
|
+
},
|
189
|
+
{
|
190
|
+
:type => "application",
|
191
|
+
:vendor => "Microsoft",
|
192
|
+
:product =>"IIS",
|
193
|
+
:match_details =>"Microsoft Generic Error - 503",
|
194
|
+
:tags => ["error_page"],
|
195
|
+
:version => nil,
|
196
|
+
:match_type => :content_body,
|
197
|
+
:hide => true,
|
198
|
+
:match_content => /HTTP Error 503. The service is unavailable./,
|
199
|
+
:paths => ["#{url}"]
|
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
|
+
},
|
224
|
+
{
|
225
|
+
:type => "service",
|
226
|
+
:vendor =>"Microsoft",
|
227
|
+
:product =>"Office 365",
|
228
|
+
:match_details =>"office 365 fronted by okta",
|
229
|
+
:version => nil,
|
230
|
+
:match_type => :content_body,
|
231
|
+
:match_content => /ok3static.oktacdn.com\/assets\/img\/logos\/office365/i,
|
232
|
+
:examples => ["http://outlook.newscorp.com:80"],
|
233
|
+
:paths => ["#{url}"]
|
234
|
+
},
|
235
|
+
{
|
236
|
+
:type => "application",
|
237
|
+
:vendor => "Microsoft",
|
238
|
+
:product =>"Outlook Web Access",
|
239
|
+
:match_details =>"Microsoft Outlook Web Access",
|
240
|
+
:version => nil,
|
241
|
+
:match_type => :content_headers,
|
242
|
+
:match_content => /x-owa-version/,
|
243
|
+
:dynamic_version => lambda { |x| _first_header_capture(x, /x-owa-version:(.*)/) },
|
244
|
+
:paths => ["#{url}"]
|
245
|
+
},
|
246
|
+
{
|
247
|
+
:type => "application",
|
248
|
+
:vendor => "Microsoft",
|
249
|
+
:product =>"Outlook Web Access",
|
250
|
+
:match_details =>"Microsoft Outlook Web Access",
|
251
|
+
:version => nil,
|
252
|
+
:match_type => :content_body,
|
253
|
+
:match_content => /OwaPage\ =\ ASP.auth_logon_aspx/,
|
254
|
+
:dynamic_version => lambda { |x| _first_body_capture x, /href=\"\/owa\/auth\/(.*)\/themes\/resources\/favicon.ico/ },
|
255
|
+
:paths => ["#{url}"]
|
256
|
+
},
|
257
|
+
{
|
258
|
+
:type => "application",
|
259
|
+
:vendor => "Microsoft",
|
260
|
+
:product =>"Sharepoint",
|
261
|
+
:match_details =>"Sharepoint cookie",
|
262
|
+
:version => nil,
|
263
|
+
:match_type => :content_headers,
|
264
|
+
:match_content => /sprequestguid/,
|
265
|
+
:dynamic_version => lambda { |x| _first_header_capture(x,/microsoftsharepointteamservices:(.*)/) },
|
266
|
+
:examples => ["http://sharepoint.edghelp.realogyfg.com:80"],
|
267
|
+
:paths => ["#{url}"]
|
268
|
+
},
|
63
269
|
]
|
64
270
|
end
|
65
271
|
|