pwn 0.5.44 → 0.5.46
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/README.md +3 -3
- data/bin/pwn +12 -0
- data/bin/pwn_gqrx_scanner +75 -0
- data/lib/pwn/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7184b7779835838904c456d596a269bdbcfc16ef1decfc74b1647b919a2a994
|
4
|
+
data.tar.gz: 619117c61e14f580ded62296cad6ffaaba0c929fb30341a1476eb0b08fa24aae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5dd45352701c3610f8dadccd03dff9ac894a1c2c8a1347f92560d5066b919d660e30efca60bd693c043f31a1b8b787b1a21027338094465f6871ed5d8e95e46
|
7
|
+
data.tar.gz: f23b45f291a86fd85a1f095a926c670ebc1ee00dc1464f995b06076b3bb3d44d7ec95d0807329af2b2a23e515b8554f2f08111cab663d8310720caf1ae51a20b
|
data/Gemfile
CHANGED
@@ -33,7 +33,7 @@ gem 'fftw3', '0.3'
|
|
33
33
|
gem 'gdb', '1.0.0'
|
34
34
|
gem 'gem-wrappers', '1.4.0'
|
35
35
|
gem 'gist', '6.0.0'
|
36
|
-
gem 'gruff', '0.
|
36
|
+
gem 'gruff', '0.24.0'
|
37
37
|
gem 'htmlentities', '4.3.4'
|
38
38
|
gem 'ipaddress', '0.8.3'
|
39
39
|
gem 'jenkins_api_client2', '1.9.0'
|
@@ -73,7 +73,7 @@ gem 'rmagick', '5.4.4'
|
|
73
73
|
gem 'rqrcode', '2.2.0'
|
74
74
|
gem 'rspec', '3.13.0'
|
75
75
|
gem 'rtesseract', '3.1.3'
|
76
|
-
gem 'rubocop', '1.
|
76
|
+
gem 'rubocop', '1.62.1'
|
77
77
|
gem 'rubocop-rake', '0.6.0'
|
78
78
|
gem 'rubocop-rspec', '2.27.1'
|
79
79
|
gem 'ruby-audio', '1.6.1'
|
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.46]:001 >>> PWN.help
|
41
41
|
```
|
42
42
|
|
43
43
|
[![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.3.0@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.46]: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.3.0@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.46]: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/bin/pwn
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
require 'optparse'
|
5
5
|
require 'pwn'
|
6
6
|
require 'pry'
|
7
|
+
require 'tty-prompt'
|
7
8
|
require 'yaml'
|
8
9
|
|
9
10
|
opts = {}
|
@@ -216,12 +217,22 @@ begin
|
|
216
217
|
end
|
217
218
|
end
|
218
219
|
|
220
|
+
# class PWNCompleter < Pry::InputCompleter
|
221
|
+
# def call(input)
|
222
|
+
# end
|
223
|
+
# end
|
224
|
+
|
219
225
|
Pry::Commands.create_command 'pwn-asm' do
|
220
226
|
description 'Initiate pwn.asm shell.'
|
221
227
|
|
222
228
|
def process
|
223
229
|
pi = pry_instance
|
224
230
|
pi.config.pwn_asm = true
|
231
|
+
pi.custom_completions = proc do
|
232
|
+
prompt = TTY::Prompt.new
|
233
|
+
[pi.input.line_buffer]
|
234
|
+
# prompt.select(pi.input.line_buffer)
|
235
|
+
end
|
225
236
|
end
|
226
237
|
end
|
227
238
|
|
@@ -263,6 +274,7 @@ begin
|
|
263
274
|
pi.config.pwn_gpt = false if pi.config.pwn_gpt
|
264
275
|
pi.config.pwn_gpt_debug = false if pi.config.pwn_gpt_debug
|
265
276
|
pi.config.pwn_gpt_speak = false if pi.config.pwn_gpt_speak
|
277
|
+
pi.config.completer = Pry::InputCompleter
|
266
278
|
end
|
267
279
|
end
|
268
280
|
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
4
|
+
require 'pwn'
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
opts = {}
|
8
|
+
OptionParser.new do |options|
|
9
|
+
options.banner = "USAGE:
|
10
|
+
#{$PROGRAM_NAME} [opts]
|
11
|
+
"
|
12
|
+
|
13
|
+
options.on('-sFREQ', '--start-freq=FREQ', '<Optional - Frequency to Set when Scanning Begins (Defaults to last known frequency)>') do |s|
|
14
|
+
opts[:start_freq] = s
|
15
|
+
end
|
16
|
+
|
17
|
+
options.on('-tFREQ', '--target-freq=FREQ', '<Required - Frequency to Conclude Scanning (e.g. 900000000 == 900 mHz>') do |s|
|
18
|
+
opts[:start_freq] = s
|
19
|
+
end
|
20
|
+
|
21
|
+
options.on('-hHOST', '--host=HOST', '<Optional - GQRX Host (Defaults to 127.0.0.1)>') do |h|
|
22
|
+
opts[:host] = h
|
23
|
+
end
|
24
|
+
|
25
|
+
options.on('-pPORT', '--port=PORT', '<Optional - GQRX Port (Defaults to 7356)>') do |p|
|
26
|
+
opts[:port] = p
|
27
|
+
end
|
28
|
+
end.parse!
|
29
|
+
|
30
|
+
if opts.empty?
|
31
|
+
puts `#{$PROGRAM_NAME} --help`
|
32
|
+
exit 1
|
33
|
+
end
|
34
|
+
|
35
|
+
def jump_to_freq(opts = {})
|
36
|
+
gqrx_sock = opts[:gqrx_sock]
|
37
|
+
freq = opts[:freq]
|
38
|
+
|
39
|
+
gqrx_sock.write("F #{freq}\n")
|
40
|
+
does_respond = gqrx_sock.wait_readable
|
41
|
+
gqrx_sock.readline.chomp
|
42
|
+
|
43
|
+
gqrx_sock.write("f\n")
|
44
|
+
does_respond = gqrx_sock.wait_readable
|
45
|
+
reached_freq = gqrx_sock.readline.chomp
|
46
|
+
puts "Reached #{reached_freq}..."
|
47
|
+
end
|
48
|
+
|
49
|
+
begin
|
50
|
+
pwn_provider = 'ruby-gem'
|
51
|
+
# pwn_provider = ENV.fetch('PWN_PROVIDER') if ENV.keys.select { |s| s == 'PWN_PROVIDER' }.any?
|
52
|
+
pwn_provider = ENV.fetch('PWN_PROVIDER') if ENV.keys.any? { |s| s == 'PWN_PROVIDER' }
|
53
|
+
|
54
|
+
start_freq = opts[:start_freq].to_i
|
55
|
+
end_freq = opts[:end_freq].to_i
|
56
|
+
host = opts[:host] ||= '127.0.0.1'
|
57
|
+
port = opts[:port] ||= 7356
|
58
|
+
|
59
|
+
gqrx_sock = PWN::Plugins::Sock.connect(target: host, port: port)
|
60
|
+
# If start value is greater than end value, go in reverse
|
61
|
+
if start_freq > end_freq
|
62
|
+
end_freq.downto(start_freq) do |freq|
|
63
|
+
jump_to_freq(gqrx_sock: gqrx_sock, freq: freq)
|
64
|
+
end
|
65
|
+
else
|
66
|
+
(start_freq..end_freq).each do |freq|
|
67
|
+
puts "Scanning #{freq}..."
|
68
|
+
jump_to_freq(gqrx_sock: gqrx_sock, freq: freq)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
rescue SystemExit, Interrupt
|
72
|
+
puts "\nGoodbye."
|
73
|
+
ensure
|
74
|
+
gqrx_sock = PWN::Plugins::Sock.disconnect(sock_obj: gqrx_sock)
|
75
|
+
end
|
data/lib/pwn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.46
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -310,14 +310,14 @@ dependencies:
|
|
310
310
|
requirements:
|
311
311
|
- - '='
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: 0.
|
313
|
+
version: 0.24.0
|
314
314
|
type: :runtime
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - '='
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: 0.
|
320
|
+
version: 0.24.0
|
321
321
|
- !ruby/object:Gem::Dependency
|
322
322
|
name: htmlentities
|
323
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -856,14 +856,14 @@ dependencies:
|
|
856
856
|
requirements:
|
857
857
|
- - '='
|
858
858
|
- !ruby/object:Gem::Version
|
859
|
-
version: 1.
|
859
|
+
version: 1.62.1
|
860
860
|
type: :runtime
|
861
861
|
prerelease: false
|
862
862
|
version_requirements: !ruby/object:Gem::Requirement
|
863
863
|
requirements:
|
864
864
|
- - '='
|
865
865
|
- !ruby/object:Gem::Version
|
866
|
-
version: 1.
|
866
|
+
version: 1.62.1
|
867
867
|
- !ruby/object:Gem::Dependency
|
868
868
|
name: rubocop-rake
|
869
869
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1209,6 +1209,7 @@ executables:
|
|
1209
1209
|
- pwn_diff_csv_files_w_column_exclude
|
1210
1210
|
- pwn_domain_reversewhois
|
1211
1211
|
- pwn_fuzz_net_app_proto
|
1212
|
+
- pwn_gqrx_scanner
|
1212
1213
|
- pwn_ibm_appscan_enterprise
|
1213
1214
|
- pwn_jenkins_create_job
|
1214
1215
|
- pwn_jenkins_create_view
|
@@ -1276,6 +1277,7 @@ files:
|
|
1276
1277
|
- bin/pwn_diff_csv_files_w_column_exclude
|
1277
1278
|
- bin/pwn_domain_reversewhois
|
1278
1279
|
- bin/pwn_fuzz_net_app_proto
|
1280
|
+
- bin/pwn_gqrx_scanner
|
1279
1281
|
- bin/pwn_ibm_appscan_enterprise
|
1280
1282
|
- bin/pwn_jenkins_create_job
|
1281
1283
|
- bin/pwn_jenkins_create_view
|