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.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +29 -0
- data/ident.rb +269 -0
- data/intrigue-ident.gemspec +22 -0
- data/lib/check_factory.rb +22 -0
- data/lib/checks/akamai.rb +22 -0
- data/lib/checks/amazon.rb +26 -0
- data/lib/checks/aruba.rb +21 -0
- data/lib/checks/asp_net.rb +68 -0
- data/lib/checks/atlassian.rb +55 -0
- data/lib/checks/base.rb +13 -0
- data/lib/checks/chef.rb +31 -0
- data/lib/checks/cisco.rb +33 -0
- data/lib/checks/citrix.rb +24 -0
- data/lib/checks/cloudflare.rb +59 -0
- data/lib/checks/cloudfront.rb +41 -0
- data/lib/checks/cpanel.rb +23 -0
- data/lib/checks/django.rb +22 -0
- data/lib/checks/drupal.rb +26 -0
- data/lib/checks/f5.rb +24 -0
- data/lib/checks/fastly.rb +22 -0
- data/lib/checks/generic.rb +23 -0
- data/lib/checks/gitlab.rb +22 -0
- data/lib/checks/google.rb +23 -0
- data/lib/checks/grafana.rb +22 -0
- data/lib/checks/jenkins.rb +40 -0
- data/lib/checks/joomla.rb +23 -0
- data/lib/checks/limesuvey.rb +22 -0
- data/lib/checks/lithium.rb +30 -0
- data/lib/checks/magento.rb +22 -0
- data/lib/checks/mcafee.rb +22 -0
- data/lib/checks/mediawiki.rb +38 -0
- data/lib/checks/microsoft.rb +69 -0
- data/lib/checks/nagios.rb +22 -0
- data/lib/checks/oracle.rb +38 -0
- data/lib/checks/palo_alto.rb +23 -0
- data/lib/checks/pardot.rb +22 -0
- data/lib/checks/pfsense.rb +25 -0
- data/lib/checks/phpmyadmin.rb +22 -0
- data/lib/checks/rabbitmq.rb +29 -0
- data/lib/checks/spring.rb +31 -0
- data/lib/checks/team_city.rb +22 -0
- data/lib/checks/telerik.rb +25 -0
- data/lib/checks/tomcat.rb +22 -0
- data/lib/checks/varnish.rb +27 -0
- data/lib/checks/wordpress.rb +120 -0
- data/lib/checks/wp_engine.rb +22 -0
- 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: []
|