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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '019bb3aae9b2b3e4edf6504fa032be9c4b9bf1d36c22f2d018203deedaf6351d'
4
- data.tar.gz: 94fcf3306b1aa688a9eecf645e67e69fe8ab92f9cfaa892e31c69d113be2117c
3
+ metadata.gz: cb036d72abc406c70fc7ef521088a456a4e5e6701d472838ac9f8e57bc3c03fa
4
+ data.tar.gz: e3e46d709da07cbf195e7d6d82bdaa93accb2a371cd79447d47d9708ddbe8dac
5
5
  SHA512:
6
- metadata.gz: 58c37de0c43313a8c1fe1be664f3bdebf1ab6fc6fdfb3d160a3c650f2e5990fbad79f23c37e5d9a6d7d612b87f6b33c561781800601aa10e2e4827aca653ca2c
7
- data.tar.gz: ef636c06cc499e620ba8eb1f2bfe562c05d9dcc68924e035ca229c370723f47f24dc1e7bddec861775308a7b84983e5fe55b02f3e044c219dc9bc45b162b8cad
6
+ metadata.gz: ad2f1dd6c6816a809a10e32b3b14f0b5d7fab22516d499ed59268366f0cb6e515378d39d9cdba762e76e742228e81d41703757bef0782f1bd47421e206c388a8
7
+ data.tar.gz: f18be5771baacf1b3af2aaace6052c1f13d141448364213466a151f3205e889720518ee232988f641141e2f350c1006e1bf637b6dd7db2cbf32a0637b679d951
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source 'https://rubygems.org'
2
2
  ruby '2.5.1'
3
3
 
4
4
  gem "rspec"
5
- gem "pry"
data/Gemfile.lock CHANGED
@@ -1,12 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- coderay (1.1.2)
5
4
  diff-lcs (1.3)
6
- method_source (0.9.0)
7
- pry (0.11.3)
8
- coderay (~> 1.1.0)
9
- method_source (~> 0.9.0)
10
5
  rspec (3.7.0)
11
6
  rspec-core (~> 3.7.0)
12
7
  rspec-expectations (~> 3.7.0)
@@ -25,7 +20,6 @@ PLATFORMS
25
20
  ruby
26
21
 
27
22
  DEPENDENCIES
28
- pry
29
23
  rspec
30
24
 
31
25
  RUBY VERSION
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- require_relative 'ident'
2
+ require_relative 'lib/intrigue-ident'
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "intrigue-ident"
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
15
  spec.bindir = "exe"
16
16
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
17
- spec.require_paths = ["lib","ident.rb"]
17
+ spec.require_paths = ["lib"]
18
18
 
19
19
  spec.add_development_dependency "bundler", "~> 1.11"
20
20
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1,26 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Acquia < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "service",
10
+ :vendor => "Acquia",
11
+ :product => "Acquia",
12
+ :references => ["https://docs.acquia.com/acquia-cloud/performance/varnish/headers/"],
13
+ :version => nil,
14
+ :match_type => :content_headers,
15
+ :match_content => /X-AH-Environment:/i,
16
+ :match_details => "Header contains Acquia environment that provides the page response (usually prod, but could also be dev or stage)",
17
+ :hide => false,
18
+ :examples => ["http://netgear.gcs-web.com:80"],
19
+ :paths => ["#{url}"]
20
+ }
21
+ ]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Adobe < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(url)
7
+ [
8
+ {
9
+ :type => "application",
10
+ :vendor => "Adobe",
11
+ :product => "Coldfusion",
12
+ :version => nil,
13
+ :match_type => :content_cookies,
14
+ :match_content => /CFTOKEN=/,
15
+ :match_details => "Adobe Coldfusion Cookie Match",
16
+ :hide => false,
17
+ :examples => ["https://209.235.70.106:443"],
18
+ :paths => ["#{url}"]
19
+ },
20
+ {
21
+ :type => "application",
22
+ :vendor => "Adobe",
23
+ :product => "Experience Manager",
24
+ :version => nil,
25
+ :match_type => :content_body,
26
+ :match_content => /AEM/,
27
+ :match_details => "Adobe Experience Manager",
28
+ :hide => false,
29
+ :examples => ["https://www.ford.com/content/dam/login/core/content/login"],
30
+ :paths => ["#{url}/libs/granite/core/content/login.html"]
31
+ }
32
+
33
+ ]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
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
- :name => "Akamai",
10
- :description => "Akamai Missing Uri",
9
+ :type => "application",
10
+ :vendor => "Akamai",
11
+ :product => "CDN",
11
12
  :version => nil,
