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,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Grafana < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Grafana",
10
+ :description => "Grafana",
11
+ :version => nil,
12
+ :type => :content_cookies,
13
+ :content => /grafana_sess/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,40 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Jenkins < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ { # might need to be its own, but haven't seen it yet outside jenkins
9
+ :name => "Hudson",
10
+ :description => "Hudson",
11
+ :version => nil,
12
+ :type => :content_headers,
13
+ :content => /x-hudson/i,
14
+ :dynamic_version => lambda { |x| x["x-hudson"] },
15
+ :paths => ["#{uri}"]
16
+ },
17
+ {
18
+ :name => "Jenkins",
19
+ :description => "Jenkins",
20
+ :version => nil,
21
+ :type => :content_headers,
22
+ :content => /X-Jenkins-Session/i,
23
+ :paths => ["#{uri}"]
24
+ },
25
+ {
26
+ :name => "Jenkins",
27
+ :description => "Jenkins",
28
+ :version => nil,
29
+ :type => :content_headers,
30
+ :content => /x-jenkins/i,
31
+ :dynamic_version => lambda { |x| x["x-jenkins"] },
32
+ :paths => ["#{uri}"]
33
+ }
34
+ ]
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Joomla < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Joomla!",
10
+ :description => "Known Joomla Admin Page",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /files_joomla/i,
14
+ :references => ["https://twitter.com/GreyNoiseIO/status/987547246538391552"],
15
+ :paths => ["#{uri}/administrator/manifests/files/joomla.xml"]
16
+ }
17
+ ]
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class LimeSurvey < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "LimeSurvey",
10
+ :description => "LimeSurvey",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /Donate to LimeSurvey/,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Lithium < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Lithum ",
10
+ :description => "Lithium Community Management",
11
+ :type => :content_cookies,
12
+ :version => nil,
13
+ :content => /LithiumVisitor/i,
14
+ :paths => ["#{uri}"]
15
+ },
16
+ {
17
+ :name => "Lithum",
18
+ :description => "Lithium Community Management",
19
+ :type => :content_cookies,
20
+ :version => nil,
21
+ :content => /LiSESSIONID/i,
22
+ :paths => ["#{uri}"]
23
+ }
24
+ ]
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Magento < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Magento",
10
+ :description => "Magento",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /Mage.Cookies.path/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Mcafee < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "McAfee EPolicy Orchestrator",
10
+ :description => "McAfee EPolicy Orchestrator",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /McAfee Agent Activity Log/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class MediaWiki < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "MediaWiki",
10
+ :description => "MediaWiki",
11
+ :type => :content_body,
12
+ :version => nil,
13
+ :content => /<a href="\/\/www.mediawiki.org\/">Powered by MediaWiki<\/a>/,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+
25
+ =begin
26
+ all_checks = [{
27
+ :uri => "#{uri}",
28
+ :checklist => [
29
+ {
30
+ :name => "Yoast Wordpress SEO Plugin", # won't be used if we have
31
+ :description => "Yoast Wordpress SEO Plugin",
32
+ :type => "content",
33
+ :content => /<!-- \/ Yoast WordPress SEO plugin. -->/,
34
+ :test_site => "https://ip-50-62-231-56.ip.secureserver.net",
35
+ :dynamic_name => lambda{|x| x.scan(/the Yoast WordPress SEO plugin v.* - h/)[0].gsub("the ","").gsub(" - h","") }
36
+ }
37
+ ]},
38
+ =end
@@ -0,0 +1,69 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Microsoft < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Microsoft Forefront TMG",
10
+ :description => "Microsoft Forefront Threat Management Gateway",
11
+ :version => nil,
12
+ :type => :content_cookies,
13
+ :content => /<title>Microsoft Forefront TMG/,
14
+ :paths => ["#{uri}"]
15
+ },
16
+ {
17
+ :name => "Microsoft IIS 8.0",
18
+ :description => "Microsoft IIS 8.0",
19
+ :version => nil,
20
+ :type => :content_body,
21
+ :content => /<img src=\"iis-8.png\"/,
22
+ :examples => ["http://66.162.2.18:80"],
23
+ :paths => ["#{uri}"]
24
+ },
25
+ {
26
+ :name => "Microsoft IIS 8.5",
27
+ :description => "Microsoft IIS 8.5",
28
+ :version => nil,
29
+ :type => :content_body,
30
+ :content => /<img src=\"iis-85.png\"/,
31
+ :examples => ["http://103.1.221.151:80"],
32
+ :paths => ["#{uri}"]
33
+ },
34
+ {
35
+ :name => "Microsoft Outlook Web Access",
36
+ :description => "Microsoft Outlook Web Access",
37
+ :version => nil,
38
+ :type => :content_headers,
39
+ :content => /x-owa-version/,
40
+ :dynamic_version => lambda { |x| x["x-owa-version"] },
41
+ :paths => ["#{uri}"]
42
+ },
43
+ {
44
+ :name => "Microsoft Generic Error - 403",
45
+ :description => "Microsoft Generic Error - 403",
46
+ :tags => ["error_page"],
47
+ :version => nil,
48
+ :type => :content_body,
49
+ :hide => true,
50
+ :content => /403 Forbidden. The server denied the specified Uniform Resource Locator (URL)/,
51
+ :paths => ["#{uri}"]
52
+ },
53
+ {
54
+ :name => "Microsoft Generic Error - 503",
55
+ :description => "Microsoft Generic Error - 503",
56
+ :tags => ["error_page"],
57
+ :version => nil,
58
+ :type => :content_body,
59
+ :hide => true,
60
+ :content => /HTTP Error 503. The service is unavailable./,
61
+ :paths => ["#{uri}"]
62
+ }
63
+ ]
64
+ end
65
+
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Nagios < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Nagios",
10
+ :description => "Nagios",
11
+ :version => nil,
12
+ :type => :content_headers,
13
+ :content => /nagios/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Oracle < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Oracle Glassfish",
10
+ :description => "Oracle / Sun GlassFish Enterprise Server",
11
+ :url => "",
12
+ :version => nil,
13
+ :type => :content_headers,
14
+ :content => /Sun GlassFish Enterprise Server/,
15
+ :hide => true,
16
+ :dynamic_version => lambda { |x| x["server"].match(/Sun GlassFish Enterprise Server v([\d\.])/).captures[0] },
17
+ :examples => ["http://52.4.12.185/"],
18
+ :paths => ["#{uri}"]
19
+ },
20
+ {
21
+ :name => "Oracle Glassfish",
22
+ :description => "Oracle / Sun GlassFish Enterprise Server",
23
+ :url => "",
24
+ :version => nil,
25
+ :type => :content_headers,
26
+ :content => /GlassFish Server Open Source Edition/,
27
+ :hide => true,
28
+ :dynamic_version => lambda { |x| x["server"].match(/GlassFish Server Open Source Edition\s+([\d\.]+)$/).captures[0] },
29
+ :examples => ["http://52.2.97.57:80"],
30
+ :paths => ["#{uri}"]
31
+ }
32
+ ]
33
+ end
34
+
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class PaloAlto < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Palo Alto Networks GlobalProtect Portal",
10
+ :tags => ["tech:vpn"],
11
+ :description => "Pardot",
12
+ :version => nil,
13
+ :type => :content_body,
14
+ :content => /global-protect\/login.esp/i,
15
+ :paths => ["#{uri}"]
16
+ }
17
+ ]
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module Intrigue
2
+ module Ident
3
+ module Check
4
+ class Pardot < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "Pardot",
10
+ :description => "Pardot",
11
+ :version => nil,
12
+ :type => :content_cookies,
13
+ :content => /pardot/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 Pfsense < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "pfSense Firewall",
10
+ :description => "pfSense is an open source firewall/router " +
11
+ "computer software distribution based on FreeBSD. It is " +
12
+ "installed on a physical computer or a virtual machine to" +
13
+ "make a dedicated firewall/router for a network",
14
+ :version => nil,
15
+ :type => :content_body,
16
+ :content => /Login to pfSense/,
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 PhpMyAdmin < Intrigue::Ident::Check::Base
5
+
6
+ def generate_checks(uri)
7
+ [
8
+ {
9
+ :name => "PhpMyAdmin",
10
+ :description => "PhpMyAdmin",
11
+ :version => nil,
12
+ :type => :content_cookies,
13
+ :content => /phpMyAdmin=/i,
14
+ :paths => ["#{uri}"]
15
+ }
16
+ ]
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end