intrigue-ident 0.47 → 0.48
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/lib/checks/adobe.rb +6 -4
- data/lib/checks/akamai.rb +6 -4
- data/lib/checks/amazon.rb +40 -5
- data/lib/checks/apache.rb +24 -0
- data/lib/checks/aruba.rb +6 -3
- data/lib/checks/atlassian.rb +30 -20
- data/lib/checks/{wordpress.rb → automattic.rb} +56 -36
- data/lib/checks/chef.rb +12 -8
- data/lib/checks/cisco.rb +18 -12
- data/lib/checks/citrix.rb +6 -4
- data/lib/checks/cloudflare.rb +33 -23
- data/lib/checks/cpanel.rb +6 -4
- data/lib/checks/django.rb +6 -4
- data/lib/checks/drupal.rb +6 -4
- data/lib/checks/f5.rb +6 -4
- data/lib/checks/fastly.rb +6 -4
- data/lib/checks/generic.rb +10 -8
- data/lib/checks/gitlab.rb +6 -4
- data/lib/checks/google.rb +6 -4
- data/lib/checks/grafana.rb +6 -4
- data/lib/checks/heroku.rb +27 -0
- data/lib/checks/hp.rb +6 -4
- data/lib/checks/jenkins.rb +18 -12
- data/lib/checks/joomla.rb +6 -4
- data/lib/checks/limesuvey.rb +6 -4
- data/lib/checks/lithium.rb +12 -8
- data/lib/checks/lotus.rb +6 -4
- data/lib/checks/magento.rb +6 -4
- data/lib/checks/mcafee.rb +6 -4
- data/lib/checks/mediawiki.rb +10 -8
- data/lib/checks/microsoft.rb +132 -66
- data/lib/checks/nagios.rb +6 -4
- data/lib/checks/nginx.rb +6 -4
- data/lib/checks/oracle.rb +12 -8
- data/lib/checks/palo_alto.rb +6 -4
- data/lib/checks/pardot.rb +6 -4
- data/lib/checks/pfsense.rb +6 -4
- data/lib/checks/phpmyadmin.rb +6 -4
- data/lib/checks/pivotal.rb +24 -0
- data/lib/checks/rabbitmq.rb +12 -8
- data/lib/checks/team_city.rb +6 -4
- data/lib/checks/telerik.rb +6 -4
- data/lib/checks/varnish.rb +6 -4
- data/lib/checks/vmware.rb +6 -4
- data/lib/checks/wp_engine.rb +7 -4
- data/lib/intrigue-ident.rb +23 -11
- metadata +5 -6
- data/lib/checks/asp_net.rb +0 -64
- data/lib/checks/cloudfront.rb +0 -41
- data/lib/checks/spring.rb +0 -22
- data/lib/checks/tomcat.rb +0 -22
data/lib/checks/citrix.rb
CHANGED
@@ -6,12 +6,14 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Citrix",
|
11
|
+
:product => "Netscaler Gateway",
|
12
|
+
:match_details => "Citrix Netscaler Gateway",
|
11
13
|
:tags => ["tech:vpn"],
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:
|
15
|
+
:match_type => :content_body,
|
16
|
+
:match_content => /<title>Netscaler Gateway/,
|
15
17
|
:hide => false,
|
16
18
|
:paths => ["#{url}"]
|
17
19
|
}
|
data/lib/checks/cloudflare.rb
CHANGED
@@ -6,47 +6,57 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Cloudflare",
|
11
|
+
:product =>"CDN",
|
12
|
+
:version => nil,
|
13
|
+
:match_type => :content_cookies,
|
14
|
+
:match_content => /__cfduid/i,
|
15
|
+
:match_details =>"Cloudflare Accelerated Page",
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
},
|
16
18
|
{
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
19
|
+
:type => "application",
|
20
|
+
:vendor => "Cloudflare",
|
21
|
+
:product =>"CDN",
|
22
|
+
:version => nil,
|
23
|
+
:match_type => :content_headers,
|
24
|
+
:match_content => /cloudflare-nginx/i,
|
25
|
+
:match_details =>"Cloudflare Server",
|
22
26
|
:paths => ["#{url}"]
|
23
27
|
},
|
24
28
|
{
|
25
|
-
:
|
26
|
-
:
|
29
|
+
:type => "application",
|
30
|
+
:vendor => "Cloudflare",
|
31
|
+
:product =>"CDN",
|
27
32
|
:tags => ["error_page"],
|
28
|
-
:version =>
|
29
|
-
:
|
30
|
-
:
|
33
|
+
:version => nil,
|
34
|
+
:match_type => :content_body,
|
35
|
+
:match_content => /<title>Direct IP access not allowed \| Cloudflare/,
|
36
|
+
:match_details =>"Cloudflare - Direct IP Access",
|
31
37
|
:hide => true,
|
32
38
|
:paths => ["#{url}"]
|
33
39
|
},
|
34
40
|
{
|
35
|
-
:
|
36
|
-
:
|
41
|
+
:type => "application",
|
42
|
+
:vendor => "Cloudflare",
|
43
|
+
:product =>"CDN",
|
44
|
+
:match_details =>"Cloudflare Error",
|
37
45
|
:tags => ["error_page"],
|
38
46
|
:version => "",
|
39
|
-
:
|
40
|
-
:
|
47
|
+
:match_type => :content_body,
|
48
|
+
:match_content => /cferror_details/,
|
41
49
|
:hide => true,
|
42
50
|
:paths => ["#{url}"]
|
43
51
|
},
|
44
52
|
{
|
45
|
-
:
|
46
|
-
:
|
53
|
+
:type => "application",
|
54
|
+
:vendor => "Cloudflare",
|
55
|
+
:product =>"CDN",
|
56
|
+
:match_details =>"Cloudfront Error - Direct IP Access",
|
47
57
|
:version => "",
|
48
|
-
:
|
49
|
-
:
|
58
|
+
:match_type => :content_body,
|
59
|
+
:match_content => /403\ Forbidden<\/h1><\/center>\n<hr><center>cloudflare<\/center>/,
|
50
60
|
:hide => true,
|
51
61
|
:paths => ["#{url}"]
|
52
62
|
}
|
data/lib/checks/cpanel.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:vendor => "cPanel",
|
10
|
+
:type => "application",
|
11
|
+
:product =>"cPanel Hosted - Missing Page",
|
12
|
+
:match_details =>"cPanel Hosted, but either misconfigured, or accessed via ip vs hostname?",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /URL=\/cgi-sys\/defaultwebpage.cgi/,
|
14
16
|
:hide => true,
|
15
17
|
:paths => ["#{url}"]
|
16
18
|
}
|
data/lib/checks/django.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Django",
|
11
|
+
:product =>"Django",
|
11
12
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
13
|
+
:match_details =>"Django Admin Page",
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /<title>Log in \| Django site admin<\/title>/,
|
14
16
|
:paths => ["#{url}/admin"]
|
15
17
|
}
|
16
18
|
]
|
data/lib/checks/drupal.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Drupal",
|
11
|
+
:product => "Drupal",
|
12
|
+
:match_details => "Drupal CMS",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /Drupal/,
|
14
16
|
:dynamic_version => lambda { |x|
|
15
17
|
version = x["details"]["hidden_response_data"].scan(/^(Drupal.*)[ ,<\.].*$/)[0]
|
16
18
|
return version.first.gsub("Drupal ","").gsub(",","").chomp if version
|
data/lib/checks/f5.rb
CHANGED
@@ -6,12 +6,14 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "F5",
|
11
|
+
:product =>"BIG-IP APM",
|
12
|
+
:match_details =>"F5 BIG-IP APM",
|
11
13
|
:tags => ["tech:vpn"],
|
12
14
|
:version => nil,
|
13
|
-
:
|
14
|
-
:
|
15
|
+
:match_type => :content_cookies,
|
16
|
+
:match_content => /MRHSession/,
|
15
17
|
:hide => false,
|
16
18
|
:paths => ["#{url}"]
|
17
19
|
}
|
data/lib/checks/fastly.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor =>"Fastly",
|
11
|
+
:product =>"Fastly",
|
12
|
+
:match_details =>"",
|
11
13
|
:version => "",
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:match_content => /x-fastly-backend-reqs/i,
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
data/lib/checks/generic.rb
CHANGED
@@ -6,23 +6,25 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:product =>"Unauthorized (401)",
|
11
|
+
:match_details =>"Generic Unauthorized",
|
11
12
|
:tags => ["error_page"],
|
12
13
|
:version => nil,
|
13
14
|
:hide => true,
|
14
|
-
:
|
15
|
-
:
|
15
|
+
:match_type => :content_body,
|
16
|
+
:match_content => /<STRONG>401 Unauthorized/,
|
16
17
|
:paths => ["#{url}"]
|
17
18
|
},
|
18
19
|
{
|
19
|
-
:
|
20
|
-
:
|
20
|
+
:type => "application",
|
21
|
+
:product =>"Content Missing (404)",
|
22
|
+
:match_details =>"Content Missing (404) - Could be an API, or just serving something at another location. TODO ... is this ECS-specific? (check header)",
|
21
23
|
:tags => ["error_page"],
|
22
24
|
:version => nil,
|
23
25
|
:hide => true,
|
24
|
-
:
|
25
|
-
:
|
26
|
+
:match_type => :content_body,
|
27
|
+
:match_content => /<title>404 - Not Found<\/title>/,
|
26
28
|
:paths => ["#{url}"]
|
27
29
|
}
|
28
30
|
]
|
data/lib/checks/gitlab.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Gitlab",
|
11
|
+
:product => "Gitlab",
|
12
|
+
:match_details => "Gitlab",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_cookies,
|
15
|
+
:match_content => /_gitlab_session/i,
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
data/lib/checks/google.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Google",
|
11
|
+
:product => "Hosted",
|
12
|
+
:match_details => "Google Missing Page",
|
13
|
+
:match_type => :content_body,
|
12
14
|
:version => "",
|
13
|
-
:
|
15
|
+
:match_content => /The requested URL <code>\/<\/code> was not found on this server\./,
|
14
16
|
:hide => true,
|
15
17
|
:paths => ["#{url}"]
|
16
18
|
}
|
data/lib/checks/grafana.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Grafana",
|
11
|
+
:product =>"Grafana",
|
12
|
+
:match_details =>"Grafana",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_cookies,
|
15
|
+
:match_content => /grafana_sess/i,
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Heroku < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Heroku",
|
11
|
+
:product =>"Heroku",
|
12
|
+
:match_details =>"Heroku",
|
13
|
+
:tags => ["hosting_provider"],
|
14
|
+
:version => nil,
|
15
|
+
:match_type => :content_body,
|
16
|
+
:match_content => /herokucdn.com\/error-pages\/no-such-app.html/,
|
17
|
+
:hide => true,
|
18
|
+
:examples => ["http://54.209.64.71:80"],
|
19
|
+
:paths => ["#{url}"]
|
20
|
+
}
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/checks/hp.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "HP",
|
11
|
+
:product =>"Printer",
|
11
12
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
13
|
+
:match_type => :content_headers,
|
14
|
+
:match_content => /server: HP-ChaiSOE\/1.0/i,
|
15
|
+
:match_details =>"Generic HP Printer match",
|
14
16
|
:examples => ["http://69.162.52.20:80"],
|
15
17
|
:paths => ["#{url}"]
|
16
18
|
}
|
data/lib/checks/jenkins.rb
CHANGED
@@ -6,28 +6,34 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{ # might need to be its own, but haven't seen it yet outside jenkins
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Jenkins",
|
11
|
+
:product => "Hudson",
|
12
|
+
:match_details => "Hudson",
|
11
13
|
:version => nil,
|
12
|
-
:
|
13
|
-
:
|
14
|
+
:match_type => :content_headers,
|
15
|
+
:match_content => /x-hudson/i,
|
14
16
|
:dynamic_version => lambda { |x| x["details"]["headers"].select{|y| y =~ /x-hudson/}.split(":").last },
|
15
17
|
:paths => ["#{url}"]
|
16
18
|
},
|
17
19
|
{
|
18
|
-
:
|
19
|
-
:
|
20
|
+
:type => "application",
|
21
|
+
:vendor => "Jenkins",
|
22
|
+
:product =>"Jenkins",
|
23
|
+
:match_details =>"Jenkins",
|
20
24
|
:version => nil,
|
21
|
-
:
|
22
|
-
:
|
25
|
+
:match_type => :content_headers,
|
26
|
+
:match_content => /X-Jenkins-Session/i,
|
23
27
|
:paths => ["#{url}"]
|
24
28
|
},
|
25
29
|
{
|
26
|
-
:
|
27
|
-
:
|
30
|
+
:type => "application",
|
31
|
+
:vendor => "Jenkins",
|
32
|
+
:product =>"Jenkins",
|
33
|
+
:match_details =>"Jenkins",
|
28
34
|
:version => nil,
|
29
|
-
:
|
30
|
-
:
|
35
|
+
:match_type => :content_headers,
|
36
|
+
:match_content => /x-jenkins/i,
|
31
37
|
:dynamic_version => lambda { |x| x["details"]["headers"].select{|y| y =~ /x-jenkins/}.split(":").last },
|
32
38
|
:paths => ["#{url}"]
|
33
39
|
}
|
data/lib/checks/joomla.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Joomla!",
|
11
|
+
:product =>"Joomla!",
|
12
|
+
:match_details =>"Known Joomla Admin Page",
|
13
|
+
:match_type => :content_body,
|
12
14
|
:version => nil,
|
13
|
-
:
|
15
|
+
:match_content => /files_joomla/i,
|
14
16
|
:references => ["https://twitter.com/GreyNoiseIO/status/987547246538391552"],
|
15
17
|
:paths => ["#{url}/administrator/manifests/files/joomla.xml"]
|
16
18
|
}
|
data/lib/checks/limesuvey.rb
CHANGED
@@ -6,11 +6,13 @@ module Check
|
|
6
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
|
-
:
|
15
|
+
:match_content => /Donate to LimeSurvey/,
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
}
|
16
18
|
]
|
data/lib/checks/lithium.rb
CHANGED
@@ -6,19 +6,23 @@ module Check
|
|
6
6
|
def generate_checks(url)
|
7
7
|
[
|
8
8
|
{
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Lithium",
|
11
|
+
:product =>"Lithum",
|
12
|
+
:match_details =>"Lithium Community Management",
|
13
|
+
:match_type => :content_cookies,
|
12
14
|
:version => nil,
|
13
|
-
:
|
15
|
+
:match_content => /LithiumVisitor/i,
|
14
16
|
:paths => ["#{url}"]
|
15
17
|
},
|
16
18
|
{
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
19
|
+
:type => "application",
|
20
|
+
:vendor => "Lithium",
|
21
|
+
:product =>"Lithum",
|
22
|
+
:match_details =>"Lithium Community Management",
|
23
|
+
:match_type => :content_cookies,
|
20
24
|
:version => nil,
|
21
|
-
:
|
25
|
+
:match_content => /LiSESSIONID/i,
|
22
26
|
:paths => ["#{url}"]
|
23
27
|
}
|
24
28
|
]
|