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.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/Gemfile.lock +0 -6
  4. data/data/logos/apache.png +0 -0
  5. data/data/logos/generic.png +0 -0
  6. data/data/logos/oracle_java.png +0 -0
  7. data/data/logos/php.png +0 -0
  8. data/data/logos/varnish.png +0 -0
  9. data/intrigue-ident.gemspec +2 -2
  10. data/lib/checks/acquia.rb +26 -0
  11. data/lib/checks/adobe.rb +38 -0
  12. data/lib/checks/akamai.rb +6 -4
  13. data/lib/checks/amazon.rb +54 -8
  14. data/lib/checks/apache.rb +113 -0
  15. data/lib/checks/aruba.rb +6 -3
  16. data/lib/checks/atlassian.rb +46 -28
  17. data/lib/checks/automattic.rb +189 -0
  18. data/lib/checks/axis.rb +24 -0
  19. data/lib/checks/banu.rb +28 -0
  20. data/lib/checks/base.rb +58 -0
  21. data/lib/checks/checkpoint.rb +55 -0
  22. data/lib/checks/chef.rb +16 -12
  23. data/lib/checks/cisco.rb +85 -12
  24. data/lib/checks/citrix.rb +81 -6
  25. data/lib/checks/cloudflare.rb +40 -30
  26. data/lib/checks/cpanel.rb +8 -6
  27. data/lib/checks/craft.rb +25 -0
  28. data/lib/checks/django.rb +8 -6
  29. data/lib/checks/docuwiki.rb +25 -0
  30. data/lib/checks/drupal.rb +25 -8
  31. data/lib/checks/f5.rb +35 -7
  32. data/lib/checks/fastly.rb +22 -7
  33. data/lib/checks/generic.rb +34 -6
  34. data/lib/checks/gitlab.rb +12 -6
  35. data/lib/checks/google.rb +19 -6
  36. data/lib/checks/grafana.rb +8 -6
  37. data/lib/checks/groovy.rb +24 -0
  38. data/lib/checks/heroku.rb +27 -0
  39. data/lib/checks/hp.rb +25 -0
  40. data/lib/checks/ibm.rb +77 -0
  41. data/lib/checks/ivanti.rb +27 -0
  42. data/lib/checks/jamf.rb +26 -0
  43. data/lib/checks/jekyll.rb +28 -0
  44. data/lib/checks/jenkins.rb +24 -18
  45. data/lib/checks/jive.rb +25 -0
  46. data/lib/checks/jobvite.rb +25 -0
  47. data/lib/checks/joomla.rb +9 -6
  48. data/lib/checks/jupyter.rb +26 -0
  49. data/lib/checks/lighttpd.rb +28 -0
  50. data/lib/checks/limesuvey.rb +8 -6
  51. data/lib/checks/lithium.rb +15 -11
  52. data/lib/checks/lotus.rb +27 -0
  53. data/lib/checks/magento.rb +8 -6
  54. data/lib/checks/mailchimp.rb +25 -0
  55. data/lib/checks/mcafee.rb +8 -6
  56. data/lib/checks/mediawiki.rb +31 -32
  57. data/lib/checks/microsoft.rb +240 -34
  58. data/lib/checks/microtik.rb +27 -0
  59. data/lib/checks/nagios.rb +8 -6
  60. data/lib/checks/new_relic.rb +25 -0
  61. data/lib/checks/nginx.rb +40 -0
  62. data/lib/checks/okta.rb +25 -0
  63. data/lib/checks/ookla.rb +27 -0
  64. data/lib/checks/openresty.rb +25 -0
  65. data/lib/checks/oracle.rb +208 -17
  66. data/lib/checks/palo_alto.rb +6 -4
  67. data/lib/checks/pantheon.rb +26 -0
  68. data/lib/checks/pardot.rb +8 -6
  69. data/lib/checks/perfectsense.rb +27 -0
  70. data/lib/checks/pfsense.rb +8 -9
  71. data/lib/checks/php.rb +41 -0
  72. data/lib/checks/phpmyadmin.rb +8 -6
  73. data/lib/checks/ping_identity.rb +27 -0
  74. data/lib/checks/pivotal.rb +24 -0
  75. data/lib/checks/plesk.rb +41 -0
  76. data/lib/checks/pulse_secure.rb +27 -0
  77. data/lib/checks/rabbitmq.rb +15 -11
  78. data/lib/checks/restlet.rb +28 -0
  79. data/lib/checks/ruckus_wireless.rb +24 -0
  80. data/lib/checks/sailpoint.rb +27 -0
  81. data/lib/checks/sap.rb +43 -0
  82. data/lib/checks/tableau.rb +26 -0
  83. data/lib/checks/team_city.rb +8 -6
  84. data/lib/checks/telerik.rb +23 -8
  85. data/lib/checks/varnish.rb +8 -11
  86. data/lib/checks/vmware.rb +38 -0
  87. data/lib/checks/webmin.rb +41 -0
  88. data/lib/checks/wp_engine.rb +10 -6
  89. data/lib/checks/yaws.rb +29 -0
  90. data/lib/checks/zeit.rb +28 -0
  91. data/lib/checks/zendesk.rb +39 -0
  92. data/lib/checks/zimbra.rb +24 -0
  93. data/lib/checks/zscaler.rb +28 -0
  94. data/{ident.rb → lib/intrigue-ident.rb} +66 -32
  95. data/lib/traverse_exceptions.rb +196 -0
  96. data/util/check.rb +20 -0
  97. data/util/list.rb +9 -0
  98. metadata +58 -9
  99. data/lib/checks/asp_net.rb +0 -70
  100. data/lib/checks/cloudfront.rb +0 -41
  101. data/lib/checks/spring.rb +0 -31
  102. data/lib/checks/tomcat.rb +0 -22
  103. data/lib/checks/wordpress.rb +0 -120