12
- :type => :content_body,
13
- :content => /The requested URL "&#91;no&#32;URL&#93;", is invalid.<p>/,
13
+ :match_type => :content_body,
14
+ :match_content => /The requested URL "&#91;no&#32;URL&#93;", 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
@@ -3,20 +3,66 @@ module Ident
3
3
  module Check
4
4
  class Amazon < Intrigue::Ident::Check::Base
5
5
 
6
- def generate_checks(uri)
6
+ def generate_checks(url)
7
7
  [
8
8
  {
9
- :name => "Amazon ELB",
10
- :description => "Amazon Elastic Load Balancer",
9
+ :type => "service",
10
+ :vendor => "Amazon",
11
+ :product =>"Cloudfront",
12
+ :match_details =>"cloudfront cache header",
13
+ :version => nil,
14
+ :match_type => :content_headers,
15
+ :match_content => /via:.*.cloudfront.net \(CloudFront\)/,
16
+ :hide => false,
17
+ :paths => ["#{url}"]
18
+ },
19
+ {
20
+ :type => "service",
21
+ :vendor => "Amazon",
22
+ :product =>"Cloudfront",
23
+ :match_details =>"Cloudfront - no configured hostname error condition",
24
+ :version => nil,
25
+ :match_type => :content_body,
26
+ :match_content => /ERROR: The request could not be satisfied/,
27
+ :hide => true,
28
+ :paths => ["#{url}"]
29
+ },
30
+ {
31
+ :type => "service",
32
+ :vendor => "Amazon",
33
+ :product =>"Cloudfront",
34
+ :match_details =>"Cloudfront - no configured hostname error condition",
35
+ :version => nil,
36
+ :match_type => :content_headers,
37
+ :match_content => /Error from cloudfront/,
38
+ :hide => true,
39
+ :paths => ["#{url}"]
40
+ },
41
+ {
42
+ :type => "service",
43
+ :vendor => "Amazon",
44
+ :product =>"Cloudfront",
45
+ :match_details =>"Cloudfront - 403 error condition",
46
+ :version => nil,
47
+ :match_type => :content_body,
48
+ :match_content => /<h1>403 Forbidden<\/h1><\/center>\n<hr><center>cloudflare/,
49
+ :hide => true,
50
+ :paths => ["#{url}"]
51
+ },
52
+ {
53
+ :tags => ["error_page","hosting_provider"],
54
+ :type => "service",
11
55
  :url => "https://aws.amazon.com/elasticloadbalancing/",
56
+ :vendor => "Amazon",
57
+ :product => "Elastic Load Balancer",
12
58
  :version => nil,
13
- :tags => ["error_page"],
14
- :type => :content_headers,
15
- :content => /awselb\/\d.\d/,
59
+ :match_type => :content_headers,
60
+ :match_content => /awselb\/\d.\d/,
61
+ :match_details =>"Amazon Elastic Load Balancer",
16
62
  :hide => true,
17
- :dynamic_version => lambda { |x| x[:headers].match(/awselb\/(\d.\d)/).captures[0] },
63
+ :dynamic_version => lambda { |x| x["details"]["headers"].join("\n").match(/awselb\/(\d.\d)/).captures[0] },
18
64
  :verify_sites => ["http://52.4.103.22:80"],
19
- :paths => ["#{uri}"]
65
+ :paths => ["#{url}"]
20
66
  }
21
67
  ]
22
68
  end
