azure_enum 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fdc83880b2b733e7d62d3547acddfaf63545d96fe971e40476141aff0478a41
4
- data.tar.gz: f41d54b8da002a67330179fe77f64dd419fd7588494fa1f0b2bdd0384f92d98c
3
+ metadata.gz: a31db9c4f86185697a6b7be4f915c3f7fea6148a246007d9c9e0210cbe56e387
4
+ data.tar.gz: 5fd57fcace02830e7e8b58edcc6af80e6091dd20f610203d665d973ee5e84faf
5
5
  SHA512:
6
- metadata.gz: a3a494b52395dac75e451203506bd73b3f17613fbe28c4716837d6299363379df4220bdad19da13ce144d16f3ed3be499c0188fed1161301d975f89c23394d93
7
- data.tar.gz: 601600c96b145a70524b6b390f30caee359451e49e9398fa7e04e242e5c9264936db14783d4b1c510a7c684361efab7d05728032289d82f733a17957bdcfd876
6
+ metadata.gz: 053b6f434faa752e9de7a6a9ced84807eef72b8c1895343e2384b780287031821fbc553008a6b519145048a39d5f5487c2cdd12dcc09ec670f53660bbeb44c12
7
+ data.tar.gz: 5a44208499903841eafc60c714777d749bec969c78cb0bd37b8553994364b24f83deef051503697a62b2e39e1fab6ff191f39f209af43dd88a0432151becb260
data/README.md CHANGED
@@ -31,7 +31,7 @@ x = AzureEnum.federated("lolware.net")
31
31
 
32
32
  Or by installing and running the binary:
33
33
  ```
34
- bundle exec ./bin/azure_enum lolware.net
34
+ $ azure_enum lolware.net
35
35
  Please wait while the given domain is enumerated.
36
36
  lolzware.onmicrosoft.com
37
37
  lolware.net
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{Enumerate Office 365 tenancies for federated domains.}
13
13
  spec.description = %q{External enumeration toolkit to identify organisation relationships in Office 365.}
14
- spec.homepage = "https://github.com/technion"
14
+ spec.homepage = "https://github.com/technion/azure_enum"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -25,5 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "minitest", "~> 5.0"
27
27
  spec.add_dependency "httpclient", "~> 2.8.0"
28
- spec.add_dependency "nokogiri", "~> 1.8.0"
28
+ spec.add_dependency "nokogiri", "~> 1.10.0"
29
29
  end
@@ -25,19 +25,28 @@ module AzureEnum
25
25
  @redirect = res.header["Location"][0]
26
26
  end
27
27
 
28
- def enumerate_autodisc
29
- httpsdomains = [
28
+ def autodisc
29
+ # These are the default autodiscover domains.
30
+ [
30
31
  "https://autodiscover.#{@domain}/autodiscover/autodiscover.svc",
31
32
  "https://#{@domain}/autodiscover/autodiscover.svc"
32
33
  ]
34
+ end
33
35
 
36
+ def enumerate_autodisc(httpsdomains = autodisc)
34
37
  httpsdomains.unshift @redirect if @redirect
38
+ @redirect = nil
35
39
  httpsdomains.each do |url|
36
40
  xml = get_xml(@domain, url)
37
41
  begin
38
42
  http = HTTPClient.new
39
43
  content = { "Content-Type" => "text/xml; charset=utf-8" }
40
44
  res = http.post(url, xml, content)
45
+ # In the event of a second redirect we are on the right path
46
+ # Recurse this function for the correct result
47
+ if res.status_code == 302
48
+ return enumerate_autodisc [res.header['Location'][0]]
49
+ end
41
50
  @xml_text = res.content
42
51
  return true
43
52
  # It is bad style to rescue "all" errors. However, it turns out there is a practically
@@ -1,3 +1,3 @@
1
1
  module AzureEnum
2
- VERSION = "0.2.0".freeze
2
+ VERSION = "0.2.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azure_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Technion
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-21 00:00:00.000000000 Z
11
+ date: 2020-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.8.0
75
+ version: 1.10.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.8.0
82
+ version: 1.10.0
83
83
  description: External enumeration toolkit to identify organisation relationships in
84
84
  Office 365.
85
85
  email:
@@ -103,11 +103,11 @@ files:
103
103
  - exe/azure_enum
104
104
  - lib/azure_enum.rb
105
105
  - lib/azure_enum/version.rb
106
- homepage: https://github.com/technion
106
+ homepage: https://github.com/technion/azure_enum
107
107
  licenses:
108
108
  - MIT
109
109
  metadata: {}
110
- post_install_message:
110
+ post_install_message:
111
111
  rdoc_options: []
112
112
  require_paths:
113
113
  - lib
@@ -122,9 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.7.7
127
- signing_key:
125
+ rubygems_version: 3.1.2
126
+ signing_key:
128
127
  specification_version: 4
129
128
  summary: Enumerate Office 365 tenancies for federated domains.
130
129
  test_files: []