pwn 0.5.453 → 0.5.454
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 +4 -4
- data/.rubocop_todo.yml +4 -3
- data/Gemfile +2 -2
- data/README.md +3 -3
- data/bin/pwn +4 -15
- data/bin/pwn_android_war_dialer +1 -10
- data/bin/pwn_aws_describe_resources +1 -10
- data/bin/pwn_bdba_groups +1 -10
- data/bin/pwn_bdba_scan +1 -10
- data/bin/pwn_burp_suite_pro_active_rest_api_scan +1 -10
- data/bin/pwn_burp_suite_pro_active_scan +1 -10
- data/bin/pwn_char_base64_encoding +1 -10
- data/bin/pwn_char_dec_encoding +1 -10
- data/bin/pwn_char_hex_escaped_encoding +1 -10
- data/bin/pwn_char_html_entity_encoding +1 -10
- data/bin/pwn_char_unicode_escaped_encoding +1 -10
- data/bin/pwn_char_url_encoding +1 -10
- data/bin/pwn_crt_sh +1 -10
- data/bin/pwn_defectdojo_engagement_create +1 -10
- data/bin/pwn_defectdojo_importscan +1 -10
- data/bin/pwn_defectdojo_reimportscan +1 -10
- data/bin/pwn_diff_csv_files_w_column_exclude +1 -6
- data/bin/pwn_domain_reversewhois +1 -10
- data/bin/pwn_fuzz_net_app_proto +1 -10
- data/bin/pwn_gqrx_scanner +1 -10
- data/bin/pwn_jenkins_create_job +1 -10
- data/bin/pwn_jenkins_create_view +1 -10
- data/bin/pwn_jenkins_install_plugin +1 -10
- data/bin/pwn_jenkins_thinBackup_aws_s3 +1 -10
- data/bin/pwn_jenkins_update_plugins +1 -10
- data/bin/pwn_jenkins_useradd +1 -10
- data/bin/pwn_mail_agent +1 -10
- data/bin/pwn_nessus_cloud_scan_crud +1 -10
- data/bin/pwn_nessus_cloud_vulnscan +1 -10
- data/bin/pwn_nexpose +1 -10
- data/bin/pwn_nmap_discover_tcp_udp +1 -10
- data/bin/pwn_openvas_vulnscan +1 -10
- data/bin/pwn_pastebin_sample_filter +1 -10
- data/bin/pwn_phone +1 -10
- data/bin/pwn_rdoc_to_jsonl +5 -7
- data/bin/pwn_sast +1 -25
- data/bin/pwn_serial_check_voicemail +1 -10
- data/bin/pwn_serial_msr206 +4 -6
- data/bin/pwn_serial_son_micro_sm132_rfid +4 -6
- data/bin/pwn_shodan_graphql_introspection +1 -6
- data/bin/pwn_shodan_search +1 -10
- data/bin/pwn_simple_http_server +4 -5
- data/bin/pwn_web_cache_deception +1 -10
- data/bin/pwn_www_checkip +7 -5
- data/bin/pwn_www_uri_buster +1 -10
- data/bin/pwn_xss_dom_vectors +1 -10
- data/bin/pwn_zaproxy_active_rest_api_scan +1 -10
- data/bin/pwn_zaproxy_active_scan +1 -10
- data/lib/pwn/ai/introspection.rb +3 -1
- data/lib/pwn/config.rb +70 -25
- data/lib/pwn/driver.rb +85 -0
- data/lib/pwn/plugins/repl.rb +7 -10
- data/lib/pwn/version.rb +1 -1
- data/lib/pwn.rb +5 -4
- data/spec/lib/pwn/driver_spec.rb +15 -0
- metadata +7 -7
- data/etc/pwn.decryptor.yaml.EXAMPLE +0 -5
- data/etc/pwn.yaml.EXAMPLE +0 -71
data/lib/pwn/config.rb
CHANGED
@@ -7,8 +7,44 @@ module PWN
|
|
7
7
|
# Used to manage PWN configuration settings within PWN drivers.
|
8
8
|
module Config
|
9
9
|
# Supported Method Parameters::
|
10
|
-
#
|
11
|
-
|
10
|
+
# PWN::Config.redact_sensitive_artifacts(
|
11
|
+
# config: 'optional - Hash to redact sensitive artifacts from. Defaults to PWN::Env'
|
12
|
+
# )
|
13
|
+
public_class_method def self.redact_sensitive_artifacts(opts = {})
|
14
|
+
config = opts[:config] ||= PWN::Env
|
15
|
+
|
16
|
+
sensitive_keys = %i[api_key key paswword psks token]
|
17
|
+
|
18
|
+
# Transform values at the current level: redact sensitive keys
|
19
|
+
config.transform_values.with_index do |v, k|
|
20
|
+
if sensitive_keys.include?(config.keys[k])
|
21
|
+
'>>> REDACTED >>> USE `pwn-vault` FOR ADMINISTRATION <<< REDACTED <<<'
|
22
|
+
else
|
23
|
+
v.is_a?(Hash) ? redact_sensitive_artifacts(config: v) : v
|
24
|
+
end
|
25
|
+
end
|
26
|
+
rescue StandardError => e
|
27
|
+
raise e
|
28
|
+
end
|
29
|
+
|
30
|
+
# Supported Method Parameters::
|
31
|
+
# env = PWN::Config.init_driver_options
|
32
|
+
public_class_method def self.init_driver_options
|
33
|
+
env = {
|
34
|
+
driver_opts: {
|
35
|
+
pwn_env_path: nil,
|
36
|
+
pwn_dec_path: nil
|
37
|
+
}
|
38
|
+
}
|
39
|
+
PWN.const_set(:Env, env)
|
40
|
+
# puts '[*] Loaded driver options.'
|
41
|
+
rescue StandardError => e
|
42
|
+
raise e
|
43
|
+
end
|
44
|
+
|
45
|
+
# Supported Method Parameters::
|
46
|
+
# env = PWN::Config.default_env
|
47
|
+
public_class_method def self.default_env(opts = {})
|
12
48
|
pwn_env_path = opts[:pwn_env_path]
|
13
49
|
pwn_dec_path = "#{File.dirname(pwn_env_path)}/pwn.decryptor.yaml"
|
14
50
|
|
@@ -26,38 +62,38 @@ module PWN
|
|
26
62
|
"
|
27
63
|
env = {
|
28
64
|
ai: {
|
29
|
-
active:
|
65
|
+
active: 'grok',
|
30
66
|
introspection: false,
|
31
67
|
grok: {
|
32
|
-
base_uri:
|
33
|
-
key:
|
34
|
-
model:
|
35
|
-
system_role_content:
|
36
|
-
temp:
|
68
|
+
base_uri: 'optional - Base URI for Grok - Use private base OR defaults to https://api.x.ai/v1',
|
69
|
+
key: 'required - OpenAI API Key',
|
70
|
+
model: 'optional - Grok model to use',
|
71
|
+
system_role_content: 'You are an ethically hacking OpenAI agent.',
|
72
|
+
temp: 'optional - OpenAI temperature'
|
37
73
|
},
|
38
74
|
openai: {
|
39
|
-
base_uri:
|
40
|
-
key:
|
41
|
-
model:
|
42
|
-
system_role_content:
|
43
|
-
temp:
|
75
|
+
base_uri: 'optional - Base URI for OpenAI - Use private base OR defaults to https://api.openai.com/v1',
|
76
|
+
key: 'required - OpenAI API Key',
|
77
|
+
model: 'optional - OpenAI model to use',
|
78
|
+
system_role_content: 'You are an ethically hacking OpenAI agent.',
|
79
|
+
temp: 'optional - OpenAI temperature'
|
44
80
|
},
|
45
81
|
ollama: {
|
46
|
-
base_uri:
|
47
|
-
key:
|
48
|
-
model:
|
49
|
-
system_role_content:
|
50
|
-
temp:
|
82
|
+
base_uri: 'required - Base URI for Open WebUI - e.g. https://ollama.local',
|
83
|
+
key: 'required - Open WebUI API Key Under Settings >> Account >> JWT Token',
|
84
|
+
model: 'required - Ollama model to use',
|
85
|
+
system_role_content: 'You are an ethically hacking Ollama agent.',
|
86
|
+
temp: 'optional - Ollama temperature'
|
51
87
|
}
|
52
88
|
},
|
53
89
|
plugins: {
|
54
|
-
asm: { arch:
|
90
|
+
asm: { arch: PWN::Plugins::DetectOS.arch, endian: PWN::Plugins::DetectOS.endian },
|
55
91
|
blockchain: {
|
56
92
|
bitcoin: {
|
57
|
-
rpc_host:
|
93
|
+
rpc_host: 'localhost',
|
58
94
|
rpc_port: 8332,
|
59
|
-
rpc_user:
|
60
|
-
rpc_pass:
|
95
|
+
rpc_user: 'bitcoin RPC Username',
|
96
|
+
rpc_pass: 'bitcoin RPC Password'
|
61
97
|
}
|
62
98
|
},
|
63
99
|
irc: {
|
@@ -124,7 +160,7 @@ module PWN
|
|
124
160
|
FileUtils.mkdir_p(pwn_env_root)
|
125
161
|
|
126
162
|
pwn_env_path = opts[:pwn_env_path] ||= "#{pwn_env_root}/pwn.yaml"
|
127
|
-
return
|
163
|
+
return default_env(pwn_env_path: pwn_env_path) unless File.exist?(pwn_env_path)
|
128
164
|
|
129
165
|
is_encrypted = PWN::Plugins::Vault.file_encrypted?(file: pwn_env_path)
|
130
166
|
|
@@ -185,9 +221,18 @@ module PWN
|
|
185
221
|
pwn_dec_path: pwn_dec_path
|
186
222
|
}
|
187
223
|
|
188
|
-
|
224
|
+
# Assign the refreshed env to PWN::Env
|
189
225
|
PWN.send(:remove_const, :Env) if PWN.const_defined?(:Env)
|
190
226
|
PWN.const_set(:Env, env.freeze)
|
227
|
+
|
228
|
+
# Redact sensitive artifacts from PWN::Env and store in PWN::EnvRedacted
|
229
|
+
env_redacted = redact_sensitive_artifacts(config: env)
|
230
|
+
PWN.send(:remove_const, :EnvRedacted) if PWN.const_defined?(:EnvRedacted)
|
231
|
+
PWN.const_set(:EnvRedacted, env_redacted.freeze)
|
232
|
+
|
233
|
+
Pry.config.refresh_pwn_env = false if defined?(Pry)
|
234
|
+
|
235
|
+
puts "[*] PWN::Env loaded via: #{pwn_env_path}\n"
|
191
236
|
rescue StandardError => e
|
192
237
|
raise e
|
193
238
|
end
|
@@ -204,7 +249,7 @@ module PWN
|
|
204
249
|
|
205
250
|
public_class_method def self.help
|
206
251
|
puts "USAGE:
|
207
|
-
#{self}.
|
252
|
+
#{self}.default_env(
|
208
253
|
pwn_env_path: 'optional - Path to pwn.yaml file. Defaults to ~/.pwn/pwn.yaml'
|
209
254
|
)
|
210
255
|
|
data/lib/pwn/driver.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
module PWN
|
6
|
+
# Used to consume options passed into PWN drivers and load PWN::Env
|
7
|
+
class Driver
|
8
|
+
# Add OptionParser options to PWN::Env
|
9
|
+
class Parser < OptionParser
|
10
|
+
attr_accessor :auto_opts_help,
|
11
|
+
:opts
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
super
|
15
|
+
@opts = PWN::Env[:driver_opts]
|
16
|
+
@auto_opts_help = true
|
17
|
+
|
18
|
+
banner = "USAGE: #{File.basename($PROGRAM_NAME)} [opts]\n"
|
19
|
+
on(
|
20
|
+
'-YPATH',
|
21
|
+
'--pwn_env=PATH',
|
22
|
+
'<Optional - PWN::Env YAML file path (Default: ~/.pwn/pwn.yaml)>'
|
23
|
+
) do |o|
|
24
|
+
@opts[:pwn_env_path] = o
|
25
|
+
end
|
26
|
+
on(
|
27
|
+
'-ZPATH',
|
28
|
+
'--pwn_dec=PATH',
|
29
|
+
'<Optional - Out-of-Band YAML file path (Default: ~/.pwn/pwn.decryptor.yaml)>'
|
30
|
+
) do |o|
|
31
|
+
@opts[:pwn_dec_path] = o
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def parse!
|
36
|
+
super(ARGV, into: @opts)
|
37
|
+
# puts @opts
|
38
|
+
|
39
|
+
PWN::Config.refresh_env(
|
40
|
+
pwn_env_path: @opts[:pwn_env_path],
|
41
|
+
pwn_dec_path: @opts[:pwn_dec_path]
|
42
|
+
)
|
43
|
+
|
44
|
+
if @auto_opts_help && @opts.keys.join(' ') == 'pwn_env_path pwn_dec_path'
|
45
|
+
puts `#{File.basename($PROGRAM_NAME)} --help`
|
46
|
+
exit 1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Author(s):: 0day Inc. <support@0dayinc.com>
|
52
|
+
|
53
|
+
public_class_method def self.authors
|
54
|
+
"AUTHOR(S):
|
55
|
+
0day Inc. <support@0dayinc.com>
|
56
|
+
"
|
57
|
+
end
|
58
|
+
|
59
|
+
# Display Usage for this Module
|
60
|
+
|
61
|
+
public_class_method def self.help
|
62
|
+
puts "USAGE:
|
63
|
+
# Load default driver options into PWN::Env
|
64
|
+
opts = PWN::Env[:driver_opts]
|
65
|
+
#{self}::Parser.new.parse(&:on).parse!
|
66
|
+
|
67
|
+
# Add more options by passing a block to the parser
|
68
|
+
opts = PWN::Env[:driver_opts]
|
69
|
+
#{self}::Parser.new do |options|
|
70
|
+
# Boolean option
|
71
|
+
options.on('-b', '--boolean') do |o|
|
72
|
+
opts[:boolean] = o
|
73
|
+
end
|
74
|
+
|
75
|
+
# String option
|
76
|
+
options.on('-sSTRING', '--string=STRING') do |o|
|
77
|
+
opts[:string] = o
|
78
|
+
end
|
79
|
+
end.parse!
|
80
|
+
|
81
|
+
#{self}.authors
|
82
|
+
"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/pwn/plugins/repl.rb
CHANGED
@@ -489,6 +489,7 @@ module PWN
|
|
489
489
|
# Define REPL Hooks
|
490
490
|
# Welcome Banner Hook
|
491
491
|
Pry.config.hooks.add_hook(:before_session, :welcome) do |output, _binding, _pi|
|
492
|
+
Pry.config.refresh_pwn_env = false
|
492
493
|
output.puts PWN::Banner.welcome
|
493
494
|
end
|
494
495
|
|
@@ -597,11 +598,11 @@ module PWN
|
|
597
598
|
end
|
598
599
|
|
599
600
|
# Supported Method Parameters::
|
600
|
-
# PWN::Plugins::REPL.start
|
601
|
-
|
602
|
-
|
601
|
+
# PWN::Plugins::REPL.start
|
602
|
+
|
603
|
+
public_class_method def self.start
|
604
|
+
opts = PWN::Env[:driver_opts]
|
603
605
|
|
604
|
-
public_class_method def self.start(opts = {})
|
605
606
|
# Monkey Patch Pry, add commands, && hooks
|
606
607
|
PWN::Plugins::MonkeyPatch.pry
|
607
608
|
pwn_env_root = "#{Dir.home}/.pwn"
|
@@ -646,13 +647,9 @@ module PWN
|
|
646
647
|
|
647
648
|
#{self}.add_commands
|
648
649
|
|
649
|
-
#{self}.add_hooks
|
650
|
-
opts: 'required - Hash object passed in via pwn OptParser'
|
651
|
-
)
|
650
|
+
#{self}.add_hooks
|
652
651
|
|
653
|
-
#{self}.start
|
654
|
-
opts: 'required - Hash object passed in via pwn OptParser'
|
655
|
-
)
|
652
|
+
#{self}.start
|
656
653
|
|
657
654
|
#{self}.authors
|
658
655
|
"
|
data/lib/pwn/version.rb
CHANGED
data/lib/pwn.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'json'
|
4
|
-
require 'optparse'
|
5
4
|
require 'pwn/version'
|
6
5
|
require 'yaml'
|
7
6
|
|
@@ -16,21 +15,23 @@ module PWN
|
|
16
15
|
autoload :Banner, 'pwn/banner'
|
17
16
|
autoload :Blockchain, 'pwn/blockchain'
|
18
17
|
autoload :Config, 'pwn/config'
|
18
|
+
autoload :Driver, 'pwn/driver'
|
19
19
|
autoload :FFI, 'pwn/ffi'
|
20
20
|
autoload :Plugins, 'pwn/plugins'
|
21
21
|
autoload :Reports, 'pwn/reports'
|
22
22
|
autoload :SAST, 'pwn/sast'
|
23
23
|
autoload :WWW, 'pwn/www'
|
24
24
|
|
25
|
+
# Initialize Options for Drivers
|
26
|
+
|
27
|
+
PWN::Config.init_driver_options
|
28
|
+
|
25
29
|
# Display a List of Every PWN Module
|
26
30
|
|
27
31
|
public_class_method def self.help
|
28
32
|
constants.sort
|
29
33
|
end
|
30
34
|
|
31
|
-
# Initialize PWN configuration file
|
32
|
-
# PWN::Env is the constant that stores the configuration data
|
33
|
-
PWN::Config.refresh_env
|
34
35
|
rescue StandardError => e
|
35
36
|
puts e.backtrace
|
36
37
|
raise e
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe PWN::Driver do
|
6
|
+
it 'should display information for authors' do
|
7
|
+
authors_response = PWN::Driver
|
8
|
+
expect(authors_response).to respond_to :authors
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should display information for existing help method' do
|
12
|
+
help_response = PWN::Driver
|
13
|
+
expect(help_response).to respond_to :help
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.454
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
@@ -127,14 +127,14 @@ dependencies:
|
|
127
127
|
requirements:
|
128
128
|
- - '='
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 5.
|
130
|
+
version: 5.2.0
|
131
131
|
type: :runtime
|
132
132
|
prerelease: false
|
133
133
|
version_requirements: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - '='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 5.
|
137
|
+
version: 5.2.0
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
name: bundler
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1261,14 +1261,14 @@ dependencies:
|
|
1261
1261
|
requirements:
|
1262
1262
|
- - '='
|
1263
1263
|
- !ruby/object:Gem::Version
|
1264
|
-
version: 6.0.
|
1264
|
+
version: 6.0.3
|
1265
1265
|
type: :runtime
|
1266
1266
|
prerelease: false
|
1267
1267
|
version_requirements: !ruby/object:Gem::Requirement
|
1268
1268
|
requirements:
|
1269
1269
|
- - '='
|
1270
1270
|
- !ruby/object:Gem::Version
|
1271
|
-
version: 6.0.
|
1271
|
+
version: 6.0.3
|
1272
1272
|
- !ruby/object:Gem::Dependency
|
1273
1273
|
name: whois-parser
|
1274
1274
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1449,8 +1449,6 @@ files:
|
|
1449
1449
|
- documentation/pwn_wallpaper.jpg
|
1450
1450
|
- documentation/ringing-spectrogram.png
|
1451
1451
|
- documentation/ringing-waveform.png
|
1452
|
-
- etc/pwn.decryptor.yaml.EXAMPLE
|
1453
|
-
- etc/pwn.yaml.EXAMPLE
|
1454
1452
|
- etc/systemd/msfrpcd.service
|
1455
1453
|
- etc/systemd/openvas.service
|
1456
1454
|
- etc/userland/aws/apache2/jenkins_443.conf
|
@@ -1876,6 +1874,7 @@ files:
|
|
1876
1874
|
- lib/pwn/blockchain/btc.rb
|
1877
1875
|
- lib/pwn/blockchain/eth.rb
|
1878
1876
|
- lib/pwn/config.rb
|
1877
|
+
- lib/pwn/driver.rb
|
1879
1878
|
- lib/pwn/ffi.rb
|
1880
1879
|
- lib/pwn/ffi/stdio.rb
|
1881
1880
|
- lib/pwn/plugins.rb
|
@@ -2229,6 +2228,7 @@ files:
|
|
2229
2228
|
- spec/lib/pwn/blockchain/eth_spec.rb
|
2230
2229
|
- spec/lib/pwn/blockchain_spec.rb
|
2231
2230
|
- spec/lib/pwn/config_spec.rb
|
2231
|
+
- spec/lib/pwn/driver_spec.rb
|
2232
2232
|
- spec/lib/pwn/ffi/stdio_spec.rb
|
2233
2233
|
- spec/lib/pwn/ffi_spec.rb
|
2234
2234
|
- spec/lib/pwn/plugins/android_spec.rb
|
@@ -1,5 +0,0 @@
|
|
1
|
-
# Drop this file in $HOME/.pwn/pwn.decryptor.yaml
|
2
|
-
# If you rely upon this file, it should be out-of-band for optimal security
|
3
|
-
# (e.g. not available in code repos, permission protected, limited access, etc.)
|
4
|
-
key: 'KEY PROVIDED WHEN USING PWN::Plugins::Vault.create(file: "pwn.yaml") TO ENCRYPT pwn.yaml'
|
5
|
-
iv: 'KEY PROVIDED WHEN USING PWN::Plugins::Vault.create(file: "pwn.yaml") TO ENCRYPT pwn.yaml'
|
data/etc/pwn.yaml.EXAMPLE
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# Drop this file in $HOME/.pwn/pwn.yaml
|
2
|
-
# Use PWN::Plugins::Vault.create(file: 'pwn.yaml') to encrypt this file
|
3
|
-
|
4
|
-
# ai_engine: 'openai' || 'ollama'
|
5
|
-
# WARNING::
|
6
|
-
# If PWN::CONFIG[:ai][:instrospection] = true, the active ai agent will be used
|
7
|
-
# wherever possible throughout pwn. Proceeds with caution, as this may incur additional costs
|
8
|
-
ai:
|
9
|
-
active: 'grok'
|
10
|
-
introspection: false
|
11
|
-
grok:
|
12
|
-
base_uri: 'optional - Base URI for Grok - Use private base OR defaults to https://api.x.ai/v1'
|
13
|
-
key: 'required - OpenAI API Key'
|
14
|
-
model: 'optional - Grok model to use'
|
15
|
-
system_role_content: 'You are an ethically hacking Grok agent.'
|
16
|
-
temp: 'optional - OpenAI temperature'
|
17
|
-
|
18
|
-
openai:
|
19
|
-
base_uri: 'optional - Base URI for OpenAI - Use private base OR defaults to https://api.openai.com/v1'
|
20
|
-
key: 'required - OpenAI API Key'
|
21
|
-
model: 'optional - OpenAI model to use'
|
22
|
-
system_role_content: 'You are an ethically hacking OpenAI agent.'
|
23
|
-
temp: 'optional - OpenAI temperature'
|
24
|
-
|
25
|
-
ollama:
|
26
|
-
base_uri: 'required - Base URI for Open WebUI - e.g. https://ollama.local'
|
27
|
-
key: 'required - Open WebUI API Key Under Settings >> Account >> JWT Token'
|
28
|
-
model: 'required - Ollama model to use'
|
29
|
-
system_role_content: 'You are an ethically hacking Ollama agent.'
|
30
|
-
temp: 'optional - Ollama temperature'
|
31
|
-
|
32
|
-
# Use PWN::Plugins::Assembly.list_supported_archs to list supported architectures
|
33
|
-
plugins:
|
34
|
-
asm:
|
35
|
-
arch: 'x86_64'
|
36
|
-
endian: 'little'
|
37
|
-
|
38
|
-
blockchain:
|
39
|
-
bitcoin:
|
40
|
-
rpc_host: '127.0.0.1'
|
41
|
-
rpc_port: 8332
|
42
|
-
rpc_user: 'bitcoin rpc user'
|
43
|
-
rpc_pass: 'bitcoin rpc password'
|
44
|
-
|
45
|
-
irc:
|
46
|
-
ui_nick: '_human_'
|
47
|
-
shared_chan: '#pwn'
|
48
|
-
ai_agent_nicks:
|
49
|
-
browser:
|
50
|
-
pwn_rb: '/opt/pwn/lib/pwn/plugins/transparent_browser.rb'
|
51
|
-
system_role_content: 'You are a browser. You are a web browser that can be controlled by a human or AI agent'
|
52
|
-
nimjeh:
|
53
|
-
pwn_rb: ''
|
54
|
-
system_role_content: 'You are a sarcastic hacker. You find software zero day vulnerabilities. This involves analyzing source code, race conditions, application binaries, and network protocols from an offensive security perspective.'
|
55
|
-
nmap:
|
56
|
-
pwn_rb: '/opt/pwn/lib/pwn/plugins/nmap_it.rb'
|
57
|
-
system_role_content: 'You are a network scanner. You are a network scanner that can be controlled by a human or AI agent'
|
58
|
-
shodan:
|
59
|
-
pwn_rb: '/opt/pwn/lib/pwn/plugins/shodan.rb'
|
60
|
-
system_role_content: 'You are a passive reconnaissance agent. You are a passive reconnaissance agent that can be controlled by a human or AI agent'
|
61
|
-
|
62
|
-
hunter:
|
63
|
-
api_key: 'hunter.how API Key'
|
64
|
-
|
65
|
-
meshtastic:
|
66
|
-
psks:
|
67
|
-
LongFast: 'required - PSK for LongFast channel'
|
68
|
-
PWN: 'required - PSK for pwn channel'
|
69
|
-
|
70
|
-
shodan:
|
71
|
-
api_key: 'SHODAN API Key'
|