@@ -0,0 +1,113 @@
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 =>"Ambari",
12
+ :match_details =>"page title",
13
+ :version => nil,
14
+ :match_type => :content_body,
15
+ :match_content => /<title>Ambari<\/title>/i,
16
+ :examples => ["http://12.42.205.114:8080"],
17
+ :verify => "aWJtI0ludHJpZ3VlOjpFbnRpdHk6OlVyaSNodHRwOi8vMTIuNDIuMjA1LjExNDo4MDgw",
18
+ :paths => ["#{url}"]
19
+ },
20
+ {
21
+ :type => "application",
22
+ :vendor => "Apache",
23
+ :product =>"Apache",
24
+ :match_details =>"Apache web server - server header - with versions",
25
+ :version => nil,
26
+ :match_type => :content_headers,
27
+ :match_content => /server:\ Apache[\s|\/]+[0-9]+/i,
28
+ :dynamic_version => lambda { |x|
29
+ _first_header_capture(x,/[s|S]erver:\s?Apache[\s|\/](.*)$/,["Apache","/","(Ubuntu)"])
30
+ },
31
+ :examples => [
32
+ "http://124.6.226.249:8081"
33
+ ],
34
+ :paths => ["#{url}"]
35
+ },
36
+ {
37
+ :type => "application",
38
+ :vendor => "Apache",
39
+ :product =>"Apache",
40
+ :match_details =>"Apache web server - server header - no version",
41
+ :version => nil,
42
+ :match_type => :content_headers,
43
+ :match_content => /server:\ Apache$/i,
44
+ :examples => [
45
+ "http://207.87.195.160:80"
46
+ ],
47
+ :paths => ["#{url}"]
48
+ },
49
+ {
50
+ :type => "application",
51
+ :vendor => "Apache",
52
+ :product =>"Coyote",
53
+ :match_details =>"Apache coyote application server - server header",
54
+ :version => nil,
55
+ :match_type => :content_headers,
56
+ :match_content => /server:\ Apache-Coyote/i,
57
+ :dynamic_version => lambda { |x|
58
+ _first_header_capture(x,/server: Apache-Coyote\/(.*)/i)
59
+ },
60
+ :examples => [ "http://15.224.214.203:80" ],
61
+ :paths => ["#{url}"]
62
+ },
63
+ {
64
+ :type => "application",
65
+ :vendor => "Apache",
66
+ :product =>"Sling",
67
+ :references => ["https://sling.apache.org/"],
68
+ :match_details =>"Apache Sling™ is a framework for RESTful web-applications based on an extensible content tree. also note that this may be related to apache experience manager",
69
+ :version => nil,
70
+ :match_type => :content_body,
71
+ :match_content => /<address>Apache Sling<\/address>/i,
72
+ :examples => [
73
+ "https://assets.microncpg.com/"
74
+ ],
75
+ :paths => ["#{url}"]
76
+ },
77
+ {
78
+ :type => "application",
79
+ :vendor => "Apache",
80
+ :product => "Tomcat",
81
+ :match_details =>"Tomcat Application Server",
82
+ :match_type => :content_body,
83
+ :version => 6,
84
+ :match_content => /<title>Tomcat 6 Welcome Page/,
85
+ :examples => [
86
+ "https://15.139.248.81:443"
87
+ ],
88
+ :paths => ["#{url}"]
89
+ },
90
+
91
+ {
92
+ :type => "application",
93
+ :vendor => "Apache",
94
+ :product => "Tomcat",
95
+ :match_details =>"Tomcat Application Server",
96
+ :match_type => :content_body,
97
+ :version => nil,
98
+ :match_content => /<title>Apache Tomcat/,
99
+ :dynamic_version => lambda{ |x|
100
+ _first_body_capture(x, /<title>(.*)<\/title>/,["Apache Tomcat/"," - Error report"])
101
+ },
102
+ :examples => [
103
+ "http://15.216.136.207:80",
104
+ "http://15.224.214.203:80"
105
+ ],
106
+ :paths => ["#{url}"]
107
+ }
108
+ ]
109
+ end
110
+ end
111
+ end
112
+ end
113
+ 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
- :description => "Aruba Wireless Controller",
9
+ :type => "application",
10
+ :vendor => "Aruba",
11
+ :product => "Wireless Controller",
10
12
  :version => nil,
