dert 1.0.2 → 1.0.3

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
  SHA1:
3
- metadata.gz: 8f83d49b1393055c0bd0dd8be3047575546858ff
4
- data.tar.gz: e585b2ed3f3b5890a2c0d619a5bf782dc41154fc
3
+ metadata.gz: c8ac81eaa739a0096ac5ff32d0c23467d85e2e44
4
+ data.tar.gz: 818aaf13d944345569dd1e4154503a97f9001a9d
5
5
  SHA512:
6
- metadata.gz: f65c72839b19b552f17787c39bc1bceedf402de915fe96c75075acc40cd2e8fedace5b6cf6b9888b861c9ded26f75e99018e91e69ee1f83663ab2e1abdfdb407
7
- data.tar.gz: 1bb393ee66b6fb2f36e56b717804acd541786fd67f8ea9392b4c2df943092fca895968e5201b6a6eda4b2a67edee1f1d370f640cd2d0cb52bf37cc22676d60be
6
+ metadata.gz: 824bf981dde81b0636cbe26b87c4663edc48b5d7b98b51b2c9890dddc667a65d97b48bad55ee0cb6d4eca43b44e95176a455964700c17f8ea2c0694729704d9a
7
+ data.tar.gz: baf9c7ad9c125da273f8047f76ec660bc352a63015d2b973adecd438bc9b6ee61d98acdc56fefecb5157a2159ca7d42fd2aa4c2c7f50e4467c3a2c659dd4fd80
data/bin/dert CHANGED
@@ -9,7 +9,7 @@
9
9
  ###########################################################################
10
10
  path = File.dirname(__FILE__)
11
11
  require 'optparse'
12
- require 'dert'
12
+ require "#{path}/../lib/dert"
13
13
 
14
14
  if __FILE__ == $0
15
15
  options = {}
@@ -29,9 +29,10 @@ if __FILE__ == $0
29
29
  dns_string = dns_string + the_break + 'RVL: "rvl (PRT records)"'
30
30
  dns_string = dns_string + the_break + 'SRV: "srv (SRV records)"'
31
31
  dns_string = dns_string + the_break + 'STD: "std (SOA, A, MX, NS, TXT records)"'
32
- dns_string = dns_string + the_break + 'TDL: "tdl (Bruteforce, A records)"'
32
+ dns_string = dns_string + the_break + 'TDL: "tdl (Top Level Domain [~250] Bruteforce, A records)"'
33
+ dns_string = dns_string + the_break + 'TDL: "gtdl (Generic Top Level Domain [~1000] Bruteforce, A records)"'
33
34
  opts.on( '-e enumeration', '--enumeration type', String, 'DNS Enumeration Types:' + dns_string) do |type|
34
- options[:type] = type
35
+ options[:type] = type.downcase
35
36
  end
36
37
 
37
38
  opts.on( '-t thread', '--thread number', Integer, 'Number of threads') do |thread|
@@ -66,7 +67,7 @@ if __FILE__ == $0
66
67
  optparse.parse!
67
68
  Dert.run(options)
68
69
  rescue => e
69
- puts 'Error'
70
+ puts e.message
70
71
  puts "Usage: #{File.basename($0)} [options]"
71
72
  end
72
73
 
@@ -1,3 +1,3 @@
1
1
  path = File.dirname(__FILE__)
2
- require 'dert/dns'
3
- require 'dert/version'
2
+ require "#{path}/dert/dns"
3
+ require "#{path}/dert/version"
@@ -30,7 +30,7 @@ module Dert
30
30
  SRV = 6
31
31
  STD = 7
32
32
  TLD = 8
33
- WILDCARD = 9
33
+ GTLD = 9
34
34
  end
35
35
 
36
36
 
@@ -59,6 +59,8 @@ module Dert
59
59
  return STD.query(domain)
60
60
  when CONSTANTS::TLD
61
61
  return TLD.query(domain)
62
+ when CONSTANTS::GTLD
63
+ return GTLD.query(domain)
62
64
  end
