Skip to content

Commit 348c94a

Browse files
committedSep 6, 2024·
Show which workers are enabled in ronin-recon workers (closes #175).
1 parent 3d6f48d commit 348c94a

File tree

2 files changed

+55
-17
lines changed

2 files changed

+55
-17
lines changed
 

‎lib/ronin/recon/cli/commands/workers.rb

+18-9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020

2121
require_relative '../command'
2222
require_relative '../../registry'
23+
require_relative '../../config'
24+
25+
require 'command_kit/printing/tables'
2326

2427
module Ronin
2528
module Recon
@@ -42,6 +45,8 @@ module Commands
4245
#
4346
class Workers < Command
4447

48+
include CommandKit::Printing::Tables
49+
4550
usage '[options] [DIR]'
4651

4752
argument :dir, required: false,
@@ -58,19 +63,23 @@ class Workers < Command
5863
# The optional recon worker directory to list.
5964
#
6065
def run(dir=nil)
61-
files = if dir
62-
dir = "#{dir}/" unless dir.end_with?('/')
66+
config = Ronin::Recon::Config.default
6367

64-
Ronin::Recon.list_files.select do |file|
65-
file.start_with?(dir)
68+
workers = if dir
69+
dir = "#{dir}/" unless dir.end_with?('/')
70+
71+
Ronin::Recon.list_files.select do |file|
72+
file.start_with?(dir)
73+
end
74+
else
75+
Ronin::Recon.list_files
6676
end
67-
else
68-
Ronin::Recon.list_files
69-
end
7077

71-
files.each do |file|
72-
puts " #{file}"
78+
columns = workers.map do |worker|
79+
[worker, ('[enabled]' if config.workers.include?(worker))]
7380
end
81+
82+
print_table(columns, padding: 2)
7483
end
7584

7685
end

‎spec/cli/commands/workers_spec.rb

+37-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,39 @@
11
require 'spec_helper'
22
require 'ronin/recon/cli/commands/workers'
3+
require 'ronin/recon/config'
34

45
describe Ronin::Recon::CLI::Commands::Workers do
56
describe "#run" do
7+
let(:config) { Ronin::Recon::Config.default }
8+
69
it "must list all worker IDs" do
710
expect {
811
subject.run
912
}.to output(
10-
Ronin::Recon.list_files.map { |id|
11-
" #{id}"
12-
}.join($/) + $/
13+
[
14+
" api/built_with ",
15+
" api/crt_sh ",
16+
" api/hunter_io ",
17+
" api/security_trails ",
18+
" api/zoom_eye ",
19+
" dns/lookup [enabled] ",
20+
" dns/mailservers [enabled] ",
21+
" dns/nameservers [enabled] ",
22+
" dns/reverse_lookup [enabled] ",
23+
" dns/srv_enum [enabled] ",
24+
" dns/subdomain_enum [enabled] ",
25+
" dns/suffix_enum [enabled] ",
26+
" net/ip_range_enum [enabled] ",
27+
" net/port_scan [enabled] ",
28+
" net/service_id [enabled] ",
29+
" ssl/cert_enum [enabled] ",
30+
" ssl/cert_grab [enabled] ",
31+
" web/dir_enum [enabled] ",
32+
" web/email_addresses [enabled] ",
33+
" web/screenshot ",
34+
" web/spider [enabled] ",
35+
""
36+
].join($/)
1337
).to_stdout
1438
end
1539

@@ -20,11 +44,16 @@
2044
expect {
2145
subject.run(dir)
2246
}.to output(
23-
Ronin::Recon.list_files.select { |id|
24-
id.start_with?("#{dir}/")
25-
}.map { |id|
26-
" #{id}"
27-
}.join($/) + $/
47+
[
48+
" dns/lookup [enabled] ",
49+
" dns/mailservers [enabled] ",
50+
" dns/nameservers [enabled] ",
51+
" dns/reverse_lookup [enabled] ",
52+
" dns/srv_enum [enabled] ",
53+
" dns/subdomain_enum [enabled] ",
54+
" dns/suffix_enum [enabled] ",
55+
""
56+
].join($/)
2857
).to_stdout
2958
end
3059
end

0 commit comments

Comments
 (0)
Please sign in to comment.