@@ -0,0 +1,189 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Automattic < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "application",
10
+ :vendor =>"Automattic",
11
+ :tags => ["CMS"],
12
+ :product =>"Wordpress",
13
+ :match_details =>"wordpress generator tag in content",
14
+ :version => nil,
15
+ :match_type => :content_body,
16
+ :match_content => /<meta name="generator" content="WordPress/i,
17
+ :dynamic_version => lambda { |x| _first_body_capture x, /<meta name=\"generator\" content=\"WordPress\ (.*)\" \/>/i },
18
+ :hide => false,
19
+ :examples => [
20
+ "http://www.jewelosco.com:80",
21
+ "http://blog.nolimitvpn.com:80"
22
+ ],
23
+ :paths => ["#{url}"]
24
+ },
25
+ {
26
+ :type => "application",
27
+ :vendor =>"Automattic",
28
+ :tags => ["CMS"],
29
+ :product =>"Wordpress",
30
+ :match_details =>"common link",
31
+ :version => nil,
32
+ :match_type => :content_body,
33
+ :match_content => /<link rel='https:\/\/api.w.org\/'/,
34
+ :examples => ["https://staging.blogs.nordstrom.com:443"],
35
+ :paths => ["#{url}"]
36
+ },
37
+ {
38
+ :type => "application",
39
+ :vendor =>"Automattic",
40
+ :tags => ["CMS"],
41
+ :product =>"Wordpress (Hosted)",
42
+ :match_details =>"unique header",
43
+ :version => nil,
44
+ :match_type => :content_headers,
45
+ :match_content => /x-hacker: If you're reading this, you should visit automattic.com/,
46
+ :examples => ["http://192.0.78.12:80"],
47
+ :paths => ["#{url}"]
48
+ },
49
+ {
50
+ :type => "application",
51
+ :vendor => "Automattic",
52
+ :tags => ["CMS"],
53
+ :product =>"Wordpress",
54
+ :match_details =>"Wordpress WP-JSON endpoint",
55
+ :version => nil,
56
+ :match_type => :content_body,
57
+ :match_content => /gmt_offset/,
58
+ :paths => ["#{url}/wp-json"]
59
+ },
60
+ {
61
+ :type => "application",
62
+ :vendor => "Automattic",
63
+ :tags => ["CMS"],
64
+ :product =>"Wordpress",
65
+ :match_details =>"Wordpress TinyMCE Editor",
66
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
67
+ :version => "2.0",
68
+ :match_type => :checksum_body,
69
+ :checksum => "a306a72ce0f250e5f67132dc6bcb2ccb",
70
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
71
+ },
72
+ {
73
+ :type => "application",
74
+ :vendor => "Automattic",
75
+ :tags => ["CMS"],
76
+ :product =>"Wordpress",
77
+ :match_details =>"Wordpress TinyMCE Editor",
78
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
79
+ :version => "2.1",
80
+ :match_type => :checksum_body,
81
+ :checksum => "4f04728cb4631a553c4266c14b9846aa",
82
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
83
+ },
84
+ {
85
+ :type => "application",
86
+ :vendor => "Automattic",
87
+ :tags => ["CMS"],
88
+ :product =>"Wordpress",
89
+ :match_details =>"Wordpress TinyMCE Editor",
90
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
91
+ :version => "2.2",
92
+ :match_type => :checksum_body,
93
+ :checksum => "25e1e78d5b0c221e98e14c6e8c62084f",
94
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
95
+ },
96
+ {
97
+ :type => "application",
98
+ :vendor => "Automattic",
99
+ :tags => ["CMS"],
100
+ :product =>"Wordpress",
101
+ :match_details =>"Wordpress TinyMCE Editor",
102
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
103
+ :version => "2.3",
104
+ :match_type => :checksum_body,
105
+ :checksum => "83c83d0f0a71bd57c320d93e59991c53",
106
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
107
+ },
108
+ {
109
+ :type => "application",
110
+ :vendor => "Automattic",
111
+ :tags => ["CMS"],
112
+ :product =>"Wordpress",
113
+ :match_details =>"Wordpress TinyMCE Editor",
114
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
115
+ :version => "2.5",
116
+ :match_type => :checksum_body,
117
+ :checksum => "7293453cf0ff5a9a4cfe8cebd5b5a71a",
118
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
119
+ },
120
+ {
121
+ :type => "application",
122
+ :vendor => "Automattic",
123
+ :tags => ["CMS"],
124
+ :product =>"Wordpress",
125
+ :match_details =>"Wordpress TinyMCE Editor",
126
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
127
+ :version => "2.6",
128
+ :match_type => :checksum_body,
129
+ :checksum => "61740709537bd19fb6e03b7e11eb8812",
130
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
131
+ },
132
+ {
133
+ :type => "application",
134
+ :vendor => "Automattic",
135
+ :tags => ["CMS"],
136
+ :product =>"Wordpress",
137
+ :match_details =>"Wordpress TinyMCE Editor",
138
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
139
+ :version => "2.7",
140
+ :match_type => :checksum_body,
141
+ :checksum => "e6bbc53a727f3af003af272fd229b0b2",
142
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
143
+ },
144
+ {
145
+ :type => "application",
146
+ :vendor => "Automattic",
147
+ :tags => ["CMS"],
148
+ :product =>"Wordpress",
149
+ :match_details =>"Wordpress TinyMCE Editor",
150
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
151
+ :version => "2.7.1",
152
+ :match =>:checksum_body,
153
+ :checksum => "e6bbc53a727f3af003af272fd229b0b2",
154
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
155
+ },
156
+ {
157
+ :type => "application",
158
+ :vendor => "Automattic",
159
+ :tags => ["CMS"],
160
+ :product =>"Wordpress",
161
+ :match_details =>"Wordpress TinyMCE Editor",
162
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
163
+ :version => "2.9.1",
164
+ :match_type => :checksum_body,
165
+ :checksum => "128e75ed19d49a94a771586bf83265ec",
166
+ :paths => ["#{url}/wp-includes/js/tinymce/tiny_mce.js"]
167
+ }
168
+ ]
169
+ end
170
+
171
+ =begin
172
+ all_checks = [{
173
+ :url => "#{url}",
174
+ :checklist => [
175
+ {
176
+ :product =>"Yoast Wordpress SEO Plugin", # won't be used if we have
177
+ :match_details =>"Yoast Wordpress SEO Plugin",
178
+ :match_type => "content",
179
+ :match_content => /<!-- \/ Yoast WordPress SEO plugin. -->/,
180
+ :test_site => "https://ip-50-62-231-56.ip.secureserver.net",
181
+ :dynamic_name => lambda{|x| x.scan(/the Yoast WordPress SEO plugin v.* - h/)[0].gsub("the ","").gsub(" - h","") }
182
+ }
183
+ ]},
184
+ =end
185
+
186
+ end
187
+ end
188
+ end
189
+ end
@@ -0,0 +1,24 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Axis < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "application",
10
+ :vendor => "Axis",
11
+ :tags => ["tech:webcam"],
12
+ :product => "Webcam",
13
+ :match_details =>"default redirect uri",
14
+ :version => nil,
15
+ :match_type => :content_body,
16
+ :match_content => /<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=\/view\/viewer_index.shtml?id=/,
17
+ :paths => ["#{url}"]
18
+ }
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Banu < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "application",
10
+ :vendor => "Banu",
11
+ :tags => [],
12
+ :product =>"Tinyproxy",
13
+ :match_details =>"server header",
14
+ :version => nil,
15
+ :match_type => :content_headers,
16
+ :match_content => /server: tinyproxy/i,
17
+ :dynamic_version => lambda { |x|
18
+ _first_header_capture(x,/server: tinyproxy\/(.*)/i,)
19
+ },
20
+ :examples => ["http://208.46.69.59:8080"],
21
+ :paths => ["#{url}"]
22
+ }
23
+ ]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/checks/base.rb CHANGED
@@ -7,6 +7,64 @@ class Base
7
7
  CheckFactory.register(base)
