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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 264d2dff52cd74c3d85add304baf8169b40c8671b001b7b87ea63a761fa700f7
|
|
4
|
+
data.tar.gz: cd0b6bae16f4e063d9fa33e23783b15664255497dc1091c83b2dc30190366af9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 89b68a83d6d4ef217322a7a6d732aeef346b23714fba4886d701bab22c869b681a5ba3aeb27aa38a54147b5e9acb7c226ef4c16284b539e8b08a8add5aac2282
|
|
7
|
+
data.tar.gz: 7effd8183d7d2673bfc71f96e4c23daf5f61fdedf5e83fa6b3349321a1013b9e4151831ff1fdb836a2860e577fcfb150aa639debf5f951ba39ccd6093bc377d1
|
data/lib/checks/adobe.rb
CHANGED
|
@@ -6,11 +6,13 @@ class Adobe < Intrigue::Ident::Check::Base
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Adobe",
|
|
11
|
+
:product => "Coldfusion",
|
|
11
12
|
:version => nil,
|
|
12
|
-
:
|
|
13
|
-
:
|
|
13
|
+
:match_type => :content_cookies,
|
|
14
|
+
:match_content => /CFTOKEN=/,
|
|
15
|
+
:match_details => "Adobe Coldfusion Cookie Match",
|
|
14
16
|
:hide => false,
|
|
15
17
|
:examples => ["https://209.235.70.106:443"],
|
|
16
18
|
:paths => ["#{url}"]
|
data/lib/checks/akamai.rb
CHANGED
|
@@ -6,11 +6,13 @@ class Akamai < Intrigue::Ident::Check::Base
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Akamai",
|
|
11
|
+
:product => "CDN",
|
|
11
12
|
:version => nil,
|
|
12
|
-
:
|
|
13
|
-
:
|
|
13
|
+
:match_type => :content_body,
|
|
14
|
+
:match_content => /The requested URL "[no URL]", is invalid.<p>/,
|
|
15
|
+
:match_details =>"Akamai Missing Uri",
|
|
14
16
|
:hide => true,
|
|
15
17
|
:paths => ["#{url}"]
|
|
16
18
|
}
|
data/lib/checks/amazon.rb
CHANGED
|
@@ -6,13 +6,48 @@ class Amazon < Intrigue::Ident::Check::Base
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Amazon",
|
|
11
|
+
:product =>"Cloudfront - Error (Body)",
|
|
12
|
+
:match_details =>"Cloudfront - no configured hostname",
|
|
13
|
+
:version => "",
|
|
14
|
+
:match_type => :content_body,
|
|
15
|
+
:match_content => /ERROR: The request could not be satisfied/,
|
|
16
|
+
:hide => true,
|
|
17
|
+
:paths => ["#{url}"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
:type => "application",
|
|
21
|
+
:vendor => "Amazon",
|
|
22
|
+
:product =>"Cloudfront - Error (Headers)",
|
|
23
|
+
:match_details =>"Cloudfront - no configured hostname",
|
|
24
|
+
:version => "",
|
|
25
|
+
:match_type => :content_headers,
|
|
26
|
+
:match_content => /Error from cloudfront/,
|
|
27
|
+
:hide => true,
|
|
28
|
+
:paths => ["#{url}"]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
:type => "application",
|
|
32
|
+
:vendor => "Amazon",
|
|
33
|
+
:product =>"Cloudfront - 403 (Body)",
|
|
34
|
+
:match_details =>"Cloudfront - 403",
|
|
35
|
+
:version => "",
|
|
36
|
+
:match_type => :content_body,
|
|
37
|
+
:match_content => /<h1>403 Forbidden<\/h1><\/center>\n<hr><center>cloudflare/,
|
|
38
|
+
:hide => true,
|
|
39
|
+
:paths => ["#{url}"]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
:tags => ["error_page","hosting_provider"],
|
|
43
|
+
:type => "application",
|
|
11
44
|
:url => "https://aws.amazon.com/elasticloadbalancing/",
|
|
45
|
+
:vendor => "Amazon",
|
|
46
|
+
:product => "Elastic Load Balancer",
|
|
12
47
|
:version => nil,
|
|
13
|
-
:
|
|
14
|
-
:
|
|
15
|
-
:
|
|
48
|
+
:match_type => :content_headers,
|
|
49
|
+
:match_content => /awselb\/\d.\d/,
|
|
50
|
+
:match_details =>"Amazon Elastic Load Balancer",
|
|
16
51
|
:hide => true,
|
|
17
52
|
:dynamic_version => lambda { |x| x["details"]["headers"].join("\n").match(/awselb\/(\d.\d)/).captures[0] },
|
|
18
53
|
:verify_sites => ["http://52.4.103.22:80"],
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Intrigue
|
|
2
|
+
module Ident
|
|
3
|
+
module Check
|
|
4
|
+
class Apache < Intrigue::Ident::Check::Base
|
|
5
|
+
|
|
6
|
+
def generate_checks(url)
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Apache",
|
|
11
|
+
:product => "Tomcat",
|
|
12
|
+
:match_details =>"Tomcat Application Server",
|
|
13
|
+
:match_type => :content_body,
|
|
14
|
+
:version => nil,
|
|
15
|
+
:match_content => /<title>Apache Tomcat/,
|
|
16
|
+
:dynamic_version => lambda{|x| x["details"]["hidden_response_data"].scan(/<title>(.*)<\/title>/)[0].first.gsub("Apache Tomcat/","").gsub(" - Error report","").chomp },
|
|
17
|
+
:paths => ["#{url}"]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/lib/checks/aruba.rb
CHANGED
|
@@ -6,10 +6,13 @@ class Aruba < Intrigue::Ident::Check::Base
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Aruba",
|
|
11
|
+
:product => "Wireless Controller",
|
|
10
12
|
:version => nil,
|
|
11
|
-
:
|
|
12
|
-
:
|
|
13
|
+
:match_type => :content_body,
|
|
14
|
+
:match_content => /arubalp=/,
|
|
15
|
+
:match_details =>"Matches an aruba link, generic identifier",
|
|
13
16
|
:paths => ["#{url}"]
|
|
14
17
|
}
|
|
15
18
|
]
|
data/lib/checks/atlassian.rb
CHANGED
|
@@ -6,27 +6,33 @@ class Atlassian < Intrigue::Ident::Check::Base
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Atlassian",
|
|
11
|
+
:product =>"BitBucket",
|
|
12
|
+
:match_details =>"Atlassian BitBucket",
|
|
11
13
|
:version => nil,
|
|
12
|
-
:
|
|
13
|
-
:
|
|
14
|
+
:match_type => :content_body,
|
|
15
|
+
:match_content => /com.atlassian.bitbucket.server/i,
|
|
14
16
|
:paths => ["#{url}"]
|
|
15
17
|
},
|
|
16
18
|
{
|
|
17
|
-
:
|
|
18
|
-
:
|
|
19
|
+
:type => "application",
|
|
20
|
+
:vendor => "Atlassian",
|
|
21
|
+
:product =>"Confluence",
|
|
22
|
+
:match_details =>"Atlassian Confluence",
|
|
19
23
|
:version => nil,
|
|
20
|
-
:
|
|
21
|
-
:
|
|
24
|
+
:match_type => :content_headers,
|
|
25
|
+
:match_content => /X-Confluence-Request-Time/i,
|
|
22
26
|
:paths => ["#{url}"]
|
|
23
27
|
},
|
|
24
28
|
{
|
|
25
|
-
:
|
|
26
|
-
:
|
|
29
|
+
:type => "application",
|
|
30
|
+
:vendor => "Atlassian",
|
|
31
|
+
:product =>"Crucible",
|
|
32
|
+
:match_details =>"Atlassian Crucible",
|
|
27
33
|
:version => nil,
|
|
28
|
-
:
|
|
29
|
-
:
|
|
34
|
+
:match_type => :content_body,
|
|
35
|
+
:match_content => /FishEye and Crucible/,
|
|
30
36
|
:dynamic_version => lambda{|x|
|
|
31
37
|
if x["details"]["hidden_response_data"].scan(/Log in to FishEye and Crucible (.*)\</)[0]
|
|
32
38
|
x["details"]["hidden_response_data"].scan(/Log in to FishEye and Crucible (.*)\</)[0].first
|
|
@@ -35,20 +41,24 @@ class Atlassian < Intrigue::Ident::Check::Base
|
|
|
35
41
|
:paths => ["#{url}"]
|
|
36
42
|
},
|
|
37
43
|
{
|
|
38
|
-
:
|
|
39
|
-
:
|
|
44
|
+
:type => "application",
|
|
45
|
+
:vendor => "Atlassian",
|
|
46
|
+
:product =>"Hipchat",
|
|
47
|
+
:match_details =>"Atlassian Hipchat",
|
|
40
48
|
:version => nil,
|
|
41
|
-
:
|
|
42
|
-
:
|
|
49
|
+
:match_type => :content_body,
|
|
50
|
+
:match_content => /\$\(document\).trigger\('hipchat.load'\);/,
|
|
43
51
|
:examples => ["https://api.appfire.com:443"],
|
|
44
52
|
:paths => ["#{url}"]
|
|
45
53
|
},
|
|
46
54
|
{
|
|
47
|
-
:
|
|
48
|
-
:
|
|
55
|
+
:type => "application",
|
|
56
|
+
:vendor => "Atlassian",
|
|
57
|
+
:product =>"Jira",
|
|
58
|
+
:match_details =>"Atlassian Jira",
|
|
49
59
|
:version => nil,
|
|
50
|
-
:
|
|
51
|
-
:
|
|
60
|
+
:match_type => :content_cookies,
|
|
61
|
+
:match_content => /atlassian.xsrf.token/i,
|
|
52
62
|
:dynamic_version => lambda{ |x|
|
|
53
63
|
if x["details"]["hidden_response_data"].scan(/<span id="footer-build-information">(.*)-<span/)[0]
|
|
54
64
|
x["details"]["hidden_response_data"].scan(/<span id="footer-build-information">(.*)-<span/)[0].first.gsub("(","")
|
|
@@ -1,96 +1,116 @@
|
|
|
1
1
|
module Intrigue
|
|
2
2
|
module Ident
|
|
3
3
|
module Check
|
|
4
|
-
class
|
|
4
|
+
class Automattic < Intrigue::Ident::Check::Base
|
|
5
5
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Automattic",
|
|
11
|
+
:product =>"Wordpress",
|
|
12
|
+
:match_details =>"Wordpress WP-JSON endpoint",
|
|
11
13
|
:version => nil,
|
|
12
|
-
:
|
|
13
|
-
:
|
|
14
|
+
:match_type => :content_body,
|
|
15
|
+
:match_content => /gmt_offset/,
|
|
14
16
|
:paths => ["#{url}/wp-json"]
|
|
15
17
|
},
|
|
16
18
|
{
|
|
17
|
-
:
|
|
18
|
-
:
|
|
19
|
+
:type => "application",
|
|
20
|
+
:vendor => "Automattic",
|
|
21
|
+
:product =>"Wordpress",
|
|
22
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
19
23
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
20
24
|
:version => "2.0",
|
|
21
|
-
:
|
|
25
|
+
:match_type => :checksum_body,
|
|
22
26
|
:checksum => "a306a72ce0f250e5f67132dc6bcb2ccb",
|
|
23
27
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
24
28
|
},
|
|
25
29
|
{
|
|
26
|
-
:
|
|
27
|
-
:
|
|
30
|
+
:type => "application",
|
|
31
|
+
:vendor => "Automattic",
|
|
32
|
+
:product =>"Wordpress",
|
|
33
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
28
34
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
29
35
|
:version => "2.1",
|
|
30
|
-
:
|
|
36
|
+
:match_type => :checksum_body,
|
|
31
37
|
:checksum => "4f04728cb4631a553c4266c14b9846aa",
|
|
32
38
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
33
39
|
},
|
|
34
40
|
{
|
|
35
|
-
:
|
|
36
|
-
:
|
|
41
|
+
:type => "application",
|
|
42
|
+
:vendor => "Automattic",
|
|
43
|
+
:product =>"Wordpress",
|
|
44
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
37
45
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
38
46
|
:version => "2.2",
|
|
39
|
-
:
|
|
47
|
+
:match_type => :checksum_body,
|
|
40
48
|
:checksum => "25e1e78d5b0c221e98e14c6e8c62084f",
|
|
41
49
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
42
50
|
},
|
|
43
51
|
{
|
|
44
|
-
:
|
|
45
|
-
:
|
|
52
|
+
:type => "application",
|
|
53
|
+
:vendor => "Automattic",
|
|
54
|
+
:product =>"Wordpress",
|
|
55
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
46
56
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
47
57
|
:version => "2.3",
|
|
48
|
-
:
|
|
58
|
+
:match_type => :checksum_body,
|
|
49
59
|
:checksum => "83c83d0f0a71bd57c320d93e59991c53",
|
|
50
60
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
51
61
|
},
|
|
52
62
|
{
|
|
53
|
-
:
|
|
54
|
-
:
|
|
63
|
+
:type => "application",
|
|
64
|
+
:vendor => "Automattic",
|
|
65
|
+
:product =>"Wordpress",
|
|
66
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
55
67
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
56
68
|
:version => "2.5",
|
|
57
|
-
:
|
|
69
|
+
:match_type => :checksum_body,
|
|
58
70
|
:checksum => "7293453cf0ff5a9a4cfe8cebd5b5a71a",
|
|
59
71
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
60
72
|
},
|
|
61
73
|
{
|
|
62
|
-
:
|
|
63
|
-
:
|
|
74
|
+
:type => "application",
|
|
75
|
+
:vendor => "Automattic",
|
|
76
|
+
:product =>"Wordpress",
|
|
77
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
64
78
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
65
79
|
:version => "2.6",
|
|
66
|
-
:
|
|
80
|
+
:match_type => :checksum_body,
|
|
67
81
|
:checksum => "61740709537bd19fb6e03b7e11eb8812",
|
|
68
82
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
69
83
|
},
|
|
70
84
|
{
|
|
71
|
-
:
|
|
72
|
-
:
|
|
85
|
+
:type => "application",
|
|
86
|
+
:vendor => "Automattic",
|
|
87
|
+
:product =>"Wordpress",
|
|
88
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
73
89
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
74
90
|
:version => "2.7",
|
|
75
|
-
:
|
|
91
|
+
:match_type => :checksum_body,
|
|
76
92
|
:checksum => "e6bbc53a727f3af003af272fd229b0b2",
|
|
77
93
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
78
94
|
},
|
|
79
95
|
{
|
|
80
|
-
:
|
|
81
|
-
:
|
|
96
|
+
:type => "application",
|
|
97
|
+
:vendor => "Automattic",
|
|
98
|
+
:product =>"Wordpress",
|
|
99
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
82
100
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
83
101
|
:version => "2.7.1",
|
|
84
|
-
:
|
|
102
|
+
:match =>:checksum_body,
|
|
85
103
|
:checksum => "e6bbc53a727f3af003af272fd229b0b2",
|
|
86
104
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
87
105
|
},
|
|
88
106
|
{
|
|
89
|
-
:
|
|
90
|
-
:
|
|
107
|
+
:type => "application",
|
|
108
|
+
:vendor => "Automattic",
|
|
109
|
+
:product =>"Wordpress",
|
|
110
|
+
:match_details =>"Wordpress TinyMCE Editor",
|
|
91
111
|
:references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
|
|
92
112
|
:version => "2.9.1",
|
|
93
|
-
:
|
|
113
|
+
:match_type => :checksum_body,
|
|
94
114
|
:checksum => "128e75ed19d49a94a771586bf83265ec",
|
|
95
115
|
:paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
|
|
96
116
|
}
|
|
@@ -103,10 +123,10 @@ all_checks = [{
|
|
|
103
123
|
:url => "#{url}",
|
|
104
124
|
:checklist => [
|
|
105
125
|
{
|
|
106
|
-
:
|
|
107
|
-
:
|
|
108
|
-
:
|
|
109
|
-
:
|
|
126
|
+
:product =>"Yoast Wordpress SEO Plugin", # won't be used if we have
|
|
127
|
+
:match_details =>"Yoast Wordpress SEO Plugin",
|
|
128
|
+
:match_type => "content",
|
|
129
|
+
:match_content => /<!-- \/ Yoast WordPress SEO plugin. -->/,
|
|
110
130
|
:test_site => "https://ip-50-62-231-56.ip.secureserver.net",
|
|
111
131
|
:dynamic_name => lambda{|x| x.scan(/the Yoast WordPress SEO plugin v.* - h/)[0].gsub("the ","").gsub(" - h","") }
|
|
112
132
|
}
|
data/lib/checks/chef.rb
CHANGED
|
@@ -6,20 +6,24 @@ module Check
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Chef",
|
|
11
|
+
:product =>"Server",
|
|
12
|
+
:match_details =>"Chef Server",
|
|
11
13
|
:version => nil,
|
|
12
|
-
:
|
|
13
|
-
:
|
|
14
|
+
:match_type => :content_body,
|
|
15
|
+
:match_content => /<title>Chef Server<\/title>/,
|
|
14
16
|
:dynamic_version => lambda{|x| x["details"]["hidden_response_data"].scan(/Version\ (.*)\ —/)[0].first },
|
|
15
17
|
:paths => ["#{url}"]
|
|
16
18
|
},
|
|
17
19
|
{
|
|
18
|
-
:
|
|
19
|
-
:
|
|
20
|
+
:type => "application",
|
|
21
|
+
:vendor => "Chef",
|
|
22
|
+
:product =>"Server",
|
|
23
|
+
:match_details =>"Chef Server",
|
|
20
24
|
:version => nil,
|
|
21
|
-
:
|
|
22
|
-
:
|
|
25
|
+
:match_type => :content_cookies,
|
|
26
|
+
:match_content => /chef-manage/i,
|
|
23
27
|
:paths => ["#{url}"]
|
|
24
28
|
}
|
|
25
29
|
]
|
data/lib/checks/cisco.rb
CHANGED
|
@@ -6,32 +6,38 @@ module Check
|
|
|
6
6
|
def generate_checks(url)
|
|
7
7
|
[
|
|
8
8
|
{
|
|
9
|
-
:
|
|
10
|
-
:
|
|
9
|
+
:type => "application",
|
|
10
|
+
:vendor => "Cisco",
|
|
11
|
+
:product =>"SSL VPN",
|
|
12
|
+
:match_details =>"Cisco SSL VPN",
|
|
11
13
|
:tags => ["tech:vpn"],
|
|
12
14
|
:version => nil,
|
|
13
|
-
:
|
|
14
|
-
:
|
|
15
|
+
:match_type => :content_cookies,
|
|
16
|
+
:match_content => /webvpn/,
|
|
15
17
|
:hide => false,
|
|
16
18
|
:paths => ["#{url}"]
|
|
17
19
|
},
|
|
18
20
|
{
|
|
19
|
-
:
|
|
20
|
-
:
|
|
21
|
+
:type => "application",
|
|
22
|
+
:vendor => "Cisco",
|
|
23
|
+
:product =>"SSL VPN",
|
|
24
|
+
:match_details =>"Cisco SSL VPN",
|
|
21
25
|
:tags => ["tech:vpn"],
|
|
22
26
|
:version => nil,
|
|
23
|
-
:
|
|
24
|
-
:
|
|
27
|
+
:match_type => :content_body,
|
|
28
|
+
:match_content => /document.location.replace\(\"\/\+CSCOE\+\/logon.html\"\)/,
|
|
25
29
|
:examples => ["https://12.237.144.250:443", "http://12.150.243.178:80"],
|
|
26
30
|
:hide => false,
|
|
27
31
|
:paths => ["#{url}"]
|
|
28
32
|
},
|
|
29
33
|
{
|
|
30
|
-
:
|
|
31
|
-
:
|
|
34
|
+
:type => "application",
|
|
35
|
+
:vendor => "Cisco",
|
|
36
|
+
:product => "Router",
|
|
37
|
+
:match_details => "Cisco Router",
|
|
32
38
|
:version => nil,
|
|
33
|
-
:
|
|
34
|
-
:
|
|
39
|
+
:match_type => :content_headers,
|
|
40
|
+
:match_content => /server: cisco-IOS/,
|
|
35
41
|
:hide => false,
|
|
36
42
|
:paths => ["#{url}"]
|
|
37
43
|
}
|