intrigue-ident 0.64 → 0.65
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/data/logos/.DS_Store +0 -0
- data/data/logos/acquia.png +0 -0
- data/data/logos/amazon_cloudfront.png +0 -0
- data/data/logos/apache_coyote.png +0 -0
- data/data/logos/apache_tomcat.png +0 -0
- data/data/logos/atlassian_bamboo.png +0 -0
- data/data/logos/atlassian_bitbucket.png +0 -0
- data/data/logos/atlassian_confluence.png +0 -0
- data/data/logos/atlassian_crowd.png +0 -0
- data/data/logos/atlassian_crucible.png +0 -0
- data/data/logos/atlassian_fisheye.png +0 -0
- data/data/logos/atlassian_jira.png +0 -0
- data/data/logos/atlassian_sourcetree.png +0 -0
- data/data/logos/automattic_wordpress.png +0 -0
- data/data/logos/cisco_ssl_vpn.png +0 -0
- data/data/logos/citrix_netscaler_gateway.png +0 -0
- data/data/logos/cloudflare_cdn.png +0 -0
- data/data/logos/drupal.png +0 -0
- data/data/logos/f5_big-ip.png +0 -0
- data/data/logos/f5_big-ip_apm.png +0 -0
- data/data/logos/fastly.png +0 -0
- data/data/logos/gitlab.png +0 -0
- data/data/logos/ibm_axway_securetransport.png +0 -0
- data/data/logos/lithium.png +0 -0
- data/data/logos/microsoft_asp.net.png +0 -0
- data/data/logos/microsoft_iis.png +0 -0
- data/data/logos/microsoft_outlook_web_access.png +0 -0
- data/data/logos/microsoft_sharepoint.png +0 -0
- data/data/logos/microtik_routeros.png +0 -0
- data/data/logos/mikrotik_routeros.png +0 -0
- data/data/logos/newrelic.png +0 -0
- data/data/logos/nginx.png +0 -0
- data/data/logos/okta.png +0 -0
- data/data/logos/oracle_glassfish.png +0 -0
- data/data/logos/oracle_java_application_server.png +0 -0
- data/data/logos/oracle_java_server_pages.png +0 -0
- data/data/logos/oracle_weblogic.png +0 -0
- data/data/logos/phpmyadmin.png +0 -0
- data/data/logos/tableau.png +0 -0
- data/data/logos/vmware_esxi.png +0 -0
- data/data/logos/vmware_horizon.png +0 -0
- data/data/logos/zendesk.png +0 -0
- data/data/logos/zimbra_server.png +0 -0
- data/lib/checks/automattic.rb +1 -1
- data/lib/checks/microsoft.rb +11 -1
- data/lib/checks/telerik.rb +1 -1
- data/lib/checks/typo3.rb +25 -0
- data/lib/intrigue-ident.rb +31 -12
- data/lib/traverse_exceptions.rb +1 -0
- data/util/check.rb +1 -1
- data/util/list.rb +1 -1
- metadata +46 -6
- data/data/logos/apache.png +0 -0
- data/data/logos/oracle_java.png +0 -0
- data/data/logos/php.png +0 -0
- data/data/logos/varnish.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 071013c8c83f621bb6aa3c5d408be244c39364189f294e84f3e824d2085f5ceb
|
4
|
+
data.tar.gz: '00459fb998366550f3e218ca06a4c16cf9df6eceaca04db5e117bbde7e7c1762'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f905f6d65934b19f643031468e3ea2bb25a029536de663f2b4c7105e84fa7fd7a80d60bb9971c252ebfb1093287244b8cc3861e50efa161b08cc30a5495a5b8
|
7
|
+
data.tar.gz: b9ffe909d98f9ea76678df291b535d783108d57608a00c5c9706b00e16d4f04be496ff4b9d81cffd9568958fd2122defd3f502bbf512eff4891ff1ae1f4429cd
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/data/logos/okta.png
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/checks/automattic.rb
CHANGED
@@ -14,7 +14,7 @@ module Check
|
|
14
14
|
:version => nil,
|
15
15
|
:match_type => :content_body,
|
16
16
|
:match_content => /<meta name="generator" content="WordPress/i,
|
17
|
-
:dynamic_version => lambda { |x| _first_body_capture x, /<meta name=\"generator\" content=\"WordPress\ (
|
17
|
+
:dynamic_version => lambda { |x| _first_body_capture x, /<meta name=\"generator\" content=\"WordPress\ (.*?)\" \/>/i },
|
18
18
|
:hide => false,
|
19
19
|
:examples => [
|
20
20
|
"http://www.jewelosco.com:80",
|
data/lib/checks/microsoft.rb
CHANGED
@@ -111,7 +111,17 @@ module Check
|
|
111
111
|
:match_content => /via:\ 1.1\ TMGSRVR/,
|
112
112
|
:paths => ["#{url}"]
|
113
113
|
},
|
114
|
-
|
114
|
+
{
|
115
|
+
:type => "application",
|
116
|
+
:vendor => "Microsoft",
|
117
|
+
:product =>"ISA Server",
|
118
|
+
:version => "2006",
|
119
|
+
:match_type => :content_title,
|
120
|
+
:match_content => /^Microsoft ISA Server 2006$/i,
|
121
|
+
:match_details =>"standard title",
|
122
|
+
:paths => ["#{url}"],
|
123
|
+
:examples => ["https://intranet.kbs.gov.my/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=3"]
|
124
|
+
},
|
115
125
|
{
|
116
126
|
:type => "application",
|
117
127
|
:vendor => "Microsoft",
|
data/lib/checks/telerik.rb
CHANGED
@@ -27,7 +27,7 @@ module Check
|
|
27
27
|
:version => nil,
|
28
28
|
:match_type => :content_body,
|
29
29
|
:match_content => /<meta\ name=\"Generator\"\ content=\"Sitefinity/,
|
30
|
-
:dynamic_version => lambda { |x| _first_body_capture x, /<meta name=\"Generator\" content=\"Sitefinity (
|
30
|
+
:dynamic_version => lambda { |x| _first_body_capture x, /<meta name=\"Generator\" content=\"Sitefinity (.*?)\ \/><link/ },
|
31
31
|
:examples => [],
|
32
32
|
:paths => ["#{url}"]
|
33
33
|
}
|
data/lib/checks/typo3.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Intrigue
|
2
|
+
module Ident
|
3
|
+
module Check
|
4
|
+
class Typo3 < Intrigue::Ident::Check::Base
|
5
|
+
|
6
|
+
def generate_checks(url)
|
7
|
+
[
|
8
|
+
{
|
9
|
+
:type => "application",
|
10
|
+
:vendor => "Typo3",
|
11
|
+
:product => "CMS",
|
12
|
+
:match_details => "generator tag",
|
13
|
+
:version => nil,
|
14
|
+
:match_type => :content_body,
|
15
|
+
:match_content => /<meta name="generator" content="TYPO3 CMS"/i,
|
16
|
+
:paths => ["#{url}"],
|
17
|
+
:examples => ["http://www2.wessmann.com/index.php?id=52"]
|
18
|
+
}
|
19
|
+
]
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/intrigue-ident.rb
CHANGED
@@ -14,7 +14,7 @@ include Intrigue::Ident::TraverseExceptions
|
|
14
14
|
module Intrigue
|
15
15
|
module Ident
|
16
16
|
|
17
|
-
VERSION=0.
|
17
|
+
VERSION=0.65
|
18
18
|
|
19
19
|
def generate_requests_and_check(url)
|
20
20
|
|
@@ -60,7 +60,7 @@ module Intrigue
|
|
60
60
|
|
61
61
|
# gather all fingeprints for each product
|
62
62
|
# this will look like an array of checks, each with a uri and a SET of checks
|
63
|
-
generated_checks = Intrigue::Ident::CheckFactory.all.map{|x| x.new.generate_checks(
|
63
|
+
generated_checks = Intrigue::Ident::CheckFactory.all.map{|x| x.new.generate_checks("x") }.flatten
|
64
64
|
|
65
65
|
# group by the uris, with the associated checks
|
66
66
|
# TODO - this only currently supports the first path of the group!!!!
|
@@ -87,6 +87,11 @@ module Intrigue
|
|
87
87
|
matches.each do |m|
|
88
88
|
next if (m["match_type"] == "content_body" &&
|
89
89
|
m["matched_content"] == "(?-mix:Drupal)")
|
90
|
+
|
91
|
+
next if (m["match_type"] == "content_cookies" &&
|
92
|
+
m["matched_content"] == "(?i-mx:ADRUM_BTa)" &&
|
93
|
+
m["product"] == "Jobvite")
|
94
|
+
|
90
95
|
passed_matches << m
|
91
96
|
end
|
92
97
|
passed_matches
|
@@ -122,11 +127,11 @@ module Intrigue
|
|
122
127
|
def _match_uri_hash(check,data)
|
123
128
|
return nil unless check && data
|
124
129
|
|
125
|
-
#puts "Trying to match #{check[:vendor]} #{check[:product]}: #{data["details"]["cookies"][0..10]}"
|
126
|
-
|
127
130
|
# data[:body] => page body
|
128
131
|
# data[:headers] => block of text with headers, one per line
|
129
132
|
# data[:cookies] => set_cookie header
|
133
|
+
# data[:title] => parsed page title
|
134
|
+
# data[:generator] => parsed meta generator tag
|
130
135
|
# data[:body_md5] => md5 hash of the body
|
131
136
|
# if type "content", do the content check
|
132
137
|
|
@@ -143,6 +148,16 @@ module Intrigue
|
|
143
148
|
if data["details"] && data["details"]["cookies"]
|
144
149
|
match = _construct_match_response(check,data) if data["details"]["cookies"] =~ check[:match_content]
|
145
150
|
end
|
151
|
+
elsif check[:match_type] == :content_generator
|
152
|
+
# Check only the set-cookie header
|
153
|
+
if data["details"] && data["details"]["generator"]
|
154
|
+
match = _construct_match_response(check,data) if data["details"]["generator"] =~ check[:match_content]
|
155
|
+
end
|
156
|
+
elsif check[:match_type] == :content_title
|
157
|
+
# Check only the set-cookie header
|
158
|
+
if data["details"] && data["details"]["title"]
|
159
|
+
match = _construct_match_response(check,data) if data["details"]["title"] =~ check[:match_content]
|
160
|
+
end
|
146
161
|
elsif check[:match_type] == :checksum_body
|
147
162
|
if data["details"] && data["details"]["response_data_hash"]
|
148
163
|
match = _construct_match_response(check,data) if Digest::MD5.hexdigest(data["details"]["response_data_hash"]) == check[:checksum]
|
@@ -174,6 +189,7 @@ module Intrigue
|
|
174
189
|
"port": 80,
|
175
190
|
"forms": false,
|
176
191
|
"title": "Index page",
|
192
|
+
"generator": "Whatever",
|
177
193
|
"verbs": null,
|
178
194
|
"headers": ["content-length: 701", "last-modified: Tue, 03 Jul 2018 16:55:36 GMT", "cache-control: no-cache", "content-type: text/html"],
|
179
195
|
"host_id": 1571,
|
@@ -208,6 +224,14 @@ module Intrigue
|
|
208
224
|
headers << "#{h}: #{v}"
|
209
225
|
end
|
210
226
|
data["details"]["headers"] = headers
|
227
|
+
|
228
|
+
### grab the page attributes
|
229
|
+
match = response.body.match(/<title>(.*?)<\/title>/i)
|
230
|
+
data["details"]["title"] = match.captures.first if match
|
231
|
+
|
232
|
+
match = response.body.match(/<meta name="generator" content=(.*?)>/i)
|
233
|
+
data["details"]["generator"] = match.captures.first.gsub("\"","") if match
|
234
|
+
|
211
235
|
data["details"]["cookies"] = response.header['set-cookie']
|
212
236
|
data["details"]["response_data_hash"] = Digest::SHA256.base64digest("#{response.body}")
|
213
237
|
|
@@ -237,14 +261,9 @@ module Intrigue
|
|
237
261
|
until( found || attempts >= max_attempts)
|
238
262
|
attempts+=1
|
239
263
|
|
240
|
-
#
|
241
|
-
#if $config["http_proxy"]
|
242
|
-
# proxy_addr = $config["http_proxy"]["host"]
|
243
|
-
# proxy_port = $config["http_proxy"]["port"]
|
244
|
-
# proxy_user = $config["http_proxy"]["user"]
|
245
|
-
# proxy_pass = $config["http_proxy"]["pass"]
|
246
|
-
#end
|
264
|
+
#proxy_addr = "127.0.0.1"
|
247
265
|
proxy_addr = nil
|
266
|
+
#proxy_port = "8080"
|
248
267
|
proxy_port = nil
|
249
268
|
|
250
269
|
# set options
|
@@ -255,7 +274,7 @@ module Intrigue
|
|
255
274
|
end
|
256
275
|
|
257
276
|
http = Net::HTTP.start(uri.host, uri.port, proxy_addr, proxy_port, opts)
|
258
|
-
#http.set_debug_output($stdout)
|
277
|
+
#http.set_debug_output($stdout)
|
259
278
|
http.read_timeout = 20
|
260
279
|
http.open_timeout = 20
|
261
280
|
|
data/lib/traverse_exceptions.rb
CHANGED
@@ -81,6 +81,7 @@ module TraverseExceptions
|
|
81
81
|
entity_name =~ /^.*eloqua.com(:[0-9]*)?$/ ||
|
82
82
|
entity_name =~ /^.*exacttarget.com(:[0-9]*)?$/ ||
|
83
83
|
entity_name =~ /^.*facebook.com(:[0-9]*)?$/ ||
|
84
|
+
entity_name =~ /^.*fastly.net(:[0-9]*)?$/ ||
|
84
85
|
entity_name =~ /^.*feeds2.feedburner.com(:[0-9]*)?$/ ||
|
85
86
|
entity_name =~ /^.*footprintdns.com(:[0-9]*)?$/ ||
|
86
87
|
entity_name =~ /^.*force.com(:[0-9]*)?$/ ||
|
data/util/check.rb
CHANGED
data/util/list.rb
CHANGED
@@ -6,4 +6,4 @@ def list_checks
|
|
6
6
|
Intrigue::Ident::CheckFactory.all.map{|x| x.new.generate_checks("x") }.flatten
|
7
7
|
end
|
8
8
|
|
9
|
-
list_checks.sort_by{|c| "#{c[:vendor]}"}.each {|c| puts " - #{c[:vendor]} #{c[:product]}
|
9
|
+
list_checks.sort_by{|c| "#{c[:vendor]}"}.each {|c| puts " - #{c[:vendor]} #{c[:product]}"}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intrigue-ident
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.65'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jcran
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -61,11 +61,50 @@ extra_rdoc_files: []
|
|
61
61
|
files:
|
62
62
|
- Gemfile
|
63
63
|
- Gemfile.lock
|
64
|
-
- data/logos
|
64
|
+
- data/logos/.DS_Store
|
65
|
+
- data/logos/acquia.png
|
66
|
+
- data/logos/amazon_cloudfront.png
|
67
|
+
- data/logos/apache_coyote.png
|
68
|
+
- data/logos/apache_tomcat.png
|
69
|
+
- data/logos/atlassian_bamboo.png
|
70
|
+
- data/logos/atlassian_bitbucket.png
|
71
|
+
- data/logos/atlassian_confluence.png
|
72
|
+
- data/logos/atlassian_crowd.png
|
73
|
+
- data/logos/atlassian_crucible.png
|
74
|
+
- data/logos/atlassian_fisheye.png
|
75
|
+
- data/logos/atlassian_jira.png
|
76
|
+
- data/logos/atlassian_sourcetree.png
|
77
|
+
- data/logos/automattic_wordpress.png
|
78
|
+
- data/logos/cisco_ssl_vpn.png
|
79
|
+
- data/logos/citrix_netscaler_gateway.png
|
80
|
+
- data/logos/cloudflare_cdn.png
|
81
|
+
- data/logos/drupal.png
|
82
|
+
- data/logos/f5_big-ip.png
|
83
|
+
- data/logos/f5_big-ip_apm.png
|
84
|
+
- data/logos/fastly.png
|
65
85
|
- data/logos/generic.png
|
66
|
-
- data/logos/
|
67
|
-
- data/logos/
|
68
|
-
- data/logos/
|
86
|
+
- data/logos/gitlab.png
|
87
|
+
- data/logos/ibm_axway_securetransport.png
|
88
|
+
- data/logos/lithium.png
|
89
|
+
- data/logos/microsoft_asp.net.png
|
90
|
+
- data/logos/microsoft_iis.png
|
91
|
+
- data/logos/microsoft_outlook_web_access.png
|
92
|
+
- data/logos/microsoft_sharepoint.png
|
93
|
+
- data/logos/microtik_routeros.png
|
94
|
+
- data/logos/mikrotik_routeros.png
|
95
|
+
- data/logos/newrelic.png
|
96
|
+
- data/logos/nginx.png
|
97
|
+
- data/logos/okta.png
|
98
|
+
- data/logos/oracle_glassfish.png
|
99
|
+
- data/logos/oracle_java_application_server.png
|
100
|
+
- data/logos/oracle_java_server_pages.png
|
101
|
+
- data/logos/oracle_weblogic.png
|
102
|
+
- data/logos/phpmyadmin.png
|
103
|
+
- data/logos/tableau.png
|
104
|
+
- data/logos/vmware_esxi.png
|
105
|
+
- data/logos/vmware_horizon.png
|
106
|
+
- data/logos/zendesk.png
|
107
|
+
- data/logos/zimbra_server.png
|
69
108
|
- intrigue-ident.gemspec
|
70
109
|
- lib/check_factory.rb
|
71
110
|
- lib/checks/acquia.rb
|
@@ -143,6 +182,7 @@ files:
|
|
143
182
|
- lib/checks/tableau.rb
|
144
183
|
- lib/checks/team_city.rb
|
145
184
|
- lib/checks/telerik.rb
|
185
|
+
- lib/checks/typo3.rb
|
146
186
|
- lib/checks/varnish.rb
|
147
187
|
- lib/checks/vmware.rb
|
148
188
|
- lib/checks/webmin.rb
|
data/data/logos/apache.png
DELETED
Binary file
|
data/data/logos/oracle_java.png
DELETED
Binary file
|
data/data/logos/php.png
DELETED
Binary file
|
data/data/logos/varnish.png
DELETED
Binary file
|