8
8
  end
9
9
 
10
+ private
11
+
12
+ def _body(content)
13
+ content["details"]["hidden_response_data"] || ""
14
+ end
15
+
16
+ # matching helpers
17
+ def _first_body_match(content, regex)
18
+ return nil unless content["details"]["hidden_response_data"]
19
+ content["details"]["hidden_response_data"].match(regex)
20
+ end
21
+
22
+ def _first_body_capture(content, regex, filter=[])
23
+ return nil unless content["details"]["hidden_response_data"]
24
+ x = content["details"]["hidden_response_data"].match(regex)
25
+ if x
26
+ x = x.captures.first.strip
27
+ filter.each{|f| x.gsub!(f,"") }
28
+ x = x.strip
29
+ return x if x.length > 0
30
+ end
31
+ nil
32
+ end
33
+
34
+ def _first_header_match(content, regex)
35
+ return nil unless content["details"]["headers"]
36
+ content["details"]["headers"].match(regex).first
37
+ end
38
+
39
+ def _first_header_capture(content,regex, filter=[])
40
+ return nil unless content["details"]["headers"]
41
+ x = content["details"]["headers"].join("\n").match(regex)
42
+ if x
43
+ x = x.captures.first
44
+ filter.each{|f| x.gsub!(f,"") }
45
+ x = x.strip
46
+ return x if x.length > 0
47
+ end
48
+ nil
49
+ end
50
+
51
+ def _first_cookie_match(content, regex)
52
+ return nil unless content["details"]["cookies"]
53
+ content["details"]["cookies"].match(regex).first
54
+ end
55
+
56
+ def _first_cookie_capture(content, regex, filter=[])
57
+ return nil unless content["details"]["headers"]
58
+ x = content["details"]["cookies"].match(regex)
59
+ if x
60
+ x = x.captures.first.strip
61
+ filter.each{|f| x.gsub!(f,"") }
62
+ x = x.strip
63
+ return x if x.length > 0
64
+ end
65
+ nil
66
+ end
67
+
10
68
  end