63
65
  end
64
66
 
@@ -76,7 +78,7 @@ module Dert
76
78
  results = []
77
79
 
78
80
  # Process for Brute Force DNS Enumeration
79
- if method == CONSTANTS::BRT or method == CONSTANTS::IPV6 or method == CONSTANTS::RVL
81
+ if method == CONSTANTS::BRT or method == CONSTANTS::IPV6 or (method == CONSTANTS::RVL and word_list)
80
82
 
81
83
  # Count words/ips in list.
82
84
  count = File.foreach(word_list).inject(0) { |c, line| c+1 }
@@ -160,24 +162,6 @@ module Dert
160
162
  def self.run(options)
161
163
  type = 0
162
164
 
163
- # RVL does not require a domain
164
- unless options[:type] == 'rvl'
165
- unless options[:domain]
166
- puts 'Invalid command. Try --help to view options.'
167
- exit
168
- end
169
-
170
- # remove http/https
171
- options[:domain].gsub!('https://', '')
172
- options[:domain].gsub!('http://', '')
173
-
174
- # Validate Domain
175
- unless options[:domain].match(/[a-zA-Z0-9\-]+\.[a-zA-z]{2,6}/)
176
- puts 'Invalid domain.'
177
- exit
178
- end
179
- end
180
-
181
165
  # Validate settings for brute force
182
166
  if %w(ipv6 brt).include? options[:type]
183
167
  if options[:threads] == nil or options[:domain] == nil or options[:wordlist] == nil
@@ -186,10 +170,11 @@ module Dert
186
170
  end
187
171
  end
188
172
 
189
- # RVL requires threads and a word list
173
+ # RVL requires domain or a word list
190
174
  if options[:type] == 'rvl'
191
- if options[:threads] == nil or options[:wordlist] == nil
192
- puts "Usage #{File.basename($0)} -e rvl -w <wordlist of ips> -t <threads>"
175
+ if options[:domain] == nil and options[:wordlist] == nil
176
+ puts "Usage #{File.basename($0)} -e rvl -d IP"
177
+ puts "Usage #{File.basename($0)} -e rvl -w IPLIST"
193
178
  exit
194
179
  end
195
180
  end
@@ -208,6 +193,8 @@ module Dert
208
193
  puts 'Thread count must be between 1 and 100'
209
194
  exit
210
195
  end
196
+ else
197
+ options[:threads] = 1
211
198
  end
212
199
 
213
200
  # Validate Output
@@ -219,7 +206,7 @@ module Dert
219
206
  end
220
207
 
221
208
  # Convert string type to integer type
222
- case options[:type]
209
+ case options[:type].downcase
223
210
  when 'arin'
224
211
  type = 1
225
212
  when 'axfr'
@@ -236,6 +223,8 @@ module Dert
236
223
  type = 7
237
224
  when 'tld'
238
225
  type = 8
226
+ when 'gtld'
227
+ type = 9
239
228
  else
240
229
  puts 'Wrong enumeration type. Try --help to view accepted enumeration inputs.'
241
230
  exit
