intrigue-ident 0.1

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 (49) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +29 -0
  4. data/ident.rb +269 -0
  5. data/intrigue-ident.gemspec +22 -0
  6. data/lib/check_factory.rb +22 -0
  7. data/lib/checks/akamai.rb +22 -0
  8. data/lib/checks/amazon.rb +26 -0
  9. data/lib/checks/aruba.rb +21 -0
  10. data/lib/checks/asp_net.rb +68 -0
  11. data/lib/checks/atlassian.rb +55 -0
  12. data/lib/checks/base.rb +13 -0
  13. data/lib/checks/chef.rb +31 -0
  14. data/lib/checks/cisco.rb +33 -0
  15. data/lib/checks/citrix.rb +24 -0
  16. data/lib/checks/cloudflare.rb +59 -0
  17. data/lib/checks/cloudfront.rb +41 -0
  18. data/lib/checks/cpanel.rb +23 -0
  19. data/lib/checks/django.rb +22 -0
  20. data/lib/checks/drupal.rb +26 -0
  21. data/lib/checks/f5.rb +24 -0
  22. data/lib/checks/fastly.rb +22 -0
  23. data/lib/checks/generic.rb +23 -0
  24. data/lib/checks/gitlab.rb +22 -0
  25. data/lib/checks/google.rb +23 -0
  26. data/lib/checks/grafana.rb +22 -0
  27. data/lib/checks/jenkins.rb +40 -0
  28. data/lib/checks/joomla.rb +23 -0
  29. data/lib/checks/limesuvey.rb +22 -0
  30. data/lib/checks/lithium.rb +30 -0
  31. data/lib/checks/magento.rb +22 -0
  32. data/lib/checks/mcafee.rb +22 -0
  33. data/lib/checks/mediawiki.rb +38 -0
  34. data/lib/checks/microsoft.rb +69 -0
  35. data/lib/checks/nagios.rb +22 -0
  36. data/lib/checks/oracle.rb +38 -0
  37. data/lib/checks/palo_alto.rb +23 -0
  38. data/lib/checks/pardot.rb +22 -0
  39. data/lib/checks/pfsense.rb +25 -0
  40. data/lib/checks/phpmyadmin.rb +22 -0
  41. data/lib/checks/rabbitmq.rb +29 -0
  42. data/lib/checks/spring.rb +31 -0
  43. data/lib/checks/team_city.rb +22 -0
  44. data/lib/checks/telerik.rb +25 -0
  45. data/lib/checks/tomcat.rb +22 -0
  46. data/lib/checks/varnish.rb +27 -0
  47. data/lib/checks/wordpress.rb +120 -0
  48. data/lib/checks/wp_engine.rb +22 -0
  49. metadata +133 -0