11
- :type => :content_body,
12
- :content => /arubalp=/,
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
  ]
@@ -3,49 +3,67 @@ module Ident
3
3
  module Check
4
4
  class Atlassian < Intrigue::Ident::Check::Base
5
5
 
6
- def generate_checks(uri)
6
+ def generate_checks(url)
7
7
  [
8
8
  {
9
- :name => "Atlassian BitBucket",
10
- :description => "Atlassian BitBucket",
9
+ :type => "application",
10
+ :vendor => "Atlassian",
11
+ :product =>"BitBucket",
12
+ :match_details =>"Atlassian BitBucket",
11
13
  :version => nil,
12
- :type => :content_body,
13
- :content => /com.atlassian.bitbucket.server/i,
14
- :paths => ["#{uri}"]
14
+ :match_type => :content_body,
15
+ :match_content => /com.atlassian.bitbucket.server/i,
16
+ :paths => ["#{url}"]
15
17
  },
16
18
  {
17
- :name => "Atlassian Confluence",
18
- :description => "Atlassian Confluence",
19
+ :type => "application",
20
+ :vendor => "Atlassian",
21
+ :product =>"Confluence",
22
+ :match_details =>"Atlassian Confluence",
19
23
  :version => nil,
20
- :type => :content_headers,
21
- :content => /X-Confluence-Request-Time/i,
22
- :paths => ["#{uri}"]
24
+ :match_type => :content_headers,
25
+ :match_content => /X-Confluence-Request-Time/i,
26
+ :paths => ["#{url}"]
23
27
  },
24
28
  {
25
- :name => "Atlassian Crucible",
26
- :description => "Atlassian Crucible",
29
+ :type => "application",
30
+ :vendor => "Atlassian",
31
+ :product =>"Crucible",
32
+ :match_details =>"Atlassian Crucible",
27
33
  :version => nil,
28
- :type => :content_body,
29
- :content => /FishEye and Crucible/,
30
- :dynamic_version => lambda{|x|
31
- if x.body.scan(/Log in to FishEye and Crucible (.*)\</)[0]
32
- x.body.scan(/Log in to FishEye and Crucible (.*)\</)[0].first
33
- end
34
+ :match_type => :content_body,
35
+ :match_content => /FishEye and Crucible/,
36
+ :dynamic_version => lambda{ |x|
37
+ _first_body_capture(x, /Log in to FishEye and Crucible (.*)\</)
34
38
  },
35
- :paths => ["#{uri}"]
39
+ :paths => ["#{url}"]
40
+ },
41
+ {
42
+ :type => "application",
43
+ :vendor => "Atlassian",
44
+ :product =>"Hipchat",
45
+ :match_details =>"Atlassian Hipchat",
46
+ :version => nil,
47
+ :match_type => :content_body,
48
+ :match_content => /\$\(document\).trigger\('hipchat.load'\);/,
49
+ :examples => ["https://api.appfire.com:443"],
50
+ :paths => ["#{url}"]
36
51
  },
37
52
  {
38
- :name => "Atlassian Jira",
39
- :description => "Atlassian Jira",
53
+ :type => "application",
54
+ :vendor => "Atlassian",
55
+ :product =>"Jira",
56
+ :match_details =>"Atlassian Jira",
40
57
  :version => nil,
41
- :type => :content_cookies,
42
- :content => /atlassian.xsrf.token/i,
58
+ :match_type => :content_cookies,
59
+ :match_content => /atlassian.xsrf.token=/i,
43
60
  :dynamic_version => lambda{ |x|
44
- if x.body.scan(/<span id="footer-build-information">(.*)-<span/)[0]
45
- x.body.scan(/<span id="footer-build-information">(.*)-<span/)[0].first.gsub("(","")
46
- end
61
+ _first_body_capture(x,/<meta name="ajs-version-number" content="(.*)">/)
47
62
  },
48
- :paths => ["#{uri}"]
63
+ :examples => [
64
+ "http://jira.understood.org/",
65
+ "http://jira.londonandpartners.com:80"],
66
+ :paths => ["#{url}"]
49
67
  }
50
68
  ]
51
69
  end