@@ -0,0 +1,105 @@
1
+ module Dert
2
+ class GTLD
3
+
4
+ @res = Dnsruby::Resolver.new
5
+
6
+ def self.query(domain)
7
+ results = []
8
+
9
+ # List from:
10
+ # http://data.iana.org/TLD/tlds-alpha-by-domain.txt
11
+
12
+ tlds = %w(
13
+ aaa abb abbott abogado ac academy accenture accountant accountants aco active actor ad ads adult
14
+ ae aeg aero af afl ag agency ai aig airforce airtel al allfinanz alsace am amica amsterdam android
15
+ ao apartments app aq aquarelle ar aramco archi army arpa arte as asia associates at attorney au auction
16
+ audio auto autos aw ax axa az azure ba band bank bar barcelona barclaycard barclays bargains bauhaus
17
+ bayern bb bbc bbva bcn bd be beer bentley berlin best bet bf bg bh bharti bi bible bid bike bing bingo
18
+ bio biz bj black blackfriday bloomberg blue bm bms bmw bn bnl bnpparibas bo boats bom bond boo boots
19
+ boutique br bradesco bridgestone broker brother brussels bs bt budapest build builders business buzz
20
+ bv bw by bz bzh ca cab cafe cal camera camp cancerresearch canon capetown capital car caravan cards
21
+ care career careers cars cartier casa cash casino cat catering cba cbn cc cd ceb center ceo cern cf
22
+ cfa cfd cg ch chanel channel chat cheap chloe christmas chrome church ci cipriani cisco citic city ck
23
+ cl claims cleaning click clinic clothing cloud club clubmed cm cn co coach codes coffee college cologne
24
+ com commbank community company computer condos construction consulting contractors cooking cool coop
25
+ corsica country coupons courses cr credit creditcard cricket crown crs cruises csc cu cuisinella cv cw
26
+ cx cy cymru cyou cz dabur dad dance date dating datsun day dclk de deals degree delivery dell delta
27
+ democrat dental dentist desi design dev diamonds diet digital direct directory discount dj dk dm dnp do
28
+ docs dog doha domains doosan download drive durban dvag dz earth eat ec edu education ee eg email emerck
29
+ energy engineer engineering enterprises epson equipment er erni es esq estate et eu eurovision eus events
30
+ everbank exchange expert exposed express fage fail faith family fan fans farm fashion feedback fi film
31
+ final finance financial firmdale fish fishing fit fitness fj fk flights florist flowers flsmidth fly fm
32
+ fo foo football forex forsale forum foundation fr frl frogans fund furniture futbol fyi ga gal gallery
33
+ game garden gb gbiz gd gdn ge gea gent genting gf gg ggee gh gi gift gifts gives giving gl glass gle
34
+ global globo gm gmail gmo gmx gn gold goldpoint golf goo goog google gop gov gp gq gr graphics gratis
35
+ green gripe group gs gt gu gucci guge guide guitars guru gw gy hamburg hangout haus healthcare help here
36
+ hermes hiphop hitachi hiv hk hm hn hockey holdings holiday homedepot homes honda horse host hosting hoteles
37
+ hotmail house how hr hsbc ht hu hyundai ibm icbc ice icu id ie ifm iinet il im immo immobilien in
38
+ industries infiniti info ing ink institute insure int international investments io ipiranga iq ir irish
39
+ is ist istanbul it itau iwc jaguar java jcb je jetzt jewelry jlc jll jm jo jobs joburg jp jprs juegos
40
+ kaufen kddi ke kg kh ki kia kim kinder kitchen kiwi km kn koeln komatsu kp kr krd kred kw ky kyoto kz la
41
+ lacaixa lancaster land landrover lasalle lat latrobe law lawyer lb lc lds lease leclerc legal lexus lgbt
42
+ li liaison lidl life lighting limited limo linde link live lixil lk loan loans lol london lotte lotto
43
+ love lr ls lt ltd ltda lu lupin luxe luxury lv ly ma madrid maif maison man management mango market
44
+ marketing markets marriott mba mc md me media meet melbourne meme memorial men menu meo mg mh miami
45
+ microsoft mil mini mk ml mm mma mn mo mobi moda moe moi mom monash money montblanc mormon mortgage
46
+ moscow motorcycles mov movie movistar mp mq mr ms mt mtn mtpc mtr mu museum mutuelle mv mw mx my mz na
47
+ nadex nagoya name navy nc ne nec net netbank network neustar new news nexus nf ng ngo nhk ni nico ninja
48
+ nissan nl no nokia np nr nra nrw ntt nu nyc nz obi office okinawa om omega one ong onl online ooo oracle
49
+ orange org organic osaka otsuka ovh pa page panerai paris partners parts party pe pet pf pg ph pharmacy
50
+ philips photo photography photos physio piaget pics pictet pictures ping pink pizza pk pl place play
51
+ plumbing plus pm pn pohl poker porn post pr praxi press pro prod productions prof properties property
52
+ protection ps pt pub pw py qa qpon quebec racing re realtor realty recipes red redstone rehab reise
53
+ reisen reit ren rent rentals repair report republican rest restaurant review reviews rich ricoh rio rip
54
+ ro rocks rodeo rs rsvp ru ruhr run rw rwe ryukyu sa saarland sakura sale samsung sandvik sandvikcoromant
55
+ sanofi sap sapo sarl saxo sb sbs sc sca scb schmidt scholarships school schule schwarz science scor scot
56
+ sd se seat security seek sener services seven sew sex sexy sg sh shiksha shoes show shriram si singles
57
+ site sj sk ski sky skype sl sm sn sncf so soccer social software sohu solar solutions sony soy space
58
+ spiegel spreadbetting sr srl st stada starhub statoil stc stcgroup stockholm studio study style su sucks
59
+ supplies supply support surf surgery suzuki sv swatch swiss sx sy sydney systems sz taipei tatamotors
60
+ tatar tattoo tax taxi tc td team tech technology tel telefonica temasek tennis tf tg th thd theater
61
+ theatre tickets tienda tips tires tirol tj tk tl tm tn to today tokyo tools top toray toshiba tours town
62
+ toyota toys tr trade trading training travel trust tt tui tv tw tz ua ubs ug uk university uno uol us uy
63
+ uz va vacations vc ve vegas ventures versicherung vet vg vi viajes video villas vin virgin vision vista
64
+ vistaprint viva vlaanderen vn vodka vote voting voto voyage vu wales walter wang watch webcam website
65
+ wed wedding weir wf whoswho wien wiki williamhill win windows wine wme work works world ws wtc wtf xbox
66
+ xerox xin xn--11b4c3d xn--1qqw23a xn--30rr7y xn--3bst00m xn--3ds443g xn--3e0b707e xn--3pxu8k xn--42c2d9a
67
+ xn--45brj9c xn--45q11c xn--4gbrim xn--55qw42g xn--55qx5d xn--6frz82g xn--6qq986b3xl xn--80adxhks
68
+ xn--80ao21a xn--80asehdb xn--80aswg xn--90a3ac xn--90ais xn--9dbq2a xn--9et52u xn--b4w605ferd xn--c1avg
69
+ xn--c2br7g xn--cg4bki xn--clchc0ea0b2g2a9gcd xn--czr694b xn--czrs0t xn--czru2d xn--d1acj3b xn--d1alf
70
+ xn--efvy88h xn--estv75g xn--fhbei xn--fiq228c5hs xn--fiq64b xn--fiqs8s xn--fiqz9s xn--fjq720a xn--flw351e
71
+ xn--fpcrj9c3d xn--fzc2c9e2c xn--gecrj9c xn--h2brj9c xn--hxt814e xn--i1b6b1a6a2e xn--imr513n xn--io0a7i
72
+ xn--j1aef xn--j1amh xn--j6w193g xn--kcrx77d1x4a xn--kprw13d xn--kpry57d xn--kput3i xn--l1acc xn--lgbbat1ad8j
73
+ xn--mgb9awbf xn--mgba3a3ejt xn--mgba3a4f16a xn--mgbaam7a8h xn--mgbab2bd xn--mgbayh7gpa xn--mgbbh1a71e
74
+ xn--mgbc0a9azcg xn--mgberp4a5d4ar xn--mgbpl2fh xn--mgbx4cd0ab xn--mk1bu44c xn--mxtq1m xn--ngbc5azd xn--node
75
+ xn--nqv7f xn--nqv7fs00ema xn--nyqy26a xn--o3cw4h xn--ogbpf8fl xn--p1acf xn--p1ai xn--pgbs0dh xn--pssy2u
76
+ xn--q9jyb4c xn--qcka1pmc xn--rhqv96g xn--s9brj9c xn--ses554g xn--t60b56a xn--tckwe xn--unup4y
77
+ xn--vermgensberater-ctb xn--vermgensberatung-pwb xn--vhquv xn--vuq861b xn--wgbh1c xn--wgbl6a xn--xhq521b
78
+ xn--xkc2al3hye2a xn--xkc2dl3a5ee0h xn--y9a3aq xn--yfro4i67o xn--ygbi2ammx xn--zfr164b xperia xxx xyz
79
+ yachts yamaxun yandex ye yodobashi yoga yokohama youtube yt za zara zip zm zone zuerich zw
80
+ )
81
+
82
+ target = domain.scan(/(\S*)[.]\w*\z/).join
83
+ target.chomp!
84
+
85
+ tlds.each do |a|
86
+ # A
87
+ begin
88
+ ret = @res.query("#{target}.#{a}", Dnsruby::Types.A)
89
+ ret.answer.each do |x|
90
+ results << {
91
+ address: x.address.to_s,
92
+ type: x.type,
93
+ hostname: x.name.to_s,
94
+ ttl: x.ttl,
95
+ klass: x.klass,
96
+ }
97
+ end
98
+ rescue
99
+ #
100
+ end
101
+ end
102
+ results
103
+ end
104
+ end
105
+ end
@@ -6,4 +6,5 @@ require "#{path}/ipv6"
6
6
  require "#{path}/rvl"