@@ -0,0 +1,29 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Rabbitmq < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "RabbitMQ",
10
+ :description => "RabbitMQ",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /RabbitMQ Management/,
14
+ :paths => ["#{uri}"]
15
+ },
16
+ {
17
+ :name => "RabbitMQ API",
18
+ :description => "RabbitMQ API",
19
+ :type => :content_body,
20
+ :version => nil,
21
+ :content => /RabbitMQ Management HTTP API/,
22
+ :paths => ["#{uri}/api"]
23
+ }
24
+ ]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Spring < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Spring",
10
+ :description => "Standard Spring Error Message",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /{"timestamp":\d.*,"status":999,"error":"None","message":"No message available"}/,
14
+ :references => ["https://github.com/spring-projects/spring-boot"],
15
+ :paths => ["#{uri}/donotbealarmedthisisjusttestingagenericerrorpage"]
16
+ },
17
+ {
18
+ :name => "Spring",
19
+ :description => "Standard Spring MVC error page",
20
+ :type => :content_body,
21
+ :version => nil,
22
+ :content => /{"timestamp":\d.*,"status":999,"error":"None","message":"No message available"}/,
23
+ :paths => ["#{uri}/error.json"]
24
+ }
25
+ ]
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class TeamCity < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "TeamCity Continuous Integration",
10
+ :description => "TeamCity Continuous Integration",
11
+ :version => nil,
12
+ :type => :content_body,
13
+ :content => /icons\/teamcity.black.svg/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Telerik < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Telerik Sitefinity",
10
+ :description => "Telerik Sitefinity is an ASP.NET 2.0-based Content Management System (CMS)",
11
+ :url => "https://www.sitefinity.com/",
12
+ :version => nil,
13
+ :type => :content_body,
14
+ :content => /Telerik.Sitefinity.Resources/,
15
+ :dynamic_version => lambda { |x| x.body.match(/Version=([\d\.]+),/).captures[0] },
16
+ :verify_sites => [],
17
+ :paths => ["#{uri}"]
18
+ }
19
+ ]
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Tomcat < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Apache Tomcat",
10
+ :description => "Tomcat Application Server",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /<title>Apache Tomcat/,
14
+ :dynamic_version => lambda{|x| x.body.scan(/<title>(.*)<\/title>/)[0].first.gsub("Apache Tomcat/","").gsub(" - Error report","").chomp },
15
+ :paths => ["#{uri}"]
16
+ }
17
+ ]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Varnish < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Varnish",
10
+ :description => "Varnish Proxy",
11
+ :version => nil,
12
+ :type => :content_headers,
13
+ :content => /via: [0-9]\.[0-9] varnish/i,
14
+ :dynamic_version => lambda{ |x|
15
+ m = nil
16
+ x.each_header{|h,v| m = v if (h == "via" && v =~ /varnish/) }
17
+ m.gsub("varnish ","") if m
18
+ },
19
+ :paths => ["#{uri}"]
20
+ }
21
+ ]
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,120 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Wordpress < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Wordpress",
10
+ :description => "Wordpress WP-JSON endpoint",
11
+ :version => nil,
12
+ :type => :content_body,
13
+ :content => /gmt_offset/,
14
+ :paths => ["#{uri}/wp-json"]
15
+ },
16
+ {
17
+ :name => "Wordpress",
18
+ :description => "Wordpress TinyMCE Editor",
19
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
20
+ :version => "2.0",
21
+ :type => :checksum_body,
22
+ :checksum => "a306a72ce0f250e5f67132dc6bcb2ccb",
23
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
24
+ },
25
+ {
26
+ :name => "Wordpress",
27
+ :description => "Wordpress TinyMCE Editor",
28
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
29
+ :version => "2.1",
30
+ :type => :checksum_body,
31
+ :checksum => "4f04728cb4631a553c4266c14b9846aa",
32
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
33
+ },
34
+ {
35
+ :name => "Wordpress",
36
+ :description => "Wordpress TinyMCE Editor",
37
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
38
+ :version => "2.2",
39
+ :type => :checksum_body,
40
+ :checksum => "25e1e78d5b0c221e98e14c6e8c62084f",
41
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
42
+ },
43
+ {
44
+ :name => "Wordpress",
45
+ :description => "Wordpress TinyMCE Editor",
46
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
47
+ :version => "2.3",
48
+ :type => :checksum_body,
49
+ :checksum => "83c83d0f0a71bd57c320d93e59991c53",
50
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
51
+ },
52
+ {
53
+ :name => "Wordpress",
54
+ :description => "Wordpress TinyMCE Editor",
55
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
56
+ :version => "2.5",
57
+ :type => :checksum_body,
58
+ :checksum => "7293453cf0ff5a9a4cfe8cebd5b5a71a",
59
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
60
+ },
61
+ {
62
+ :name => "Wordpress",
63
+ :description => "Wordpress TinyMCE Editor",
64
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
65
+ :version => "2.6",
66
+ :type => :checksum_body,
67
+ :checksum => "61740709537bd19fb6e03b7e11eb8812",
68
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
69
+ },
70
+ {
71
+ :name => "Wordpress",
72
+ :description => "Wordpress TinyMCE Editor",
73
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
74
+ :version => "2.7",
75
+ :type => :checksum_body,
76
+ :checksum => "e6bbc53a727f3af003af272fd229b0b2",
77
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
78
+ },
79
+ {
80
+ :name => "Wordpress",
81
+ :description => "Wordpress TinyMCE Editor",
82
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
83
+ :version => "2.7.1",
84
+ :type =>:checksum_body,
85
+ :checksum => "e6bbc53a727f3af003af272fd229b0b2",
86
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
87
+ },
88
+ {
89
+ :name => "Wordpress",
90
+ :description => "Wordpress TinyMCE Editor",
91
+ :references => ["https://dcid.me/texts/fingerprinting-web-apps.html"],
92
+ :version => "2.9.1",
93
+ :type => :checksum_body,
94
+ :checksum => "128e75ed19d49a94a771586bf83265ec",
95
+ :paths => ["#{uri}/wp-includes/js/tinymce/tiny_mce.js"]
96
+ }
97
+ ]
98
+ end
99
+
100
+
101
+ =begin
102
+ all_checks = [{
103
+ :uri => "#{uri}",
104
+ :checklist => [
105
+ {
106
+ :name => "Yoast Wordpress SEO Plugin", # won't be used if we have
107
+ :description => "Yoast Wordpress SEO Plugin",
108
+ :type => "content",
109
+ :content => /<!-- \/ Yoast WordPress SEO plugin. -->/,
110
+ :test_site => "https://ip-50-62-231-56.ip.secureserver.net",
111
+ :dynamic_name => lambda{|x| x.scan(/the Yoast WordPress SEO plugin v.* - h/)[0].gsub("the ","").gsub(" - h","") }
112
+ }
113
+ ]},
114
+ =end
115
+
116
+
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class WpEngine < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "WPEngine",
10
+ :description => "WPEngine - Access site by IP",
11
+ :version => nil,
12
+ :type => :content_body,
13
+ :content => /This domain is successfully pointed at WP Engine, but is not configured for an account on our platform./,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: intrigue-ident
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - jcran
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-07-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: Fingerprinter for Intrigue Data
56
+ email:
57
+ - jcran@intrigue.io
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - Gemfile
63
+ - Gemfile.lock
64
+ - ident.rb
65
+ - intrigue-ident.gemspec
66
+ - lib/check_factory.rb
67
+ - lib/checks/akamai.rb
68
+ - lib/checks/amazon.rb
69
+ - lib/checks/aruba.rb
70
+ - lib/checks/asp_net.rb
71
+ - lib/checks/atlassian.rb
72
+ - lib/checks/base.rb
73
+ - lib/checks/chef.rb
74
+ - lib/checks/cisco.rb
75
+ - lib/checks/citrix.rb
76
+ - lib/checks/cloudflare.rb
77
+ - lib/checks/cloudfront.rb
78
+ - lib/checks/cpanel.rb
79
+ - lib/checks/django.rb
80
+ - lib/checks/drupal.rb
81
+ - lib/checks/f5.rb
82
+ - lib/checks/fastly.rb
83
+ - lib/checks/generic.rb
84
+ - lib/checks/gitlab.rb
85
+ - lib/checks/google.rb
86
+ - lib/checks/grafana.rb
87
+ - lib/checks/jenkins.rb
88
+ - lib/checks/joomla.rb
89
+ - lib/checks/limesuvey.rb
90
+ - lib/checks/lithium.rb
91
+ - lib/checks/magento.rb
92
+ - lib/checks/mcafee.rb
93
+ - lib/checks/mediawiki.rb
94
+ - lib/checks/microsoft.rb
95
+ - lib/checks/nagios.rb
96
+ - lib/checks/oracle.rb
97
+ - lib/checks/palo_alto.rb
98
+ - lib/checks/pardot.rb
99
+ - lib/checks/pfsense.rb
100
+ - lib/checks/phpmyadmin.rb
101
+ - lib/checks/rabbitmq.rb
102
+ - lib/checks/spring.rb
103
+ - lib/checks/team_city.rb
104
+ - lib/checks/telerik.rb
105
+ - lib/checks/tomcat.rb
106
+ - lib/checks/varnish.rb
107
+ - lib/checks/wordpress.rb
108
+ - lib/checks/wp_engine.rb
109
+ homepage: https://intrigue.io
110
+ licenses:
111
+ - BSD
112
+ metadata: {}
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ requirements: []
128
+ rubyforge_project:
129
+ rubygems_version: 2.7.6
130
+ signing_key:
131
+ specification_version: 4
132
+ summary: Fingerprinter for Intrigue Data
133
+ test_files: []