11
69
  end
12
70
  end
@@ -0,0 +1,55 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Checkpoint < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "application",
10
+ :vendor => "Checkpoint",
11
+ :tags => ["tech:vpn"],
12
+ :product =>"GO",
13
+ :match_details =>"page title",
14
+ :references => ["https://en.wikipedia.org/wiki/Check_Point_GO"],
15
+ :version => nil,
16
+ :match_type => :content_body,
17
+ :match_content => /<title>Check Point Mobile GO/i,
18
+ :examples => ["http://192.234.138.61:80"],
19
+ :verify => ["eGNlbGVuZXJneSNJbnRyaWd1ZTo6RW50aXR5OjpVcmkjaHR0cDovLzE5Mi4yMzQuMTM4LjYxOjgw"],
20
+ :paths => ["#{url}"]
21
+ },
22
+ {
23
+ :type => "application",
24
+ :vendor => "Checkpoint",
25
+ :tags => ["tech:vpn"],
26
+ :product =>"GO",
27
+ :match_details =>"server header",
28
+ :references => ["https://en.wikipedia.org/wiki/Check_Point_GO"],
29
+ :version => nil,
30
+ :match_type => :content_headers,
31
+ :match_content => /server: CPWS/i,
32
+ :examples => ["http://200.142.200.1:80"],
33
+ :verify => ["aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwOi8vMjAwLjE0Mi4yMDAuMTo4MA=="],
34
+ :paths => ["#{url}"]
35
+ },
36
+ {
37
+ :type => "application",
38
+ :vendor => "Checkpoint",
39
+ :tags => ["tech:vpn"],
40
+ :product =>"SSL Network Extender",
41
+ :match_details =>"server header",
42
+ :references => [],
43
+ :version => nil,
44
+ :match_type => :content_headers,
45
+ :match_content => /server: Check Point SVN foundation/i,
46
+ :examples => ["https://www.cora.ro:8443"],
47
+ :verify => ["aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwczovL3d3dy5jb3JhLnJvOjg0NDM="],
48
+ :paths => ["#{url}"]
49
+ }
50
+ ]
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
data/lib/checks/chef.rb CHANGED
@@ -3,24 +3,28 @@ module Ident
3
3
  module Check
