pwn 0.5.445 → 0.5.447
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/README.md +3 -3
- data/etc/pwn.yaml.EXAMPLE +7 -0
- data/lib/pwn/blockchain/btc.rb +131 -21
- data/lib/pwn/config.rb +8 -0
- data/lib/pwn/plugins/authentication_helper.rb +15 -8
- data/lib/pwn/version.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +17 -5
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e9a181923fbe82cb42f983b6297b0f16898ab64bf5189f1a0a5f727bb507f0be
|
|
4
|
+
data.tar.gz: ef102ca4eaf9af0c1a454f9a94dba4bcd25b8f5cf7f9e810c2f7877a84c39864
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8fdbadc32ceaa6384430f75ceeb9c5ada8e8fea9e0be1ce2ecbc4defaeaba5d471a921333ec8d68383d6c36db275cf00e5051aed090c4d24320046cccbae7f35
|
|
7
|
+
data.tar.gz: 03bd251fb01de1e509d6a638060fdd57e03d781ef0430e7cf077c90a6e734045460661a49a308677ee19dfebc28b93321925a605c1bc241858f2f54891b0dab9
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2025-10-08
|
|
3
|
+
# on 2025-10-08 21:02:36 UTC using RuboCop version 1.81.1.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
@@ -66,9 +66,10 @@ Metrics/ModuleLength:
|
|
|
66
66
|
Exclude:
|
|
67
67
|
- 'lib/pwn/plugins/android.rb'
|
|
68
68
|
|
|
69
|
-
# Offense count:
|
|
69
|
+
# Offense count: 3
|
|
70
70
|
Naming/AccessorMethodName:
|
|
71
71
|
Exclude:
|
|
72
|
+
- 'lib/pwn/blockchain/btc.rb'
|
|
72
73
|
- 'lib/pwn/plugins/vin.rb'
|
|
73
74
|
|
|
74
75
|
# Offense count: 1
|
|
@@ -83,7 +84,7 @@ Style/Alias:
|
|
|
83
84
|
Style/ClassVars:
|
|
84
85
|
Enabled: false
|
|
85
86
|
|
|
86
|
-
# Offense count:
|
|
87
|
+
# Offense count: 272
|
|
87
88
|
# This cop supports safe autocorrection (--autocorrect).
|
|
88
89
|
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
|
89
90
|
# SupportedStyles: assign_to_condition, assign_inside_condition
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ $ cd /opt/pwn
|
|
|
37
37
|
$ ./install.sh
|
|
38
38
|
$ ./install.sh ruby-gem
|
|
39
39
|
$ pwn
|
|
40
|
-
pwn[v0.5.
|
|
40
|
+
pwn[v0.5.447]:001 >>> PWN.help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.4.4@pwn
|
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
|
53
53
|
$ gem install --verbose pwn
|
|
54
54
|
$ pwn
|
|
55
|
-
pwn[v0.5.
|
|
55
|
+
pwn[v0.5.447]:001 >>> PWN.help
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
|
@@ -62,7 +62,7 @@ $ rvm use ruby-3.4.4@pwn
|
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
|
64
64
|
$ pwn
|
|
65
|
-
pwn[v0.5.
|
|
65
|
+
pwn[v0.5.447]:001 >>> PWN.help
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
|
data/etc/pwn.yaml.EXAMPLE
CHANGED
data/lib/pwn/blockchain/btc.rb
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'base64'
|
|
3
4
|
require 'json'
|
|
4
5
|
require 'rest-client'
|
|
5
6
|
require 'tty-spinner'
|
|
7
|
+
require 'date'
|
|
6
8
|
|
|
7
9
|
module PWN
|
|
8
10
|
module Blockchain
|
|
@@ -25,10 +27,20 @@ module PWN
|
|
|
25
27
|
opts[:http_method].to_s.scrub.to_sym
|
|
26
28
|
end
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
rpc_host = PWN::Env[:blockchain][:bitcoin][:rpc_host] ||= '127.0.0.1'
|
|
31
|
+
rpc_port = PWN::Env[:blockchain][:bitcoin][:rpc_port] ||= '8332'
|
|
32
|
+
base_uri = "http://#{rpc_host}:#{rpc_port}"
|
|
29
33
|
rest_call = opts[:rest_call].to_s.scrub
|
|
30
34
|
params = opts[:params]
|
|
31
|
-
|
|
35
|
+
rpc_user = PWN::Env[:blockchain][:bitcoin][:rpc_user] ||= PWN::Plugins::AuthenticationHelper.username(prompt: 'Bitcoin Node RPC Username')
|
|
36
|
+
rpc_pass = PWN::Env[:blockchain][:bitcoin][:rpc_pass] ||= PWN::Plugins::AuthenticationHelper.mask_password(prompt: 'Bitcoin Node RPC Password')
|
|
37
|
+
|
|
38
|
+
basic_auth = Base64.strict_encode64("#{rpc_user}:#{rpc_pass}")
|
|
39
|
+
|
|
40
|
+
headers = {
|
|
41
|
+
content_type: 'application/json; charset=UTF-8',
|
|
42
|
+
authorization: "Basic #{basic_auth}"
|
|
43
|
+
}
|
|
32
44
|
|
|
33
45
|
http_body = opts[:http_body]
|
|
34
46
|
http_body ||= {}
|
|
@@ -99,37 +111,130 @@ module PWN
|
|
|
99
111
|
spin.stop if spinner
|
|
100
112
|
end
|
|
101
113
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
114
|
+
private_class_method def self.btc_rpc_call(method:, params: [])
|
|
115
|
+
http_body = {
|
|
116
|
+
jsonrpc: '1.0',
|
|
117
|
+
id: self,
|
|
118
|
+
method: method,
|
|
119
|
+
params: params
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
response = btc_rest_call(
|
|
123
|
+
http_method: :post,
|
|
124
|
+
http_body: http_body
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
res = JSON.parse(response.body, symbolize_names: true)
|
|
128
|
+
raise "RPC Error: #{res[:error][:code]} - #{res[:error][:message]}" if res[:error]
|
|
129
|
+
|
|
130
|
+
res
|
|
131
|
+
rescue StandardError => e
|
|
132
|
+
raise e
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
private_class_method def self.get_block_timestamp(height)
|
|
136
|
+
res = btc_rpc_call(method: 'getblockhash', params: [height])
|
|
137
|
+
block_hash = res[:result]
|
|
106
138
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
139
|
+
res = btc_rpc_call(method: 'getblockheader', params: [block_hash])
|
|
140
|
+
res[:result][:time]
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
private_class_method def self.find_first_block_ge_timestamp(target_ts)
|
|
144
|
+
chain_info = get_latest_block[:result]
|
|
145
|
+
low = 0
|
|
146
|
+
high = chain_info[:blocks]
|
|
147
|
+
result = nil
|
|
148
|
+
while low <= high
|
|
149
|
+
mid = (low + high) / 2
|
|
150
|
+
ts = get_block_timestamp(mid)
|
|
151
|
+
if ts >= target_ts
|
|
152
|
+
result = mid
|
|
153
|
+
high = mid - 1
|
|
154
|
+
else
|
|
155
|
+
low = mid + 1
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
result
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
private_class_method def self.find_last_block_le_timestamp(target_ts)
|
|
162
|
+
chain_info = get_latest_block[:result]
|
|
163
|
+
low = 0
|
|
164
|
+
high = chain_info[:blocks]
|
|
165
|
+
result = nil
|
|
166
|
+
while low <= high
|
|
167
|
+
mid = (low + high) / 2
|
|
168
|
+
ts = get_block_timestamp(mid)
|
|
169
|
+
if ts <= target_ts
|
|
170
|
+
result = mid
|
|
171
|
+
low = mid + 1
|
|
172
|
+
else
|
|
173
|
+
high = mid - 1
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
result
|
|
177
|
+
end
|
|
110
178
|
|
|
111
|
-
|
|
112
|
-
|
|
179
|
+
# Supported Method Parameters::
|
|
180
|
+
# latest_block = PWN::Blockchain::BTC.get_latest_block
|
|
113
181
|
|
|
114
|
-
|
|
182
|
+
public_class_method def self.get_latest_block
|
|
183
|
+
btc_rpc_call(method: 'getblockchaininfo', params: [])
|
|
115
184
|
rescue StandardError => e
|
|
116
185
|
raise e
|
|
117
186
|
end
|
|
118
187
|
|
|
119
188
|
# Supported Method Parameters::
|
|
120
189
|
# PWN::Blockchain::BTC.get_block_details(
|
|
121
|
-
# height: 'required - block height
|
|
122
|
-
# token: 'optional - API token for higher rate limits'
|
|
190
|
+
# height: 'required - block height as an integer (0 for genesis block)'
|
|
123
191
|
# )
|
|
124
192
|
public_class_method def self.get_block_details(opts = {})
|
|
125
|
-
height = opts[:height]
|
|
126
|
-
|
|
127
|
-
|
|
193
|
+
height = opts[:height] ||= 0
|
|
194
|
+
|
|
195
|
+
raise 'ERROR: height must be >= 0' if height.negative?
|
|
128
196
|
|
|
129
|
-
|
|
130
|
-
|
|
197
|
+
hash_res = btc_rpc_call(method: 'getblockhash', params: [height])
|
|
198
|
+
block_hash = hash_res[:result]
|
|
131
199
|
|
|
132
|
-
|
|
200
|
+
# Verbosity 1: block details with tx IDs
|
|
201
|
+
block_res = btc_rpc_call(method: 'getblock', params: [block_hash, 1])
|
|
202
|
+
|
|
203
|
+
block_res[:result]
|
|
204
|
+
rescue StandardError => e
|
|
205
|
+
raise e
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# Supported Method Parameters::
|
|
209
|
+
# transactions = PWN::Blockchain::BTC.get_transactions(
|
|
210
|
+
# from: 'required - start date in YYYY-MM-DD format',
|
|
211
|
+
# to: 'required - end date in YYYY-MM-DD format'
|
|
212
|
+
# )
|
|
213
|
+
|
|
214
|
+
public_class_method def self.get_transactions(opts = {})
|
|
215
|
+
from_date = opts[:from]
|
|
216
|
+
to_date = opts[:to]
|
|
217
|
+
|
|
218
|
+
raise ArgumentError, 'from and to dates are required' if from_date.nil? || to_date.nil?
|
|
219
|
+
|
|
220
|
+
start_ts = Date.parse(from_date).to_time.to_i
|
|
221
|
+
end_ts = Date.parse(to_date).to_time.to_i + 86_399 # Include the entire end day
|
|
222
|
+
|
|
223
|
+
start_height = find_first_block_ge_timestamp(start_ts)
|
|
224
|
+
end_height = find_last_block_le_timestamp(end_ts)
|
|
225
|
+
|
|
226
|
+
txs = []
|
|
227
|
+
if start_height && end_height && start_height <= end_height
|
|
228
|
+
(start_height..end_height).each do |height|
|
|
229
|
+
block_hash_res = btc_rpc_call(method: 'getblockhash', params: [height])
|
|
230
|
+
block_hash = block_hash_res[:result]
|
|
231
|
+
|
|
232
|
+
block_res = btc_rpc_call(method: 'getblock', params: [block_hash, 1])
|
|
233
|
+
txs.concat(block_res[:result][:tx])
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
txs
|
|
133
238
|
rescue StandardError => e
|
|
134
239
|
raise e
|
|
135
240
|
end
|
|
@@ -149,7 +254,12 @@ module PWN
|
|
|
149
254
|
latest_block = #{self}.get_latest_block
|
|
150
255
|
|
|
151
256
|
block_details = #{self}.get_block_details(
|
|
152
|
-
height: 'required - block height
|
|
257
|
+
height: 'required - block height as an integer (0 for genesis block)'
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
transactions = #{self}.get_transactions(
|
|
261
|
+
from: 'required - start date in YYYY-MM-DD format',
|
|
262
|
+
to: 'required - end date in YYYY-MM-DD format'
|
|
153
263
|
)
|
|
154
264
|
|
|
155
265
|
#{self}.authors
|
data/lib/pwn/config.rb
CHANGED
|
@@ -51,6 +51,14 @@ module PWN
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
asm: { arch: PWN::Plugins::DetectOS.arch, endian: PWN::Plugins::DetectOS.endian },
|
|
54
|
+
blockchain: {
|
|
55
|
+
bitcoin: {
|
|
56
|
+
rpc_host: 'localhost',
|
|
57
|
+
rpc_port: 8332,
|
|
58
|
+
rpc_user: 'bitcoin RPC Username',
|
|
59
|
+
rpc_pass: 'bitcoin RPC Password'
|
|
60
|
+
}
|
|
61
|
+
},
|
|
54
62
|
irc: {
|
|
55
63
|
ui_nick: '_human_',
|
|
56
64
|
shared_chan: '#pwn',
|
|
@@ -10,10 +10,13 @@ module PWN
|
|
|
10
10
|
# of other SP plugins/modules.
|
|
11
11
|
module AuthenticationHelper
|
|
12
12
|
# Supported Method Parameters::
|
|
13
|
-
# PWN::Plugins::AuthenticationHelper.username
|
|
13
|
+
# PWN::Plugins::AuthenticationHelper.username(
|
|
14
|
+
# prompt: 'optional - string to display at prompt (Default: Username)'
|
|
15
|
+
# )
|
|
14
16
|
|
|
15
17
|
public_class_method def self.username
|
|
16
|
-
|
|
18
|
+
prompt = opts[:prompt] ||= 'Username'
|
|
19
|
+
user = TTY::Prompt.new.ask("#{prompt}: ")
|
|
17
20
|
user.to_s.strip.chomp.scrub
|
|
18
21
|
rescue StandardError => e
|
|
19
22
|
raise e
|
|
@@ -21,11 +24,11 @@ module PWN
|
|
|
21
24
|
|
|
22
25
|
# Supported Method Parameters::
|
|
23
26
|
# PWN::Plugins::AuthenticationHelper.mask_password(
|
|
24
|
-
# prompt: 'optional - string to display at prompt'
|
|
27
|
+
# prompt: 'optional - string to display at prompt (Default: Password)'
|
|
25
28
|
# )
|
|
26
29
|
|
|
27
30
|
public_class_method def self.mask_password(opts = {})
|
|
28
|
-
opts[:prompt]
|
|
31
|
+
prompt = opts[:prompt] ||= 'Password'
|
|
29
32
|
|
|
30
33
|
pass = TTY::Prompt.new.mask("#{prompt}: ")
|
|
31
34
|
pass.to_s.strip.chomp.scrub
|
|
@@ -37,11 +40,11 @@ module PWN
|
|
|
37
40
|
|
|
38
41
|
# Supported Method Parameters::
|
|
39
42
|
# PWN::Plugins::AuthenticationHelper.mfa(
|
|
40
|
-
# prompt: 'optional - string to display at prompt'
|
|
43
|
+
# prompt: 'optional - string to display at prompt (Default: MFA Token)'
|
|
41
44
|
# )
|
|
42
45
|
|
|
43
46
|
public_class_method def self.mfa(opts = {})
|
|
44
|
-
opts[:prompt]
|
|
47
|
+
prompt = opts[:prompt] ||= 'MFA Token'
|
|
45
48
|
|
|
46
49
|
mfa = TTY::Prompt.new.ask("#{prompt}: ")
|
|
47
50
|
mfa.to_s.strip.chomp.scrub
|
|
@@ -63,9 +66,13 @@ module PWN
|
|
|
63
66
|
|
|
64
67
|
public_class_method def self.help
|
|
65
68
|
puts "USAGE:
|
|
66
|
-
#{self}.username
|
|
69
|
+
#{self}.username(
|
|
70
|
+
prompt: 'optional - string to display at prompt'
|
|
71
|
+
)
|
|
67
72
|
|
|
68
|
-
#{self}.mask_password
|
|
73
|
+
#{self}.mask_password(
|
|
74
|
+
prompt: 'optional - string to display at prompt'
|
|
75
|
+
)
|
|
69
76
|
|
|
70
77
|
#{self}.mfa(
|
|
71
78
|
prompt: 'optional - string to display at prompt'
|
data/lib/pwn/version.rb
CHANGED
data/third_party/pwn_rdoc.jsonl
CHANGED
|
@@ -444,8 +444,13 @@
|
|
|
444
444
|
{"messages":[{"role":"user","content":"PWN::Blockchain.help Usage"},{"role":"assistant","content":"`PWN::Blockchain.help`: "}]}
|
|
445
445
|
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.authors Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
446
446
|
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.btc_rest_call Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.btc_rest_call`: Supported Method Parameters\n\nbtc_rest_call(\n\nhttp_method: 'optional HTTP method (defaults to GET)\nrest_call: 'required rest call to make per the schema',\nparams: 'optional params passed in the URI or HTTP Headers',\nhttp_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST',\ntimeout: 'optional timeout in seconds (defaults to 180)',\nspinner: 'optional - display spinner (defaults to false)'\n\n)\n"}]}
|
|
447
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.btc_rpc_call Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.btc_rpc_call`: "}]}
|
|
448
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.find_first_block_ge_timestamp Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.find_first_block_ge_timestamp`: "}]}
|
|
449
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.find_last_block_le_timestamp Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.find_last_block_le_timestamp`: "}]}
|
|
447
450
|
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_block_details Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_block_details`: Supported Method Parameters\n\nPWN::Blockchain::BTC.get_block_details(\n\nheight: 'required - block height number',\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
|
451
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_block_timestamp Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_block_timestamp`: "}]}
|
|
448
452
|
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_latest_block Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_latest_block`: Supported Method Parameters\n\nlatest_block = PWN::Blockchain::BTC.get_latest_block(\n\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
|
453
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_transactions Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_transactions`: Supported Method Parameters\n\ntransactions = PWN::Blockchain::BTC.get_transactions(\n\nfrom: 'required - start date in YYYY-MM-DD format',\nto: 'required - end date in YYYY-MM-DD format'\n\n)\n"}]}
|
|
449
454
|
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.help Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.help`: "}]}
|
|
450
455
|
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.authors Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
451
456
|
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.eth_rest_call Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.eth_rest_call`: Supported Method Parameters\n\neth_rest_call(\n\nhttp_method: 'optional HTTP method (defaults to GET)\nrest_call: 'required rest call to make per the schema',\nparams: 'optional params passed in the URI or HTTP Headers',\nhttp_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST',\ntimeout: 'optional timeout in seconds (defaults to 180)',\nspinner: 'optional - display spinner (defaults to false)'\n\n)\n"}]}
|
|
@@ -485,9 +490,9 @@
|
|
|
485
490
|
{"messages":[{"role":"user","content":"PWN::Plugins::Assembly.opcodes_to_asm Usage"},{"role":"assistant","content":"`PWN::Plugins::Assembly.opcodes_to_asm`: Supported Method Parameters\n\nPWN::Plugins::Assembly.opcodes_to_asm(\n\nopcodes: 'required - hex escaped opcode(s) (e.g. \"\\x90\\x90\\x90\")',\nopcodes_always_string_obj: 'optional - always interpret opcodes passed in as a string object (defaults to false)',\narch: 'optional - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)',\nendian: 'optional - endianess :big|:little (defaults to current system endianess)'\n\n)\n"}]}
|
|
486
491
|
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
487
492
|
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.help Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.help`: "}]}
|
|
488
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.mask_password Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.mask_password`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.mask_password(\n\nprompt: 'optional - string to display at prompt'\n\n)\n"}]}
|
|
489
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.mfa Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.mfa`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.mfa(\n\nprompt: 'optional - string to display at prompt'\n\n)\n"}]}
|
|
490
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.username Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.username`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.username\n"}]}
|
|
493
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.mask_password Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.mask_password`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.mask_password(\n\nprompt: 'optional - string to display at prompt (Default: Password)'\n\n)\n"}]}
|
|
494
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.mfa Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.mfa`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.mfa(\n\nprompt: 'optional - string to display at prompt (Default: MFA Token)'\n\n)\n"}]}
|
|
495
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::AuthenticationHelper.username Usage"},{"role":"assistant","content":"`PWN::Plugins::AuthenticationHelper.username`: Supported Method Parameters\n\nPWN::Plugins::AuthenticationHelper.username(\n\nprompt: 'optional - string to display at prompt (Default: Username)'\n\n)\n"}]}
|
|
491
496
|
{"messages":[{"role":"user","content":"PWN::Plugins::BareSIP.apply_src_num_rules Usage"},{"role":"assistant","content":"`PWN::Plugins::BareSIP.apply_src_num_rules`: Supported Method Parameters\n\nPWN::Plugins::BareSIP.apply_src_num_rules(\n\ntarget_num: 'Required - destination number to derive source number',\nsrc_num_rules: 'Optional - Comma-delimited list of rules for src_num format (i.e. XXXXXXXXXX, self, same_country, same_area, and/or same_prefix [Defaults to random src_num w/ same length as target_num])'\n\n)\n"}]}
|
|
492
497
|
{"messages":[{"role":"user","content":"PWN::Plugins::BareSIP.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::BareSIP.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
493
498
|
{"messages":[{"role":"user","content":"PWN::Plugins::BareSIP.baresip_exec Usage"},{"role":"assistant","content":"`PWN::Plugins::BareSIP.baresip_exec`: Supported Method Parameters\n\ncmd_resp = PWN::Plugins::BareSIP.baresip_exec(\n\nbaresip_obj: 'Required - baresip obj returned from #start method',\ncmd: 'Required - command to send to baresip HTTP daemon'\n\n)\n"}]}
|
|
@@ -649,8 +654,7 @@
|
|
|
649
654
|
{"messages":[{"role":"user","content":"PWN::Plugins::EIN.help Usage"},{"role":"assistant","content":"`PWN::Plugins::EIN.help`: "}]}
|
|
650
655
|
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::FileFu.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
651
656
|
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.help Usage"},{"role":"assistant","content":"`PWN::Plugins::FileFu.help`: "}]}
|
|
652
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.
|
|
653
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.recurse_in_dir Usage"},{"role":"assistant","content":"`PWN::Plugins::FileFu.recurse_in_dir`: Supported Method Parameters\n\nPWN::Plugins::FileFu.recurse_in_dir(\n\ndir_path: 'optional path to dir defaults to .'\n\n)\n"}]}
|
|
657
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.recurse_in_dir Usage"},{"role":"assistant","content":"`PWN::Plugins::FileFu.recurse_in_dir`: Supported Method Parameters\n\nPWN::Plugins::FileFu.recurse_in_dir(\n\ndir_path: 'optional path to dir defaults to .',\ninclude_extensions: 'optional - array of file extensions to search for in scan (e.g. ['.js', '.php'])',\nexclude_extensions: 'optional - array of file extensions to exclude from scan (e.g. ['.log', '.txt', '.spec'])'\n\n)\n"}]}
|
|
654
658
|
{"messages":[{"role":"user","content":"PWN::Plugins::FileFu.untar_gz_file Usage"},{"role":"assistant","content":"`PWN::Plugins::FileFu.untar_gz_file`: Supported Method Parameters\n\nPWN::Plugins::FileFu.untar_gz_file(\n\ntar_gz_file: 'required - path to .tar.gz file',\ndestination: 'required - destination folder to save extracted contents'\n\n)\n"}]}
|
|
655
659
|
{"messages":[{"role":"user","content":"PWN::Plugins::FlipperZero.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::FlipperZero.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
656
660
|
{"messages":[{"role":"user","content":"PWN::Plugins::FlipperZero.connect Usage"},{"role":"assistant","content":"`PWN::Plugins::FlipperZero.connect`: Supported Method Parameters\n\nflipper_zero_obj = PWN::Plugins::FlipperZero.connect(\n\nblock_dev: 'optional serial block device path (defaults to /dev/ttyACM0)',\nbaud: 'optional (defaults to 9600)',\ndata_bits: 'optional (defaults to 8)',\nstop_bits: 'optional (defaults to 1)',\nparity: 'optional - :even||:odd|:none (defaults to :none)'\n\n)\n"}]}
|
|
@@ -776,6 +780,7 @@
|
|
|
776
780
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
777
781
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.help Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.help`: "}]}
|
|
778
782
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.pry Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.pry`: Supported Method Parameters\n\nPWN::Plugins::MonkeyPatch.pry\n"}]}
|
|
783
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.complete_expression? Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.complete_expression?`: "}]}
|
|
779
784
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.evaluate_ruby Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.evaluate_ruby`: "}]}
|
|
780
785
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.handle_line Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.handle_line`: "}]}
|
|
781
786
|
{"messages":[{"role":"user","content":"PWN::Plugins::MonkeyPatch.push Usage"},{"role":"assistant","content":"`PWN::Plugins::MonkeyPatch.push`: "}]}
|
|
@@ -1121,6 +1126,10 @@
|
|
|
1121
1126
|
{"messages":[{"role":"user","content":"PWN::SAST::CSRF.help Usage"},{"role":"assistant","content":"`PWN::SAST::CSRF.help`: "}]}
|
|
1122
1127
|
{"messages":[{"role":"user","content":"PWN::SAST::CSRF.scan Usage"},{"role":"assistant","content":"`PWN::SAST::CSRF.scan`: Supported Method Parameters\n\nPWN::SAST::CSRF.scan(\n\n:dir_path => 'optional path to dir defaults to .'\n:git_repo_root_uri => 'optional http uri of git repo scanned'\n\n\n)\n"}]}
|
|
1123
1128
|
{"messages":[{"role":"user","content":"PWN::SAST::CSRF.security_references Usage"},{"role":"assistant","content":"`PWN::SAST::CSRF.security_references`: "}]}
|
|
1129
|
+
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionGoLang.authors Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionGoLang.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1130
|
+
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionGoLang.help Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionGoLang.help`: "}]}
|
|
1131
|
+
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionGoLang.scan Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionGoLang.scan`: Supported Method Parameters\n\nPWN::SAST::CmdExecutionGoLang.scan(\n\ndir_path: 'optional path to dir defaults to .'\ngit_repo_root_uri: 'optional http uri of git repo scanned'\n\n)\n"}]}
|
|
1132
|
+
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionGoLang.security_references Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionGoLang.security_references`: "}]}
|
|
1124
1133
|
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionJava.authors Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionJava.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1125
1134
|
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionJava.help Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionJava.help`: "}]}
|
|
1126
1135
|
{"messages":[{"role":"user","content":"PWN::SAST::CmdExecutionJava.scan Usage"},{"role":"assistant","content":"`PWN::SAST::CmdExecutionJava.scan`: Supported Method Parameters\n\nPWN::SAST::CmdExecutionJava.scan(\n\ndir_path: 'optional path to dir defaults to .'\ngit_repo_root_uri: 'optional http uri of git repo scanned'\n\n)\n"}]}
|
|
@@ -1253,6 +1262,9 @@
|
|
|
1253
1262
|
{"messages":[{"role":"user","content":"PWN::SAST::TaskTag.help Usage"},{"role":"assistant","content":"`PWN::SAST::TaskTag.help`: "}]}
|
|
1254
1263
|
{"messages":[{"role":"user","content":"PWN::SAST::TaskTag.scan Usage"},{"role":"assistant","content":"`PWN::SAST::TaskTag.scan`: Supported Method Parameters\n\nPWN::SAST::TaskTag.scan(\n\ndir_path: 'optional path to dir defaults to .'\ngit_repo_root_uri: 'optional http uri of git repo scanned'\n\n)\n"}]}
|
|
1255
1264
|
{"messages":[{"role":"user","content":"PWN::SAST::TaskTag.security_references Usage"},{"role":"assistant","content":"`PWN::SAST::TaskTag.security_references`: "}]}
|
|
1265
|
+
{"messages":[{"role":"user","content":"PWN::SAST::TestCaseEngine.authors Usage"},{"role":"assistant","content":"`PWN::SAST::TestCaseEngine.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1266
|
+
{"messages":[{"role":"user","content":"PWN::SAST::TestCaseEngine.execute Usage"},{"role":"assistant","content":"`PWN::SAST::TestCaseEngine.execute`: Supported Method Parameters\n\nPWN::SAST::TestCaseEngine.execute(\n\ntest_case_filter: 'required - grep command to filter results',\nsecurity_references: 'required - Hash with keys :sast_module, :section, :nist_800_53_uri, :cwe_id, :cwe_uri',\ndir_path: 'optional - path to dir defaults to .',\ninclude_extensions: 'optional - array of file extensions to search for in scan (Defaults to all file types / i.e. [])',\nexclude_extensions: 'optional - array of file extensions to exclude from scan (Defaults to [.bin, .dat, .JS-BEAUTIFIED, .o, .test, .png, .jpg, .jpeg, .gif, .svg, .ico, .so, .spec, .zip, .tar, .gz, .tgz, .7z, .mp3, .mp4, .mov, .avi, .wmv, .flv, .mkv])',\ngit_repo_root_uri: 'optional - http uri of git repo scanned'\n\n)\n"}]}
|
|
1267
|
+
{"messages":[{"role":"user","content":"PWN::SAST::TestCaseEngine.help Usage"},{"role":"assistant","content":"`PWN::SAST::TestCaseEngine.help`: "}]}
|
|
1256
1268
|
{"messages":[{"role":"user","content":"PWN::SAST::ThrowErrors.authors Usage"},{"role":"assistant","content":"`PWN::SAST::ThrowErrors.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
1257
1269
|
{"messages":[{"role":"user","content":"PWN::SAST::ThrowErrors.help Usage"},{"role":"assistant","content":"`PWN::SAST::ThrowErrors.help`: "}]}
|
|
1258
1270
|
{"messages":[{"role":"user","content":"PWN::SAST::ThrowErrors.scan Usage"},{"role":"assistant","content":"`PWN::SAST::ThrowErrors.scan`: Supported Method Parameters\n\nPWN::SAST::ThrowErrors.scan(\n\ndir_path: 'optional path to dir defaults to .'\ngit_repo_root_uri: 'optional http uri of git repo scanned'\n\n)\n"}]}
|