ronin 2.0.3 → 2.0.5

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 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