4
4
  class Chef < Intrigue::Ident::Check::Base
5
5
 
6
- def generate_checks(uri)
6
+ def generate_checks(url)
7
7
  [
8
8
  {
9
- :name => "Chef Server",
10
- :description => "Chef Server",
9
+ :type => "application",
10
+ :vendor => "Chef",
11
+ :product =>"Server",
12
+ :match_details =>"Chef Server",
11
13
  :version => nil,
12
- :type => :content_body,
13
- :content => /<title>Chef Server<\/title>/,
14
- :dynamic_version => lambda{|x| x.body.scan(/Version\ (.*)\ &mdash;/)[0].first },
15
- :paths => ["#{uri}"]
14
+ :match_type => :content_body,
15
+ :match_content => /<title>Chef Server<\/title>/,
16
+ :dynamic_version => lambda{|x| _first_body_capture(/Version\ (.*)\ &mdash;/) },
17
+ :paths => ["#{url}"]
16
18
  },
17
19
  {
18
- :name => "Chef Server",
19
- :description => "Chef Server",
20
+ :type => "application",
21
+ :vendor => "Chef",
22
+ :product =>"Server",
23
+ :match_details =>"Chef Server",
20
24
  :version => nil,
21
- :type => :content_cookies,
22
- :content => /chef-manage/i,
23
- :paths => ["#{uri}"]
25
+ :match_type => :content_cookies,
26
+ :match_content => /chef-manage/i,
27
+ :paths => ["#{url}"]
24
28
  }
25
29
  ]
26
30
  end
data/lib/checks/cisco.rb CHANGED
@@ -3,27 +3,100 @@ module Ident
3
3
  module Check
4
4
  class Cisco < Intrigue::Ident::Check::Base
5
5
 
