ronin 2.0.3 → 2.0.5

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: bd118bec1127281e37b25d9cf8b9837442c77e5688129494d79bb00501259c8d
4
- data.tar.gz: 2837a1c2af5b7d76036c185d926925accda49dec427806f5a252edb59a32468d
3
+ metadata.gz: '08bb51807afd02798a60cebf03216fbfe57377457c72d97a00f416c751746022'
4
+ data.tar.gz: 9bd7e69d802831cb62f930f6f9f0f0038f73c10cc7ff0f3b5425b33108d57f77
5
5
  SHA512:
6
- metadata.gz: 0b06a43fb961491f9916649b531ce105ad1a41d4c4d2ce37a39531e08dd9106c070d137328d7b2ddf1551085f1759be051ba3558aec13093e851dad386d8638c
7
- data.tar.gz: ddfd44d05d3bcce5dafd435bc437377c6cf06e0cfa9639a1624bf896d40dae7236bef1c327f3e033094b18052c34e864fab4d1601698a90f18c748e621c41ba9
6
+ metadata.gz: 27f6cb062f99d0ad85726ff012d4bc299d9d05aa56f267f7759901aeeec3bac8f08b621fe013b1c0f5a265c2da545714ceffe18f88e554d8dcc0e4dac3efe469
7
+ data.tar.gz: d2a83e1a9a6284511540cfa5e059bac66eca79a1f73080f80ffe37509a35c99a231957d26fc8e2bd0adc8fa9929b18625f9d23cfde64d595aa3502a2eda0dee5
data/ChangeLog.md CHANGED
@@ -1,3 +1,30 @@
1
+ ### 2.0.5 / 2023-09-19
2
+
3
+ * Require [wordlist] ~> 1.0, >= 1.0.3 for macOS fixes.
4
+ * Require [ronin-support] ~> 1.0, >= 1.0.3.
5
+
6
+ #### CLI
7
+
8
+ * Fixed a bug in `ronin cert-gen` that prevented generating a new certificate
9
+ signed with an EC key (ex: `ronin cert-gen --key-type ec ...`).
10
+ * Fixed the formatting of the `ronin cert-gen` man-page.
11
+
12
+ ### 2.0.4 / 2023-07-18
13
+
14
+ * Require [wordlist] ~> 1.0, >= 1.0.2 for bug fixes.
15
+ * Require [ronin-core] ~> 0.1, >= 0.1.2 for bug fixes to `ronin irb`.
16
+ * This fixes an issue with defining and then calling methods inside of the
17
+ `ronin irb` Ruby shell.
18
+
19
+ #### CLI
20
+
21
+ * Fixed the `ronin typosquat` command to accept multiple domain arguments.
22
+ * Added missing `usage` string to the `ronin typosquat` command.
23
+ * Added missing `-f`,`--file` option to the `ronin typosquat` command.
24
+ * Fixed a bug in the `ronin host` command where the `-t`,`--query` option was
25
+ not being honored.
26
+ * Added missing `--file` option to the `ronin bitflip` man-page and docs.
27
+
1
28
  ### 2.0.3 / 2023-06-12
2
29
 
3
30
  * Extend `Ronin::Support` into {Ronin} in order to make their Mixin instance