7
7
  require "#{path}/srv"
8
8
  require "#{path}/std"
9
- require "#{path}/tld"
9
+ require "#{path}/tld"
10
+ require "#{path}/gtld"
@@ -1,3 +1,3 @@
1
1
  module Dert
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestArin < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestAXFR < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestBRT < MiniTest::Unit::TestCase
@@ -0,0 +1,22 @@
1
+ require 'minitest/unit'
2
+ require 'minitest/autorun'
3
+
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
6
+ require 'yaml'
7
+
8
+ class TestGTLD < MiniTest::Unit::TestCase
9
+ def setup
10
+ @options = {}
11
+ @options[:domain] = 'google.com'
12
+ @options[:type] = 'gtld'
13
+ @options[:threads] = 7
14
+ @options[:silent] = true
15
+ end
16
+
17
+ def test_equal_results
18
+ results = Dert.run(@options)
19
+ pp results
20
+ assert results.to_s
21
+ end
22
+ end
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestIPV6 < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestRVL < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestSRV < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestSTD < MiniTest::Unit::TestCase
@@ -1,7 +1,8 @@
1
1
  require 'minitest/unit'
2
2
  require 'minitest/autorun'
3
3
 
4
- require 'dert'
4
+ path = File.dirname(__FILE__)
5
+ require "#{path}/../lib/dert"
5
6
  require 'yaml'
6
7
 
7
8
  class TestTLD < MiniTest::Unit::TestCase
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dert
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coleton Pierson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-15 00:00:00.000000000 Z
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -89,6 +89,7 @@ files:
89
89
  - lib/dert/methods/arin.rb
90
90
  - lib/dert/methods/axfr.rb
91
91
  - lib/dert/methods/brt.rb
92
+ - lib/dert/methods/gtld.rb
92
93
  - lib/dert/methods/init.rb
93
94
  - lib/dert/methods/ipv6.rb
94
95
  - lib/dert/methods/rvl.rb
@@ -99,6 +100,7 @@ files:
99
100
  - test/arin.rb
100
101
  - test/axfr.rb
101
102
  - test/brt.rb
103
+ - test/gtld.rb
102
104
  - test/ipv6.rb
103
105
  - test/rvl.rb
104
106
  - test/srv.rb
@@ -136,6 +138,7 @@ test_files:
136
138
  - test/arin.rb
137
139
  - test/axfr.rb
138
140
  - test/brt.rb
141
+ - test/gtld.rb
139
142
  - test/ipv6.rb
140
143
  - test/rvl.rb
141
144
  - test/srv.rb