6
- def generate_checks(uri)
6
+ def generate_checks(url)
7
7
  [
8
8
  {
9
- :name => "Cisco SSL VPN",
10
- :description => "Cisco SSL VPN",
9
+ :type => "application",
10
+ :vendor => "Cisco",
11
+ :product => "Adaptive Security Device Manager",
12
+ :match_details => "page title",
13
+ :version => nil,
14
+ :dynamic_version => lambda {|x| _first_body_capture(x,/<title>Cisco ASDM (.*?)<\/title>/)},
15
+ :match_type => :content_body,
16
+ :match_content => /<title>Cisco ASDM/,
17
+ :hide => false,
18
+ :examples => ["https://194.107.112.4:443"],
19
+ :verify => ["aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwczovLzE5NC4xMDcuMTEyLjQ6NDQz"],
20
+ :paths => ["#{url}"]
21
+ },
22
+ {
23
+ :type => "hardware",
24
+ :vendor => "Cisco",
25
+ :product => "Email Security Appliance",
26
+ :match_details => "page title",
27
+ :version => nil,
28
+ :dynamic_version => lambda {|x| _first_body_capture(x,/Email Security Appliance (.*?) \(/)},
29
+ :match_type => :content_body,
30
+ :match_content => /<title> Cisco Email Security Appliance/,
31
+ :hide => false,
32
+ :examples => ["https://200.142.198.180:443"],
33
+ :verify => ["aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwczovLzIwMC4xNDIuMTk4LjE4MDo0NDM="],
34
+ :paths => ["#{url}"]
35
+ },
36
+ {
37
+ :type => "hardware",
38
+ :vendor => "Cisco",
39
+ :product => "Meraki",
40
+ :match_details => "Meraki logo on an on-prem box",
41
+ :version => nil,
42
+ :match_type => :content_body,
43
+ :match_content => /<img id="header_logo" src="images\/meraki-logo.png"/,
44
+ :hide => false,
45
+ :examples => [],
46
+ :paths => ["#{url}"]
47
+ },
48
+ {
49
+ :type => "application",
50
+ :vendor => "Cisco",
51
+ :product =>"SSL VPN",
52
+ :match_details =>"Cisco SSL VPN",
53
+ :tags => ["tech:vpn"],
54
+ :version => nil,
55
+ :match_type => :content_cookies,
56
+ :match_content => /webvpn/,
57
+ :hide => false,
58
+ :paths => ["#{url}"]
59
+ },
60
+ {
61
+ :type => "application",
62
+ :vendor => "Cisco",
63
+ :product =>"SSL VPN",
64
+ :match_details =>"Cisco SSL VPN",
11
65
  :tags => ["tech:vpn"],
12
66
  :version => nil,
13
- :type => :content_cookies,
14
- :content => /webvpn/,
67
+ :match_type => :content_body,
68
+ :match_content => /document.location.replace\(\"\/\+CSCOE\+\/logon.html\"\)/,
69
+ :examples => [
70
+ "https://12.237.144.250:443",
71
+ "http://12.150.243.178:80"],
15
72
  :hide => false,
16
- :paths => ["#{uri}"]
73
+ :paths => ["#{url}"]
17
74
  },
18
75
  {
19
- :name => "Cisco Router",
20
- :description => "Cisco Router",
76
+ :type => "application",
77
+ :vendor => "Cisco",
78
+ :product => "Router",
79
+ :match_details => "Cisco Router",
21
80
  :version => nil,
22
- :type => :content_headers,
23
- :content => /server: cisco-IOS/,
81
+ :match_type => :content_headers,
82
+ :match_content => /server: cisco-IOS/,
24
83
  :hide => false,
25
- :paths => ["#{uri}"]
26
- }
84
+ :paths => ["#{url}"]
85
+ },
86
+ {
87
+ :type => "application",
88
+ :vendor => "Cisco",
89
+ :product =>"vManage",
90
+ :match_details => "page title",
91
+ :tags => [],
92
+ :version => nil,
93
+ :match_type => :content_body,
94
+ :match_content => /<title>Cisco vManage/,
95
+ :examples => ["http://129.41.171.244:80"],
96
+ :verify => ["aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwOi8vMTI5LjQxLjE3MS4yNDQ6ODA="],
97
+ :hide => false,
98
+ :paths => ["#{url}"]
99
+ },
27
100
  ]
28
101
  end
29
102