data/README.md CHANGED
@@ -9,7 +9,6 @@
9
9
  * [Issues](https://github.com/ronin-rb/ronin/issues)
10
10
  * [Documentation](https://ronin-rb.dev/docs/ronin/frames)
11
11
  * [Discord](https://discord.gg/6WAb3PsVX9) |
12
- [Twitter](https://twitter.com/ronin_rb) |
13
12
  [Mastodon](https://infosec.exchange/@ronin_rb)
14
13
 
15
14
  ## Description
@@ -801,9 +800,9 @@ $ ronin url --file urls.txt --status
801
800
  * [open_namespace] ~> 0.4
802
801
  * [rouge] ~> 3.0
803
802
  * [async-io] ~> 1.0
804
- * [wordlist] ~> 1.0
805
- * [ronin-support] ~> 1.0
806
- * [ronin-core] ~> 0.1
803
+ * [wordlist] ~> 1.0, >= 1.0.3
804
+ * [ronin-support] ~> 1.0, >= 1.0.3
805
+ * [ronin-core] ~> 0.1, >= 0.1.2
807
806
  * [ronin-repos] ~> 0.1
808
807
  * [ronin-db] ~> 0.1
809
808
  * [ronin-fuzzer] ~> 0.1
@@ -824,9 +823,10 @@ curl -o ronin-install.sh https://raw.githubusercontent.com/ronin-rb/scripts/main
824
823
 
825
824
  ### Manually
826
825
 
827
- ```shell
828
- $ gem install ronin
829
- ```
826
+ See the [manual install][manual-instructions] instructions for how to install
827
+ Ronin and it's additional dependencies on your platform.
828
+
829
+ [manual-instructions]: https://ronin-rb.dev/install/#manual-instructions
830
830
 
831
831
  ### Docker
832
832
 
data/gemspec.yml CHANGED
@@ -94,10 +94,10 @@ dependencies:
94
94
  open_namespace: ~> 0.4
95
95
  rouge: ~> 3.0
96
96
  async-io: ~> 1.0
97
- wordlist: ~> 1.0
97
+ wordlist: ~> 1.0, >= 1.0.3
98
98
  # Ronin dependencies:
99
- ronin-support: ~> 1.0, >= 1.0.1
100
- ronin-core: ~> 0.1, >= 0.1.1
99
+ ronin-support: ~> 1.0, >= 1.0.3
100
+ ronin-core: ~> 0.1, >= 0.1.2
101
101
  ronin-repos: ~> 0.1
102
102
  ronin-db: ~> 0.1
103
103
  ronin-fuzzer: ~> 0.1
@@ -35,6 +35,7 @@ module Ronin
35
35
  #
36
36
  # ## Options
37
37
  #
38
+ # -f, --file FILE Optional file to read values from
38
39
  # -N, --numeric Searches for numeric characters (0-9)
39
40
  # -O, --octal Searches for octal characters (0-7)
40
41
  # -X, --upper-hex Searches for uppercase hexadecimal (0-9, A-F)
@@ -18,6 +18,8 @@
18
18
 
19
19
  require 'ronin/cli/command'
20
20
  require 'ronin/support/crypto/cert'
21
+ require 'ronin/support/crypto/key/rsa'
22
+ require 'ronin/support/crypto/key/ec'
21
23
  require 'ronin/support/text/patterns'
22
24
 
23
25
  require 'ronin/core/cli/logging'
@@ -50,22 +50,7 @@ module Ronin
50
50
 
51
51
  option :type, short: '-t',
52
52
  value: {
53
- type: {
54
- A: :a,
55
- AAAA: :aaaa,
56
- ANY: :any,
57
- CNAME: :cname,
58
- HINFO: :hinfo,
59
- LOC: :loc,
60
- MINFO: :minfo,
61
- MX: :mx,
62
- NS: :ns,
63
- PTR: :ptr,
64
- SOA: :soa,
65
- SRV: :srv,
66
- TXT: :txt,
67
- WKS: :wks
68
- }
53
+ type: RECORD_TYPES
69
54
  },
70
55
  desc: 'Queries a specific type of DNS record'
71
56
 
@@ -85,6 +70,23 @@ module Ronin
85
70
  print_records(query_records(host))
86
71
  end
87
72
 
73
+ #
74
+ # Queries the records for the given host name.
75
+ #
76
+ # @param [String] host
77
+ # The host name to query.
78
+ #
79
+ # @return [Array<Resolv::DNS::Resource>]
80
+ # The returned DNS resource records.
81
+ #
82
+ def query_records(host)
83
+ if options[:type]
84
+ resolver.get_records(host,options[:type].downcase)
85
+ else
86
+ resolver.get_a_records(host) + resolver.get_aaaa_records(host)
87
+ end
88
+ end
89
+
88
90
  end
89
91
  end
90
92
  end
@@ -116,28 +116,13 @@ module Ronin
116
116
 
117
117
  option :has_records, short: '-H',
118
118
  value: {
119
- type: {
120
- A: :a,
121
- AAAA: :aaaa,
122
- ANY: :any,
123
- CNAME: :cname,
124
- HINFO: :hinfo,
125
- LOC: :loc,
126
- MINFO: :minfo,
127
- MX: :mx,
128
- NS: :ns,
129
- PTR: :ptr,
130
- SOA: :soa,
131
- SRV: :srv,
132
- TXT: :txt,
133
- WKS: :wks
134
- }
119
+ type: RECORD_TYPES
135
120
  },
136
121
  desc: 'Filters hostnames that have a certain DNS record type'
137
122
 
138
123
  option :query, short: '-t',
139
124
  value: {
140
- type: [:A, :AAAA, :ANY, :CNAME, :HINFO, :LOC, :MINFO, :MX, :NS, :PTR, :SOA, :SRV, :TXT, :WKS]
125
+ type: RECORD_TYPES
141
126
  },
142
127
  desc: 'Queries a specific type of DNS record'
143
128
 
@@ -211,7 +196,7 @@ module Ronin
211
196
 
212
197
  puts host unless records.empty?
213
198
  elsif options[:query]
214
- print_records(query_records(host))
199
+ print_records(host.get_records(options[:query]))
215
200
  else
216
201
  puts host.name
217
202
  end
@@ -29,10 +29,11 @@ module Ronin
29
29
  #
30
30
  # ## Usage
31
31
  #
32
- # ronin typosquat [options] DOMAIN
32
+ # ronin typosquat [options] [DOMAIN ...]
33
33
  #
34
34
  # ## Options
35
35
  #
36
+ # -f, --file FILE Optional file to read values from
36
37
  # --omit-chars Toggles whether to omit repeated characters
37
38
  # --repeat-chars Toggles whether to repeat single characters
38
39
  # --swap-chars Toggles whether to swap certain common character pairs
@@ -50,6 +51,8 @@ module Ronin
50
51
 
51
52
  include TypoOptions
52
53
 
54
+ usage '[options] [DOMAIN ...]'
55
+
53
56
  option :has_addresses, desc: 'Print typo squat domains with addresses'
54
57
 
55
58
  option :registered, desc: 'Print typo squat domains that are already registered'
@@ -69,7 +72,7 @@ module Ronin
69
72
  # @param [String] domain
70
73
  # A word argument to typo.
71
74
  #
72
- def run(domain)
75
+ def process_value(domain)
73
76
  if options[:has_addresses]
74
77
  each_typo_squat(domain) do |typo_domain|
75
78
  if typo_domain.has_addresses?
data/lib/ronin/cli/dns.rb CHANGED
@@ -24,6 +24,24 @@ module Ronin
24
24
  # Mixin for adding DNS support to commands.
25
25
  #
26
26
  module DNS
27
+ # Mapping of DNS record types and lowercase versions.
28
+ RECORD_TYPES = {
29
+ A: :a,
30
+ AAAA: :aaaa,
31
+ ANY: :any,
32
+ CNAME: :cname,
33
+ HINFO: :hinfo,
34
+ LOC: :loc,
35
+ MINFO: :minfo,
36
+ MX: :mx,
37
+ NS: :ns,
38
+ PTR: :ptr,
39
+ SOA: :soa,
40
+ SRV: :srv,
41
+ TXT: :txt,
42
+ WKS: :wks
43
+ }
44
+
27
45
  #
28
46
  # Adds the `-N,--nameserver HOST|IP` option to the command which is
29
47
  # including {DNS}.
@@ -72,23 +90,6 @@ module Ronin
72
90
  end
73
91
  end
74
92
 
75
- #
76
- # Queries the records for the given host name.
77
- #
78
- # @param [String] host
79
- # The host name to query.
80
- #
81
- # @return [Array<Resolv::DNS::Resource>]
82
- # The returned DNS resource records.
83
- #
84
- def query_records(host)
85
- if options[:type]
86
- resolver.get_records(host,options[:type].downcase)
87
- else
88
- resolver.get_a_records(host) + resolver.get_aaaa_records(host)
89
- end
90
- end
91
-
92
93
  #
93
94
  # Prints multiple DNS records.
94
95
  #
data/lib/ronin/version.rb CHANGED
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Ronin
20
20
  # ronin version
21
- VERSION = '2.0.3'
21
+ VERSION = '2.0.5'
22
22
  end
data/lib/ronin.rb CHANGED
@@ -26,6 +26,5 @@ require 'open_namespace'
26
26
 
27
27
  module Ronin
28
28
  include Ronin::Support
29
- extend Ronin::Support
30
29
  include OpenNamespace
31
30
  end
data/man/ronin-bitflip.1 CHANGED
@@ -21,6 +21,10 @@ A string value to print all of the bit\-flips of\.
21
21
  .SH OPTIONS
22
22
  .LP
23
23
  .TP
24
+ \fB-f\fR, \fB--file\fR \fIFILE\fP
25
+ Optional file to read values from\.
26
+ .LP
27
+ .TP
24
28
  \fB-N\fR, \fB--numeric\fR
25
29
  Searches for numeric characters (0\-9)\.
26
30
  .LP
@@ -15,6 +15,9 @@ Prints every bit-flip of the given string(s).
15
15
 
16
16
  ## OPTIONS
17
17
 
18
+ `-f`, `--file` *FILE*
19
+ Optional file to read values from.
20
+
18
21
  `-N`, `--numeric`
19
22
  Searches for numeric characters (0-9).
20
23
 
data/man/ronin-cert-gen.1 CHANGED
@@ -59,7 +59,7 @@ The two\-letter State (ST) code for the certificate\.
59
59
  The two\-letter Country (C) code for the certificate\.
60
60
  .LP
61
61
  .HP
62
- \fB-t\fR, \fB--key-type\fR rsa\[or]ec\`
62
+ \fB-t\fR, \fB--key-type \fRrsa\fB\|\fRec\`
63
63
  The signing key type\.
64
64
  .LP
65
65
  .TP
@@ -43,7 +43,7 @@ Generates a new X509 certificate.
43
43
  `-C`, `--country` *XX*
44
44
  The two-letter Country (C) code for the certificate.
45
45
 
46
- `-t`, `--key-type` rsa|ec`
46
+ `-t`, `--key-type `rsa`\|`ec`
47
47
  The signing key type.
48
48
 
49
49
  `--generate-key` *PATH*
@@ -5,7 +5,7 @@
5
5
  .SH SYNOPSIS
6
6
  .LP
7
7
  .HP
8
- \fBronin typosquat\fR \[lB]\fIoptions\fP\[rB] DOMAIN
8
+ \fBronin typosquat\fR \[lB]\fIoptions\fP\[rB] \[lB]DOMAIN \.\.\.\[rB]
9
9
  .LP
10
10
  .SH DESCRIPTION
11
11
  .LP
@@ -16,11 +16,15 @@ Finds typo squatted domains\.
16
16
  .LP
17
17
  .TP
18
18
  \fIDOMAIN\fP
19
- The domain to typo squat\.
19
+ A domain to check for typo squats\.
20
20
  .LP
21
21
  .SH OPTIONS
22
22
  .LP
23
23
  .TP
24
+ \fB-f\fR, \fB--file\fR \fIFILE\fP
25
+ Optional file to read domains from\.
26
+ .LP
27
+ .TP
24
28
  \fB--omit-chars\fR
25
29
  Toggles whether to omit repeated characters\.
26
30
  .LP
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## SYNOPSIS
4
4
 
5
- `ronin typosquat` [*options*] DOMAIN
5
+ `ronin typosquat` [*options*] [DOMAIN ...]
6
6
 
7
7
  ## DESCRIPTION
8
8
 
@@ -11,10 +11,13 @@ Finds typo squatted domains.
11
11
  ## ARGUMENTS
12
12
 
13
13
  *DOMAIN*
14
- The domain to typo squat.
14
+ A domain to check for typo squats.
15
15
 
16
16
  ## OPTIONS
17
17
 
18
+ `-f`, `--file` *FILE*
19
+ Optional file to read domains from.
20
+
18
21
  `--omit-chars`
19
22
  Toggles whether to omit repeated characters.
20
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-12 00:00:00.000000000 Z
11
+ date: 2023-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open_namespace
@@ -59,6 +59,9 @@ dependencies:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.0.3
62
65
  type: :runtime
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -66,6 +69,9 @@ dependencies:
66
69
  - - "~>"
67
70
  - !ruby/object:Gem::Version
68
71
  version: '1.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.3
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: ronin-support
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -75,7 +81,7 @@ dependencies:
75
81
  version: '1.0'
76
82
  - - ">="
77
83
  - !ruby/object:Gem::Version
78
- version: 1.0.1
84
+ version: 1.0.3
79
85
  type: :runtime
80
86
  prerelease: false
81
87
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,7 +91,7 @@ dependencies:
85
91
  version: '1.0'
86
92
  - - ">="
87
93
  - !ruby/object:Gem::Version
88
- version: 1.0.1
94
+ version: 1.0.3
89
95
  - !ruby/object:Gem::Dependency
90
96
  name: ronin-core
91
97
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +101,7 @@ dependencies:
95
101
  version: '0.1'
96
102
  - - ">="
97
103
  - !ruby/object:Gem::Version
98
- version: 0.1.1
104
+ version: 0.1.2
99
105
  type: :runtime
100
106
  prerelease: false
101
107
  version_requirements: !ruby/object:Gem::Requirement
@@ -105,7 +111,7 @@ dependencies:
105
111
  version: '0.1'
106
112
  - - ">="
107
113
  - !ruby/object:Gem::Version
108
- version: 0.1.1
114
+ version: 0.1.2
109
115
  - !ruby/object:Gem::Dependency
110
116
  name: ronin-repos
111
117
  requirement: !ruby/object:Gem::Requirement